Přihlásit se

Phoca Cart - stránka 404

31. kvě 2019 22:26 #140249
Phoca Cart - stránka 404 od Robert
Nováček
V případě že je Phoca Cart (Seznam kategorií) nastavena jako HOMEPAGE (výchozí) nefunguje "stránka 404" (error.php v šabloně). při zadání špatné adresy. Toto není tak velký problém, dělají to i jiné komponenty.
Vyřešil jsem to přepsáním jazyku konstanty "COM_PHOCACART_NO_CATEGORY_FOUND" pro články a jiné odkazy,
a konstanty "COM_PHOCACART_NO_PRODUCT_FOUND" pro produkty v E-shopu následujícím kódem:
Code:
<div id="error"> <h1>404</h1> <h2>Jejda, chybička se vloudila...</h2> <p>Zdá se, že stránka, kterou hledáte, neexistuje. Za to se vám omlouváme.</p> <p> <a class="btn" href="index.php?Itemid=806" title="Zpět do obchodu">Zpět do obchodu</a> </p> </div>
Vzhled jsem dostyloval pomocí CSS.
Funguje to skvěle, ale pouze v základních kategoriich a článcích. Už to nefunguje v podkategoriích a produktech.
Příklad:
správná adresa: 2019.prokompresory.cz/10-kompresory
chybná adresa: 2019.prokompresory.cz/10-kompresor => výsledek: 404(product) - to je správně
správná adresa: 2019.prokompresory.cz/kosik
chybná adresa: 2019.prokompresory.cz/kos => výsledek: 404(category) - to je správně
Příklad podkategorie:
správná adresa: 2019.prokompresory.cz/11-kompresory/pistove-kompresory
chybná adresa: 2019.prokompresory.cz/11-kompresory/pistove-kompresry => výsledek: stránka se nezmění zůstane původní, nestane se vůbec nic - to je špatně

J! 3.9.6 | Phoca Cart 3.2.2 | Šablona: Phoca Duka (zkoušeno i na jiných šablonách) login na Test web: demo/2019

Joomla! od verze 1.5 -- ONEbit --

31. kvě 2019 23:15 - 31. kvě 2019 23:41 #140250
Odpověď od H13
Admin
Tady vzniká otázka, co je vlastně chyba.

Chyba je většinou např. chyba ve skriptu, nebo v databázi, a podobně. Nebo, že prostě stránka neexistuje. Ovšem to, že zadaná kategorie nebo produkt neexistuje nemusí zrovna znamenat chybu na webové stránce. Stránka vrátí 200 OK - jako že na stránce proběhlo všechno zpracování OK, stránka/sekce prostě existuje, jen prostě nebyl nalezen žádný výsledek - nic neodpovídá zadaným kritériím.

Pokud bychom nastavili to, že nebyl nalezen žádný výsledek, jako chybu 404, jak bychom ji pak oddělili od skutečné 404 chyby. Nebo spíš opačně, pokud nastavíme v tomto případě 404, jak pak řekneme s 200 uživatelovi, že například podle daných filtrovacích kritérí nebyl nalezen žádný produkt.

Např. uživatel chce nalézt produkt, který stojí více než 400 Kč, je červený a má velikost XXL.

A v e-shopu žádný takový produkt není.

a) je to chyba 404
b) nebo je to prostě OK stránka s 200 jen s tím, že při daných kritériích nebyly nalezeny žádné výsledky?

A protože ke zpracování stránky dochází systémově, platí stejná pravidla jako pro zobrazení produktu/kategorie tak i seznamu produktů s různými filtrovacímí požadavky - a bohužel se musí zvolit pouze jedna varianta - buď pro všechny nenalezené položky 404, nebo pro všechny 200 s tím, že zadaným kritériím neodpovídá žádna položka (zjednodušeně, protože díky vztahu mezi produky a kategoriemi je ta práce s URL složitější a ne vždy je možné dodržet pro vše stejná pravidla).

Něco podobnýho jsme řešili tady:
joomlaforum.ru/index.php/topic,327175.ms...8941.html#msg1728941

zatím opravdu neznám správnou odpověď.


