dotaz na php funkci

marvays
24. čen 2021 18:07 #144507
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
<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:
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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od marvays
24. čen 2021 18:41 #144508
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
<?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:
$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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

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

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 Gallery - http://www.phoca.cz/phocagallery - obrázková galerie (Joomla!)
Phoca Guestbook - http://www.phoca.cz/phocaguestbook - kniha návštěv (Joomla!)
Phoca Download - http://www.phoca.cz/phocadownload - stahování souborů (Joomla!)
Phoca Cart - http://www.phoca.cz/phocacart - e-shop,...

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od marvays
24. čen 2021 19:29 - 24. čen 2021 19:29 #144510

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
$tags = get_meta_tags("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
<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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
24. čen 2021 19:40 #144511

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.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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od marvays
24. čen 2021 19:47 #144513

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. ;)

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
24. čen 2021 20:02 #144515
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.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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od marvays
24. čen 2021 20:36 - 24. čen 2021 20:37 #144516

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 . . .
$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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
24. čen 2021 21:31 #144520

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.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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
25. čen 2021 00:34 #144526

marvays napsal:

$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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od marvays
25. čen 2021 11:59 - 25. čen 2021 12:17 #144528

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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
25. čen 2021 12:07 #144529

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.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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
25. čen 2021 12:16 - 25. čen 2021 12:17 #144530

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
\Joomla\CMS\Factory::getDocument()->getTitle();
Ale záleží na tom, kdy se funkce bude volat, a kdy ty SEO komponenty ten title nastaví.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od marvays
25. čen 2021 12:42 #144531
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.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
26. čen 2021 13:32 #144533

. . . 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.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

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.