Diskuze: propojení dvou systémů
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
To mas celkem zajimavy problem. Zdejsi clanky vubec neznam, takze zkusim obecne.
V moji firme treba provozujeme eleaning. Mame v provozu 5 ruznych moodlu.
Protoze jsme chteli fyzicky oddelit a tez nutne potrebujeme mit 1 pro jine mesto
u nich na serveru, kvuli rychlosti.
Pak tu mame jeste web, a ten provozujeme na 1 cms. Kazdy v nem ma slozku. K te
slozce mam pridazene skupiny uzivatelu, adminy zvlast, editory zvlast. V kazde
slozce je dalsi podslozka pro pod-oddeleni. Tam mam take skupiny a dalsi
editory. A jeste provozuji EN verzi. Na webove adrese to vypada nejak takto:
elearning.odd1.firma.cz
elearning.odd2.firma.cz
odd1.firma.cz/cz
odd1.firma.cz/cz/pododd1/
odd1.firma.cz/cz/pododd2/
odd1.firma.cz/en
odd2.firma.cz/cz
odd2.firma.cz/en
U nas se jedna o univerzitu, firma = univerzita, odd1 = fakulta prirodnich ved, pododd1 = katedra informatiky.
Cili, nevim, jak je navrhnuty cms v tom clanku, ale urcite by tam mela byt
kolonka pro adresarovou strukturu a kolonka pro skupinu uzivatelu. Pokud to tam
neni, tak je to prakticky nepouzitelne pro sirokou skalu aplikaci a je to jen
jednoduchy cms. A na tve otazky lze odpovedet, ze to nelze udelat. Leda udelat 2
slozky, 2 cms a pracne rozdelit obsah a ridit to pres htaccess.
Aspon hadam, ze nejsi zadny kutil, ktery by si dokazal cms predelat, podle toho
dotazu
Jo, funguje to teda tak, ze ta skupina ma prava pro celou slozku a podslozku. A pak mame editory oddeleni, kteri maji prava jen pro sve slozky. Sekretarka katedry si edituje jen ve sve slozce. A kdyz potrebuje neco spesl, posle mail a ja s pravy admina ji muzu editovat taky.
Jenze tenhle zpusob vyzaduje sofistikovane rozhrani pro uzivatele. U vetsiny
demo prikladu se s tim nikdo nezabyva. Protoze je to asi tyden programovani a
vymysleni.
Navic, u nas oba cms mame napojene na ldap. Cili uzivatele se loguji pres sluzbu
ldap, ta overi, ze existuji, overi opravneni a pod. Kdyz se uzivatel prvne
prihlasi, tak se v cms pro nej vytvori ucet. A ten ucet muzu priradit pak prave
do skupin, slozek.
A nebo v druhem systemu je to tak, ze v ldap jsou veskera opravneni (neco jako
prace s sql, prihlasvani do sql). Cili, pri editaci se php zepta ldap, zda
uzivatele prihlasit, login, heslo, ldap odpovi ano. A zda uzivatel jmeno ma
prava pro slozku x/y/z, ldap odpovi ano nebo ne.
Cili, takhle vymakane to asi nemas, v tom demicku, clanku, tady. Takze, jestli
chces zazraky, tak je lepsi si stahnout hotovy csm, treba poularni wordpress,
joomla, drupal nebo jiny. A prevest si stranky do nej.
PHP se stále učím, a systém vytvořený jako základ pro eshop jsem už z více než 50% předělal a doplnil některé věci které tam původně nebyly (samozejmě s ohledem na moji úroveň, takže např. systém pro autorizaci uživatele do několika úrovní není tak dbrý jako kdybys ho třeba dělal ty). Zajímalo mě to protože všechny změny které jsem navrh a přidal jsou součástí, hlavního jádra. Kolem kterého je pak obalený např. již zmíněný eshop. Tudíž jádro a jeho pohledy atd. umístit do subdomény, jelikož zde se bude odehrávat většina věcí, jako článkový kontroler, správa uživatelů, ale třeba i přidávání produktů apod. s tím že eshopové jádro je umístěné v hlavní sekci tedy složka www přičemž, by zde byly využívány prvky hlavního jádra tedy, užvatelská sekce (typicky přihlášení, registrace a úprava osobních údajů), ale i nějaké další věci.
Každopádně díky za odpověď, defakto jsi mi potvrdil to co jsem si myslel. Akorát jsem si tím nebyl moc jistý.
Aha. Tak to jsem netusil, ze to bastlili do jedne slozky. Tady vidim 2 moznosti. Pro kazdou sql tabulku udelat spesl slozku a do ni dat ostatni veci. A nebo udelat nekolik ostatnich slozek a do nich dat ty hlavni.
admin/uzivatel.php
admin/produkty.php
user/uzivatel.php
tpl/uzivatel_list.php
uzivatel/uzivatel.php
uzivatel/tpl/uzivatel_list.php
uzivatel/html/uzivatel_list.htm
produkty/produkty.php
produkty/tpl/produkty_list.php
produkty/html/produkty_list.htm
Ja bych strukturoval slozky podobne, jako kdyz vytvaris class. Vsechno, co se
tyka uzivatelu, dat do jedne slozky.
Ta druha moznost je rozdelit to po jednotlivych slozkach, abys treba sablony
vsechny mel pohromade. A kdyz budes chtit zmenit css, treba, tak aby to stacilo
resit v jedne slozce.
Ja ted mam poslednim projektu strukturu asi takovouto: (ale z toh si neber
priklad, jsem amater, bez vs-it vzdelani , dneska se to zkratka dela jinak, ja to delam spis intuitivne. )
css/
js/
files/ (slozka pro prilohy nahravane uzivateli)
form/ (php prevezme data, zpracuje, vygeneruje stranku do htx sablony)
form/uzivatele.php
htx/ (html sablony)
htx/uzivatele_list.htx
htx/uzivatele_add.htx
inc/
inc/func.php
inc/class_permitions.php
inc/class_pdo.php
inc/class_ldap.php
inc/class_html2pdf.php (class pro prevod html kodu na pdf)
inc/class_file.php (class pro upload/download souboru)
inc/class_page_render.php
cfg/config.php - zde mam nastavena prava tak, aby to neslo prepsat phpckem, ani cist z webu
Je to zalozene na 3 projektech, ktere jsem delal driv, tak jsem kopiroval jejich strukturu. V podstate stale delam strukturu i u novych veci tak nejak intuitivne, podle projektu.
Mam to resene tak, ze hlavni program si poresi login. A pak si naincluduje jednotlive form/ classy, ulozi do pole a dal uz s tim pracuji jako s polem. Principialne nejak takto:
$app = $this;
$names = array(
'user',
'product',
);
(cyklus) include 'form/$name.php';
(cyklus) $app->forms[$name] = new class$name($app, $sql); // to mam asi jinak
// ?what=user&do=list priklad requestu
$req['what'] = 'user';
$req['do'] = 'list';
(cyklus) $req = $app->forms[$what]->request($req); // class si zkontroluje name, a kdyz odpovida zavola dalsi funkce, jako sql zpracovani, render a vrati zpet request nebo nic
echo $app->page;
Ja jen, proc mam ty form v jedne slozce, ze to takhle pekne prebiram cykly. Includuji vsechny, protoze casto pracuji treba s 5 z 10 naraz. A asi to neni o moc vetsi zatez. Aspon to neni jako fb s miliardami uzivatelu, aby bylo nutne delat optimalizace pro vykon.
A taky je snadnejsi pak zkopirovat pracoviste.php na resitel.php a opravit
jen nazev hlavicku class (id, nazve, sql prefix, ..), sql tabulky, jmena
sloupcu... Mam to udelane v kodu tak, ze to rychle najdu a tak do 10 min ten php
soubor dokaze editovat, vytvaret, mazat, duplikovat zaznamy a zobrazovat seznam
zaznamu pro uplne jinou tabulku. Je to vhodne pro editaci ciselniku.
A tez je nutne zkopirovat a upravit htx formy. Proste to mam promyslene
Zobrazeno 7 zpráv z 7.