Jump to content

Putin ajutor pentru un modul, cine are vreme


Abh

Recommended Posts

E reteta zilei, ceva de genul asta. Cred ca ar putea fi folosit si pentru a configura un PC pe viitor. Intr-un final ar trebui sa faca ceva in genul asta: http://edhd.ro/reteta/44/Supa-de-legume-cu-ciuperci.aspx
Am o functie pentru BO cu un form continand mai multe campuri. Rezultatul acelor intrari va trebui afisat in FO pentru inceput.

Am creat blocul, care are un link spre reteta respectiva. Insa incotro ar trebui sa mearga link-ul? Trebuie neaparat sa creez un alt php? Se mai pune problema cum sa separ in tpl codul care afiseaza blocul de codul care imi va printa ce introduc in BO, asta daca nu fac ceva gen form.php/form.tpl.

Inca ceva. Niste bucati din cod:

class blockrecipe extends Module
...
public function getContent()
   {    
       if (Tools::isSubmit('submit'))
       {
           Configuration::updateValue($this->name.'_message', Tools::getValue('recipe_name'));
...
       }
       $this->_displayForm();
       return $this->_html;
   }
...
public function _displayForm()
   {
       $this->_html .= '
       <form action="'.$_SERVER['REQUEST_URI'].'" method="post">

'.$this->l('Recipe name').'

               <input type="text" name="recipe_name" />

...



Intrebarea e cum declar, spre exemplu, recipe_name ca variabila ca sa o pot folosi in tpl? Trebuie sa folosesc neaparat baza de date sa pot afisa acel input?
Sau poate gandesc eu gresit, cum pot afisa in FO ce am introdus in acel camp din BO?

Multumesc anticipat pentru oricat de putin ajutor.

Link to comment
Share on other sites

da trebuie sa memorezi continutul din BO in DB sau fisiere xml, etc .. din care sa preiei continutul lor iar pentru afisare in FO
din expl dat de tine varibila dorita este memorata in DB cu Configuration::updateValue($this->name.'_message' .....
ca sa preiei de oridune ai nevoie de Configuration::get($this->name.'_message'

singura pb este ca la preluare nu stii ce contine $this->name

daca aveai in schimb Configuration::updateValue('vaoareinputrecipe') atunci era chiar usor sa preiei continul cu
Configuration::get('vaoareinputrecipe')

Link to comment
Share on other sites

updateValue e de forma updateValue($key, $values, $html = false), îmi dă eroare, deci nu pot folosi Configuration::updateValue(‘valoare’), mă gândesc că am nevoie să declar un array din valorile pe care le introduc cumva prin BO şi pe urmă să folosesc acel array ca să le atribui niste variabile pentru output din .tpl.
Însă deocamdată nu am reuşit să-mi dau seama cum îl creez. De fapt mă tot chinui să am un output, orice, în FO ca să mi se aprindă beculeţul şi să pot merge mai departe.

Link to comment
Share on other sites

Ok, am trecut de faza de mai sus, intrebarea acum e cum as putea face sa afisez doar produsele pe care le vreau. Imi vin doua metode in cap:
1. sa introduci din BO id-urile produselor pe care le vrei afisate, sa stie scriptul ce anume sa afiseze din baza de date,
2. fac o categorie noua, special pentru asta, chem toate produsele din categorie sa fie afisate si de cate ori vreau sa schimb reteta schimb pur si simplu produsele din acea categorie. atata ar trebui sa-mi dau seama cum o fac sa nu apara in blocul de categorii, dar nu cred ca ar fi asa de greu asta.

Alte idei? Mie mi se pare mai usor de utilizat si facut a doua metoda, mai ales ca nu trebuie sa te uiti dupa id-urile produselor de cate ori vrei sa schimbi reteta.

Link to comment
Share on other sites

Am o problema la afisare, nu ia numele si descrierea. Am luat niste cod din modulul homefeatured products, dincolo functioneaza si aici nu. Primesc constant "trying to get property of non-object" pe liniile 102, 111, 112.
Atasez si modulul in speranta ca se va uita cineva peste cod. Eu nu-mi dau seama ce ar mai trebui sa fac din moment ce am creat obiectul.

blockrecipe.zip

Link to comment
Share on other sites

Nimeni? :(
De ce nu pot apela getProducts din obiectul Category?

       $category = new Category(1);
       $nb = intval(Configuration::get('recipe_nbr'));
       $products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10));

Link to comment
Share on other sites

×
×
  • Create New...