Konkrétně k těm URL, který i přes překlep vrací správnou adresu:

správná adresa: 2019.prokompresory.cz/11-kompresory/pistove-kompresory
chybná adresa: 2019.prokompresory.cz/11-kompresory/pistove-kompresry => výsledek: stránka se nezmění zůstane původní, nestane se vůbec nic - to je špatně


Tohle je jedna velká výhoda čísel v URL - i když je v URL překlep, systém vrátí správnou adresu.

Našim zájmem přece není kvůli překlepu odmítnout zákazníka, ale dát mu správnou adresu, kterou s nějvětší pravděpodobností (pokud je v URL číslo, tak ta pravděpodobnost je 99,99%) hledá.


To je přeci výhoda, pokud mi příjde zákazník do prodejny a bude po mně chtít blamboly, tak mu prostě prodám brambory (200), nebudu mu přeci říkat, že blamboly nemáme (404).

Viz:
www.joomlaportal.cz/forum/phoca-cart/122...-cart-url-seo#140201

Bohužel tam nejde udělat jednotnej přístup, pokud jde o kategorie a produtky. Protože, pokud je v URL jedno číslo, systém netuší, jestli to číslo platí pro produkt nebo pro kategorie. Takže zatímco u produktů lze překlep "ignorovat" a vrátit požadovaný výsledek (což by mělo potěšit jak obchodníka tak zákazníka), u kategorie už to nejde, protože nevíme, jestli se ptáme na kategorii nebo produkt :-(

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

01. čvn 2019 09:15 #140251
Odpověď od Rudolf
Joomla Expert
Souhlasím s Janem.

Pokud vycházím z myšlenky, že základní chování (etalon) ohledně URL je Joomla/Content a její blog a články, chová se PhocaCart přesně jak popisuje:

V případě, že zkomolím URL adresu článku (adekvátně produktu ve PhocaCart), výsledek je (díky číslování URL) že se dostanu na pořád stejnou URL adresu článku (ddt produktu ve PhocaCart).

Příklad:

Originální URL článku bez chyby:
simple-shop.easy.minion.cz/blog/11-kratk...ky-olivie-semotamove

Zkomolená URL s chybou:
simple-shop.easy.minion.cz/blog/11-kratk...telky-schvalne-chyba

Nevidím žádnou informaci o 404 nebo že článek nebyl nalezen.

Trochu nelogické sice je (souhlasím), že když vložím do prohlížeče:
simple-shop.easy.minion.cz/blog/11-cr-bude-vracet-dotace

Vidím opět ten samý článek a já mám pocit, že bych neměl :)
Vysvětlím později v souvislosti se SEO aplikacemi.

Jiná situace je, když vložím neexistující číslo:
simple-shop.easy.minion.cz/blog/99-kratk...ky-olivie-semotamove

A voilá, vidím 404 :)

Pokud chci abych po zadání špatné URL (překlepu) v URL viděl 404 (aplikoval jiné než naprogramované standardní chování Joomla), jdu a nainstaluji si aplikaci SEO. Namátkou Artio JoomSEF, SH404 a další.
Stejně platí pokud chci abych v URL neměl ID článků (zde tedy produktů PhocaCart), použiji aplikaci pro SEO (toto není již tak úplně pravda, pokud se jedná o články Joomla), existuje již v Joomla metoda URL bez ID)

Toto platí i pro příspěvek
www.joomlaportal.cz/forum/phoca-cart/122...-cart-url-seo#140201

kde bych souhlasil s Janem a implementaci přepnutí moderní metody tvorby URL (jako je v Joomle pro články) bych implementoval až bude čas :)

MiniJoomla! - www.minijoomla.cz - 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

01. čvn 2019 09:19 - 01. čvn 2019 09:26 #140252
Odpověď od Robert
Nováček
Díky za vysvětlení. Čísla v URL jsou ok, když je překlep atd... , s podkategoriemi už je mi to jasné - nejde poznat jestli je to kategorie, nebo produkt.
Ale nechápu následující chování:

