Tutorial: RSS feed produktů pro Bakery modul

Tutorialy, Vývoj webu

Při mém seznamování se s modulem Bakery pro redakční systém Websitebaker jsem narazila na jeden malinký nedostatek – není zde žádný RSS feed nejnovějších produktů. Proto jsem se rozhodla si ho sama napsat a pro ty, kteří by chtěli tento feed používat, jsem připravila následující návod jak na to.

Budeme pracovat s MySQL databází (phpMyAdmin), jedním souborem z modulu a vytvoříme si vlastní soubor pro vypisování RSS feedu. Ještě než se pustíte do práce, zazálohujte si prosím databázi!

Přihlašte se do svého phpMyAdmin, přihlašovací jméno byste měli získat od svého webhostingu.

Otevřete si okno pro vykonávání MySQL dotazů. Nyní budeme upravovat tabulku mod_bakery_items, do které přidáme sloupec hodnot, nazvaný ‘created_when’. Bude sloužit pro datum, kdy byl produkt přidán do obchodu.

Ptáte se, proč místo toho nepoužít ‘modified_when’? Odpověď je jednoduchá. Toto pole se po každém upravení daného produktu mění. Tím pádem by se aktualizoval i RSS feed např. starými položkami. Sloupec vložíme následovně:

ALTER TABLE mod_bakery_items ADD created_when INT(11) AFTER full_desc;

Pokud jste si zvolili pro databázi nějakou předponu, nezapomeňte ji uvést! Dále sloupec ‘created_when’ naplníme daty z pole ‘modified_when’. Je to jen pro začátek pro již existujíci produkty.

UPDATE mod_bakery_items SET created_when=modified_when;

Aby se nám při každém novém produktu aktualizovala tabulka se správným datem vložení, je nutné upravit soubor modules/bakery/add_item.php a v něm upravíme řádek 33, kde se produkt vkládá do databáze. Jednoduše přidáme ‘created_when’ a pro získání data využijeme PHP funkce mktime(), která bez argumentů vrací současné datum a čas.

 $database->query("INSERT INTO ".TABLE_PREFIX."mod_bakery_items (section_id,page_id,
position,active,created_when) VALUES ('$section_id','$page_id','$position','1',
".@mktime().")");

Teď je nutné vytvořit soubor pro vypisování RSS feedu. Můžete si daný soubor stáhnout níže a nahrát např. do kořenového adresáře. Nezapomeňte potom tento soubor upravit, aby vše správně fungovalo.

Stáhnout RSS feed

A je hotovo!

Pokud využíváte snippet Lastitems pro zobrazování naposledy přidaných položek, zajisté jste si všimli, že po upravení produktu se produkt zobrazí právě jako naposledy přidaná položka. Teď, když jsme přidali datum vytvoření, je editace snippetu jednoduchá.

Upravíme soubor modules/lastitems/include.php na řádku 113 a místo ‘modified_when’ napíšeme ‘created_when’. Celý dotaz na databázi bude vypadat následovně:

$query_items = $database->query("SELECT item_id, title, price, link, description, 
main_image FROM ".TABLE_PREFIX."mod_bakery_items WHERE active = '1' AND 
title != '' ORDER BY modified_when DESC LIMIT ".$num_items);

Pokud máte nějaké dotazy nebo vám něco nefunguje, dejte mi prosím vědět, ráda vám pomůžu. :)


Webdesigner Dana Švédová

Jsem webdesigner na volné noze se zálibou ve čtení, psaní a hudbě. Během mého několikaletého působení v tomto oboru jsem se podílela na množství různorodých projektů. Zakládám si na osobní komunikaci s klientem, zodpovědném a pečlivém přístupu k práci.

Přihlašte se k odběru novinek

Máte-li zájem o zasílání novinek, zadejte prosím svůj e-mail níže.

Komentáře

Tento článek zatím nemá komentáře.

Přidejte komentář

← Starší    Novější →