Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Aktivity
Avatar
Michal Kuba
Tvůrce
Avatar
Michal Kuba:1.4.2015 23:25

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:1.4.2015 23:26

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
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Michal Kuba:1.4.2015 23:29

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:2.4.2015 0:30

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
Tvůrce
Avatar
Odpovídá na Michal Kuba
mkub:2.4.2015 2:27

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
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Kuba
Jan Lupčík:2.4.2015 8:00

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
2.4.2015 8:00
TruckersMP vývojář
Avatar
Tomáš123
Člen
Avatar
Odpovídá na Michal Kuba
Tomáš123:2.4.2015 14:31

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
Tvůrce
Avatar
Odpovídá na Jan Lupčík
Michal Kuba:2.4.2015 15:09

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
Tvůrce
Avatar
Odpovídá na Michal Kuba
Honza Bittner:2.4.2015 15:10

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
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Honza Bittner
Michal Kuba:2.4.2015 15:15

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
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Kuba
Jan Lupčík:2.4.2015 15:16

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
TruckersMP vývojář
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Michal Kuba
Honza Bittner:2.4.2015 15:16

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
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Michal Kuba
Neaktivní uživatel:2.4.2015 15:17

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
2.4.2015 15:17
Neaktivní uživatelský účet
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Michal Kuba
Honza Bittner:2.4.2015 15:20

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
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Jan Lupčík
Michal Kuba:2.4.2015 15:21

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
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Kuba
Jan Lupčík:2.4.2015 15:24

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

Nahoru Odpovědět
2.4.2015 15:24
TruckersMP vývojář
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Michal Kuba
Honza Bittner:2.4.2015 15:27

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
2.4.2015 15:27
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Honza Bittner
Michal Kuba:2.4.2015 15:44

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
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Michal Kuba
Jan Lupčík:2.4.2015 15:46

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
TruckersMP vývojář
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.