URL: 2019.prokompresory.cz/obchodni-podminky - správná url
URL: 2019.prokompresory.cz/obchodnipodminky => "Kategorie nenalezena" - v pořádku
URL: 2019.prokompresory.cz/obchodni-podmiky => duplicitní homepage - tomu nerozumím, to je přece špatně.

Jediné co jsem vypozoroval je, že když je v chybném url za doménou pomlčka, lomítko nebo číslo je výsledkem právě duplicitní homepage
Pokud je číslo na začátku url
a) číslo je shodné s ID kategorie zobrazí se daná kategorie - to je v pořádku
b) kategorie s daným ID neexistuje zobrazí se "Kategorie nenalezena" - to je taky v pořádku

Joomla! od verze 1.5 -- ONEbit --

01. čvn 2019 10:00 #140253
Odpověď od Rudolf
Joomla Expert

URL: 2019.prokompresory.cz/obchodni-podmiky => duplicitní homepage - tomu nerozumím, to je přece špatně.


Podle mne:
1. Z hlediska obsahu je to správně - vidím to co potřebuji vidět
2. Z hlediska SEO - asi špatně, ale na canonical URL a duplicitu obsahu jsou zde SEO aplikace, které tohle řeší.

MiniJoomla! - www.minijoomla.cz - 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

01. čvn 2019 10:44 #140254
Odpověď od Robert
Nováček
To sice jsou, ale na jných webech žádné SEO aplikace nepoužívám, a funguje to správně: špatná url = 404.
Stejný hosting, stejná Joomla, stejné nastavení serveru, jenom jiné, případně žádné další komponenty navíc.

Joomla! od verze 1.5 -- ONEbit --

01. čvn 2019 11:37 #140255
Odpověď od Rudolf
Joomla Expert
Ale bavíme se pořád v akademické rovině (ne na konkrétním webu), když je tento web v offline bez možnosti otestování, že ano?

URL: 2019.prokompresory.cz/obchodni-podmiky => duplicitní homepage - tomu nerozumím, to je přece špatně.


nevypadá jako URL adresa od PhocaCart, ale jako odkaz (nevím jestli kategorie nebo článek == zda je zapnutá nová metoda routeru v Joomla pro content) na 1 článek.

URL: 2019.prokompresory.cz/obchodni-podmiky => duplicitní homepage - tomu nerozumím, to je přece špatně.


Toto přece není home page.

Abych to shrnul - řešíme že při speciálně napsané URL adrese s pomlčkou ve slugu se odkaz na kategorii chová nestandardně == meukáže 404?

Otestuji si opět na našem webu než mi odpovíte :)

MiniJoomla! - www.minijoomla.cz - 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

01. čvn 2019 12:00 #140256
Odpověď od Rudolf
Joomla Expert
Tak testy na článcích a kategoriích Joomla mi dopadly tak nějak rozporuplně.

Chtěl jsem ukázat že se PhoCart chová stejně jako Joomla content, jen při testování contentu se mi ty URL adresy nějak chovají divně a zamotalo mi to jen hlavu :)

Vracím tedy diskusi zpět k tématu PhoCart a přiznám si že nejzodpovědnější odpověď bude mít Jan.

Díky :)

MiniJoomla! - www.minijoomla.cz - 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

