Diskuze: Velké množství podstránek (>50) se stejnou strukturou

HTML a CSS HTML a CSS Velké množství podstránek (>50) se stejnou strukturou American English version English version

Avatar
Michal Kuba
Redaktor
Avatar
Michal Kuba:

Zdravím.
Jistě nahodím problém, který jde možná řešit poněkud jednoduše.
Můj inzertní web obsahuje osm kategorií a každá z nich se člení na asi ještě 6 subkategorií. Při kliknutí na každou z nich se zobrazí daná podstránka, která se ve své struktuře liší pouze tím, že z databáze vybírá inzeráty s různými názvy kategorií a subkategorií.

Dá se nějak obejít problém padesátkrát vytvořit prakticky totožný soubor, ve kterém bude jen jiný název a jiných několik znaků v dotazu na databázi?

Díky

 
Odpovědět 1.4.2015 23:25
Avatar
Odpovídá na Michal Kuba
Michal Žůrek (misaz):

dá, jmenuje se to pole a cykl. V poli budeš mít, stárnky, substránky, atd. Cyklem projedeš co potřbeuješ a doplácáš to do SQLka. Hodně ti pomůžou zdejší tutoriály.

Nahoru Odpovědět 1.4.2015 23:26
Nesnáším {}, proto se jim vyhýbám.
Avatar
Michal Kuba
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Michal Kuba:

bylo mi jasné, že to nějak půjde tímto ošetřit, ale i když jsem postupně studoval jednotlivé tutoriály tak přesně nevím, kde hledat.. představil bych si to možná tak, že se při kliknutí na odkaz předá parametr obsahující název obou kategorií a pošle do souboru, který si to sám zařadí kam potřebuje a vypíše to stránku dané podkategorie, ale nejsem si jistý..

 
Nahoru Odpovědět 1.4.2015 23:29
Avatar
Odpovídá na Michal Kuba
Michal Šmahel (ceskyDJ):

Stránku si vytvoříš jednu (takovou "šablonu"), údaje si zjistíš u URL a dosadíš je do ní. Dosadíš do všeho, vše z toho lze odůvodnit. Samozřejmě musíš mít stránku pro kategorie a pro subkategorie.
Do stránky vložíš název kategorie (jen zkopíruješ z URL nebo pokud to chceš mít v URL zkracované, uděláš si pole a indexem budou parametry z URL a název kategorie hodnota. Subkategorie si udělej třeba z databáze nebo si to udělej podmínkami (spíš databází). Inzeráty vypíšeš tak, že si dosadíš do SQL dotazu opět parametry URL.
Je to jedna z možností, kterých je spousta. Určitě to není nejlepší, ale použitelné a lze to rozvíjet.

Nahoru Odpovědět 2.4.2015 0:30
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
mkub
Redaktor
Avatar
Odpovídá na Michal Kuba
mkub:

myslim, ze toide urobit za pomoci PHP (resp. ASP) a prepojes to s databazou
ked browser bude potrebovat danu stranku, tak webovy server vezme prislusny subor, za pomoci preprocesoru ho zinterpretuje, doplni udaje z databaze a vysledok sa ti posle do browseru ako hotova klasicka stranka...
takto vlastne funguju vsetky frameworky, ako aj vsetky CRM systemy... nikde v adresarovej strukture stovky az tisice nemas HTML suborov, ale mas iba zopar skriptikov, ktore tvoria logicku cast celeho systemu a udaje su ulozene v databazi a v pripade potrebu sa iba doplnaju udaje do vystupnej sablony

 
Nahoru Odpovědět 2.4.2015 2:27
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Michal Kuba
IT Man:

Na tohle je dobrý objektový redakční systém v PHP, MVC, si teda myslím. Pokud umíš PHP a naučíš se to, tvůj problém se vyřeší a tvůj projekt bude i snadno rozšiřitelný. Navíc je to i jednoduchý. :)

Nahoru Odpovědět  +1 2.4.2015 8:00
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Tomáš123
Člen
Avatar
Odpovídá na Michal Kuba
Tomáš123:

