Přihlásit se

Joomla 5.2.2 Security & Bugfix Release

Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.

Jak v rámci šablony řešit různe indexy pro HP a zbytek?

14. dub 2022 11:26 #146121
Zdravím,

snažím se nasadit novy web na J4. A rad bych se zeptal.

1) lze standardní cestou rozdělit index na index pro HP a index pro ostatni stranky? Nebo se to musí nastylovat a moduly rozmístit tak, že index je jeden, jen jednou levy sidebar není stranka je full, atd.

2) Vím, že nesouvisí s šablonou (viz téma), ale pokoušel jsem se databázově zmigrovat kategorie/menu/články z J3 na J4, ale při zobrazení např. položky z menu se mi objeví chyba "Zobrazení nebylo nalezeno [name, type, prefix]: article, html, site". Co jsem chybně přenesl v db? Když založím v J4 položku menu nově, tak je to vše ok.

3) Souvisí s ad 2) je tedy lepší s J3 migrovat na J4 pomoci např., JMigratoru? Ale pak musím stejně řešit ostatní komponenty, které Migrator nemá JEvents, DocMan, .... Aktualizace přímo z Joomly j3 na j4 neprošla vklidu :-(

Díky

14. dub 2022 11:54 - 14. dub 2022 12:19 #146122
Odpověď od Rudolf
Joomla Expert
1) Co označujete za index? Nerozumím co tím myslíte - pokud chcete pro HP jinou šablonu (jiné view bez pravého sloupce) než pro jiné stránky, tak je třeba udělat kopii stylu šablony.
Přiřazení modulů nastavujete v administraci, pozice a existenci modulů si upravujete v PHP šablony.
Pokud tedy chcete mít modul jen pro HP (home page) dejte mu takovou pozici, kterou nebude mít žádný jiný modul, pro HP musíte mít jiný styl šablony než pro jiné stránky, kde tato pozice bude použita (příloha)

2) ano, špatně jste převedl, určité informace se ukládají do jiných souvisejících tabulek, ted ale nechci hledat virtuální chybu, když nevidím do DB
3) Je lepší JMigrator, zachová vazby, které jste v bodě 1 nezachoval. Pro externí aplikace je třeba mít addon - nám ho naprogramovali pro Form2Content na zakázku. Obecně ale pokud umíte programovat, tak jde jen o sadu mysql příkazů, kdy se synchronizují DB tabulky z J3 na J4 se zachováním indexů, klíčů a vazeb. Musí ale existovat verze aplikace pro J3 a J4 a být před migrací na novém webu nainstalovaná čistá instalace, navíc migrace addonů se provádí až po migraci Joomla:
- až mám přemigrované uživatele, mohu migrovat PhocaGallery, protože autorem galerií je uživatel, který se musí migrovat před migrací phocagallery
- addon Vám možná naprogramuje výrobce na zakázku, pokud ho hezky poprosíte a poskytnete mu support == instalace

MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Přílohy:

14. dub 2022 15:39 #146125
Odpověď od David
Začátečník

Co označujete za index?

Index myslím v šabloně index.php, ten základ, kde pozicuji jednotlivé moduly a dělá se ten základní obal.

Kopii stylů šablony jsem si vytvářel, dal jsem si že výchozí jsou podstránky a samostatná pro HP.


takže tady se to ale neprojeví? Že by vznikl druhý index.php soubor


O přepisech zobrazení modulů, komponent atd. tady dělám. Ale jedná se mi o základ. Vím, že si mohu pozice a moduly navytvářet a podmiňovat stránkami apod. v Index.php mít mraky podmínek, ale prodlužuje se samotné vykreslování stránky. Než zjistí jestli jsou/nejsou moduly na pozicích.

Pak jsem ale nepochopil kde mohu nastavit ty změny, když si vytvořím kopii stylů jen pro určité stránky. viz. příloha1. Když to vlastně dělám stejně u modulů a komponent a tam mohu vytvářet jiné view.


