Ahoj, potřeboval bych vytvořit kompletní načtení všech povolených sekcí, galerií, rozcestníku na hlavní stránce něco jako je zde http://www.greenspiritbistro.cz, ale nevím kde mám co upravit. Děkuji za radu.
Diskuse
Téma: výpis z databáze
No na můj vkus trochu krkolomné a složité řešení.
Trochu logických úvah:
1. pokud budete mít jen jednu galerii, pak to asi bude dostačujícím řešením, i když ne čisté.
2. pokud bude galerií více, např. 50, pak zbytečně zatížíte SQL server dalšími 50 dotazy, lze řešit pouze jedním.
3. řazením podle ord budete mít galerie rozházené, za předpokladu, že každá bude v menu jinde.
Celkově řešení je možná pro Vaši potřebu vyhovující, ale s ohledem na variabilitu je naprosto nedostatečné a nevyhovující.
Omezení "zbytečných dotazů", lze například řešit pouze jedním výpisem všech galerií po ukončení cyklu za všemi výpisy. Modul galimage umí zpracovat i více galerií, ne jen jednu. Parametry jsou v dokumentaci.
Dalším řešením je rozšířit dotaz o obrázky a ty pak zpracovat funkcí _galleryImage() pro každý obrázek samostatně.
Další chybou je použití <div id='gallery'>. Způsobí chyby validity stránky, protože identifikátor s názvem gallery může být na stránce jen jeden.
Trochu logických úvah:
1. pokud budete mít jen jednu galerii, pak to asi bude dostačujícím řešením, i když ne čisté.
2. pokud bude galerií více, např. 50, pak zbytečně zatížíte SQL server dalšími 50 dotazy, lze řešit pouze jedním.
3. řazením podle ord budete mít galerie rozházené, za předpokladu, že každá bude v menu jinde.
Celkově řešení je možná pro Vaši potřebu vyhovující, ale s ohledem na variabilitu je naprosto nedostatečné a nevyhovující.
Omezení "zbytečných dotazů", lze například řešit pouze jedním výpisem všech galerií po ukončení cyklu za všemi výpisy. Modul galimage umí zpracovat i více galerií, ne jen jednu. Parametry jsou v dokumentaci.
Dalším řešením je rozšířit dotaz o obrázky a ty pak zpracovat funkcí _galleryImage() pro každý obrázek samostatně.
Další chybou je použití <div id='gallery'>. Způsobí chyby validity stránky, protože identifikátor s názvem gallery může být na stránce jen jeden.
Jak už jsem se zmínil, nevím kam co a jak mám vložit.
Galerií je zatím 6 ale počítám, že jich bude v budoucnu víc. Řazení podle ord je úmyslně a galerie je dle tohoto pořadí nastavena.
Modul galimage umí sice zpracovat více galerií, ale při každém vložení nové galerie se musí najít v kódu a doplnit požadované číslo. Takhle se mi to zdá jednodušší a načte to i název galerie. <div id="gallery"> jsem dal jen pro znázornění. (ale díky za upozornění)
Může mi tedy prosím někdo ten modul napsat. Něco málo o PHP, java, MySQL vím, ale tohle je nad moje síly. Děkuji.
Galerií je zatím 6 ale počítám, že jich bude v budoucnu víc. Řazení podle ord je úmyslně a galerie je dle tohoto pořadí nastavena.
Modul galimage umí sice zpracovat více galerií, ale při každém vložení nové galerie se musí najít v kódu a doplnit požadované číslo. Takhle se mi to zdá jednodušší a načte to i název galerie. <div id="gallery"> jsem dal jen pro znázornění. (ale díky za upozornění)
Může mi tedy prosím někdo ten modul napsat. Něco málo o PHP, java, MySQL vím, ale tohle je nad moje síly. Děkuji.
Modul galimage neexistuje.
Nějaká adresa kde to máte instalované?
Nějaká adresa kde to máte instalované?
galimage - je můj název pro upravený modul.
Adresa je www.cousinsstudio.com, potřeboval bych aby to fungovalo asi tak nějak. Samozřejmě dám jiný vzhled a proběhne ještě několik úprav.
Přístup je: sunlight i heslo
Díky
Adresa je www.cousinsstudio.com, potřeboval bych aby to fungovalo asi tak nějak. Samozřejmě dám jiný vzhled a proběhne ještě několik úprav.
Přístup je: sunlight i heslo
Díky
Pokud jsem z ukázky správně pochopil, pak Vám nejde ani tak o to zobrazit vše, ale pouze galerie.
Nejprve by jste si měl ujasnit, co vlastně chcete zpracovávat, pak se dá pokračovat v něčem smysluplném.
Váš původní požadavek a zaslaný kód na klasickém SL se sekcemi, kategoriemi, články, ... pak vypadá nějak takto. Jen z nějakého, prozatím mne neznámého důvodu, nefunguje parsování.
Nejprve by jste si měl ujasnit, co vlastně chcete zpracovávat, pak se dá pokračovat v něčem smysluplném.
Váš původní požadavek a zaslaný kód na klasickém SL se sekcemi, kategoriemi, články, ... pak vypadá nějak takto. Jen z nějakého, prozatím mne neznámého důvodu, nefunguje parsování.
Byl bych rád aby se mi ukázalo všechno, včetně galerie, na jedné stránce.
Něco podobného jako ve vašem odkaze.
Jen mi to přijde dost složitý. Vytvořit např. právě tu galerii pojmenovat jí třeba GALERIE, vložit fotky, zakázat viditelnost a vytvořit sekci nazvanou GALERIE a do této sekce vložit hcm modul. atd. ... Jestli jsem to dobře pochopil při 50 galerií bych musel mít 100 položek ve Správě obsahu.
Asi to má nějaký význam, ale myslím si, že by to mělo jít ještě jednodušeji.
K načtení mé stránky jsem použil ten poslední vložený kód zde na fóru, proto se ty stránky zobrazují tak jak potřebuji i s galerií.
Něco podobného jako ve vašem odkaze.
Jen mi to přijde dost složitý. Vytvořit např. právě tu galerii pojmenovat jí třeba GALERIE, vložit fotky, zakázat viditelnost a vytvořit sekci nazvanou GALERIE a do této sekce vložit hcm modul. atd. ... Jestli jsem to dobře pochopil při 50 galerií bych musel mít 100 položek ve Správě obsahu.
Asi to má nějaký význam, ale myslím si, že by to mělo jít ještě jednodušeji.
K načtení mé stránky jsem použil ten poslední vložený kód zde na fóru, proto se ty stránky zobrazují tak jak potřebuji i s galerií.
Jen mi to přijde dost složitý.
Je to přesně ten samý kód, který jste uvedl. Nic není upravováno, pouze jsem vypustil parsování.
To jak se vše zobrazuje je dáno dle Vás, tedy strukturou webu. Jen nepočítáte s tím, že rozcestníky mohou mít vlastní číslování od 1. Proto se Vám to zdá chaotické a nesmyslné, ale takto jste uvedl kód.
Váš kód:if(!defined('_core')) exit;
function _HCM_df_sqlshow(){
$output="";
$sql = DB::query("SELECT * FROM `"._mysql_prefix."-root` WHERE visible=1 AND public=1 ORDER BY ord ASC");
while ($item = DB::row($sql)){
$output.="<div id='".$item["title_seo"]."'>"; if($item['autotitle']==1) {$output.="<h1>".$item["title"]."</h1>";}
$output.=_parseHCM($item['content']);
if($item['type']==5) {$output.="<div id='gallery'>";$output.=_parseHCM('[hcm]galimage,'.$item["id"].',1,165,5000[/hcm]');$output.="</div>";
}
$output.="</div>";
}
return $output;
}kód na mých stránkách:
if (!defined('_core'))
exit;
function _HCM_lon_sqlshow()
{
$output="";
$sql = DB::query("SELECT * FROM `"._mysql_prefix."-root` WHERE visible=1 AND public=1 ORDER BY ord ASC");
while ($item = DB::row($sql)){
$output.="<div id='".$item["title_seo"]."'>"; if($item['autotitle']==1) {$output.="<h1>".$item["title"]."</h1>";}
// $output.=_parseHCM($item['content']);
$output.=($item['content']);
if($item['type']==5) {$output.="<div id='gallery'>";
//$output.=_parseHCM('[hcm]galimage,'.$item["id"].',1,165,5000[/hcm]');
$output.=('[hcm]galimage,'.$item["id"].',1,165,5000[/hcm]');
$output.="</div>";
}
$output.="</div>";
}
return $output;
}Jaký je tam tedy rozdíl, mimo toho co jsem popsal?
K načtení mé stránky jsem použil ten poslední vložený kód zde na fóru, proto se ty stránky zobrazují tak jak potřebuji i s galerií.
Není to o kódu, ale o struktuře menu, podle kterého třídíte pouze podle pořadí bez ohledu na další návaznosti. Proto jsem doporučoval třídit podle typu. Zobrazovalo by se pak v pořadí:
sekce, kategorie, kniha, oddělovač, galerie, odkaz, rozcestník, fórum a plugin stránka.
Nikde nezobrazujete články, ...
Jestli jsem to dobře pochopil při 50 galerií bych musel mít 100 položek ve Správě obsahu.
Ne, nepochopil jste to dobře. Při 50 galeriích budete mít "pouze" 50 dalších zbytečných dotazů do databáze.
Je to přesně ten samý kód, který jste uvedl. Nic není upravováno, pouze jsem vypustil parsování.
To jak se vše zobrazuje je dáno dle Vás, tedy strukturou webu. Jen nepočítáte s tím, že rozcestníky mohou mít vlastní číslování od 1. Proto se Vám to zdá chaotické a nesmyslné, ale takto jste uvedl kód.
Váš kód:if(!defined('_core')) exit;
function _HCM_df_sqlshow(){
$output="";
$sql = DB::query("SELECT * FROM `"._mysql_prefix."-root` WHERE visible=1 AND public=1 ORDER BY ord ASC");
while ($item = DB::row($sql)){
$output.="<div id='".$item["title_seo"]."'>"; if($item['autotitle']==1) {$output.="<h1>".$item["title"]."</h1>";}
$output.=_parseHCM($item['content']);
if($item['type']==5) {$output.="<div id='gallery'>";$output.=_parseHCM('[hcm]galimage,'.$item["id"].',1,165,5000[/hcm]');$output.="</div>";
}
$output.="</div>";
}
return $output;
}kód na mých stránkách:
if (!defined('_core'))
exit;
function _HCM_lon_sqlshow()
{
$output="";
$sql = DB::query("SELECT * FROM `"._mysql_prefix."-root` WHERE visible=1 AND public=1 ORDER BY ord ASC");
while ($item = DB::row($sql)){
$output.="<div id='".$item["title_seo"]."'>"; if($item['autotitle']==1) {$output.="<h1>".$item["title"]."</h1>";}
// $output.=_parseHCM($item['content']);
$output.=($item['content']);
if($item['type']==5) {$output.="<div id='gallery'>";
//$output.=_parseHCM('[hcm]galimage,'.$item["id"].',1,165,5000[/hcm]');
$output.=('[hcm]galimage,'.$item["id"].',1,165,5000[/hcm]');
$output.="</div>";
}
$output.="</div>";
}
return $output;
}Jaký je tam tedy rozdíl, mimo toho co jsem popsal?
K načtení mé stránky jsem použil ten poslední vložený kód zde na fóru, proto se ty stránky zobrazují tak jak potřebuji i s galerií.
Není to o kódu, ale o struktuře menu, podle kterého třídíte pouze podle pořadí bez ohledu na další návaznosti. Proto jsem doporučoval třídit podle typu. Zobrazovalo by se pak v pořadí:
sekce, kategorie, kniha, oddělovač, galerie, odkaz, rozcestník, fórum a plugin stránka.
Nikde nezobrazujete články, ...
Jestli jsem to dobře pochopil při 50 galerií bych musel mít 100 položek ve Správě obsahu.
Ne, nepochopil jste to dobře. Při 50 galeriích budete mít "pouze" 50 dalších zbytečných dotazů do databáze.
Záleží je v tom HCM modulu galimage, pokud se dotazuje DB, tak je hloupost to mít ve while cyklu a je lepší LEFT JOIN.
HCM modul na DF je jen pro ukázku, s galerií se nepočítalo.
HCM modul na DF je jen pro ukázku, s galerií se nepočítalo.