Autor Zpráva
Grelek
Profil
Zdravím,
rozhodl jsem se, že si napíšu jednoduché CMS, které budu nasazovat, abych vše nepsal znova a znova. Přišel jsem ale na jeden problém. Chci tam zakomponovat možnost nějakého uživatelského nastavení. Třeba úrovně práv, způsob řazení atd. Většinou true/false nebo integery.
Ukládat to do tabulky do databáze vedle článků, kategorií atd. mi přijde jako blbost. Napadlo mě, že bych to mohl ukládat do SQLite databáze, ale přijde mi to jako kanón na vrabce. Pak mi taky v paměti vyvstala možnost, že bych to ukládal do XML souboru. Co si myslíte vy? Co vám přijde jako lepší možnost?

BTW - používám Nette Framework, takže mě původně napadlo, že bych to mohl házet do nějakého .neon souboru, ale tam si úplně nedovedu představit, jak by to fungovalo.
Micruss
Profil
a co takhle vytvořit tabulku s uživatelem a tam Prava apodobně... a potom, k článkům dát jednoduchej if()?
Grelek
Profil
Uvedl jsem špatný příklad. Práva uživatele samozřejmě budou v tabulce user. Já měl spíš na myslí právě řazení kategorií, jestli mají být články před publikováním schvalovány, kontrola komentářů a jiné.
Hlavně mi jde o to, kam to ukládat.
Sir Tom
Profil
Grelek:
To velmi záleží na procesech organizace, pro kterou web tvoříš. Někdo je pečlivý a tak vše před publikováním chce kontrolovat - někdo je zase líný a tak nechce kontrolovat nic.

Ukládej do tabulky se sloupcem public. V případě, že je nutná kontrola tak při přidání záznamu do tabulky bude defaultní hodnota 0 a kontrolor ji může změnit na 1. V případě, že kontrolor není, tak automaticky bude defaultní hodnota sloupce public 1.
V presenteru pak vybereš všechny ty záznamy z tabulky, které mají public = 1.
Grelek
Profil
Ach jo. Nikdo jste mě nepochopil. Já právě nechci, abych podle projektu upravoval, zda-li tam má být funkce na schvalování, nebo nemá být. Já si tyhle informace chci právě uložit někam do nějakého konfiguračního souboru a odtud je potom načítat. To je právě ta moje myšlenka toho CMS. Abych si to jednou napsal a už jen vylepšoval, ne měnil podle potřeb projektu.
Tudíž potřebuji někam tyto informace uložit. Otázka ale je, jak si je uložit. Jestli do MySQL tabulky vedle ostatních, nebo do SQLite databáze (oboje mi přijde jako příliš tvrdé řešení), či to snad dávat do XML nebo NEON souboru.

Například ten sloupec public je samozřejmost, ale podle nějaké informace zjistit, jestli má být defaultně 1, nebo v administraci zobrazit schvalování a defaultně 0.
aDAm
Profil
tak tu neachojuj ale pořádně popiš co chceš řešit....
co takhle si udělat config a v něm něco jako autopublish = true/false a toto můžeš třeba hodit do toho neonu, při ukladani se na to koukneš jestli automaticky publikovat a je to ne?
Grelek
Profil
Já se neptám, jestli a kam si uložit ty informace, ale jak si je uložit. Jestli XML, NEON atd.
Tori
Profil
Grelek:
A plánujete to výsledné nastavení cachovat? Pokud ano, tak bych si vybrala formát, s kterým se mi bude nejlíp pracovat (= nejspíš 2 .neon soubory), v opačném případě pak formát, který se nejrychleji načte do paměti.
aDAm
Profil
a na této větě si nepochopil co: ".... a toto můžeš třeba hodit do toho neonu"
Sir Tom
Profil
Grelek:
Například ten sloupec public je samozřejmost, ale podle nějaké informace zjistit, jestli má být defaultně 1, nebo v administraci zobrazit schvalování a defaultně 0.
Záleží na byznys procesech - většinou se to dává jako PHP konstanta do nějakého php souboru. Taky si to klidně můžeš uložit do extra tabulky v databázi. To si vyber sám... Já hlasuji pro DB.
Grelek
Profil
Cachování... no, nejspíš ne. Do databáze se mi to moc dávat nechce, při mém smyslu pro výkon bych aplikaci dokázal zpomalit i na tomhle. Nejspíš to ale stejně dám do toho NEON souboru. Jak Tori ale zmínila, kdybych tam někdy dodělával cachování, hodí se NEON více. A navíc má lehkou syntaxi i na ruční zapisování (oproti XML jednodušší).

@Sir Tom: Jako PHP konstanta to vlastně v případě NEON souboru bude. :)

@aDAm: Můžu, ale taky nemusím. Taky jsi nenapsal nic jiného.
aDAm
Profil
Grelek:
Taky si nenapsal nic moc konkrétního, co vše chceš konfigurovat atd. Pokud by tvuj config vykázal třeba 100+ různých definicí pak by bylo vhodnější to házet do db, navíc se přes db dá dělat i vzdálený config, pokud toho je málo tak to hodíš do souboru a pokud jedeš nette tak není problém s neonem, od toho tu ten soubor je že.
Rellik
Profil
Mám na stránkách něco podobného (taky jedou na nette)
Je jeden hlavní administrátor, který má u sebe v tabulce v DB sloupeček s právy a má defaultně přiřazenou například 1. Tento administrátor může přidávat nové uživatele a to buď se stejnými právy jako má on (1), s omezenými právy na vykonávání pouze některých operací (2) a pak uživatele víceméně bez práv (3), který spadá pod kontrolu a zveřejnění článku pod někoho z uživatelů s vyššími právy.
Prostě u každého uživatele v tabulce je přiřazeno číslo reprezentující jeho práva. Pak to stačí jen pomocí podmínky kontrolovat a dál zpracovávat.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: