Diskuze: Firebolt - Minimalistický redakční systém
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 47 zpráv z 47.
//= 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.
Včera jsem dokončil databázi a první šablonu, teď se konečně vrhnu na administraci.
Máš pravdu tvořit pro wordpress šablony je celkem složité. Pokud to
uděláš dobře, tak to bude super. Hlavně potom nezapomeň udělat dobrou
dokumentaci v, které se bude dobře vyhledávat.
Nejsem profi grafik, ale mohl bych pomoct Jestli budeš mít zájem, tak ti
pošlu nějaký svoje návrhy
Díky za nabídku, učitě budu rád, když něco pošleš, můj mail je vojtech.w.masek@seznam.cz
Tak se zas hlásím s aktualizací, na obrázku je vyobrazen design administračního rozhraní, doufám, že se bude líbit. Není to nic extra složitého, snažil jsem se o příjemný, jdnoduchý a zároveň funkční vzhled a dbal jsem také na dobré ovládání na tabletu.
Také dělám něco podobného Teda, spíš přepisuji.
Jelikož jsem s Wordpressem neuměl, tak pro mě byla nepřehledná i
administrace, natož kód. Vlastní je nejlepší
S grafikou taky kamarád nejsem, většinou si najdu nějakou free šablonu kterou si potom upravím.
Ahoj, sice jsem se trochu opozdil ale můžete mi věřit, že jsem tomuto projektu věnoval každou volnou chvíli a tady je výsledek: Firebolt verze 1.0 - Adam
http://uloz.to/xyLm1q6z/firebolt-1-0-adam-zip
(pojmenováno symbolicky jako první verze )
Zatím sice není dodělaná dokumentace (tu budu psát tento týden), ale
myslím, že ovládání je tak jednoduché, že snad ani není potřeba
Postup při instalaci:
Takže prosím, vyzkoušejte můj výtvor a budu rád za každou kritiku (pozitivní i negativní) i když nezaručuju, že se jí budu řídit...
Mam par pripomienok:
Linux Mint
PHP 5.4.9-4ubuntu2.3 (cli) (built: Sep 4 2013 19:37:07)
MySQL: Server version: 5.5.32-0ubuntu0.13.04.1 (Ubuntu)
1. Po vyplneni udajov v install.php a odoslani formulara sa mi zobrazila
stranka s prihlasovanim sa. Ja som si spokojne dal meno a heslo a bum.
neslo.
Kukam, ze co je, a spomenul som si, ze ako aj pri wordpress, zabudol som si
vytvorit DB v mysql. pustim som si terminal, dal "create database firebolt;" a
le hups, subor install.php bol uz prec, ked som si ho chcel pustit znovu. To ale
chapem, a musel som rozbalovat subor znova ...
chyba kontrola ci databaza do ktorej ideme zapisovat vobec
existuje
ludia su zabudlivi, a to sa stalo teraz mne..nikto ma nevaroval..
2. V menu Clanky sa pise toto:"Není zložena žádná stránka typu "Výpis
článků", pro přidání článku musíte nejprve nějakou vytvořit"
Vravim si, ok, tak nejaku stranku "Vypis clanku" uz vytvorim. hups, nejde to
lebo tam v dropdowne su len tieto: Rubrika,Jednoducha
stranka,Fotogalerie,Kontaktni Formular..
Som clovek lenivy, a taka je vacsina userov
A to je zatial vsetko, kedze nic nestiham, ale tento projekt a napad ma
zaujal, a urcite, ze vam drzim palce aj nadalej, a ked to pridate na github,
urcite si to forknem a mozno vam aj dam par pull requestov
Vyhody:
Nacitanie administracie: priblizne 300ms.
Nacitanie zakladnej temy: menej ako 160ms!!!
Drzim vam chalani palce
Děkuju za připomínky, měnil jsem označení typů stránek a tohle mi
nějak uteklo (výpis článků = rubrika), dnes to opravím.
S tou databází mi to ale nejde do hlavy, při instalaci se totiž testuje
připojení a pokud se nejde připojit se zadanými údaji, tak se instalace
neprovede a uživatel je vrácen na formulář. Ještě to otestuji a zkusím
přijít na ten problém.
Pri databaze som sa asi nevyjadril najlepsie :/
Myslel som, ze sa nekontroluje, ci samotna databaza je v mysql vytvorena.
Alebo je to tam tak, ze tvoj kod spravi aj CREATE DATABASE z pola ktore je nazov
databazy(install.php)??
Kod som nemal cas pozerat.
Už jsem to vyřešil, měl jsem chybu v názvu proměnné ($qsl_error
namísto $sql_error), takže teď už se kontrola provádí správně,
kontroluje se připojení k serveru i existence databáze
Databáze se sama nevytváří, protože jsou i hostingy, které nemají práva k vytváření nových databází, často máš přidělenou jen jednu a ani nemůžeš nastavit vlastní název, proto jsem se tomu přizpůsobil a vytvořil skript takto.
Na hostingu obvykle dostaneš přidělenu jednu prázdnou databázi MySQL. Zpravidla jich víc ani není potřeba.
K tomu si zpravidla můžeš vyrobit libovolný počet databází SQLite, které sice oficiálně na hostingu nebývají, ale vzhledem k tomu, že jsou součástí PHP, poslouží zpravidla ještě lépe než MySQL.
Zapracoval jsem pár oprav a vyhodil pár nepotřebných, místo-zabírajících souborů (viz changelog):
http://uloz.to/xpLTiPTd/firebolt-1-1-eve-zip
Tady je další, prozatím poslední verze systému:
http://uloz.to/xtAiePTd/firebolt-1-2-apple-zip
[22.9.2013] v1.2 - Apple
Vylepšena bezpečnost
Opravena chyba při úpravě kontaktního formuláře
Opraveno přiřazování alb ke článkům
Zúsporněn kód
Nahrazena výchozí šablona
Opraveny sémantické chyby v prvcích <b>/<strong> a
<i>/<em>
Provedeny opravy dalších drobných chyb
Instalace - (obrázek) -
<p>
<label for="login">Login:</label>
<input type="text" id="login" name="login" autocomplete="off" onfocus="this.style.border = '';" <br="">
<b>Notice</b>: Undefined index: login in <b>C:\xampp\htdocs\firebolt\install.php</b> on line <b>59</b><br>
value="" >
</p>
Radši jsem nezkoušel klikat na instalovat a odkaz na dokumentaci je u mě
Máš příliš přísně nastavený PHP, nelíbí se mu že neexistují
proměnné, ale to nevadí, klidně můžeš nainstalovat a pokud se těch
hlášek chceš zbavit, což bych dopoučoval, tak v souboru posílám
konfigurák php.ini s takovými pravidly pro vyhazování chyb jako na
většině veřejných serverů. stačí ho nahradit a restartovat server.
Mimochodem používáš nějaký serverový balíček (jaký)?
A dokumentace zatím pořád neexistuje, ale už na ní pracuju
Nějak se mi nedaří nahrát ten soubor, každopádně, když trochu
pohledáš na Googlu, tak řešení najdeš
Co je to za nápad předělávat php.ini kvůli blbě napsané aplikaci?
Mně spíše zaráží, kolik lidí se snaží vypínat chyby. Asi jim nedochází, že ty hlášky tam jsou z toho důvodu, aby si opravili svůj špatně napsaný kód.
Já je nevypínám úplně, jenom je trošku zmírňuji, to že proměnná
resp. index pole neexistuje přeci není žádná tragéde, prostě se nic
nevypíše a ať už jsem podobné skripty, nahrál kamkoliv na nějaký
placený server, nikdy mi nevyskakovaly chyby tohoto typu.
Ale jestli vám to tak strašně vadí, tak prosím, já tam tada dám ten
isset() ke každé proměnné, která může v nějakou chvíli neexistovat.
To si piš, že je to tragédie. Až budeš psát nějaký důležitý skript a budeš tam mít překlep v proměnné, PHP ti to potom neukáže, protože jsi líný použít isset() a hlášky jsi vypnul.
Při ladění a testování si je samozřejmě zapínám, nejsem idiot,
aspoň ne takovej, jak se vám to možná zdá.
Jak už jsem psal, když skript funguje bez problémů a na veřejném serveru
se stejně ty méně závažné chyby neukáží, tak podle mě není co
řešit, ale to tu asi nikdo není ochoten akceptovat...
Když to při ladění zapínáš, tak bys ty chyby měl vidět a odstranit je.
Mně kompilátor Javy neodpustí ani chybějící proměnnou serialVersionUID u potomka JFrame. Přitom tady v ukázkách běžně vidím, že se to neřeší.
No nic, kritiku přijímám, a nechci se nikým hádat vkůli malichernostem, chápu že by se takové věci měly ošetřovat, ale prostě mi to připadalo zbytečné, když si s tím PHP poradí samo, to je vše. Spíš jesli má někdo čas, tak se prosím podívejte na to jak to celé funguje a jestli se vám projekt celkově zamlouvá. Opravdu nerad bych se tady nimral, v takových věcech, navíc se to dá celkem snadno opravit a jestli chcete, tak to klidně udělám.
Představ si tento kód:
$castka = $cenik->zjistiCastku(Cenik::AUTOMOBIL);
$ucet->odecti($caska);
$sklad->expeduj('automobil');
Právě jsem někomu odeslal automobil, který díky překlepu nezaplatil.
PHP s tvým nastavením žádnou chyby nevypíše. Asi by tě potom neměli
rádi
Abys neřekl, díval jsem se i na ten tvůj systém, ale zas tě nepotěším. Jsou tam SQL injekce, v šablonách nejsou šablony, ale nějaké patlanice a do toho používáš globální proměnné. Chystám se psát nový PHP seriál pro začátečníky, brzy by se tu měl objevit.
Hele, já tu kritiku fakt beru, a jsem za ní rád, koneckonců, taky proto sem vůbec něco dávám, abych znal váš názor na věc a vím, že bych měl používat objekty, k nim mít metody get/set, atd... atd..., ale snad mě neukamenujete, když řeknu, že když se podívám jen tak namátkou na témeř libovolné weby generované, pomocí nějakého podobného nástroje (například některé blogy), tak výsledný kód vypadá o dost hůř, než ten můj. Uznávám, funkčnost celé administrace je asi zaostalá, "šablona" co se týče vzhledu taky není noc moc, ale na druhou stranu, celé to nějak funguje a například SQL injekce jsem se v poslední verzi snažil ošetřit nejlíp, jak jsem dovedl. Každý musí nějak začít. Tak snad mi to všechno prominete a pokud budete mít připomínky k tomu jak celou věc vylepšit (třeba ohledně bezpečnosti), tak za ně budu rád a pokud to nebude znamenat začít úplně od začátku, tak se jimi budu rád řídit. A jestli jsem se předtím choval uraženě, tak se omlouvám, ale pochopte člověk na tom dělá ve dne v noci jak nejlíp umí čtvrt roku a když to vypustí do světa, tak mu lidi, který ani nezná řeknou, že je to celý špatně, neberte to zle, ale kdo by se neurazil, nebo z toho nebyl alespoň trochu mrzutej...
SQL dotazy se řeší alespoň tak, že tu fci mysql_real_escape_string() píšeš do všech parametrů přímo do dotazů. Jedině tak na nic nezapomeneš. Ty ale používáš mysqli ovladač, tam se už parametry předávají jiným způsobem. Oprav si to tedy alespoň na to, že budeš všude do dotazů psát tu funkci. Abys s databází mohl pracovat na nějaké lepší úrovni, potřebuješ nějakou statickou třídu (ano, objekty, bez nich to nejde). Nicméně můžeš si tu třídu stáhnout z místních tutoriálů a používat jí aniž bys věděl jak to vůbec funguje. Od použití funkcí se to příliš neliší.
PHP má šablonou syntaxi, nemá smysl v šablonách něco echovat. Je také vysvětlena v tutoriálech.
Odkazy:
Šablonová syntaxe: http://www.itnetwork.cz/…nismus-zprav (asi v prostředku článku)
Jednoduchá databázová třída: http://www.itnetwork.cz/…ce-vzkazniku . Třídu uložíš do souboru Databaze.php a requirneš v indexu. Dále voláš
Databaze::pripoj(tvé údaje)
a
Databaze::Dotaz("SELECT * FROM neco WHERE neco = ?", array($_GET['neco'])).
Teď jsem si uvědomil, že jsem sice real_escape_string použil v administraci ale na šablonu jsem zapomněl, napravím. Takže u šablon(y) je už vlastně problém jenom v tom, že echuju a nepoužívám doporučenou syntaxi? Mysqli používám, protože nejnovější verze PHP už obyčejnej mysql (údajně) nepodporuje.
Pokud máš soubor, kde je z většiny HTML, tak použiješ šablonou syntaxi. Pokud máš naopak skript, kde je většina logiky, použiješ klasické PHP. V šabloně by se ideálně neměly třeba vůbec objevit SQL dotazy, měl bys na ně mít funkce a ty z šablony volat. Jinak totiž vaříš špagety (máš zamotané HTML, SQL, PHP, JS a všechny jazyky dohromady).
Dobrá, pokusím se ze špaget udělat lasagne, pěkně ve vrstvách
Díky
Teď právě probíhá PHP soutěž, kde se vrstvy řeší, můžeš si to zkusit.
Chtěl bych ještě upozornit, že jednou jsme dělali ve škole takový úplně superjednoduchý CMSko jako samostatnou práci a já ho celý dokázal nacpat do jednoho jedinýho souboru včetně administrace a CSS, takže když se mi chce tak jsem schopnej vytvořit neuvěřitelný zvěrstva (je trochu žalostné, že tahle prasárna fungovala nejlíp ze všech ve třídě), ale ono to bylo spíš ze srandy, tohle chci brát vážně... a pokud možno profesionálně...
No, do soutěže bych se rovnou nepouštěl, ale určitě se pokusím ten kód trochu "učesat". Navíc včera jsem nastoupil na vysokou (FIT) takže bych se nerad účastnil něčeho co má nějaký termín odevzdání, škola je hlavní a nevím, jestli bych to pak všechno stíhal.
Ahoj, po delší době se hlásím, projekt ještě neumřel, ale pořád
ještě nejsem spokojen se všemi funkcemi, takže zatím nevydávám finální
verzi, nicméně už mám systém nasazený na pár webech a nevypadá to že by
byly nějaké problémy.
Teď jsem se vás ale chtěl zeptat, co si myslíte o novém vzhledu
administrace, vychází z původního ale dopnil jsem barvičky a ikony a
celkově jsem upravil barevné schéma, aby nevypadalo tak "vyblitě".
Dávej si pozor, aby se ti později z minimalistického nestal komplexní.
Neboj, myslím, že v
porovnání třeba s WP nebo Joomlou je to hodně minimalistický, no a kdybych
to přeci jen v jednom člověku nějak víc rozvinul, tak pořád můžu
požádat sdraca o přejmenování vlákna...
Díky Zirko.
Dobré zprávy vespolek! Po půl roce mám hotovou finální verzi, takže kdo chcete, můžete zkoušet. Napište mi prosím nějaký ten feedback a kdyby se někdo chtěl podílet na tvorbě šablon, budu taky rád.
Odkaz ke stažení:
http://uloz.to/…4-istari-zip
Všechny zásadní změny jsou pospány v changelogu.
Ahoj, super systém Ale
chýbajú mi tam Pretty url's. A taktiež, že pri prihlásení, nemôže byť
DB heslo prázdne. Inak super práca.
Prázdné heslo nemůže být kvůli bezpečnosti, to je asi celkem samozřejmé a pretty URLs plánuji do další verze. Jinak, doufám, že správa souborů a nápověda jsou snadno pochopitelné...
Dá se to snadno obejít, stačí třeba ve firefoxu smazat kód na události
onsubmit a pak můžeš nechat heslo prázdné.
Každopádně díky za pochvalu
Zobrazeno 47 zpráv z 47.