Přihlásit se

dotaz na php funkci

24. čvn 2021 18:07 #144507
dotaz na php funkci od marvays
Uživatel
Ahoj.
Mám jeden prozatím teoretický dotaz. Je možné vypsat do tagu H1 kategorii virtuemartu, když je v url obsaženo číslo kategorie?

Potřebuji vyřešit lepší titulky stránky pro filtraci od brakdesign.net

Mám modul drobečkové navigace, nad kterou se vypisuje titulek formou
Code:
<h1><?php echo $end_list->name; ?></h1>
Což mi na 90% případů vyhovuje. Ale ve filtraci mám pro všechny stránky jen slovo "Filtr" . . . a teď co s tím. Protože neumím php, tak dopředu nevidím možnosti, co je a není reálné.

Musím to vyřešit pro dvě situace.
  1. pro stránky, na kterých mi nezáleží, jsou méněcené a defakto se může zobrazovat cokoli trochu rozumného
  2. pro stránky, které jsou důležité a chci je vymazlit

Adresa náhodné filtrace vypadá takto:
Code:
index.php?option=com_customfilters&custom_f_68[0]=64c5996576c49b6ec3a9&view=products&virtuemart_category_id[0]=49&Itemid=732
Asi ideálním řešením by bylo kdyby se nadpis dal složit z "název kategorie" - "zaškrtnutý název filtru".

Když jsem pročítal manuál php tak jsem mylně pochopil informaci, že umím vypsat na stránce i jakýkoli meta tag obsažený v kodu. Což by bylo taky řešení, protože u důležitých stránek si umím v SEO komponentě do kodu dostat cokoli.

Výrobce filtrace sem kontaktoval, ale nesdílel moje nadšení. SEO ho nezajímá a nechce to řešit.

Kdyby jste měli někdo nějaké nápady, nebo chuť mi pomoci, budu jen rád.

24. čvn 2021 18:41 #144508
Odpověď od marvays
Uživatel
Našel jsem několik článků, které se zabývají vypsáním meta tagu do <body>

Problém je v tom, že mám špatně definovanou url adresu, ze které se čte meta tag
Code:
<?php // Assuming the above tags are at www.example.com $tags = get_meta_tags('http://www.example.com/'); // Notice how the keys are all lowercase now, and // how . was replaced by _ in the key. echo $tags['author']; // name echo $tags['keywords']; // php documentation echo $tags['description']; // a php manual echo $tags['geo_position']; // 49.33;-86.59 ?>

Jak ale upravit řádek:
Code:
$tags = get_meta_tags('http://www.example.com/');
aby se mi dynamicky měnila url adresa podstránky, ze které se mají meta tagy načítat? Protože to je ten problém, proč mi to nefunguje.

24. čvn 2021 19:11 - 24. čvn 2021 19:14 #144509
Odpověď od H13
Admin

Potřebuji vyřešit lepší titulky stránky pro filtraci od brakdesign.net


Jen takovej malej off-topic, lidé s "break designs" asi nebudou nadšeni, že jsou zde ve fóru označení jako "brak" (vadný výrobek určený k vyhození) .... Když typo, tak ať to stojí za to. :-)

Protože neumím php, tak dopředu nevidím možnosti, co je a není reálné.


Reálné to je a možností je hodně. Pokud máš přístup k H1 a máš v URL číslo kategorie, pak stačí z databáze získat jméno kategorie a tu tam vsunout (teoreticky by ten název měl být i v nějaké proměnné, takže by se dotaz do databáze dal ušetřit).

Ovšem, otázka je, co se stane, pokud je více kategorií? Nevím jak je to ve VM, ale v Phoca Cart je při filtraci možné vybrat více kategorií zároveň. Tedy pokud to tak je i ve VM, jak pak budeš řešit titulek, pokud bude více vyfiltrovaných kategorií zároveň?

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

