wdrożenia PrestaShop

zmiana title

  • 24 Odpowiedzi
  • 9145 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
zmiana title
« dnia: Październik 19, 2009, 12:07:16 am »
Chciałbym zmienić sposób budowy <title>, teraz jest tak: <title>nazwa_sklepu-produkt</title> chciałbym aby było tak: <title>produkt-nazwa_sklepu</title>, a najlepiej gdyby dało się tak: <title>produkt-kategoria-nazwa_sklepu</title>
W pliku classes/Tools.php linia 493
$ret['meta_title'] = (isset($metas['title']) AND $metas['title']) ? Configuration::get('PS_SHOP_NAME').' - '.$metas['title'] : Configuration::get('PS_SHOP_NAME');
jest kod odpowiadający za <title>, ale tylko dla strony głównej, czy ktoś wie gdzie można dokonać podobnych zmian dla kategorii i produktów?

*

Offline kuras

  • Tubylec
  • ****
  • 257
  • 1
Odp: zmiana title
« Odpowiedź #1 dnia: Październik 19, 2009, 09:06:54 am »
Nie pomogę ci niestety.... ale pamiętam że szukałem rozwiązania i znalazłem na forum prestashop.com... i go nie zastosowałem ;-]

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: zmiana title
« Odpowiedź #2 dnia: Październik 19, 2009, 11:44:08 am »
Szukałem na forum, ale nie znalazłem. Dziwię się, że nikt nie zwraca na to uwagi, jest to bardzo ważne pod względem SEO, a szczególnie w long tail.

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #3 dnia: Październik 19, 2009, 03:23:54 pm »
nie wiem z ktrorej wersji korzystasz ale standardowo za wszystkie te elementy odpowiada "$meta_title"
definiowane w classes/meta.php oraz classes/tools.php (getMetaTags)

kod odpowiadajacy za wyswietlanie title dla produktow masz powyzej tej lini ktora podajesz

          /* Products specifics meta tags */
