Jump to content
jkovac

Jak načíst data z DB

Recommended Posts

Dobrý den,

našel by se někdo ochotný a popsal mi jak načíst data z DB a použít je v tpl.

Chci udělat úplně triviální modul, který načte a zobrazí dopravce a jejich ceny (abych nemusel pořád upravovat cms info o dopravě při změně ceny) SQL dotaz v PHP je mi jasný, ale asi mám problém pochopit context z dokumentace prestashopu. Potřeboval bych aspoň nápovědu jak bude vypadat funkce v php (předpokládám v ModuleFrontControlleru) a potom zobrazení dat v tpl.

Kromě dokumentace presty jsem díval i sem ale prostě to nechápu. Možná kdyby byla nějaká podrobnější dokumentace ohledně context a smarty.

Předem mockrát děkuji všem ochotným.

Share this post


Link to post
Share on other sites

komentar ku Kroku 4 z http://nemops.com/creating-new-pages-in-prestashop/#.Uu0a61JdXeW

 

 
public function initContent()
{
    parent::initContent();
 
    $products_partial = Product::getProducts($this->context->language->id, 0, 5, 'name', 'asc');
//staticka funkcia/metoda triedy Product. vytiane produkty z DB, pre dopravcov mozes pouzit nieco Carrier::getCarriers()
    $products = Product::getProductsProperties($this->context->language->id, $products_partial);
//naJOINuje viac udajov k zoznamu produktov $products_partian napr: cenu,zlavu, ake funkcie trieda Carrier poskytuje si pozrite v subore classes/Carrier.php
//ak chcete pouzit SQL dotaz, tak sa pouziva trieda Db:
/*
$result = Db::getInstance()->executeS('
SELECT c.`id_category`
FROM `'._DB_PREFIX_.'category_product` cp
LEFT JOIN `'._DB_PREFIX_.'category` c ON (c.`id_category` = cp.`id_category`)
'.Shop::addSqlAssociation('category', 'c', true, null, true).'
WHERE cp.`id_category` NOT IN ('.implode(',', array_map('intval', $categories)).')
AND cp.id_product = '.$this->id
);
 
foreach ($result as $categ_to_delete)
$this->deleteCategory($categ_to_delete['id_category']);
 
executeS vrati riadky ako pole objektov*/
    $this->context->smarty->assign(array(
        'products' => $products,
        'homeSize' => Image::getSize('home_default')
    )); /*
nazov a hodnota, premennej ktora sa preda do sablony, odporucam si zapnut smarty debug okno v nastaveniach prestashopu (Nastroje -> Vykon). 
Ak zvolite Otevřít konzoli s parametrem URL (SMARTY_DEBUG) tak potom staci pridat do parametrov url SMARTY_DEBUG napr: shop.cz/?SMARY_DEBUG. 
Vo vyskakujucom okne najdete ktore sablony sa rendrovali a ake premenne sa priradili
*/
    $this->setTemplate('allproducts.tpl');
}
myslim, ze dost pomaha pozriet sa na nejaky hotovy jednoduchy modul a podla toho sa to snazit pochopit Edited by Kimi (see edit history)

Share this post


Link to post
Share on other sites

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More