V malej mierke by si si vytvoril jeden súbor, kde by si statické časti napísal ručne (napríklad každá stránka začína <!DOCTYPE html>, pokračuje hlavičkou a načíta rovnaké CSS. Je potrebné meniť iba <title> prípadne <meta name="desripti­on">). Na začiatku by si sa pripojil do databázy a vytiahol požadované údaje (title, description, text v body), uložil ich do poľa pomocou mysqli_fetch_a­rray() a následne ich iba na správnom mieste vypisoval.

Ak je požadovaných štruktúr stránky viac (ako napríklad pri inzertnom portáli) bude spoločných bodov menej a podmienkami budeš musieť určiť, ktorý vzhľad potrebuješ:

<?php if($result['category'] == hlavna_stranka) :?>
<div class="obal">
...
<?php elseif($result['category'] == vyber_kategorii) :?>
<table>
...
<?php else: ?> //znamená, že sme medzi inzerátmi
<ul>
...
<?php endif?>

Je to iba ukážka, ako sa dá kód rozvetviť. V každom bloku môžme vypisovať nejaké informácie alebo inzeráty.

Nahoru Odpovědět 2.4.2015 14:31
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
Michal Kuba
Redaktor
Avatar
Odpovídá na IT Man
Michal Kuba:

Tak jsem začal projíždět zdejší tutoriály na objektový redakční systém MVC a zaplatil si i ty prémiové. Jenže se obávám, že budu mít potíže s napasováním webu přímo na toto.

Chápu to zhruba dobře, že přes MVC si připravím rozložení atd. a poté pomocí cyklů budu generovat jednotlivé stránky daných kategorií? Trošku se toho obávám celého, mrkněte prosím kdyžtak na http://mainos.cz/ ať zhruba víte, jak to myslím v reálném použití.. Jsem odhodlaný to celé překopat bez tolika podstránek stejných, ale po projetí tutoriálů mám jakýsi pocit nejistoty že to nezvládnu..

Jde to nějak efektivně předělat, aby mi to nesežralo příliš mnoho času? Jinak budu muset své záměry tak na dva měsíce odložit..

 
Nahoru Odpovědět 2.4.2015 15:09
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Michal Kuba
Honza Bittner:

Jak již správně říkali, v dynamickém webu se využívají tzv. šablony/pohledy... Ty obsahují krátké (tzn. né celou stránku) dávky HTML souboru doplněné o nějaké ty cykly a podmínky.

Využívá se pro to šablonovací systém jako phtml, smarty... (pogoogli, v našich MVC tutech to je phtml).

Určitě se koukni na ty MVC, resp. podle mě to je spíše už MVP (ale to je podobné), tutoriály - http://www.itnetwork.cz/php/mvc a http://www.itnetwork.cz/php/e-shop

Nahoru Odpovědět 2.4.2015 15:10
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Michal Kuba
Redaktor
Avatar
Odpovídá na Honza Bittner
Michal Kuba:

Prošel jsem si MVC redakční systém, ale jak ted přemýšlím, na moje účely inzerátů je spíš lepší si projít patrně ten eshopovej tutoriál, jelikož tam se také zobrazují sta až tisíce různých podstránek, že?

 
Nahoru Odpovědět 2.4.2015 15:15
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Michal Kuba
IT Man:

Pokud chápeš PHP, stačí se pak mrknout i po OOP či se vrhnout hned do tohohle a pak až mrknout na OOP (pokud to pospíchá). Po pochopení MVC architektury už to jde rychle a opravdu jednoduše. Takhle si např. sepíšeš jen jeden pohled pro ty inzeráty, jeden kontroler a jeden model (či více, nevím, co v nich máš).

Takže pokud chceš psát efektivně a chceš to nějak rozšiřovat, sáhni po tom MVC. :)

Nahoru Odpovědět 2.4.2015 15:16
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Michal Kuba
Honza Bittner:

MVC/MVP jsou univerzální systémy - jsou to takové metody pro rozložení kódu tak, aby bylo v systému oddělená logika (funkční "prográmky"), řadič (něco co řídí co se má dělat, volá logiku a vypisování pohledů) a pohledy (šablony).

