jkovac Posted January 31, 2014 Share Posted January 31, 2014 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. Link to comment Share on other sites More sharing options...
Kimi Posted February 1, 2014 Share Posted February 1, 2014 (edited) 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 February 1, 2014 by Kimi (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts