Доброго времени суток! наконец я перешел на другой хостинг, мне помогли все перенести, и тут оказывается появляются ошибки, сначала была проблема с открытием админки (благо писать об этой проблеме не стал, нашел ответы тут же) но возникла другая проблема, во первых у меня на некоторых товарах пропали изображения, что и куда они делись? но это не суть важно, т.к обновить не составит труда, есть другая проблема , на сайте стала показываться такая вот ошибка : Код: Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in /var/www/admin/data/www/sowlshop.ru/catalog/controller/module/featured.php on line 22Warning: Invalid argument supplied for foreach() in /var/www/admin/data/www/sowlshop.ru/catalog/controller/module/featured.php on line 23 в чем может быть проблема, и как её исправить?
а ты отключи показ ошибок в админке) а картинке не отображаются, наверно потому что путь не правильно указал
22 и 23 строка PHP: $product_keys = array_rand($products,$setting['limit']);foreach ($product_keys as $product_key) { featured
а ну тут много проблем может быть, наверное поможет такая проверка перед PHP: $product_keys = array_rand($products, $setting['limit']); вставить PHP: if(count($products) < $setting['limit']) { $setting['limit'] = 3;} else { $setting['limit'] = $setting['limit'];} если не канает в шаблоне модуля пишем так PHP: <?=$setting['limit']?> и результат сюда
после первого изменения после второго изменения Notice: Undefined variable: setting in/var/www/admin/data/www/sowlshop.ru/catalog/view/theme/pav_decor/template/module/featured.tplon line 58 может быть не туда вписал ? PHP: <?=$setting['limit']?> куда именно нужно было?
Предполагаю что там де ищет ети продукты нет ни одного, а они наверное где то в модуле выбираются... перед PHP: $product_keys = array_rand($products, $setting['limit']); вставляем PHP: $this->data['deb'] = $products; и в шаблоне catalog/view/theme/pav_decor/template/module/featured.tpl в любом месте ето PHP: <pre><?php var_dump($deb) ?></pre> результат выведенного сюда если ничего не покажет кроме ошибки, тогда нет товаров рекомендуемых
ну вот, что и требовалось доказать - нет рекомендованных товаров. в админ части модуля должны выбираться ети фютуред товары, выберите их и ошибка пропадет, если нет то покажите весь код модуля
Действительно, товаров не было, но теперь сверху ошибка : и там где место модуля : и еще ниже ошибка : featured.php
PHP: <?phpclass ControllerModuleFeatured extends Controller { protected function index($setting) { $this->language->load('module/featured'); $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['button_cart'] = $this->language->get('button_cart'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $this->data['products'] = array(); $products = explode(',', $this->config->get('featured_product')); if (empty($setting['limit'])) { $setting['limit'] = 5; } $random_products = array(); $product_keys = array_rand($products,$setting['limit']); foreach ($product_keys as $product_key) { $random_products[$product_key] = $products[$product_key]; } $products = $random_products; shuffle($products); if(isset($products) && is_array($products)) foreach ($products as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $setting['image_width'], $setting['image_height']); } else { $image = false; } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_review_status')) { $rating = $product_info['rating']; } else { $rating = false; } $this->data['products'][] = array( 'product_id' => $product_info['product_id'], 'thumb' => $image, 'name' => $product_info['name'], 'price' => $price, 'special' => $special, 'rating' => $rating, 'description'=> (html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 'reviews' => sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']), 'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']) ); } } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featured.tpl')) { $this->template = $this->config->get('config_template') . '/template/module/featured.tpl'; } else { $this->template = 'default/template/module/featured.tpl'; } $this->render(); }}?> и из шаблона уберите все что раньше писали catalog/view/theme/pav_decor/template/module/featured.tpl
все сделал как сказали, все равно ошибка вверху : Warning: Invalid argument supplied for foreach() in /var/www/admin/data/www/sowlshop.ru/catalog/controller/module/featured.php on line 24 сам сайт
сомневаюсь что хостер в етом виновен, кривые модули или перенесли неправильно. как еще помочь не знаю, надо смотреть а не угадывать
У вас в настройках нового хостинга как типа домена стоит -- с www. и без? В config.php может быть несоответсвие после перезда.
решил проблему по другому, заменил featured.php из сборки, помню лишь то, что изменял только что бы товары выводились в разброс, и то это делалось на старом хостинге там все впорядке