PDA

Zobacz pełną wersję : Instrukcja PHP if zliczająca ilość modułów na danej pozycji



pawinf
19-01-2015, 13:38
Witajcie. Tworząc szablony Joomla często korzystam z instrukcji if($this->countModules('pozycja_modulu')) - a więc Jeśli na danej pozycji jest moduł. Potrzebuję instrukcji PHP, która zliczałaby ilość modułów umieszczonych na danej pozycji; a więc np. jeśli na danej pozycji są 2 moduły nadaj im width:50%. Czy istnieje taka instrukcja?

PS. Czy jest gdzieś zbiór jeszcze innych tego typu przydatnych instrukcji PHP, jakie warto używać w szablonach Joomla?

Dzięki z góry.

zwiastun
19-01-2015, 14:55
Przejrzałeś, co na ten temat jest na wiki?

pawinf
19-01-2015, 17:40
Wstępnie, ale nie znalazłem tego czego szukam

pawelSafiStudio
19-01-2015, 17:54
To możesz zrobić przy pomocy nadpisania pliku /html/modules.php w templatce, z której korzystasz. Wystarczy stworzyć dla danego modułu odpowiedni "styl". Następnie trochę brzydko, ale posłuż się zmiennymi globalnymi:

Przed funkcją opisującą "styl" dajesz:

global $zmienna_do_zliczania;
$zmienna_do_zliczania = 0;
Potem wewnątrz tej funkcji korzystasz ze zmiennej globalnej:

global $zmienna_do_zliczania;
$zmienna_do_zliczania += 1;
Morzesz sobie ją później wykorzystać do obliczania szerokości opakowania modułu.

zwiastun
19-01-2015, 17:57
Możliwe, że tego się już dziś tak nie robi, ale to łatwo sprawdzić:
http://wiki.joomla.pl/Wi%C4%99cej_o_modu%C5%82ach_w_Joomla!

Jola
19-01-2015, 21:34
$this->countModules('pozycja_modulu') zwraca ilość modułów wyświetlanych w danej pozycji (zależnie od pozycji menu),
nie tylko informację czy moduł jest.

pawelSafiStudio
20-01-2015, 07:29
@Jola, racja :) Trochę źle zrozumiałem temat. Myślałem, że @pawinf chce liczyć kolejne moduły w celu nadania klasy np: modul_1, modul_2, modul_3. Tutaj faktycznie countModules w zupełności załatwia sprawę :)

pawinf
20-01-2015, 14:16
Dzięki za odpowiedzi. Właściwie oba podejścia do sprawy są dla mnie ważne. Nadawanie klas kolejnym modułom na pewno też znalazłoby swoje zastosowanie; zaproponowane wyjaśnienie jest dla mnie nowe i wydaje mi się skomplikowane, ale spróbuję się temu przyjrzeć. Ale wrócę do odpowiedzi @Jola:

"$this->countModules('pozycja_modulu') zwraca ilość modułów wyświetlanych w danej pozycji (zależnie od pozycji menu), nie tylko informację czy moduł jest"



jak praktycznie powinien wyglądać warunek if uzależniający od ilości modułów na danej pozycji?
czy dotyczy to tylko menu, a nie np. modułów custom, z których najczęściej korzystam?

zwiastun
20-01-2015, 14:37
Przepraszam, ale po co podałem Ci link, w którym masz konkretne przykłady?

Jola
20-01-2015, 14:39
Klasę modułu dodajesz w konfiguracji modułu, a powyższy warunek można użyć do zdefiniowania parametrów css tej (tych klas) np. w sekcji head.

Gall Anonim
20-01-2015, 18:14
Przepraszam, ale po co podałem Ci link
też nie wiem po co ponieważ poniższy (podany powyżej link)

http://wiki.joomla.pl/Wi%C4%99cej_o_...82ach_w_Joomla!
daje po kliknięciu taki wynik "Więcej o ...82ach w Joomla

Z Joomla!WikiPL

Ta strona nie posiada jeszcze zawartości. Możesz wyszukać ten tytuł (http://wiki.joomla.pl/Specjalna:Szukaj/Wi%C4%99cej_o_...82ach_w_Joomla) w treści innych stron lub przeszukać powiązane rejestry (http://wiki.joomla.pl/index.php?title=Specjalna:Rejestr&page=Wi%C4%99cej_o_...82ach_w_Joomla), ale nie masz uprawnień do utworzenia tej strony

zwiastun
20-01-2015, 21:15
Napiszę tak: linku nie wziąłem z Księzyca. Forum czasem robi psikusy i tak było w tym przypadku - ostatni znak z adresu (wykrzyknik) znalazł się poza linkiem. Wystarczyło go dopisać, by trafić na właściwą stronę. Ale wystarczyło również, aby zainteresowany problemem dał informację zwrotną, że link nie działa.
Swoją drogą - linki na wiki zawierają w sobie tytuł artykułu, co łatwo zauważyć w adresie . Skoro trafia się gdzieś błąd, wystarczy wrzucić w wyszukiwarkę wiki ostatni człon adresu i wyszukiwarka zaprowadzi do celu.