24. čvn 2021 19:29 - 24. čvn 2021 19:29 #144510
Odpověď od marvays
Uživatel

H13 napsal: Jen takovej malej off-topic, lidé s "break designs" asi nebudou nadšeni, že jsou zde ve fóru označení jako "brak"


To jsem nikdy neřekl. V rámci možností je to funkční, téměř jediný nástroj tohoto typu. Jen z pohledu seo je podle mě dost podprůměrný. Nestěžuju si. Snažím se to řešit.

Vyřešil sem pokus /omyl to načítání názvu stránky přes meta tagy
Code:
$tags = get_meta_tags("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
Code:
<div><h1><?php echo $tags['filtrace-title'] ?></h1></div>
Což bude super řešení pro případ, kdy budu chtí něco indivindi :)

Chtělo by to ale doplnit o echo, které se vypíše, pokud tento tag nebude existovat. A to by stačilo v době nouze alespoň vypsat název kategorie s dovětkem "- filtrace" . . . v lepším případě s vypsáním zaškrtnuté volby.

24. čvn 2021 19:40 #144511
Odpověď od Rudolf
Joomla Expert

H13 napsal: Jen takovej malej off-topic, lidé s "break designs" asi nebudou nadšeni, že jsou zde ve fóru označení jako "brak"


Honzo, některým to nedojde ani po upozornění a furt melou to svoje - Captive Minds
Ještě že sem ti z BRAKU nechodí a nepřekládají si to :)

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

24. čvn 2021 19:47 #144513
Odpověď od marvays
Uživatel

Rudolf napsal: Honzo, některým to nedojde ani po upozornění a furt melou to svoje - Captive Minds


No to bys nebyl ty, aby sis nerýpl. Tak jsem si toho napoprvé nevšiml, no. ;)

24. čvn 2021 20:02 #144515
Odpověď od Rudolf
Joomla Expert
Stejně jako si rýpnu do sebe když udělám chybu, zasměju se tomu a omluvím se - Ano, to bych nebyl já.

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

24. čvn 2021 20:36 - 24. čvn 2021 20:37 #144516
Odpověď od marvays
Uživatel

Rudolf napsal: Stejně jako si rýpnu do sebe když udělám chybu, zasměju se tomu a omluvím se - Ano, to bych nebyl já.

No já bych se cizímu neštěstí nesmál :)