if ($id_product = Tools::getValue('id_product'))
{
$row = Db::getInstance()->getRow('
SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description_short`
FROM `'._DB_PREFIX_.'product_lang`
WHERE id_lang = '.intval($id_lang).' AND id_product = '.intval($id_product));
if ($row)
{
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['description_short']);
return self::completeMetaTags($row, $row['name']);
}
}

i w return self pownienes umiescic odpowiadającą ci kombinacje - jesli potrzebujesz np producenta czy innych danych - konieczna bedzie zmiana zapytania


jesli potrzebujesz TYLKO zamiany produkt - title zamien linie 505 w pliku tools.php na następujacą:

$metaTags['meta_title'] = $defaultValue.' - '.Configuration::get('PS_SHOP_NAME');

i poprosze plusik za pomoc ;)
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: zmiana title
« Odpowiedź #4 dnia: Październik 19, 2009, 07:51:45 pm »
Dzięki. Chciałbym jeszcze dodać producenta do title, ze zmianą zapytania sobie poradzę, ale słabo u mnie z programowaniem obiektowym. Czy mógłbyś pomóc mi ze zmianą w return self?

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #5 dnia: Październik 19, 2009, 08:32:47 pm »
hmmm jak zmienisz zapytanie to najzwyczajniej dodaj odpowiedni wynik do retur self,

cos co powinno dzialac (z palca, bez testow):

return self::completeMetaTags($row, $row['manufacturer_name'].' - '.$row['name']);
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #6 dnia: Październik 19, 2009, 10:10:40 pm »
wrzuc query jak zrobisz, tam bedzie ze 3-4 table do join - ciekawe jestem jak to wyjdzie ;)
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: zmiana title
« Odpowiedź #7 dnia: Październik 22, 2009, 12:52:17 am »
Chyba jest gdzieś błąd w zapytaniu ponieważ return self::completeMetaTags($row, $row['name'].' - '.$row['manufacturer']); nic nie zwraca.
/* Products specifics meta tags */
if ($id_product = Tools::getValue('id_product'))
{
$row = Db::getInstance()->getRow('
SELECT distinct '._DB_PREFIX_.'product_lang.name as name, meta_title, meta_description, meta_keywords,
description_short, '._DB_PREFIX_.'manufacturer.name as manufacturer
        FROM '._DB_PREFIX_.'product_lang, '._DB_PREFIX_.'manufacturer, '._DB_PREFIX_.'product
        WHERE '._DB_PREFIX_.'product_lang.id_lang = '.intval($id_lang).' AND
        '._DB_PREFIX_.'product_lang.id_product = '.intval($id_product).' AND
        '._DB_PREFIX_.'product_lang.id_product='._DB_PREFIX_.'product.id_product AND
        '._DB_PREFIX_.'manufacturer.id_manufacturer='._DB_PREFIX_.'product.id_manufacturer');
       
if ($row)
{
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['description_short']);
return self::completeMetaTags($row, $row['name'].' - '.$row['manufacturer']);
}
}

To zapytanie testowałem w phpmyadmin i działa więc nie mam pojęcia dlaczego po przerobieniu do PHP przestało.
SELECT distinct ps_product_lang.name as name, meta_title, meta_description, meta_keywords, description_short, ps_manufacturer.name as manufacturer
FROM ps_product_lang, ps_manufacturer, ps_product
WHERE ps_product_lang.id_lang = 3 AND ps_product_lang.id_product = 25 AND
ps_product_lang.id_product=ps_product.id_product AND
ps_manufacturer.id_manufacturer=ps_product.id_manufacturer

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #8 dnia: Październik 22, 2009, 03:53:15 pm »
nie moge sie teraz tym zająć mam spoznione deadline - jak do przyszlego tyg nic nie wymyslisz - postaram sie wrzucic to na tapete ;)
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: zmiana title
« Odpowiedź #9 dnia: Październik 29, 2009, 12:10:48 am »
Minął już ponad tydzień, ale nadal nie doszukałem się błędu w moim zapytaniu SQL.

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #10 dnia: Październik 29, 2009, 09:55:10 am »
SELECT distinct ps_product_lang.name as name, meta_title, meta_description, meta_keywords, description_short, ps_manufacturer.name as manufacturer
FROM ps_product_lang, ps_manufacturer, ps_product
WHERE ps_product_lang.id_lang = 3 AND ps_product_lang.id_product = 7 AND
ps_product_lang.id_product=ps_product.id_product AND
ps_manufacturer.id_manufacturer=ps_product.id_manufacturer

wynik = 0


wykonaj to na normalnej instalacji - nie działa w tym przypadku (ID 7) ;)  - blad jest powodowany przez przypisanie kilku producentow do wariantow produktu

SELECT distinct ps_product_lang.name as name, meta_title, meta_description, meta_keywords, description_short, ps_manufacturer.name as manufacturer
FROM ps_product_lang, ps_manufacturer, ps_product
WHERE ps_product_lang.id_lang = 3 AND ps_product_lang.id_product = 7 AND
ps_product_lang.id_product=ps_product.id_product

to zapytanie daj dwa wyniki (apple i shure)


uzywając

ps_product_lang.id_product=ps_product.id_product LIMIT 1 - uciekamy nieco nieładnie z dwóch wyników i ratujemy query ;)

ponizszy kod dziala u mnie bez problemu

http://zielonawrozka.com/product.php?id_product=5  // jeden producent
http://zielonawrozka.com/product.php?id_product=7  // dwóch - wyświetlany pierwszy


tak czy inaczej wychodzac z twojego zapytania niewiele zmienilem oprocz wyczyszczenia tego co uznalem za mogące powodować błąd

pozdrawiam
Pawel
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-

*

Offline motorider

  • Stały użytkownik
  • ***
  • 66
  • 0
Odp: zmiana title
« Odpowiedź #11 dnia: Październik 29, 2009, 11:20:28 am »
Twój sposób działa, ale zauważyłem, że mój dla niektórych produktów również. Czy możesz mi wyjaśnić czym wg Ciebie jest wariant produktu?

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #12 dnia: Październik 29, 2009, 11:25:04 am »
mozesz miec przypisanych kilku producentow do produktu i to w sumie jest wazne - wariant czy tam artybut to juz bez znaczenia ;)
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-

*

Offline scholl

  • Wdrożenia PrestaShop
  • Mieszkaniec
  • *****
  • 511
  • 0
  • Płeć: Mężczyzna
Odp: zmiana title
« Odpowiedź #13 dnia: Październik 29, 2009, 11:25:47 am »
mi się wydaje, że title -> to jest to samo co nazwa skepu. Wystarczy w tym miejscu wpisać "Nazwa_sklepu i część reklamowa", tak mi się wydaje ale nie jestem pewny.
Pozdrawiam

*

Offline Paweł Sokołowski

  • Mieszkaniec
  • *****
  • 413
  • 10
    • Studio Eline.pl
Odp: zmiana title
« Odpowiedź #14 dnia: Październik 29, 2009, 11:39:23 am »
Rider jak zrobisz daj link - chcialbym zobaczyc jak sie to zachowuje w produkcji ;)
Moduły na życzenie, modyfikacje PrestaShop. | Pozycjonowanie sklepów STUDIO ELINE.pl | -> Katalog Sklepów PrestaShop <-