Pro tvůj web je to určitě vhodné, ale možná budeš pravděpodobně muset přepsat své dočasné soubory aby byly v souladu s rozložením MVC/MVP.

Nějak rychle předělat? Tak to hlavně závisí na pochopení, tvých zkušenostech a rychlosti...

Nahoru Odpovědět 2.4.2015 15:16
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na Michal Kuba
Inoue Yūki:

Je jedno, kolik je tam podstránek, jestli jsou podobné, ve skutečnosti bys je dokázal spočítat na jedné ruce. Jde o to používat PHP jako jakési šablony a z nich potom načítat dané podstránky. Potom už je jedno, kolik těch podstránek (popřípadě šablon) uděláš.

Nahoru Odpovědět  +1 2.4.2015 15:17
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Michal Kuba
Honza Bittner:

Ono to jsou v podstatě shodné tutoriály, ale v sérii pro eshop je tam využito trochu jiné metody.

V úvodu do MVC máš pro každou odlišnou stránku - články, profil... - jiný kontroler (řadič), který se stará a vypisuje jen to co je mu určeno.

V sérii pro eshop je to udělané tak - jelikož máš na webu třeba 95%+ stejných stránek - že např. spojíš několik kontrolerů do jednoho a vytvoříš tak např. kontroler pro články, kterému v databázi ještě přidáš odkaz na speciální doplnění článku.

Výhodou je to, že v DB máš všechno uloženo v tabulce články, a proto můžeš mít místo clanky/alfa a profil/beta jen /alfa a /beta. V prvním případě toho samozřejmě můžeš také dosáhnout, ale musel bys to složitě zjišťovat.

Nahoru Odpovědět 2.4.2015 15:20
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Michal Kuba
Redaktor
Avatar
Odpovídá na IT Man
Michal Kuba:

Redakční systém v MVC jsem zhruba projel a odemčel si veškeré podklady k tomu. Mám tedy začít nějak upravovat stávající soubory nebo to vytvořit kompletně nové, s tím že nějaký obsah neměnný jen překopíruju? Že bych i do jisté míry použil modely, kontrolery a pohledy z tutoriálů a poupravil je pro sebe?

 
Nahoru Odpovědět 2.4.2015 15:21
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Michal Kuba
IT Man:

Začni úplně od znova, ať v tom nemáš bordel. :)

Nahoru Odpovědět  +1 2.4.2015 15:24
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Michal Kuba
Honza Bittner:

No, z hlediska efektivnosti bude pravděpodobně lepší, pokud začneš znova a budeš přikukovat do minulé verze, odkud můžeš kopírovat ty části kódu, které využiješ i tady. :)

Nahoru Odpovědět  +3 2.4.2015 15:27
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Michal Kuba
Redaktor
Avatar
Odpovídá na Honza Bittner
Michal Kuba:

Takže jakoby začnu odznova, vytvořím si stejně tu hlavní stránku, ale už ty odkazy na podkategorie budu psát jinak než cestou na daný soubor? Nebo index.php nebude obsahovat to rozložení, ale právě to už bude v jiným souboru?


A mám při znovuvytváření brát i ohled na to, že chci zároveň ten web dělat responzivní, nebo to už bude relativně snadné k tomu potom přidat?

Editováno 2.4.2015 15:45
 
Nahoru Odpovědět 2.4.2015 15:44
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Michal Kuba
IT Man:

Když si to přečteš, dozvíš se, že se všechno odkazuje na index.php, který to zpracuje. Ten si pak volá Směrovač, který otevře daný kontroler, který se volá. Takže pak máš třeba místo inzeraty.php inzeraty. Z tohoto kontroleru se pak můžeš odrážet dál - inzeraty/mobi­ly/jine. Přečti si o tom, jak se to zpracovává a i ty různé příklady. :)


Pokud bude responzivní, upravíš jenom CSS. Tam není problém. :)

Editováno 2.4.2015 15:46
Nahoru Odpovědět 2.4.2015 15:46
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 19 zpráv z 19.