Автор Тема: Добавление товара  (Прочитано 679 раз)

19 Декабрь 2015, 19:07:21
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте
Престашоп версия 1.6.0.9, установили шаблон
подскажите в чем может быть проблема? при добавлении товара выводит вот эту ошибку :

Warning: Cannot modify header information - headers already sent by (output started at /home/x/xiolin/i-kros/public_html/modules/postabcateslider1/postabcateslider1.php:2) in /home/x/xiolin/i-kros/public_html/classes/controller/AdminController.php on line 1432
19 Декабрь 2015, 19:25:35
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Это не ошибка, предупреждение.
У вас продубоирован модуль postabcateslider1, но сделано это с ошибкой. Нужно или удалить модуль postabcateslider1, или найти в нем причину предупреждения.
19 Декабрь 2015, 19:33:19
Ответ #2
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
а что значит продублирован? и где именно искать причину предупреждения?
19 Декабрь 2015, 19:45:00
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Основной модуль postabcateslider.
Дублировать, значит добавть такой же, изменив название postabcateslider1.
Искать в модуле postabcateslider1. Включите показ ошибок в prestashop.
http://prestashop-forum.ru/index.php/topic,1304.0.html
Это может показать в каком файле нужно искать.
19 Декабрь 2015, 19:49:59
Ответ #4
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Когда включаешь модуль , который показывает ошибки он показывает вот это Warning: Cannot modify header information — headers already sent by (output started at /home/x/xiolin/i-kros/public_html/modules/postabcateslider1/postabcateslider1.php:2) in /home/x/xiolin/i-kros/public_html/classes/controller/AdminController.php on line 1432

При выключенном модуле - при добавлении товара , когда нажимаешь Сохранить, просто пустая белая страница
20 Декабрь 2015, 12:17:54
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если тема платная, напишите в тех поддержку, пусть исправят ошибку.
Если бесплатная, то найдите другую. Зачем использовать тему которая сделанна с ошибками?

Если хотите сами исправлять ошибки, то включайте показ ошибок, отключайте кеширование. Зайдите в папку модуля postabcateslider1, проверьте замещает он контроллер AdminController.php (в установочной функции и наличие одноименного контроллера в папке /override/controllers/ ).
20 Декабрь 2015, 12:25:15
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Пересохраните файлы модуля в кодировке UTF-8 без BOM. В основном эта ошибка связанна с неправльной кодировкой файлов.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
20 Декабрь 2015, 20:38:03
Ответ #7
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем спасибо за ответы
Но проблема не решилась
21 Декабрь 2015, 11:01:10
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
При заполнении полей в модуле не используйте теги html.
21 Декабрь 2015, 19:28:54
Ответ #9
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если тема платная, напишите в тех поддержку, пусть исправят ошибку.
Если бесплатная, то найдите другую. Зачем использовать тему которая сделанна с ошибками?

Если хотите сами исправлять ошибки, то включайте показ ошибок, отключайте кеширование. Зайдите в папку модуля postabcateslider1, проверьте замещает он контроллер AdminController.php (в установочной функции и наличие одноименного контроллера в папке /override/controllers/ ).

а как проверить замещает ли он контроллер AdminController.php?
21 Декабрь 2015, 19:30:15
Ответ #10
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот код postabcateslider1 , не могу найти в чем причина
<?php 
if (!defined('_PS_VERSION_')) 
exit; 

