Wydawałby się, że komponent K2 z momentem ukazania się Joomla 2.5, czy też kolejnej Joomla 3.0 straci na swojej ważności, jednakże okazuje się, że nie. Nadal pojawiają się zarówno nowe wersje K2 (2.6.1), jak i moduły – mniej lub bardziej ciekawe/użyteczne. A webmasterzy wykorzystują ten komponent w najróżniejszy sposób. Można zapytać czemu akurat ten, a nie inny, czy to chodzi o siłę przyzwyczajenia – z pewnością dla wielu osób tak jest. Jest jednak coś czego CMS Joomla nadal brakuje, dodatkowe pola – powiązane z artykułem.
Niektórzy wykorzystują je do określenia cech produktom, czy wręcz osobom (wiek, kolor oczu, zawód) – także i ja posiłkuje się tym K2, kiedy tylko pozwala na to specyfikacja, czyli oczekiwania klienta. Tu jednak pojawia się problem natury technicznej, fajnie, że te dodatkowe pola są, ale jak ukryć wybrane od frontu ? Komponent tego nie umożliwia, więc może jakaś sztuczka? W pewnym sensie tak to można nazwać, bowiem sięgamy do dobrodziejstw płynących z CSS oraz CCS3, a dokładniej pseudo klas do wyboru mamy chociażby te cztery:
- :first-child – ten dotyczy tylko pierwszego elementu.
- :nth-child(N) – za jej pomocą możemy odwołać się do elementu, który ma przed sobą określoną w nawiasie liczbę rodzeństwa w strukturze dokumentu.
- :nth-last-child(N) – działa jak powyższa z tą różnicą, że liczenie elementów odbywa się od końca.
- :last-child – za pomocą której możemy odnieść się z formatowaniem do ostatniego elementu.
Ponieważ dodatkowe pola domyślnie wyświetlane są w postaci listy <li> nic nie stoi na przeszkodzie, aby skorzystać z jednego z tych rozwiązań i tak:
div.itemExtraFields ul li:first-child { display:none; }
Powinien ukryć pierwszy element, czyli pole nr 1 – na twojej liści. Jak możesz zauważyć, pole ukrywamy wizualnie, ale nadal jest wczytywane z bazy danych, zatem za jego pomocą można wyszukiwać z poziomu modułu do filtrowania K2 np. według dodatkowych pól. Powyższy kod należy dodać do pliku CSS, albo szablonu, albo k2 – najlepiej do ostatnich linijek. Więcej na temat Pseudoklas i sposobie uch racjonalnego użycia przeczytasz m.in. na stronie bezpłatnego kursu: http://webmaster.helion.pl/index.php/pcss-co-nowego-przynosi-css3
Nie wprost związane z tematem, bo nie o ukrywaniu pól, a o ich wyświetlaniu, ale…
wolę nie używać K2, w związku z tym szukałem łatwego CCK do dodawania pól. Znalazłem coś takiego: http://www.fieldsattach.com/ – przegenialne. Dodajemy pola do edycji artykułów, a do ich wyświetlania służy albo automatyczny plugin, albo prościutkie API.
Na przykładzie: strona dla serwisu miejskiego. Wymagana była funkcjonalność, by artykuł miał pola „Artykuł jest imprezą”, „data imprezy”, miejsce”, „czy biletowana”, „cena biletu”, „sciezka do systemu rezerwacji(ukryta)”.
Chodziło głównie o to, żeby nie było trzeba powtórnie wklepywać danych do jEvents czy jCalPro tylko zaczytywać artykuł, a w blogu artykułów wyświetlać odpowiednią ikonę jeżeli artykuł opisywał imprezę, a nie np. info o promocjach w sklepie.
API pozwoliło na błyskawiczne wygenerowanie szablonu treści (coś jak chromee modułów, bo wszystko na MVC) i teraz jeżeli art opisuje płatną imprezę, to w blogu widać wyróżnioną date, ikonę itd. A ponieważ są to zmienne, więc można budować warunki, np. checkbox „bezpłatna” zaznaczony – zamiast ceny wyświetla foto dziewczyny trzymającej banerek „free” :). Z ukrywaniem w ogóle nie ma problemu, bo możemy includować pola po ich ID. W predefiniowanych polach jest nawet galeria.
No i najfajniejsze: wartości pól można od razu użyć w zapytaniach do bazy. Można łatwo zrobić moduł odpytujący po dacie i mamy z głowy”najbliższe imprezy”, podpiąć pod kalendarz, zewnętrzny system rezerwacji, jakiś timeline czy wyświetlić jak w pinterest… Wszystko można (no, prawie).
A może komuś uda się porównać dostępne CCK na Joomlę?
Znacie może jakieś ciekawe stronki z użyciem K2 (poza http://demo.getk2.org/)?
Myślę że ciekawe http://www.marbetstyle.eu. zastosowanie K2 i kilku dodatków