Cześć Marcin ;-) , czytam sobie Twój post i pętelke masz poza pętlą if( !isset( $bBlockPage ) , ona jest zagnieźdżona, powinno pomóc . Heh co tam u CIe odezwij sie na prv
marcinsieja
2008-10-23 22:00
Cześć ponownie. Sprawdzałem tą pętelkę i w środku i na zewnątrz i nie robiło to różnicy. Nie bardzo wiem, jak można to bez problemu obejść.
Codzień czegoś nowego się uczę... i tak do śmierci
Marcin, uzyskałem dzisiaj odpowiedź od Szanownych OS, nie jest to dobre rozwiązanie. i Jak potem sie okazało rozwiązanie które Oni proponują jest lepsze - DZIAŁA lepiej niż to :-).
3. oczywiście modyfikacje w container.tpl i plik menu_left.tpl
4. wrzucasz strony które chcesz mieć w menu do podmenu utworzonego w lang_pl, następnie tworzysz menu pod logo i wpisujesz jego id do lang_pl do tablicy.
5. Jak coś podeśle rozwiązanie pełne - to tak na szybko.
pzdr
Pilchu
marcinsieja
2008-11-03 16:34
sprawdzę i dam znać, choć męczy mnie to, że jeśli będę chciał klientowi dać dostęp do admina, to on dodając kolejne podstrony nic nie zobaczy, bo sam nie będzie umiał edytować pliku lang_pl
Odpowiednie menu wyswietla sie dla wszystkich glownych dzialow strony ( stron o id 1,2,3 i 4 ) oraz dla podstrony o id 9 Dla pozostałych wpisanych podstron nie wyswietla sie wogole zadne menu... Czy ktos ma jakis pomysl co moze byc powodem?
w tym momencie menu wyswietla sie tylko przy nadrzednych stronach...
uzywam quick.cms v2.4 do tej pory zmienilem jedynie gorne menu na obrazkowe, przeskalowalem strone na inna rozdzielczosc, doinstalowalem fckeditor 2.6.4 czy ktores z w/w czynnosci mogly spowodowac, ze menu nie wyswietla sie na podstronach? Mnie sie wydaje, ze raczej nie powinny miec nic wspolnego, ale wole sie upewnic, gdyz jestem jeszcze calkiem poczatkujacy
Witam, wykorzystałam na mojej stronie opcję z pionowym menu stworzonym z podstron podpiętych do poszczególnych działów, tak jak 'Makaron' pisze w ostatnim wpisie tego wątku, ale mam problem - nie wiem, w jaki sposób ustawić opcję class="selected" dla linków w tym menu. Próbowałam wykorzystać opcję $aData[sSelected] z szablonu dla menu w szablonie 'pages_default.tpl' ale bezskutecznie. W jaki sposób mogę ustawić dla tych linków tą opcję? Będę wdzięczna za odpowiedź.
Właśnie tak zrobiłam - kolejne tytuły podstron ustawiłam jako menu boczne - ale tera nie działa zaznaczanie wybranych pozycji w tym menu jako 'selected' tak, jak jest to w zwykłym menu... I o to właśnie pytam - jak ustawić ten element dla aktywnej pozycji w bocznym menu, stworzonym z listy podstron? Próbowałam ustawić dla tych linków w szablonie page_default.tpl opcję $aData[sSelected] tak, jak jest to ustawione w szablonach z menu dla poszczególnych linków w menu, ale to nie działa... Może jeszcze coś trzeba gdzieś przestawić, ale od wczoraj nad tym siedzę, i nie mogę dojść do rozwiązania... Może ktoś wie, jak to zrobić? Z góry dzięki za pomoc...
Proszę o pomoc w ustaleniu, w jaki sposób można ustawić opcję class="selected" dla wybranego linku do podstrony tak, jak jest to zrobione dla menu. Boczne menu na stronie zostało utworzone z linków do podstron i teraz jest problem z zaznaczaniem linków właśnie otwartych. Z góry dzięki za pomoc.
Podobnie można zrobić w funkcji listSubpages() a utworzoną zmienną $aData[sSelected] umieścić w szablonie templates/pages_default.tpl w bloku odpowiedzialnym za listowanie podstron.
Bardzo dziękuję za pomoc, choć po wdrożeniu rozwiązania wybrane linki nie są oznaczone jako 'selected'. Tak, jak pisałeś, wstawiłam w pliku core/pages.php linijkę kodu odpowiadającego za nadawanie atrybutu
class="selected"
i oczywiście umieściłam w pliku templates/pages_default.tpl zmienną
$aData['sSelected']
oraz linijkę
<!-- BEGIN SELECTED -->class="selected"<!-- END SELECTED -->
pod każdym blokiem definiującym listę linków podstron, z których stworzone jest menu boczne. Być może powinnam coś zmienić w tej linijce kodu:
W funkcji listującej podstrony nie ma zmiennej $iPageCurrent. Zamiast niej chyba należy umieścić $iPage. Nie wiem dokładnie jak masz skonstruowaną tą funkcję.
$oTpl->setVariables( 'aData', $aData ); $content .= $oTpl->tbHtml( $sFile, 'SUBPAGES_LIST_'.$iType ); } // end for
if( isset( $content ) ){ return $oTpl->tbHtml( $sFile, 'SUBPAGES_HEAD_'.$iType ).$content.$oTpl->tbHtml( $sFile, 'SUBPAGES_FOOT_'.$iType ); } } } // end function listSubpages
A tutaj fragment z szablonu 'pages_default.tpl":
<!-- BEGIN SUBPAGES_LIST_1 --><li class="l$aData[sStyle]"><h2><a href="$aData[sLinkName]" $aData[sSelected] >« $aData[sName]</a></h2>$aData[sDescriptionShort] </li><!-- END SUBPAGES_LIST_1 --> <!-- BEGIN SUBPAGES_HEAD_1 --><ul class="subpagesList" id="subList1"><!-- END SUBPAGES_HEAD_1 --> <!-- BEGIN SUBPAGES_FOOT_1 --></ul><!-- END SUBPAGES_FOOT_1 --> <!-- BEGIN SELECTED -->class="selected"<!-- END SELECTED -->
<!-- BEGIN SUBPAGES_LIST_2 --><li class="l$aData[sStyle]">$aData[sImage]<h2><a href="$aData[sLinkName]" $aData[sSelected] >« $aData[sName]</a></h2>$aData[sDescriptionShort]</li><!-- END SUBPAGES_LIST_2 --> <!-- BEGIN SUBPAGES_IMAGE_2 --><div class="photo"><a href="$aData[sLinkName]"><img src="$config[dir_files]$aDataImage[iSizeValue1]/$aDataImage[sFileName]" alt="$aDataImage[sDescription]" /></a></div><!-- END SUBPAGES_IMAGE_2 --> <!-- BEGIN SUBPAGES_NO_IMAGE_2 --><!-- END SUBPAGES_NO_IMAGE_2 --> <!-- BEGIN SUBPAGES_HEAD_2 --><ul class="subpagesList" id="subList2"><!-- END SUBPAGES_HEAD_2 --> <!-- BEGIN SUBPAGES_FOOT_2 --></ul><!-- END SUBPAGES_FOOT_2 --> <!-- BEGIN SELECTED -->class="selected"<!-- END SELECTED -->
Może ktoś wie, co powinnam zmienić w tych kodach, żeby opcja 'selected' pojawiała się w wybranych linkach podstron??? Z góry dzięki za pomoc.
Złe podejście do $iPage przekazywanej jako parametr funkcji listSubpages($iPage). Jak zapewne wiesz, strony w QC mają unikatowe numery. I szukając w podzbiorze substron danej strony, nigdy nie znajdziesz w niej jej numeru. Jeśli skanujesz array $aPagesChildrens (zbiór dzieci danej strony), to niestety - matki w nim nie znajdziesz. Dlatego pytanie podczas skanowania listy jej podstron (pętla "for") o to, czy dana substrona ma przekazany numer "matki" mija się z celem. Musisz uporać się z dwoma problemami: 1. Klikając na daną podstronę, jej równorzędne siostry nie są w jej podzbiorze, więc nie będą na liście subpages i znikają. 2. Wyłowić "matkę" z jej własnego podzbioru.
Ad. 1: Zasugeruj przy kliknięciu na podstronę, że robi to jej "matka". W ten sposób siostry tej podstrony będą normalnie wyświetlone. Pod deklaracją funkcji: function listSubpages($iPage,$sFile,$iType){ wpisz: if(isset($this->aPagesParents[$iPage])) $iPage=$this->aPagesParents[$iPage]; Tym wpisem mówisz funkcji: jeśli mam matkę, to skanuj JĄ i wyświetl mnie razem z listą rodzeństwa. Tu chodzi o wyświetlenie listy. Zawartość/treść (pod)strony robiona jest gdzie indziej. To byłby punkt pierwszy. Teraz trzeba tylko dać tej podstronce "selected".
Ad. 2: Jak widzisz, ta nieszczęsna podstrona albo nie ma samej siebie w swoim podzbiorze, albo zaraz pod deklaracją funkcji podmieniamy jej numer na matczyny. Nic to - będziemy cwańsi ;-) Przechwycimy ten numer, zanim dojdzie do jakichkolwiek zmian. Pod deklaracją funkcji wpisz: $iChild=$iPage; Czyli pierwsze 4 linijki funkcji listSubpages wyglądają tak: function listSubpages($iPage,$sFile,$iType){ $iChild=$iPage; if(isset($this->aPagesParents[$iPage])) $iPage=$this->aPagesParents[$iPage];
i zmień: $aData['sSelected']=($aData['iPage']==$iPage)?$oTpl->tbHtml($sFile,'SELECTED'):null; na: $aData['sSelected']=($aData['iPage']==$iChild)?$oTpl->tbHtml( $sFile,'SELECTED'):null;