Na wielu witrynach można spotkać newsy, do których przypisana jest pewna ilość tagów tematycznych (np. webmaster, software, hardware). Zamierzam zaimplementować coś podobnego w rozwijanym CMS-ie, aby łatwiej przeglądać zawartość. Nieraz być może stosuje się je także do artykułów, plików, itd. W każdym razie rozwiązań jest więcej.
Ułatwienie polega na tym, że po wejściu na stronę można przeczytać nowości z wszystkich kategorii, a jeżeli potem bardziej interesuje cię temat X, wyświetlasz tylko dział X.
Możliwe rozwiązania:
1. Wprowadzenie tagów dla nowości.
Zawartość (w tym nowości) jest aktualnie umieszczona w kategoriach (tylko w 1). Można jeszcze wprowadzić tagi. Problem w tym, że gdyby umieścić ID wszystkich przypisanych tagów w komórce tabeli "news", do wyświetlenia nowości trzeba użyć operatora LIKE lub wyrażeń regularnych.
Gdyby zaś przypisywać ID tagu do ID newsa (ilość przypisanych tagów = ilość rekordów dla 1 nowości), prawdopodobnie też będzie problem z odczytem (choć jeszcze nie próbowałem). CMS powinien być kompatybilny z MySQL i SQLite (ale może uda się utworzyć JOIN-a, który sprawdzi, czy w tabeli "tags" news jest przypisany do wyświetlanego tematu).
2. Najnowsze newsy ze wszystkich kategorii.
Tak miałem zrobić na początku, jednak pomyślałem, że mogą być z tym problemy. Każda kategoria pozwala ustawić tekst powitalny (co może być przydatne np. na stronie głównej). Wymagany byłby również podwójny JOIN (jak w rozw. 1, akapit 2), ponieważ kategoria może być wyłączona bądź mieć ustawiony inny język (np. EN, gdy wyświetlamy newsy PL).
Przypisywanie wielu kategorii jest niemożliwe.
3. Opcja: wyświetl nowości z subkategorii (tylko 1 poziom niżej).
Z jednej strony uniknę podwójnego JOIN-a (gdyż pobiorę wcześniej subkategorie). Z innej zaś uniemożliwię przypisywanie większej ilości kategorii bądź tagów niż 1. Rozwiązanie nie wymaga implementowania dodatkowych elementów oprócz kilku wstawek i zmian. Opcja byłaby dostępna w ustawieniach kategorii.
Co o tym myślicie? Czy przypisywanie wielu tagów jest istotne? Jeśli tak, jakie rozwiązanie proponujecie? Ważna jest optymalizacja.
[PHP][CMS] Grupowanie nowości - tagi?
Re: [PHP][CMS] Grupowanie nowości - tagi?
No, fajnie, fajnie...Co o tym myślicie?
Osobiście uważam, że przydatna sprawa.Czy przypisywanie wielu tagów jest istotne?
Sprawdź sobie jak to jest zrobione w WordPress'ie.Jeśli tak, jakie rozwiązanie proponujecie?
Re: [PHP][CMS] Grupowanie nowości - tagi?
Należy jeszcze zwrócić uwagę, że WordPress i niektóre inne CMS-y są przeznaczone głównie do blogów i serwisów informacyjnych, więc ich budowa jest inna niż w rozwijanym przeze mnie CMS-ie.
Kategorie 5 typów (arty, newsy, linki, pliki, obrazy) znajdują się 1 tabeli, więc można je ze sobą powiązać (np. kategoria linków może być subkategorią artów). Stąd rozwiązanie nr 3 - właściwie nie będzie problemów z zastosowaniem go. Wtedy jeszcze dodałbym możliwość ustawienia obrazu dla każdej kategorii.
Nie wiem, co o tym myśleć. Jeśli jednak przypisywanie wielu tagów ma duże znaczenie, być może zaimplementuję je.
Kategorie 5 typów (arty, newsy, linki, pliki, obrazy) znajdują się 1 tabeli, więc można je ze sobą powiązać (np. kategoria linków może być subkategorią artów). Stąd rozwiązanie nr 3 - właściwie nie będzie problemów z zastosowaniem go. Wtedy jeszcze dodałbym możliwość ustawienia obrazu dla każdej kategorii.
Nie wiem, co o tym myśleć. Jeśli jednak przypisywanie wielu tagów ma duże znaczenie, być może zaimplementuję je.
Re: [PHP][CMS] Grupowanie nowości - tagi?
Chodziło mi o sposób rozwiązania problemu a wp to tylko przykład, w ktorym problem rozwiązano w taki sam sposób jak wiele osób robi.
Mianowicie:
- robisz sobie tabele z tagami, gdzie kazdy ma swoje id. Wiadomo...
- masz tabele w której sa przechowywane news'y gdzie kazdy ma swoje id
- robisz tabelke ktora paruje id news'a z id' tagu
Ulatwia to wyszukiwanie po tagach, no i jest szybkie.
Mianowicie:
- robisz sobie tabele z tagami, gdzie kazdy ma swoje id. Wiadomo...
- masz tabele w której sa przechowywane news'y gdzie kazdy ma swoje id
- robisz tabelke ktora paruje id news'a z id' tagu
Ulatwia to wyszukiwanie po tagach, no i jest szybkie.