class 
postabcateslider1 extends Module 
public function 
__construct() { 
$this->name 'postabcateslider1'
$this->tab 'front_office_features'
$this->version '1.5'
$this->author 'posthemes'
$this->_html ''
$this->spacer_size ='5'
$this->_postErrors =array(); 
$this->displayName $this->l('Category Tabs Slider 1'); 
$this->description $this->l('Category Tabs Slider 1'); 
parent :: __construct(); 


public function 
install() { 
Configuration::updateValue($this->name '_p_on_row'5); 
Configuration::updateValue($this->name '_p_limit'8); 
Configuration::updateValue($this->name '_tab_effect''wiggle'); 
Configuration::updateValue($this->name '_title'$this->l('Cateogry Tabs')); 

$arrayDefault = array('2','3'); 
$cateDefault implode(',',$arrayDefault); 
Configuration::updateGlobalValue($this->name '_list_cate',$cateDefault); 

return 
parent :: install() 
&& 
$this->registerHook('home'
&& 
$this->registerHook('top'
&& 
$this->registerHook('header'
&& 
$this->registerHook('imgmore'
&& 
$this->registerHook('tabCategoryslider1'
&& 
$this->registerHook('actionOrderStatusPostUpdate'
&& 
$this->registerHook('addproduct'
&& 
$this->registerHook('updateproduct'
&& 
$this->registerHook('deleteproduct'); 


public function 
uninstall() { 
$this->_clearCache('postabcateslider1.tpl'); 
return 
parent::uninstall(); 

public function 
setMedia() 

parent::setMedia(); 
if (
count($this->errors)) 
return ; 

if (!
$this->useMobileTheme()) 


$this->addJqueryPlugin('bxslider'); 



public function 
hookHeader($params){ 
// $this->context->controller->addCSS(($this->_path).'postabcateslider1.css', 'all'); 
$this->context->controller->addCSS(($this->_path).'animate.delay.css''all'); 
$this->context->controller->addCSS(($this->_path).'animate.min.css''all'); 

// Hook Home 
public function hookTabCategoryslider1($params) { 
$nb Configuration::get($this->name '_p_limit'); 
$product_on_row Configuration::get($this->name '_p_on_row'); 
$arrayCategory = array(); 
$catSelected Configuration::get($this->name '_list_cate'); 
$cateArray explode(','$catSelected); 
$id_lang = (int) Context::getContext()->language->id
$id_shop = (int) Context::getContext()->shop->id
$arrayProductCate = array(); 

foreach(
$cateArray as $id_category) { 
$category = new Category((int) $id_category, (int) $id_lang, (int) $id_shop); 
$child_cate Category::getChildren($id_category,$id_lang); 
$html ''
$files scandir(_PS_CAT_IMG_DIR_); 
if (
count($files) > 0

$k=0
$html .= '<div class="category-thumbnail">'
foreach (
$files as $value=>$file){ 
// $test = @explode("_",$file); 
if (preg_match('/'.$id_category.'-([0-9])?_thumb.jpg/i',substr($file,0)) === 1){ 
if (
preg_match('/'.$id_category.'-([0-9])?_thumb.jpg/i',substr($file,1))!=1){ 
$k++; 
$html .= '<div class ="thumb'.$k.'"><img src="'.$this->context->link->getMediaLink(_THEME_CAT_DIR_.$file).'" 
class="imgm" alt="No image" /></div>'

}} 

// $k++; 
$html .= '</div>'

$categoryProducts $category->getProducts($this->context->language->id0,($nb $nb 5)); 
$arrayProductCate[] = array('id' => $id_category'name'=> $category->name'product' => $categoryProducts'child_cate'=>$child_cate,'html'=>$html); 


$this->smarty->assign(array( 
'productCates' => $arrayProductCate
'child_cate' =>$child_cate
'html'=>$html
'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 
'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 
'product_on_row' => $product_on_row
'tab_effect' => Configuration::get($this->name '_tab_effect'), 
'title' => Configuration::get($this->name '_title'), 
)); 
return 
$this->display(__FILE__'postabcateslider1.tpl'); 
}
19:26:27
private function 
_installHookCustomer(){ 
$hookspos = array( 
'tabCategory'
); 
foreach( 
$hookspos as $hook ){ 
if( 
Hook::getIdByName($hook) ){ 

} else { 
$new_hook = new Hook(); 
$new_hook->name pSQL($hook); 
$new_hook->title pSQL($hook); 
$new_hook->add(); 
$id_hook $new_hook->id


return 
true


public function 
getContent() { 
$output '<h2>' $this->displayName '</h2>'
if (
Tools::isSubmit('submitPosTabCate')) { 
if (!
sizeof($this->_postErrors)) 
$this->_postProcess(); 
else { 
foreach (
$this->_postErrors AS $err) { 
$this->_html .= '<div class="alert error">' $err '</div>'



return 
$output $this->_displayForm(); 


public function 
getSelectOptionsHtml($options NULL$name NULL$selected NULL) { 
$html ""
$html .='<select name =' $name ' style="width:130px">'
if (
count($options) > 0) { 
foreach (
$options as $key => $val) { 
if (
trim($key) == trim($selected)) { 
$html .='<option value=' $key ' selected="selected">' $val '</option>'
} else { 
$html .='<option value=' $key '>' $val '</option>'



$html .= '</select>'
return 
$html


private function 
_postProcess() { 
if(
Tools::isSubmit('submitPosTabCate')){ 
Configuration::updateValue($this->name '_list_cate'implode(','Tools::getValue('list_cate'))); 
Configuration::updateValue($this->name '_p_on_row'Tools::getValue('p_on_row')); 
Configuration::updateValue($this->name '_p_limit'Tools::getValue('p_limit')); 
Configuration::updateValue($this->name '_tab_effect'Tools::getValue('tab_effect')); 
Configuration::updateValue($this->name '_title'Tools::getValue('title')); 
$this->_html.= $this->displayConfirmation($this->l('Settings updated successfully.')); 

return 
$this->_html


private function 
_displayForm(){ 

$tabEffect = array(); 
$tabEffect = array( 
'none' => 'None'
'hinge' => 'Hinge'
'flash' => 'Flash'
'shake' => 'Shake'
'bounce' => 'Bounce'
'tada' => 'Tada' 
'swing' => 'Swing'
'wobble' => 'Wobble'
'pulse' => 'Pulse'
'flip' => 'Flip'
'flipInX' => 'FlipInX'
'flipInY' => 'FlipInY'
'fadeIn' => 'FadeIn'
'bounceInUp' => 'BounceInUp'
'fadeInLeft' => 'FadeInLeft'
'rollIn' => 'RollIn'
'lightSpeedIn' => 'LightSpeedIn'
'wiggle' => 'Wiggle'
'rotateIn' => 'RotateIn'
'rotateInUpLeft' => 'RotateInUpLeft'
'rotateInUpRight' => 'RotateInUpRight' 

); 
$this->_html .= 
<form action="'
.$_SERVER['REQUEST_URI'].'" method="post"> 
<fieldset> 
<legend><img src="../img/admin/cog.gif" alt="" class="middle" />' 
$this->l('Settings') . '</legend> 
<label>'
.$this->l('Effect Tab: ').'</label> 
<div class="margin-form">'

$this->_html .= $this->getSelectOptionsHtml($tabEffect,'tab_effect', (Tools::getValue('tab_effect') ? Tools::getValue('tab_effect') : Configuration::get($this->name '_tab_effect'))); 
$this->_html .=
</div>'


$this->_html .= '<label>' $this->l('Show Link/Label Category: ') . '</label>'
$this->_html .= '<div class="margin-form">'
$this->_html .= '<select multiple="multiple" name ="list_cate[]" style="width: 200px; height: 160px;">'
// BEGIN Categories 
$id_lang = (int) Context::getContext()->language->id
$this->getCategoryOption(1, (int) $id_lang, (int) Shop::getContextShopID()); 
$this->_html .= '</select> 
</div>'

$this->_html .='<label>'.$this->l('Products on Row: ').'</label> 
<div class="margin-form"> 
<input type = "text" name="p_on_row" value ='
. (Tools::getValue('p_on_row')?Tools::getValue('p_on_row'): Configuration::get($this->name.'_p_on_row')).' ></input> 
</div> 
<label>'
.$this->l('Products Limit: ').'</label> 
<div
class="margin-form"> 
<input type = "text" name="p_limit" value ='
.(Tools::getValue('p_limit')?Tools::getValue('p_limit'): Configuration::get($this->name.'_p_limit')).' ></input> 
</div> 
<input type="submit" name="submitPosTabCate" value="'
.$this->l('Update').'" class="button" /> 
</fieldset> 
</form>'

return 
$this->_html



private function 
getCategoryOption($id_category 1$id_lang false$id_shop false$recursive true) { 
$id_lang $id_lang ? (int) $id_lang : (int) Context::getContext()->language->id
$category = new Category((int) $id_category, (int) $id_lang, (int) $id_shop); 
if (
is_null($category->id)) 
return; 
$spacer NULL
if (
$recursive) { 
$children Category::getChildren((int) $id_category, (int) $id_langtrue, (int) $id_shop); 
$spacer str_repeat('&nbsp;'$this->spacer_size * (int) $category->level_depth); 


$shop = (object) Shop::getShop((int) $category->getShopID()); 
$cateCurrent Configuration::get($this->name '_list_cate'); 
$cateCurrent explode(','$cateCurrent); 
$value = (int) $category->id
if (
in_array($value$cateCurrent)) { 
$this->_html .= '<option value="' . (int) $category->id '" selected ="selected">' . (isset($spacer) ? $spacer '') . $category->name '</option>'
} else { 
$this->_html .= '<option value="' . (int) $category->id '">' . (isset($spacer) ? $spacer '') . $category->name '</option>'

if (isset(
$children) && count($children)) 
foreach (
$children as $child) { 
$this->getCategoryOption((int) $child['id_category'], (int) $id_lang, (int) $child['id_shop']); 





?>
22 Декабрь 2015, 12:11:17
Ответ #11
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
При заполнении полей в модуле не используйте теги html.
Как вы заполняете поля модуля? Без html/css/js кода?