Pomysl na coraz wieksza personalizacje 4p

0

Niedawno ktos zapodal pomyslem, by dalo sie ukryc np. opisy dzialow na forum, bo jak ktos juz je zna to moglby sobie upakowac forum na jednej stronie.
Ktos inny chcial costam innego..

W chwili obecnej wyglada to tak, ze dodajemy kolejne pole do tabeli user i kolejnego checkboxa do panelu.
Musimy tez modyfikowac SQL by pobierac nowe pola i potem w PHP przekazywac je do tplow by cos wyswietlac lub nie.

Moj pomysl to przechowywanie wszystkich takich opcji w jednym polu, np. w formie jaka widzialem w Mambo - pole tekstowe, kazda linijka to osobna opcja - wyglada to jak plik ini.
show_forum_description=1
show_avatars=1
show_post_counter=0
something_else=maybe

Takie pole ladujemy raz, bez wzgledu na ilosc opcji, wiec nigdy wiecej zmian w SQL pod tym katem.
Wrzucamy pole do tablicy asocjacyjnej jedna prosta petelka i udostepniamy dla tpli aby mogly korzystac z tego w stylu {IF show_avatars} (czy jak tam ta nowa skladnia wyglada), wiec odpada rowniez edycja PHP za kazdym razem.

Dzieki temu zamiast edycji SQL, PHP, TPL zostaje nam tylko TPL.
Dodanie nowej opcji nie bedzie juz odstraszalo iloscia pracy.

Nalezaloby tez przemyslec dodawanie nowej opcji pod katem wartosci domyslnej [jesli nie ma tego w bazie] - albo gdzies trzymac default value albo dodawac nowa opcje przez prosty skrypcik [w przyszlosci czesc admin panela], ktory zrobi globalnego UPDATE'a i doda do tego pola nowa opcje dla kazdego usera.

No i zostaje umozliwienie zmian dla usera.. czyli lista checkboxow [lub selectow czy radio].
W tym celu juz kiedys wczesniej myslalem, by zrobic funkcje, ktora na podstawie osobnej tabeli w bazie bedzie generowala opcje dostepne dla usera.
Widzialbym to jakos tak [widzialem takie cos na spotkaniu ludzi od PHP, na ktorym bylem tydzien temu].

nazwa zmiennej | typ zmiennej [check, radio, select] | mozliwe opcje/odpowiedzi | opis dla usera

funkcja [oni tam nawet mieli osobna klase, ktora zajmowala sie od razu walidacja tych opcji/zmiennych] looka do tabelki i generuje liste opcji, ktora wrzucamy do htmla

Zapraszam do dyskusji :)

<font size="1" color="gray">PS
Dzis ubiegalem sie o prace PHP kodera wlasnie w tej firmie, w ktorej tydz. temu bylo spotkanie. 5 osob po kolei, na osobnosci ze mna gadalo, jeden od PHP, inny od JS, trzeci od GUI etc.. Dla kazdego pisalem jakies kody, a ten od GUI poprosil, bym na tablicy narysowal layout jakiegos projektu, w ktorym bralem udzial - to walnalem strone glowna 4p [choc w niej za bardzo sie nie maczalem] - opisalem 4p prawie jakbym go sprzedawal conajmniej dla Yahoo! :D Kolesiowi niezle sie spodobal zapal, z jakim o tym gadalem.. jak i o planach, co zamierzamy zrobic :) hehehe [takie tam info :P]</span>

0

imho bardziej sensowne od trzymania kupy nadmiarowego tekstu w bazie byłoby utworzenie dwóch tabel - jednej z id, nazwami i możliwymi wartościami ustawień, drugiej z przypisaniem id ustawienia do id usera.
ma te same zalety co Twój pomysł, a dodatkowo jest oszczędniejsze jeśli chodzi o miejsce w bazie. przy okazji mogła to by być podstawa do zrobienia konfiguracji pluginów.

0

Dlatego rozpoczalem dyskusje [ino dzial pomylilem] bo nie twierdze, ze moja sugestia jest najlepsza :)
Przenioslem watek, moze spotka sie z wiekszym zainteresowaniem...

0

Zgadzam sie calkowicie z Łukaszem, w koncu po to jest relacyjna baza danych :) Mozna by tez pomyslec o wyswietlaniu ilosci tych opcji zaleznie od skorki (np sublol ma jakis panel ktorego nie ma submain).

1 użytkowników online, w tym zalogowanych: 0, gości: 1