maxart Posted August 24, 2013 Share Posted August 24, 2013 (edited) Witam Pracuję nad modułem, który ma mieć w back office możliwość wyboru strony ekranu, na której będzie wyświetlany i pole do wpisania zmiennej z nazwą użytkownika, jednak po wgraniu go do presty ustawienia w ogóle się nie wyświetlają, oto kod: <?php class maxart_ extends Module { function __construct(){ ... } function install(){ if (parent::install() == false OR $this->registerHook('header') == false ){ return false; } return true; } public function getconf(){ $array['maxart_where']=Configuration::get('maxart_where'); $array['maxart_url']=Configuration::get('maxart_url'); return $array; } public function psversion() { $version=_PS_VERSION_; $exp=$explode=explode(".",$version); return $exp[1]; } public function getContent(){ $output=""; if (Tools::isSubmit('submit_settings')){ Configuration::updatevalue('maxart_where',$_POST['maxart_where']); Configuration::updatevalue('maxart_url',$_POST['maxart_url']); $output.='<div class="conf confirm"><img src="../img/admin/ok.gif" alt="'.$this->l('Settings Saved').'" />'.$this->l('Settings Saved').'</div>'; } return $output.$this->displayForm(); } public function displayForm(){ $var=$this->getconf(); $maxart_where1=""; $maxart_where2=""; if ($var['maxart_where']=="1"){$maxart_where1="checked=\"yes\"";} if ($var['maxart_where']=="2"){$maxart_where2="checked=\"yes\"";} $form='<div id="module_block_settings"> <fieldset id="fieldset_module_block_settings"> <legend style="display:inline-block;"><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend> <form action="'.$_SERVER['REQUEST_URI'].'" method="post"> <label>'.$this->l('Left side').'</label> <div class="margin-form"> <input type="radio" name="maxart_where" value="1" '.$maxart_where1.'/> </div> <label>'.$this->l('Right side').'</label> <div class="margin-form"> <input type="radio" name="maxart_where" value="2" '.$maxart_where2.'/> </div> <label>'.$this->l('Name').'</label> <div class="margin-form"> <input type="text" name="maxart_name" value="'.$var['maxart_name'].'"/> </div> <center><input type="submit" name="submit_settings" value="'.$this->l('Save Settings').'" class="button" /></center> </form> </fieldset> </div>'; } function hookheader($params){ $var=$this->getconf(); global $smarty; $smarty->assign('var', $var); return $this->display(__FILE__, 'maxart.tpl'); } } ?> Nie wiem gdzie jest błąd powodujący brak okna konfiguracji. Edited August 24, 2013 by maxart (see edit history) Link to comment Share on other sites More sharing options...
vekia Posted August 24, 2013 Share Posted August 24, 2013 witam trochę jest to jak wróżenie z fusów, albowiem nie znam szczegółów, jak wygląda kod modułu? szczególnie funkcja odpowiedzialna za konfigurację? Link to comment Share on other sites More sharing options...
maxart Posted August 24, 2013 Author Share Posted August 24, 2013 (edited) Myślałem, że zawartość .tpl nie ma wpływu na kod wykonywany w .php. Jeszcze go nie skonstruowałem, brak mi trochę wiedzy i tak na prawdę kod .php napisałem edytując istniejące moduły. Czy kod podany w poprzednim poście nie zawiera błędów? PS. mam jakieś problemy z klawiaturą i po wpisaniu ą, strona zatwierdza post, dlatego też temat był podwojony. Edited August 24, 2013 by maxart (see edit history) Link to comment Share on other sites More sharing options...
vekia Posted August 24, 2013 Share Posted August 24, 2013 dziwnie znajomy kod brakuje return $form na końcu funkcji displayForm() Link to comment Share on other sites More sharing options...
maxart Posted August 26, 2013 Author Share Posted August 26, 2013 jesteś bardzo spostrzegawczy tak jak pisałem, niestety nie za wiele wiem na temat programowania dlatego posiłkuję się istniejącymi kodami i tutkami na forum. dzięki za odpowiedź, teraz oczywiście męczę się z przypisaniem zmiennych... taka już dola nowicjusza 1 Link to comment Share on other sites More sharing options...
Recommended Posts