K věci . . .
Code:
$tags = get_meta_tags("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
Funguje, ale strašně zpomaluje načítání stránky. Jakože v řádech desítek vteřin. Něco tam bude špatně, protože jinak by to byla nepoužitelná funkce.

24. čvn 2021 21:31 #144520
Odpověď od Rudolf
Joomla Expert

No já bych se cizímu neštěstí nesmál


Souhlasím, smát se sám sobě je vyšší level.

Funguje, ale strašně zpomaluje načítání stránky. Jakože v řádech desítek vteřin. Něco tam bude špatně, protože jinak by to byla nepoužitelná funkce.


To je možné, proto to není standardně v PHP view. Bude třeba hledat a zkoušet jiné řešení.

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

25. čvn 2021 00:34 #144526
Odpověď od Cony
Moderátor

marvays napsal:

Code:
$tags = get_meta_tags("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
Funguje, ale strašně zpomaluje načítání stránky. Jakože v řádech desítek vteřin. Něco tam bude špatně, protože jinak by to byla nepoužitelná funkce.

Jasně, funkce get_meta_tags načte na pozadí stránku znovu, ta znovu volá get_meta_tags, takže se načte znovu, atd. donekonečna, až to někde spadne zřejmě na nedostatek prostředků serveru a postupně přes ty všechny načtení se to vrátí zpět.

Takhle to řešit nejde, ten meta tag je potřeba zjistit nějak přímo z instance, která je aktuálně spuštěna.

25. čvn 2021 11:59 - 25. čvn 2021 12:17 #144528
Odpověď od marvays
Uživatel

Cony napsal: Takhle to řešit nejde, ten meta tag je potřeba zjistit nějak přímo z instance, která je aktuálně spuštěna.


Pod tím manuálem je několik komentářů s vylepšením. Asi. ale netuším, co s tím.
www.php.net/manual/en/function.get-meta-tags.php

25. čvn 2021 12:07 #144529
Odpověď od Rudolf
Joomla Expert

ale netuším, co s tím.


To je jako dotaz jak to naprogramovat?

Nejsem programátor, ale metodou pokus omyl postupuji v celé dokumentaci php.net. Tak jako když jsem se učil matematiku a spočítal všechny příklady od dané funkce z příšerně tlusté bichle matematika pro střední školy, dokud jsem se to nenaučil - nedá se tento postup aplikovat i zde?
Mě se to vyplácí při odstraňování chyb v PHP při přechodu z v.56 na 74

Otestovat jednotlivé postupy z PHP.net
Prozkoumat na ftp v souborech zda se tato metoda někde v joomle již nepoužívá a zkusit přenést kódy do VM -

Asi bude ještě více možností, z nichž nejrychlejší možná bude zaplatit programátora, který to správně naprogramuje.

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

25. čvn 2021 12:16 - 25. čvn 2021 12:17 #144530
Odpověď od Cony
Moderátor

marvays napsal: Pod tím manuálem je několik komentářů s vylepšením. Asi. ale netuším, co s tím.
www.php.net/manual/en/function.get-meta-tags.php

Funkce get_meta_tags je pro tento případ naprosto nepoužitelná, s jakýmkoliv vylepšením.

Zkusil bych
Code:
\Joomla\CMS\Factory::getDocument()->getTitle();
Ale záleží na tom, kdy se funkce bude volat, a kdy ty SEO komponenty ten title nastaví.

25. čvn 2021 12:42 #144531
Odpověď od marvays
Uživatel
Tak moje neznalost mi umožnila nad tom přemýšlet bez omezení. Takže když sem s dostal k manuálu s funkci get_meta_tags, tak sem si řekl, že to je přesně ono. Stejně u důležitých kombinací filtrů jdu do JoomSEF a pohraju si tam s pěknou url. Musím nastavit alias, když opětovně filtr vykliknu, tak aby mě to přesměrovalo zpátky na kategorii, vymyslím líbivý titulek, popisek, nechám indexovat . . . tak přidám vlastní meta tag s pěkným názvem dané kombinace filtrů.

Pak v modulu, použiju onu: $tags = get_meta_tags(' www.example.com/ '); která extrahuje všechny atributy obsahu metaznačky ze souboru a pak to do stránky pomocí echo $tags; nechám zobrazit.

Či mě napadlo, že když tahle funkce existuje, ostatní ji používají a já sem to tak krásně naplánoval, že bude nějaký problém? Problém o kterém se nikde nikdo nezmiňuje a zase ho mám jenom já?

Tak sem zaspamoval fora, že to bude rychlá oprava . . . přidá se tečka, umaže závorka a fičíme. A nic.

Dal sem požadavek na práci kodera na facebooku. Jeden se mi ozval, uvidíme, jestli to vyřeší.

Děkuji za váš čas.

26. čvn 2021 13:32 #144533
Odpověď od Rudolf
Joomla Expert

. . . tak přidám vlastní meta tag s pěkným názvem dané kombinace filtrů.
Pak v modulu, použiju onu: $tags = get_meta_tags(' www.example.com/ '); která extrahuje všechny atributy obsahu metaznačky ze souboru a pak to do stránky pomocí echo $tags; nechám zobrazit.


No třeba že by mohlo Artio ten meta tag uložit až poté co si ho modul načte a pak jsi nahraný... (neznám posloupnosti kdy se co generuje).
Nutno otestovat a zkoušet, zkoušet, zkoušet...

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

Powered by Fórum