ad2) ad3) ok, díky. Myslel jsem si, že jsem převedl všechno včetně zachování indexů a vazeb a asi se tak nestalo - na něco jsem asi zapomněl :-/

14. dub 2022 15:50 - 14. dub 2022 15:53 #146126
Odpověď od H13
Admin
1) Standardně to tak dělám v Gantry

Příklad - úvodní stránka je jednosloupcová se slideshow, další stránky jsou dvousloupcové bez slideshow.

Gantry toto velmi jednoduše zvládá, navíc má skvělou vlastnost a to dědění. Příklad: patička. Patička je stejná jak u jednosloupcového layoutu tak i ve dvousloucovém layoutu. Není proto potřeba ji 2x vytvářet. Stačí vytvořit v jednom layotu (v Gantry se mu říká Outline) a v druhém ho zdědit. Tedy, pokud upravím patičku v prvním layoutu, automaticky se dědí i v druhém. Toto šetří mnoho času, protože v podstatě vše dědím, kromě odlišných částí stránek.

BTW nedávno jsem měl debatu ohledně šablonovacích frameworků. Ano, jsou složité a robustní, ale protože Gantry používá cachovaný výstup, sestavuje CSS při ukládání a podobně, je její výkon (načítání) celkem rychlé (s porovnání s ostatními frameworky velmi rychlé).


Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

14. dub 2022 16:22 #146127
Odpověď od Rudolf
Joomla Expert
Co Honza chtěl říct a co jsem psal i já:
- jakmile použijete nějaký framework (Honza lobuje za Gantry, já za T4 - také obsahuje všechny zmiňované funkce - skládání, cachování. minifikace), tak je schopen ke každému stylu přiřadit jiný index.php == on je vlastně jen jeden, ale načítá jednotlivé sekce a ty mohou být pro každý styl jiné ==nastavení se pak ukládá do ini nebo json souboru.
- pokud nepoužíváte framework, pak musíte udělat kopii šablony jako takové == prostě budete mít na FTP složku cassiopea1 a cassiopea2 (včetně úprav XML souborů) nebo si to rozdělení na jednotlivé sekce naprogramujete sám.

MiniJoomla! - www.minijoomla.org - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

14. dub 2022 17:05 #146129
Odpověď od Cony
Moderátor

David napsal: 1) lze standardní cestou rozdělit index na index pro HP a index pro ostatni stranky? Nebo se to musí nastylovat a moduly rozmístit tak, že index je jeden, jen jednou levy sidebar není stranka je full, atd.

- standardně se to dělá spíš tou druhou metodou, tj. pořeším si obecnou šablonu, kde na různých podstránkách můžu zapínat různé moduly, a nejsem omezen jen tím že to musí být zrovna HP. Lze kombinovat např. s nějakým parametrem menu položky (třeba třída stránky, nebo vlastní parametr pomocí n3tFields, nebo jiného pluginu)
- druhá varianta je vytvořit samostatnou šablonu, tu si pak přiřadit v administraci kam potřebuju.
- pak bych si dokázal představit např. variantu s parametrem šablony, tedy v templatedetails.xml mít něco jako
Code:
<field name="theme" type="list" default="" label="Varianta šablony"> <option value="">Výchozí</option> <option value="home">Úvodní strana</option> <option value="varianta1">Varianta 1</option> </field>
a v index.php se rozhodovat podle tohoto parametru, a třeba si pomocí include načítat jiné soubory z podadresáře.
- No a nebo v index.php opravdu detekovat homepage
Code:
function ishome() { $app = Factory::getApplication(); $lang = Factory::getLanguage(); $menu = $app->getMenu(); $homeMenu = $menu->getDefault($lang->getTag()); $activeMenu = $menu->getActive(); if ($homeMenu == $activeMenu && $app->input->getCmd('option') == $homeMenu->component) { foreach ($homeMenu->query as $key => $value) { if ($app->input->getStr($key) != $value) return false; } return true; } return false; }
a opět si třeba pomocí include natáhnout jiný soubor. (funkce je pro J3, pro J4 možná bude potřeba poupravit)

Powered by Fórum