PuroArgan Posted December 2, 2012 Share Posted December 2, 2012 Muy buenas. Tengo un problema con este modulo y es que hace unos dias cambie la posicion del modulo y la puse en el Top of Page pero ahora que quiero empezar a editar las imagenes no encuentro el modulo en el apartado de modulos. Me he fijado que muestre todos los modulos, los instalados y los no y nada, que no aparece. Alguien sabe algo o como podría solucionarlo?? Gracias de antemano Link to comment Share on other sites More sharing options...
PuroArgan Posted December 2, 2012 Author Share Posted December 2, 2012 Me acabo de dar cuenta que arriba de la pagina me sale este error: El siguiente módulo(s) no se pudo cargar: homeslider (parse error en /modules/homeslider/homeslider.php) homeslider (la clase que falta en /modules/homeslider/homeslider.php) Segui el tutorial de Victor Ruiz para subir el slider al top of page. Alguna sugerencia??? Link to comment Share on other sites More sharing options...
airwalk Posted December 3, 2012 Share Posted December 3, 2012 Buenas, ¿has probado a desinstalar el módulo e instalarlo de nuevo? Link to comment Share on other sites More sharing options...
PuroArgan Posted December 3, 2012 Author Share Posted December 3, 2012 No puedo desinstalarlo porque no me aparece en la lista de modulos, a no ser que lo haga desde el ftp Link to comment Share on other sites More sharing options...
Sergio3946 Posted March 4, 2013 Share Posted March 4, 2013 Hola señores. A mi tambien me a pasado lo mismo, tambien segui el tutorial de Victor Ruiz y ahora me aparece ese error, alguna solución por favor? necesito solucionarlo para seguir con el proyecto. Gracias. Link to comment Share on other sites More sharing options...
nadie Posted March 4, 2013 Share Posted March 4, 2013 Me acabo de dar cuenta que arriba de la pagina me sale este error: El siguiente módulo(s) no se pudo cargar: homeslider (parse error en /modules/homeslider/homeslider.php) homeslider (la clase que falta en /modules/homeslider/homeslider.php) Segui el tutorial de Victor Ruiz para subir el slider al top of page. Alguna sugerencia??? Ese error en principio puede ser por que has modificado el fichero: /homeslider.php Y posiblemente has dejado alguna llave (con llave me refiero a esto } ) sin cerrar. Hola señores. A mi tambien me a pasado lo mismo, tambien segui el tutorial de Victor Ruiz y ahora me aparece ese error, alguna solución por favor? necesito solucionarlo para seguir con el proyecto. Gracias. Revisa que no te hayas comida ninguna llave al editar dicho fichero. Link to comment Share on other sites More sharing options...
Sergio3946 Posted March 4, 2013 Share Posted March 4, 2013 Ese error en principio puede ser por que has modificado el fichero: /homeslider.php Y posiblemente has dejado alguna llave (con llave me refiero a esto } ) sin cerrar. Revisa que no te hayas comida ninguna llave al editar dicho fichero. Acabo de revisar el codigo que copie y pegue y no he visto ningun fallo aparente, ademas que lo abri también con Dreamweaver para que me "chivase" algun posible error de sintaxsis y me dijo que estaba todo correcto Estas son las ultimas lineas del homeslider.php: public function displayStatus($id_slide, $active) { $title = ((int)$active == 0 ? $this->l('Disabled') : $this->l('Enabled')); $img = ((int)$active == 0 ? 'disabled.gif' : 'enabled.gif'); $html = '<a href="'.AdminController::$currentIndex. '&configure='.$this->name.' &token='.Tools::getAdminTokenLite('AdminModules').' &changeStatus&id_slide='.(int)$id_slide.'" title="'.$title.'"><img src="'._PS_ADMIN_IMG_.''.$img.'" alt="" /></a>'; return $html; } public function slideExists($id_slide) { $req = 'SELECT hs.`id_homeslider_slides` as id_slide FROM `'._DB_PREFIX_.'homeslider` hs WHERE hs.`id_homeslider_slides` = '.(int)$id_slide; $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req); return ($row); } public function hookTop($params) { return $this->hookDisplayHome($params); } } Link to comment Share on other sites More sharing options...
Sergio3946 Posted March 5, 2013 Share Posted March 5, 2013 Alguien me puede echar un cable? Link to comment Share on other sites More sharing options...
nadie Posted March 8, 2013 Share Posted March 8, 2013 Alguien me puede echar un cable? Fijate que tengas el fichero así: <?php /* * 2007-2012 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2012 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ /** * @since 1.5.0 * @version 1.2 (2012-03-14) */ if (!defined('_PS_VERSION_')) exit; include_once(_PS_MODULE_DIR_.'homeslider/HomeSlide.php'); class HomeSlider extends Module { private $_html = ''; public function __construct() { $this->name = 'homeslider'; $this->tab = 'front_office_features'; $this->version = '1.2.1'; $this->author = 'PrestaShop'; $this->need_instance = 0; $this->secure_key = Tools::encrypt($this->name); parent::__construct(); $this->displayName = $this->l('Image slider for your homepage'); $this->description = $this->l('Adds an image slider to your homepage.'); } /** * @see Module::install() */ public function install() { /* Adds Module */ if (parent::install() && $this->registerHook('displayHome') && $this->registerHook('actionShopDataDuplication')) { /* Sets up configuration */ $res = Configuration::updateValue('HOMESLIDER_WIDTH', '535'); $res &= Configuration::updateValue('HOMESLIDER_HEIGHT', '300'); $res &= Configuration::updateValue('HOMESLIDER_SPEED', '500'); $res &= Configuration::updateValue('HOMESLIDER_PAUSE', '3000'); $res &= Configuration::updateValue('HOMESLIDER_LOOP', '1'); /* Creates tables */ $res &= $this->createTables(); /* Adds samples */ if ($res) $this->installSamples(); return $res; } return false; } /** * Adds samples */ private function installSamples() { $languages = Language::getLanguages(false); for ($i = 1; $i <= 5; ++$i) { $slide = new HomeSlide(); $slide->position = $i; $slide->active = 1; foreach ($languages as $language) { $slide->title[$language['id_lang']] = 'Sample '.$i; $slide->description[$language['id_lang']] = 'This is a sample picture'; $slide->legend[$language['id_lang']] = 'sample-'.$i; $slide->url[$language['id_lang']] = 'http://www.prestashop.com'; $slide->image[$language['id_lang']] = 'sample-'.$i.'.jpg'; } $slide->add(); } } /** * @see Module::uninstall() */ public function uninstall() { /* Deletes Module */ if (parent::uninstall()) { /* Deletes tables */ $res = $this->deleteTables(); /* Unsets configuration */ $res &= Configuration::deleteByName('HOMESLIDER_WIDTH'); $res &= Configuration::deleteByName('HOMESLIDER_HEIGHT'); $res &= Configuration::deleteByName('HOMESLIDER_SPEED'); $res &= Configuration::deleteByName('HOMESLIDER_PAUSE'); $res &= Configuration::deleteByName('HOMESLIDER_LOOP'); return $res; } return false; } /** * Creates tables */ protected function createTables() { /* Slides */ $res = (bool)Db::getInstance()->execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider` ( `id_homeslider_slides` int(10) unsigned NOT NULL AUTO_INCREMENT, `id_shop` int(10) unsigned NOT NULL, PRIMARY KEY (`id_homeslider_slides`, `id_shop`) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8; '); /* Slides configuration */ $res &= Db::getInstance()->execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider_slides` ( `id_homeslider_slides` int(10) unsigned NOT NULL AUTO_INCREMENT, `position` int(10) unsigned NOT NULL DEFAULT \'0\', `active` tinyint(1) unsigned NOT NULL DEFAULT \'0\', PRIMARY KEY (`id_homeslider_slides`) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8; '); /* Slides lang configuration */ $res &= Db::getInstance()->execute(' CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'homeslider_slides_lang` ( `id_homeslider_slides` int(10) unsigned NOT NULL, `id_lang` int(10) unsigned NOT NULL, `title` varchar(255) NOT NULL, `description` text NOT NULL, `legend` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, `image` varchar(255) NOT NULL, PRIMARY KEY (`id_homeslider_slides`,`id_lang`) ) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=UTF8; '); return $res; } /** * deletes tables */ protected function deleteTables() { $slides = $this->getSlides(); foreach ($slides as $slide) { $to_del = new HomeSlide($slide['id_slide']); $to_del->delete(); } return Db::getInstance()->execute(' DROP TABLE IF EXISTS `'._DB_PREFIX_.'homeslider`, `'._DB_PREFIX_.'homeslider_slides`, `'._DB_PREFIX_.'homeslider_slides_lang`; '); } public function getContent() { $this->_html .= $this->headerHTML(); $this->_html .= '<h2>'.$this->displayName.'.</h2>'; /* Validate & process */ if (Tools::isSubmit('submitSlide') || Tools::isSubmit('delete_id_slide') || Tools::isSubmit('submitSlider') || Tools::isSubmit('changeStatus')) { if ($this->_postValidation()) $this->_postProcess(); $this->_displayForm(); } elseif (Tools::isSubmit('addSlide') || (Tools::isSubmit('id_slide') && $this->slideExists((int)Tools::getValue('id_slide')))) $this->_displayAddForm(); else $this->_displayForm(); return $this->_html; } private function _displayForm() { /* Gets Slides */ $slides = $this->getSlides(); /* Begin fieldset slider */ $this->_html .= ' <fieldset> <legend><img src="'._PS_BASE_URL_.__PS_BASE_URI__.'modules/'.$this->name.'/logo.gif" alt="" /> '.$this->l('Slider configuration').'</legend>'; /* Begin form */ $this->_html .= '<form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post">'; /* Height field */ $this->_html .= ' <label>'.$this->l('Height:').'</label> <div class="margin-form"> <input type="text" name="HOMESLIDER_HEIGHT" id="speed" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_HEIGHT')).'" /> px </div>'; /* Width field */ $this->_html .= ' <label>'.$this->l('Width:').'</label> <div class="margin-form"> <input type="text" name="HOMESLIDER_WIDTH" id="pause" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_WIDTH')).'" /> px </div>'; /* Speed field */ $this->_html .= ' <label>'.$this->l('Speed:').'</label> <div class="margin-form"> <input type="text" name="HOMESLIDER_SPEED" id="speed" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_SPEED')).'" /> ms </div>'; /* Pause field */ $this->_html .= ' <label>'.$this->l('Pause:').'</label> <div class="margin-form"> <input type="text" name="HOMESLIDER_PAUSE" id="pause" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_PAUSE')).'" /> ms </div>'; /* Loop field */ $this->_html .= ' <label for="loop_on">'.$this->l('Loop:').'</label> <div class="margin-form"> <img src="../img/admin/enabled.gif" alt="Yes" title="Yes" /> <input type="radio" name="HOMESLIDER_LOOP" id="loop_on" '.(Configuration::get('HOMESLIDER_LOOP') == 1 ? 'checked="checked"' : '').' value="1" /> <label class="t" for="loop_on">'.$this->l('Yes').'</label> <img src="../img/admin/disabled.gif" alt="No" title="No" style="margin-left: 10px;" /> <input type="radio" name="HOMESLIDER_LOOP" id="loop_off" '.(Configuration::get('HOMESLIDER_LOOP') == 0 ? 'checked="checked" ' : '').' value="0" /> <label class="t" for="loop_off">'.$this->l('No').'</label> </div>'; /* Save */ $this->_html .= ' <div class="margin-form"> <input type="submit" class="button" name="submitSlider" value="'.$this->l('Save').'" /> </div>'; /* End form */ $this->_html .= '</form>'; /* End fieldset slider */ $this->_html .= '</fieldset>'; $this->_html .= '<br /><br />'; /* Begin fieldset slides */ $this->_html .= ' <fieldset> <legend><img src="'._PS_BASE_URL_.__PS_BASE_URI__.'modules/'.$this->name.'/logo.gif" alt="" /> '.$this->l('Slides configuration').'</legend> <strong> <a href="'.AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules').'&addSlide"> <img src="'._PS_ADMIN_IMG_.'add.gif" alt="" /> '.$this->l('Add Slide').' </a> </strong>'; /* Display notice if there are no slides yet */ if (!$slides) $this->_html .= '<p style="margin-left: 40px;">'.$this->l('You have not added any slides yet.').'</p>'; else /* Display slides */ { $this->_html .= ' <div id="slidesContent" style="width: 400px; margin-top: 30px;"> <ul id="slides">'; foreach ($slides as $slide) { $this->_html .= ' <li id="slides_'.$slide['id_slide'].'"> <strong>#'.$slide['id_slide'].'</strong> '.$slide['title'].' <p style="float: right">'. $this->displayStatus($slide['id_slide'], $slide['active']).' <a href="'.AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules').'&id_slide='.(int)($slide['id_slide']).'" title="'.$this->l('Edit').'"><img src="'._PS_ADMIN_IMG_.'edit.gif" alt="" /></a> <a href="'.AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules').'&delete_id_slide='.(int)($slide['id_slide']).'" title="'.$this->l('Delete').'"><img src="'._PS_ADMIN_IMG_.'delete.gif" alt="" /></a> </p> </li>'; } $this->_html .= '</ul></div>'; } // End fieldset $this->_html .= '</fieldset>'; } private function _displayAddForm() { /* Sets Slide : depends if edited or added */ $slide = null; if (Tools::isSubmit('id_slide') && $this->slideExists((int)Tools::getValue('id_slide'))) $slide = new HomeSlide((int)Tools::getValue('id_slide')); /* Checks if directory is writable */ if (!is_writable('.')) $this->adminDisplayWarning(sprintf($this->l('modules %s must be writable (CHMOD 755 / 777)'), $this->name)); /* Gets languages and sets which div requires translations */ $id_lang_default = (int)Configuration::get('PS_LANG_DEFAULT'); $languages = Language::getLanguages(false); $divLangName = 'image¤title¤url¤legend¤description'; $this->_html .= '<script type="text/javascript">id_language = Number('.$id_lang_default.');</script>'; /* Form */ $this->_html .= '<form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post" enctype="multipart/form-data">'; /* Fieldset Upload */ $this->_html .= ' <fieldset class="width3"> <br /> <legend><img src="'._PS_ADMIN_IMG_.'add.gif" alt="" />1 - '.$this->l('Upload your slide').'</legend>'; /* Image */ $this->_html .= '<label>'.$this->l('Select a file:').' * </label><div class="margin-form">'; foreach ($languages as $language) { $this->_html .= '<div id="image_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;">'; $this->_html .= '<input type="file" name="image_'.$language['id_lang'].'" id="image_'.$language['id_lang'].'" size="30" value="'.(isset($slide->image[$language['id_lang']]) ? $slide->image[$language['id_lang']] : '').'"/>'; /* Sets image as hidden in case it does not change */ if ($slide && $slide->image[$language['id_lang']]) $this->_html .= '<input type="hidden" name="image_old_'.$language['id_lang'].'" value="'.($slide->image[$language['id_lang']]).'" id="image_old_'.$language['id_lang'].'" />'; /* Display image */ if ($slide && $slide->image[$language['id_lang']]) $this->_html .= '<input type="hidden" name="has_picture" value="1" /><img src="'.__PS_BASE_URI__.'modules/'.$this->name.'/images/'.$slide->image[$language['id_lang']].'" width="'.(Configuration::get('HOMESLIDER_WIDTH')/2).'" height="'.(Configuration::get('HOMESLIDER_HEIGHT')/2).'" alt=""/>'; $this->_html .= '</div>'; } $this->_html .= $this->displayFlags($languages, $id_lang_default, $divLangName, 'image', true); /* End Fieldset Upload */ $this->_html .= '</fieldset><br /><br />'; /* Fieldset edit/add */ $this->_html .= '<fieldset class="width3">'; if (Tools::isSubmit('addSlide')) /* Configure legend */ $this->_html .= '<legend><img src="'._PS_ADMIN_IMG_.'add.gif" alt="" /> 2 - '.$this->l('Configure your slide').'</legend>'; elseif (Tools::isSubmit('id_slide')) /* Edit legend */ $this->_html .= '<legend><img src="'._PS_BASE_URL_.__PS_BASE_URI__.'modules/'.$this->name.'/logo.gif" alt="" /> 2 - '.$this->l('Edit your slide').'</legend>'; /* Sets id slide as hidden */ if ($slide && Tools::getValue('id_slide')) $this->_html .= '<input type="hidden" name="id_slide" value="'.$slide->id.'" id="id_slide" />'; /* Sets position as hidden */ $this->_html .= '<input type="hidden" name="position" value="'.(($slide != null) ? ($slide->position) : ($this->getNextPosition())).'" id="position" />'; /* Form content */ /* Title */ $this->_html .= '<br /><label>'.$this->l('Title:').' * </label><div class="margin-form">'; foreach ($languages as $language) { $this->_html .= ' <div id="title_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;"> <input type="text" name="title_'.$language['id_lang'].'" id="title_'.$language['id_lang'].'" size="30" value="'.(isset($slide->title[$language['id_lang']]) ? $slide->title[$language['id_lang']] : '').'"/> </div>'; } $this->_html .= $this->displayFlags($languages, $id_lang_default, $divLangName, 'title', true); $this->_html .= '</div><br /><br />'; /* URL */ $this->_html .= '<label>'.$this->l('URL:').' * </label><div class="margin-form">'; foreach ($languages as $language) { $this->_html .= ' <div id="url_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;"> <input type="text" name="url_'.$language['id_lang'].'" id="url_'.$language['id_lang'].'" size="30" value="'.(isset($slide->url[$language['id_lang']]) ? $slide->url[$language['id_lang']] : '').'"/> </div>'; } $this->_html .= $this->displayFlags($languages, $id_lang_default, $divLangName, 'url', true); $this->_html .= '</div><br /><br />'; /* Legend */ $this->_html .= '<label>'.$this->l('Legend:').' * </label><div class="margin-form">'; foreach ($languages as $language) { $this->_html .= ' <div id="legend_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;"> <input type="text" name="legend_'.$language['id_lang'].'" id="legend_'.$language['id_lang'].'" size="30" value="'.(isset($slide->legend[$language['id_lang']]) ? $slide->legend[$language['id_lang']] : '').'"/> </div>'; } $this->_html .= $this->displayFlags($languages, $id_lang_default, $divLangName, 'legend', true); $this->_html .= '</div><br /><br />'; /* Description */ $this->_html .= ' <label>'.$this->l('Description:').' </label> <div class="margin-form">'; foreach ($languages as $language) { $this->_html .= '<div id="description_'.$language['id_lang'].'" style="display: '.($language['id_lang'] == $id_lang_default ? 'block' : 'none').';float: left;"> <textarea name="description_'.$language['id_lang'].'" rows="10" cols="29">'.(isset($slide->description[$language['id_lang']]) ? $slide->description[$language['id_lang']] : '').'</textarea> </div>'; } $this->_html .= $this->displayFlags($languages, $id_lang_default, $divLangName, 'description', true); $this->_html .= '</div><div class="clear"></div><br />'; /* Active */ $this->_html .= ' <label for="active_on">'.$this->l('Active:').'</label> <div class="margin-form"> <img src="../img/admin/enabled.gif" alt="Yes" title="Yes" /> <input type="radio" name="active_slide" id="active_on" '.(($slide && (isset($slide->active) && (int)$slide->active == 0)) ? '' : 'checked="checked" ').' value="1" /> <label class="t" for="active_on">'.$this->l('Yes').'</label> <img src="../img/admin/disabled.gif" alt="No" title="No" style="margin-left: 10px;" /> <input type="radio" name="active_slide" id="active_off" '.(($slide && (isset($slide->active) && (int)$slide->active == 0)) ? 'checked="checked" ' : '').' value="0" /> <label class="t" for="active_off">'.$this->l('No').'</label> </div>'; /* Save */ $this->_html .= ' <p class="center"> <input type="submit" class="button" name="submitSlide" value="'.$this->l('Save').'" /> <a class="button" style="position:relative; padding:3px 3px 4px 3px; top:1px" href="'.AdminController::$currentIndex.'&configure='.$this->name.'&token='.Tools::getAdminTokenLite('AdminModules').'">'.$this->l('Cancel').'</a> </p>'; /* End of fieldset & form */ $this->_html .= ' <p>*'.$this->l('Required fields').'</p> </fieldset> </form>'; } private function _postValidation() { $errors = array(); /* Validation for Slider configuration */ if (Tools::isSubmit('submitSlider')) { if (!Validate::isInt(Tools::getValue('HOMESLIDER_SPEED')) || !Validate::isInt(Tools::getValue('HOMESLIDER_PAUSE')) || !Validate::isInt(Tools::getValue('HOMESLIDER_WIDTH')) || !Validate::isInt(Tools::getValue('HOMESLIDER_HEIGHT'))) $errors[] = $this->l('Invalid values'); } /* Validation for status */ elseif (Tools::isSubmit('changeStatus')) { if (!Validate::isInt(Tools::getValue('id_slide'))) $errors[] = $this->l('Invalid slide'); } /* Validation for Slide */ elseif (Tools::isSubmit('submitSlide')) { /* Checks state (active) */ if (!Validate::isInt(Tools::getValue('active_slide')) || (Tools::getValue('active_slide') != 0 && Tools::getValue('active_slide') != 1)) $errors[] = $this->l('Invalid slide state'); /* Checks position */ if (!Validate::isInt(Tools::getValue('position')) || (Tools::getValue('position') < 0)) $errors[] = $this->l('Invalid slide position'); /* If edit : checks id_slide */ if (Tools::isSubmit('id_slide')) { if (!Validate::isInt(Tools::getValue('id_slide')) && !$this->slideExists(Tools::getValue('id_slide'))) $errors[] = $this->l('Invalid id_slide'); } /* Checks title/url/legend/description/image */ $languages = Language::getLanguages(false); foreach ($languages as $language) { if (strlen(Tools::getValue('title_'.$language['id_lang'])) > 40) $errors[] = $this->l('Title is too long'); if (strlen(Tools::getValue('legend_'.$language['id_lang'])) > 40) $errors[] = $this->l('Legend is too long'); if (strlen(Tools::getValue('url_'.$language['id_lang'])) > 200) $errors[] = $this->l('URL is too long'); if (strlen(Tools::getValue('description_'.$language['id_lang'])) > 400) $errors[] = $this->l('Description is too long'); if (strlen(Tools::getValue('url_'.$language['id_lang'])) > 0 && !Validate::isUrl(Tools::getValue('url_'.$language['id_lang']))) $errors[] = $this->l('URL format is not correct'); if (Tools::getValue('image_'.$language['id_lang']) != null && !Validate::isFileName(Tools::getValue('image_'.$language['id_lang']))) $errors[] = $this->l('Invalid filename'); if (Tools::getValue('image_old_'.$language['id_lang']) != null && !Validate::isFileName(Tools::getValue('image_old_'.$language['id_lang']))) $errors[] = $this->l('Invalid filename'); } /* Checks title/url/legend/description for default lang */ $id_lang_default = (int)Configuration::get('PS_LANG_DEFAULT'); if (strlen(Tools::getValue('title_'.$id_lang_default)) == 0) $errors[] = $this->l('Title is not set'); if (strlen(Tools::getValue('legend_'.$id_lang_default)) == 0) $errors[] = $this->l('Legend is not set'); if (strlen(Tools::getValue('url_'.$id_lang_default)) == 0) $errors[] = $this->l('URL is not set'); if (!Tools::isSubmit('has_picture') && (!isset($_FILES['image_'.$id_lang_default]) || empty($_FILES['image_'.$id_lang_default]['tmp_name']))) $errors[] = $this->l('Image is not set'); if (Tools::getValue('image_old_'.$id_lang_default) && !Validate::isFileName(Tools::getValue('image_old_'.$id_lang_default))) $errors[] = $this->l('Image is not set'); } /* Validation for deletion */ elseif (Tools::isSubmit('delete_id_slide') && (!Validate::isInt(Tools::getValue('delete_id_slide')) || !$this->slideExists((int)Tools::getValue('delete_id_slide')))) $errors[] = $this->l('Invalid id_slide'); /* Display errors if needed */ if (count($errors)) { $this->_html .= $this->displayError(implode('<br />', $errors)); return false; } /* Returns if validation is ok */ return true; } private function _postProcess() { $errors = array(); /* Processes Slider */ if (Tools::isSubmit('submitSlider')) { $res = Configuration::updateValue('HOMESLIDER_WIDTH', (int)Tools::getValue('HOMESLIDER_WIDTH')); $res &= Configuration::updateValue('HOMESLIDER_HEIGHT', (int)Tools::getValue('HOMESLIDER_HEIGHT')); $res &= Configuration::updateValue('HOMESLIDER_SPEED', (int)Tools::getValue('HOMESLIDER_SPEED')); $res &= Configuration::updateValue('HOMESLIDER_PAUSE', (int)Tools::getValue('HOMESLIDER_PAUSE')); $res &= Configuration::updateValue('HOMESLIDER_LOOP', (int)Tools::getValue('HOMESLIDER_LOOP')); if (!$res) $errors[] = $this->displayError($this->l('Configuration could not be updated')); $this->_html .= $this->displayConfirmation($this->l('Configuration updated')); } /* Process Slide status */ elseif (Tools::isSubmit('changeStatus') && Tools::isSubmit('id_slide')) { $slide = new HomeSlide((int)Tools::getValue('id_slide')); if ($slide->active == 0) $slide->active = 1; else $slide->active = 0; $res = $slide->update(); $this->_html .= ($res ? $this->displayConfirmation($this->l('Configuration updated')) : $this->displayError($this->l('Configuration could not be updated'))); } /* Processes Slide */ elseif (Tools::isSubmit('submitSlide')) { /* Sets ID if needed */ if (Tools::getValue('id_slide')) { $slide = new HomeSlide((int)Tools::getValue('id_slide')); if (!Validate::isLoadedObject($slide)) { $this->_html .= $this->displayError($this->l('Invalid id_slide')); return; } } else $slide = new HomeSlide(); /* Sets position */ $slide->position = (int)Tools::getValue('position'); /* Sets active */ $slide->active = (int)Tools::getValue('active_slide'); /* Sets each langue fields */ $languages = Language::getLanguages(false); foreach ($languages as $language) { if (Tools::getValue('title_'.$language['id_lang']) != '') $slide->title[$language['id_lang']] = Tools::getValue('title_'.$language['id_lang']); if (Tools::getValue('url_'.$language['id_lang']) != '') $slide->url[$language['id_lang']] = Tools::getValue('url_'.$language['id_lang']); if (Tools::getValue('legend_'.$language['id_lang']) != '') $slide->legend[$language['id_lang']] = Tools::getValue('legend_'.$language['id_lang']); if (Tools::getValue('description_'.$language['id_lang']) != '') $slide->description[$language['id_lang']] = Tools::getValue('description_'.$language['id_lang']); /* Uploads image and sets slide */ $type = strtolower(substr(strrchr($_FILES['image_'.$language['id_lang']]['name'], '.'), 1)); $imagesize = array(); $imagesize = @getimagesize($_FILES['image_'.$language['id_lang']]['tmp_name']); if (isset($_FILES['image_'.$language['id_lang']]) && isset($_FILES['image_'.$language['id_lang']]['tmp_name']) && !empty($_FILES['image_'.$language['id_lang']]['tmp_name']) && !empty($imagesize) && in_array(strtolower(substr(strrchr($imagesize['mime'], '/'), 1)), array('jpg', 'gif', 'jpeg', 'png')) && in_array($type, array('jpg', 'gif', 'jpeg', 'png'))) { $temp_name = tempnam(_PS_TMP_IMG_DIR_, 'PS'); $salt = sha1(microtime()); if ($error = ImageManager::validateUpload($_FILES['image_'.$language['id_lang']])) $errors[] = $error; elseif (!$temp_name || !move_uploaded_file($_FILES['image_'.$language['id_lang']]['tmp_name'], $temp_name)) return false; elseif (!ImageManager::resize($temp_name, dirname(__FILE__).'/images/'.Tools::encrypt($_FILES['image_'.$language['id_lang']]['name'].$salt).'.'.$type, null, null, $type)) $errors[] = $this->displayError($this->l('An error occurred during the image upload.')); if (isset($temp_name)) @unlink($temp_name); $slide->image[$language['id_lang']] = Tools::encrypt($_FILES['image_'.($language['id_lang'])]['name'].$salt).'.'.$type; } elseif (Tools::getValue('image_old_'.$language['id_lang']) != '') $slide->image[$language['id_lang']] = Tools::getValue('image_old_'.$language['id_lang']); } /* Processes if no errors */ if (!$errors) { /* Adds */ if (!Tools::getValue('id_slide')) { if (!$slide->add()) $errors[] = $this->displayError($this->l('Slide could not be added')); } /* Update */ elseif (!$slide->update()) $errors[] = $this->displayError($this->l('Slide could not be updated')); } } /* Deletes */ elseif (Tools::isSubmit('delete_id_slide')) { $slide = new HomeSlide((int)Tools::getValue('delete_id_slide')); $res = $slide->delete(); if (!$res) $this->_html .= $this->displayError('Could not delete'); else $this->_html .= $this->displayConfirmation($this->l('Slide deleted')); } /* Display errors if needed */ if (count($errors)) $this->_html .= $this->displayError(implode('<br />', $errors)); elseif (Tools::isSubmit('submitSlide') && Tools::getValue('id_slide')) $this->_html .= $this->displayConfirmation($this->l('Slide updated')); elseif (Tools::isSubmit('submitSlide')) $this->_html .= $this->displayConfirmation($this->l('Slide added')); } private function _prepareHook() { $slider = array( 'width' => Configuration::get('HOMESLIDER_WIDTH'), 'height' => Configuration::get('HOMESLIDER_HEIGHT'), 'speed' => Configuration::get('HOMESLIDER_SPEED'), 'pause' => Configuration::get('HOMESLIDER_PAUSE'), 'loop' => Configuration::get('HOMESLIDER_LOOP'), ); $slides = $this->getSlides(true); if (!$slides) return false; $this->smarty->assign('homeslider_slides', $slides); $this->smarty->assign('homeslider', $slider); return true; } public function hookDisplayHome() { if(!$this->_prepareHook()) return; // Check if not a mobile theme if ($this->context->getMobileDevice() != false) return false; $this->context->controller->addJS($this->_path.'js/jquery.bxSlider.min.js'); $this->context->controller->addCSS($this->_path.'bx_styles.css'); $this->context->controller->addJS($this->_path.'js/homeslider.js'); return $this->display(__FILE__, 'homeslider.tpl'); } public function hookActionShopDataDuplication($params) { Db::getInstance()->execute(' INSERT IGNORE INTO '._DB_PREFIX_.'homeslider (id_homeslider_slides, id_shop) SELECT id_homeslider_slides, '.(int)$params['new_id_shop'].' FROM '._DB_PREFIX_.'homeslider WHERE id_shop = '.(int)$params['old_id_shop']); } public function headerHTML() { if (Tools::getValue('controller') != 'AdminModules' && Tools::getValue('configure') != $this->name) return; $this->context->controller->addJqueryUI('ui.sortable'); /* Style & js for fieldset 'slides configuration' */ $html = ' <style> #slides li { list-style: none; margin: 0 0 4px 0; padding: 10px; background-color: #F4E6C9; border: #CCCCCC solid 1px; color:#000; } </style> <script type="text/javascript" src="'.__PS_BASE_URI__.'js/jquery/jquery-ui.will.be.removed.in.1.6.js"></script> <script type="text/javascript"> $(function() { var $mySlides = $("#slides"); $mySlides.sortable({ opacity: 0.6, cursor: "move", update: function() { var order = $(this).sortable("serialize") + "&action=updateSlidesPosition"; $.post("'._PS_BASE_URL_.__PS_BASE_URI__.'modules/'.$this->name.'/ajax_'.$this->name.'.php?secure_key='.$this->secure_key.'", order); } }); $mySlides.hover(function() { $(this).css("cursor","move"); }, function() { $(this).css("cursor","auto"); }); }); </script>'; return $html; } public function getNextPosition() { $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT MAX(hss.`position`) AS `next_position` FROM `'._DB_PREFIX_.'homeslider_slides` hss, `'._DB_PREFIX_.'homeslider` hs WHERE hss.`id_homeslider_slides` = hs.`id_homeslider_slides` AND hs.`id_shop` = '.(int)$this->context->shop->id ); return (++$row['next_position']); } public function getSlides($active = null) { $this->context = Context::getContext(); $id_shop = $this->context->shop->id; $id_lang = $this->context->language->id; return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT hs.`id_homeslider_slides` as id_slide, hssl.`image`, hss.`position`, hss.`active`, hssl.`title`, hssl.`url`, hssl.`legend`, hssl.`description` FROM '._DB_PREFIX_.'homeslider hs LEFT JOIN '._DB_PREFIX_.'homeslider_slides hss ON (hs.id_homeslider_slides = hss.id_homeslider_slides) LEFT JOIN '._DB_PREFIX_.'homeslider_slides_lang hssl ON (hss.id_homeslider_slides = hssl.id_homeslider_slides) WHERE (id_shop = '.(int)$id_shop.') AND hssl.id_lang = '.(int)$id_lang. ($active ? ' AND hss.`active` = 1' : ' ').' ORDER BY hss.position'); } public function displayStatus($id_slide, $active) { $title = ((int)$active == 0 ? $this->l('Disabled') : $this->l('Enabled')); $img = ((int)$active == 0 ? 'disabled.gif' : 'enabled.gif'); $html = '<a href="'.AdminController::$currentIndex. '&configure='.$this->name.' &token='.Tools::getAdminTokenLite('AdminModules').' &changeStatus&id_slide='.(int)$id_slide.'" title="'.$title.'"><img src="'._PS_ADMIN_IMG_.''.$img.'" alt="" /></a>'; return $html; } public function slideExists($id_slide) { $req = 'SELECT hs.`id_homeslider_slides` as id_slide FROM `'._DB_PREFIX_.'homeslider` hs WHERE hs.`id_homeslider_slides` = '.(int)$id_slide; $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($req); return ($row); } public function hookTop($params) { return $this->hookDisplayHome($params); } } Link to comment Share on other sites More sharing options...
Sergio3946 Posted March 9, 2013 Share Posted March 9, 2013 Al final lo solucione, mil gracias!!! era un problema realmente absurdo, me salte una linea, es decir tenia una linea en blanco :S Link to comment Share on other sites More sharing options...
nadie Posted March 9, 2013 Share Posted March 9, 2013 Al final lo solucione, mil gracias!!! era un problema realmente absurdo, me salte una linea, es decir tenia una linea en blanco :S Un placer ayudarte y servirte ! Un Saludo Link to comment Share on other sites More sharing options...
ramonmend Posted May 2, 2013 Share Posted May 2, 2013 Hola Yo tengo este mismo problema y no he podido solucionarlo. llevo ya dos dias dandole vuelta al tema, leyendo todos los posts en el forum pero nada. finalmente aqui estoy pidiendo vuestra ayuda. la url de mi pag es www.rmelektronics.com Gracias por alguna luz en este tema Ramonmend Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted May 2, 2013 Share Posted May 2, 2013 Hola Yo tengo este mismo problema y no he podido solucionarlo. llevo ya dos dias dandole vuelta al tema, leyendo todos los posts en el forum pero nada. finalmente aqui estoy pidiendo vuestra ayuda. la url de mi pag es www.rmelektronics.com Gracias por alguna luz en este tema Ramonmend http://www.prestashop.com/forums/index.php?/topic/208064-problema-imagen-de-control-deslizante/page__view__findpost__p__1134917 Link to comment Share on other sites More sharing options...
ramonmend Posted May 2, 2013 Share Posted May 2, 2013 Hola Rubalcaba, gracias por responderme tan rapido. Ese enlace que me envias es el que he estado mirando sin resultado. he incluso reestablecido una copia de seguridad a un estado anterior cuando todo estaba mas o menos normal pero me sigue saliendo el mismo error " homeslider (parse error en /modules/homeslider/homeslider.php) homeslider (la clase que falta en /modules/homeslider/homeslider.php) Link to comment Share on other sites More sharing options...
ramonmend Posted May 2, 2013 Share Posted May 2, 2013 Hola Sergio, podrías decirme como solucionaste ese problema? como puedo verificar el archivo para encontrar errores? Link to comment Share on other sites More sharing options...
ramonmend Posted May 2, 2013 Share Posted May 2, 2013 // Check if not a mobile theme if ($this->context->getMobileDevice() != false) return false; $this->context->controller->addJS($this->_path.'js/jquery.bxSlider.min.js'); $this->context->controller->addCSS($this->_path.'bx_styles.css'); $this->context->controller->addJS($this->_path.'js/homeslider.js'); return $this->display(__FILE__, 'homeslider.tpl', $this->getCacheId()); } public function clearCache() { $this->_clearCache('homeslider.tpl'); } public function hookActionShopDataDuplication($params) { Db::getInstance()->execute(' INSERT IGNORE INTO '._DB_PREFIX_.'homeslider (id_homeslider_slides, id_shop) SELECT id_homeslider_slides, '.(int)$params['new_id_shop'].' FROM '._DB_PREFIX_.'homeslider WHERE id_shop = '.(int)$params['old_id_shop']); $this->clearCache(); La diferencia que he encontrado en el archivo mio instalado, con el que Nadie sugiere comparar es lo que coloco arriba en rojo. He probado quitarlo y dejarlo pero ninguna de esas dos opciones me soluciona el problema. Link to comment Share on other sites More sharing options...
Recommended Posts