01. čvn 2019 12:10 - 01. čvn 2019 12:10 #140257
Odpověď od Robert
Nováček
Web 2019.prokompresory.cz/ je testovací a offline (login je "demo / 2019" - viz. první příspěvek), ale na ostrém www.eshop.prokompresory.cz/ to dělá to samé :(

Joomla! od verze 1.5 -- ONEbit --

01. čvn 2019 12:29 - 01. čvn 2019 12:30 #140258
Odpověď od Rudolf
Joomla Expert

Ale nechápu následující chování:

URL: 2019.prokompresory.cz/obchodni-podminky - správná url
URL: 2019.prokompresory.cz/obchodnipodminky => "Kategorie nenalezena" - v pořádku
URL: 2019.prokompresory.cz/obchodni-podmiky => duplicitní homepage - tomu nerozumím, to je přece špatně.


Tohle se ale netýká aplikace PhocaCart, jde o Joommla content, konkrétně jeden článek.
Vstupuje Vám do toho to, že odkaz nemáte vytvořený klasicky routerem contentu
(to by ten odkaz vypadal 2019.prokompresory.cz/informace-pro-zakazniky/11-obchodni-podminky), ale jako odkaz z položky menu.
Navíc tam musíte mít nějakou úpravu, protože správně při chybě Vám vznikne 404 - článek nenalezen nebo 404 - kategorie nebyla nalezena, ale Vy 404 přesměrováváte zpět na home page.

Viz:
simple-shop.easy.minion.cz/blog-testovaci - správná URL jako odkaz položkou menu na kategorii
simple-shop.easy.minion.cz/blog-testvaci - zmršená URL - 404 - kategorie nenalazena
simple-shop.easy.minion.cz/blogger - zmršená URL - 404 - článek nenalazen

Nejsem přesměrovaný na HP.

MiniJoomla! - www.minijoomla.cz - 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

01. čvn 2019 13:05 #140259
Odpověď od H13
Admin
Ano, pokud je za lomítkem rovnou nějaký alias, pak zde platí pravidla pro menu odkazy (typicky categories view - tam prostě není ID, a je zde jen alias menu odkazu)

Příklad: categories view:
www.phoca.cz/stockphoto/ (zde chybí alias menu odkazu, protože na této stránce je categories view jako home - tedy úvodní stránka)

A až v category view se začíná provádět router pro Phoca Cart:
www.phoca.cz/stockphoto/2-prague - našla se kategorie Praha, pak je to odkaz na kategorii

A na item view:
www.phoca.cz/stockphoto/2-prague/14-prague-1 - našel se obrázek Praha 1 (s ID 14) a zároveň existuje takový obrázek i v kategorii 2, tedy se zobrazí správně.

A teď nám začínají různé možnosti:
- překlepy v aliasu obrázku - známe ID, zkontrolujeme jestli patří do kategorie - pak to necháme "proplout" i s překlepem - našim cílem je ukázat produkt, ne odmítnou zákazníka se 404

Dokonce pokud dojde k překlepu u obou - kategorie a produktu, a čísla jsou OK, pořád překlepy ignorujeme a vracíme správnou stránku:

www.phoca.cz/stockphoto/2-plaha/14-plaha

Ale potom samozřejmě nastávají situace s jedním ID, kdy např. není nalezena kategorie, pak se vrací pořád OK, ale s tím, že nebylo nic nalezeno (ano, zde by se dalo uvažovat o 404, jenže by nám to potom rozbilo filtrování)
www.phoca.cz/stockphoto/25

A další různé varianty.

A samozřejmě tohle pravděpodobně celé padne v Joomla! 4, kde bude nový router, a tam už se bude vše řídit podle aliasů (to bude náročnější a ne tolik tolerantní např. vůči překlepům)

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

02. čvn 2019 09:55 - 02. čvn 2019 09:58 #140260
Odpověď od Robert
Nováček

Tohle se ale netýká aplikace PhocaCart, jde o Joommla content, konkrétně jeden článek.
Vstupuje Vám do toho to, že odkaz nemáte vytvořený klasicky routerem contentu
(to by ten odkaz vypadal 2019.prokompresory.cz/informace-pro-zakazniky/11-obchodni-podminky), ale jako odkaz z položky menu.


Odkazy dole jsou vytvořeny pomocí modulu (vlastní html - připravený obsah ANO) s názvem "Péče o zákazníky" s odkazy na jednotlivé články, které mají také odkaz ve "Skrytém menu" - viz. příloha, pro možnost přiřazení jednotlivých modulů viz. kód:
Code:
<ul class="list-unstyled"> <li><a href="index.php?option=com_content&amp;view=article&amp;id=112&amp;catid=2">Obchodní podmínky</a></li> <li><a href="index.php?option=com_content&amp;view=article&amp;id=113&amp;catid=2">Ochrana osobních údajů</a></li> </ul>
Stejným způsobem je vytvořen modul "E-SHOP" a v něm odkazy na vybrané kategorie Phoca Cart
Code:
<ul class="list-unstyled"> <li><a href="index.php?option=com_phocacart&view=category&id=11&amp;Itemid=806">Pístové kompresory</a></li> <li><a href="index.php?option=com_phocacart&view=category&id=12&amp;Itemid=806">Šroubové kompresory</a></li> ..... </ul>
takže je použitý klasický router contentu.

Navíc tam musíte mít nějakou úpravu, protože správně při chybě Vám vznikne 404 - článek nenalezen nebo 404 - kategorie nebyla nalezena, ale Vy 404 přesměrováváte zpět na home page.

Žádnou úpravu tam nemám. Problém je v nastavení HOMEPAGE.
Pokud je nastavena HomePage klasicky na Joomla (třeba Blog kategorie) tak vše funguje správně včetně 404 viz. 2019.prokompresory.cz/ (aktuálně HomePage nastavena na Joomla - skryté menu).
Pokud však nastavím jako HomePage "Phoca Cart-seznam kategorií" přesměrování na 404 přestane fungovat a systém se chová tak jak bylo popsáno. Při chybě v url vrátí duplikát HomePage viz. clear.prokompresory.cz/ (čistá instalace, HP nastavena na Phoca Cart) teď se nebavím o ID kategoriíí v url atd.. to je v pořádku a už jsme to probírali.

Příklad špatně zadané url:
2019.prokompresory.cz/kompresory/sroubove-kompresory/ => 404 (funguje)
clear.prokompresory.cz/kompresory/sroubove-kompresory/ => duplicitní HP (nefunguje)

Chtěl jsem jako HomePage nastavit Phoca Cart proto, protože shop je provozován na subdoméně - tak to kamoš chtěl. Mě se to taky nelíbí, ale nic s tím neudělám.

Joomla! od verze 1.5 -- ONEbit --
Přílohy:

02. čvn 2019 11:46 - 02. čvn 2019 11:47 #140261
Odpověď od H13
Admin
Pokud by jsi potřeboval zpracovat více ničemu neodpovídajících segmentů na 404 v Phoca Cart, pak např. pomocí úpravy routeru:

components/com_phocacart/router.php cca. 583
Code:
if (empty($vars) && count($segments) > 1) { throw new Exception(JText::_('Nejaka zprava - napr. nic nenalezeno'), 404); return false; }

Při této adrese:

clear.prokompresory.cz/kompresory/sroubove-kompresory/


když Phoca Cart nenajde vůbec žádnou informaci o produktu nebo kategorii ($vars je prázdné) a adresa se bude skládat z více segmentů (/kompresory/sroubove-kompresory/ => 2 segmenty), pak se vytvoří 404.

Ovšem otázka je, jaký vliv to může mít na ostatní části systému?

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
Poděkovali: Robert

02. čvn 2019 11:59 #140262
Odpověď od Robert
Nováček
Díky moc, vyzkouším a dám vědět.

Jak jsem psal problém je právě v tom, že je to celé na subdoméně pouze jako "E-SHOP" - úvodní stránka (web firmy) je od někoho jiného, aby prý byla "SEO dokonalá" :) - Joomla jim nevyhovovala - prý je tam všechno špatně a kdesi-cosi - podle těch "SEO expertů", ale to je na dlouhé povídání...

Joomla! od verze 1.5 -- ONEbit --

11. čvc 2019 20:03 - 11. čvc 2019 20:03 #140441
Odpověď od Robert
Nováček
Odskoušeno a vše funguje jak má. Nenašel jsem nic s čím by to nějak kolidovalo, nebo systém nedělal to co má.
Kód jsem ještě mírně opravil (místo >1 jsem dal >=1 a doplnil do přepsání jazyku novou konstantu):
na řádek 583 jsem dal následující kód
Code:
if (empty($vars) && count($segments) >= 1) { throw new Exception(JText::_('COM_PHOCACART_ERROR_PAGE'), 404); return false; }
Nasazeno na ostrý web.
Ještě jednou díky moc Honzo.

Joomla! od verze 1.5 -- ONEbit --

Powered by Fórum