igoryk Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 Вот нашел на одном сайте, может кому пригодится - открываем файл view/ProductView.php и в районе 144 строки находим код$this->design->assign('related_products', $related_products);}И сразу после закрывающей скобки добавить систему генерации связанных товаров из той же категории, что и сам товарelse { // генерируемые связанные товары $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); $category = reset($products->categories); $related_products = array(); $after = false; $products = $this->products->get_products(array('category_id' => $category->id, 'limit' => 100, 'in_stock'=>1, 'visible'=>1)); foreach($products as $p) { if($after && count($related_products) < 6) $related_products[$p->id] = $p; elseif($p->id == $product->id) $after = true; } if(count($related_products) < 6) foreach($products as $p) if($p->id != $product->id && count($related_products) < 6) $related_products[$p->id] = $p; else break; $related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products))); foreach($related_products_images as $related_product_image) if(isset($related_products[$related_product_image->product_id])) $related_products[$related_product_image->product_id]->images[] = $related_product_image; $related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'instock'=>true)); foreach($related_products_variants as $related_product_variant) { if(isset($related_products[$related_product_variant->product_id])) { $related_product_variant->price *= (100-$discount)/100; $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant; } } foreach($related_products as $r) { $r->image = &$r->images[0]; $r->variant = &$r->variants[0]; } $this->design->assign('related_products', $related_products);} // end: генерируемые связанные товарыЛогика заключается в том, что мы выбираем весь товары из категории (в скрипте есть ограничение в 100, если у Вас больше — увеличьте на предполагаемых длину). Скрипт выбирает связанный товар (6 штук), которые идут после данного товара. При достижении конца списка скрипт добирает нехватку ихз начала списка. Таким образом список связанных товар фиксированный до тех пока не внесут изменения в каталог. Цитата Ссылка на сообщение Поделиться на другие сайты
Kpoxa Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 А не проще было ссылку на блог Марта или же на его постhttp://forum.simplacms.ru/discussion/comment/7925#Comment_7925 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 Если это тот же туториал что был и на старую версию, лишь портированый на новую то это шлак. В связанных товарах (по статье на старую версию) как не крути выводился и тот товар на странице которого Вы находитесь, да в коде есть комментарии вроде как и не должен выводится в сопутствующих товарах тот товар на карточке которого мы находимся, но увы он также выводился. Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 Это не тот же код и логика тут другая.Почему все гонятся за 100% подходящим им решением - как ни пытайся надоумить понять чужой код и исправить под себя - никак не получается. Ни один движек и ни одна правка не будет полностью отвечать необходимым параметрам, как ни крути. А надо всего-то немного подумать и понять, что автор хотел этим сказать.лишь портированый на новую то это шлак Может и есть недочеты, так почему Вы, уважаемый Нокстер, их копируете, а не предложите свое - альтернативное решение.Я не стремлюсь писать код под чужие сайты - своей работы достаточно. а те решение, что предлагаю - это часть того, что уже работает и неплохо себя зарекомендовало. А выводить весь сайт, который писался под заказ (со всеми изменениями кода) не считаю честным и целесообразным, т.к. люди за это заплатили. Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 2 igorykМожет сделаете репост всех статей А чего народ зря гонять куда-то... Если можно на форуме пофлудить, создав несколько раз 1 и ту же тему!!! Цитата Ссылка на сообщение Поделиться на другие сайты
yastranger Опубликовано 19 марта, 2012 Жалоба Поделиться Опубликовано 19 марта, 2012 Фиг знает, март подскажи ссылку на свой форум, где есть аналогичное решение, может оно поможет. igoryk - спасибо огромное, у меня заработало, но выдает ошибки/ Как решить?Warning: Attempt to assign property of non-object in /home/k/#/#/public_html/view/ProductView.php on line 197Warning: reset() [function.reset]: Passed variable is not an array or object in /home/k/#/#/public_html/view/ProductView.php on line 199Warning: Cannot modify header information - headers already sent by (output started at /home/k/#/#/public_html/view/ProductView.php:197) in /home/k/#/#/public_html/view/ProductView.php on line 215Warning: Cannot modify header information - headers already sent by (output started at /home/k/#/#/public_html/view/ProductView.php:197) in /home/k/#/#/public_html/index.php on line 32 Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 19 марта, 2012 Жалоба Поделиться Опубликовано 19 марта, 2012 Это предупреждения. В теории их можно просто игнорировать добавив в index.phperror_reporting(0);А если по коду - там последовательность строк поменять. Сейчас не вспомню каких, но по логике те, что выбирают текущую категорию. Цитата Ссылка на сообщение Поделиться на другие сайты
yastranger Опубликовано 22 марта, 2012 Жалоба Поделиться Опубликовано 22 марта, 2012 спасибо, помогло Цитата Ссылка на сообщение Поделиться на другие сайты
yastranger Опубликовано 22 марта, 2012 Жалоба Поделиться Опубликовано 22 марта, 2012 большое)) очень крутая фича! Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 28 августа, 2014 Жалоба Поделиться Опубликовано 28 августа, 2014 Люди, подскажите, можно ли расширить стандартный функционал в админке в карточке товара, чтобы помимо конкретных связанных товаров, можно еще было выбирать категорию (несколько категорий), из которой(ых) выбирались бы связанные товары автоматом и рандомно, и бренд(бренды)! Соответственно, если указана только категория (категории) - то рандомно выбираюся все товары (которые в наличии) всех брендов, а если указан бренд (бренды) - то отбираются товары только из этой категории (этих категорий) и только конкретного бренда (или выбранных брендов)? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 августа, 2014 Жалоба Поделиться Опубликовано 29 августа, 2014 Конечно, можно. Если готовы оплачивать, обращайтесь... Цитата Ссылка на сообщение Поделиться на другие сайты
wildrock Опубликовано 27 ноября, 2015 Жалоба Поделиться Опубликовано 27 ноября, 2015 а как их рандомно выводить ? что бы при обновлении карточки товара связаный товар автоматически менялся Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 28 ноября, 2015 Жалоба Поделиться Опубликовано 28 ноября, 2015 По аналогии с подобными вопросами, напримерhttp://forum.simplacms.ru/topic/9482-%D1%80%D0%B0%D0%BD%D0%B4%D0%BE%D0%BC%D0%BD%D0%B0%D1%8F-%D0%B2%D1%8B%D0%B4%D0%B0%D1%87%D0%B0-%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D1%83%D0%B5%D0%BC%D1%8B%D1%85/ Цитата Ссылка на сообщение Поделиться на другие сайты
simpler Опубликовано 20 июня, 2016 Жалоба Поделиться Опубликовано 20 июня, 2016 А подскажите, как добавить вывод свойств товара в автоматически связанных товарах? Цитата Ссылка на сообщение Поделиться на другие сайты
Skynet Опубликовано 28 ноября, 2016 Жалоба Поделиться Опубликовано 28 ноября, 2016 Это предупреждения. В теории их можно просто игнорировать добавив в index.phperror_reporting(0);А если по коду - там последовательность строк поменять. Сейчас не вспомню каких, но по логике те, что выбирают текущую категорию. Добрый вечер! mart, а подскажите пожалуйста, как исправить ошибку не прописывая index.php - error_reporting(0); ? Ошибка как у yastranger Warning: Attempt to assign property of non-object in /home/k/#/#/public_html/view/ProductView.php on line 197 Warning: reset() [function.reset]: Passed variable is not an array or object in /home/k/#/#/public_html/view/ProductView.php on line 199 Warning: Cannot modify header information - headers already sent by (output started at /home/k/#/#/public_html/view/ProductView.php:197) in /home/k/#/#/public_html/view/ProductView.php on line 215 Warning: Cannot modify header information - headers already sent by (output started at /home/k/#/#/public_html/view/ProductView.php:197) in /home/k/#/#/public_html/index.php on line 32 Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 28 ноября, 2016 Жалоба Поделиться Опубликовано 28 ноября, 2016 Март давно уже отошёл от разработок симплы, так что не рассчитывайте, да и к тому же вы на дату топика смотрели, вас она не смущает? Цитата Ссылка на сообщение Поделиться на другие сайты
Skynet Опубликовано 29 ноября, 2016 Жалоба Поделиться Опубликовано 29 ноября, 2016 NoxterВы бы не могли пожалуйста помочь подкорректировать? Можно ли решить эту задачу или решение только игнорировать ошибки в index.php Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 ноября, 2016 Жалоба Поделиться Опубликовано 29 ноября, 2016 как исправить ошибку не прописывая index.php - error_reporting(0); ?Вы бы показали свой файл view/ProductView.php... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 ноября, 2016 Жалоба Поделиться Опубликовано 29 ноября, 2016 Noxter Вы бы не могли пожалуйста помочь подкорректировать? Можно ли решить эту задачу или решение только игнорировать ошибки в index.phpРешить можно любую проблему. Я по шею весь в проектах по этому помочь смогу но не скоро. Цитата Ссылка на сообщение Поделиться на другие сайты
Skynet Опубликовано 29 ноября, 2016 Жалоба Поделиться Опубликовано 29 ноября, 2016 Вы бы показали свой файл view/ProductView.php... прикрепил свой файликProductView.php Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 ноября, 2016 Жалоба Поделиться Опубликовано 29 ноября, 2016 В присланном файле в строке 197 содержится // Категория и бренд товара,то есть только комментарий. Поэтому не может быть ошибки, которую Вы привели:Warning: Attempt to assign property of non-object in /home/k/#/#/public_html/view/ProductView.php on line 197. Могу предположить, что ошибка у Вас в строке 198, надо$product->categories = $this->categories->get_categories(array('product_id'=>$product->id));(убрать один лишний символ). Если не поможет, то надо смотреть конкретно на Вашем сервере... Цитата Ссылка на сообщение Поделиться на другие сайты
Skynet Опубликовано 29 ноября, 2016 Жалоба Поделиться Опубликовано 29 ноября, 2016 KorsОгромное Вам человеческое СПАСИБО! Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 4 марта, 2017 Жалоба Поделиться Опубликовано 4 марта, 2017 В чем может быть ошибка? Warning: Creating default object from empty value in /home/view/ProductView.php on line 141 141. $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); 142. $category = reset($products->categories); 143. 144. $related_products = array(); Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 марта, 2017 Жалоба Поделиться Опубликовано 5 марта, 2017 В чем может быть ошибка? Warning: Creating default object from empty value in /home/view/ProductView.php on line 141 141. $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); 142. $category = reset($products->categories); 143. 144. $related_products = array(); написано же. вы создаете объект из пустого значения. перед строкой 141 допишите $products = new stdClass(); Цитата Ссылка на сообщение Поделиться на другие сайты
Julius123 Опубликовано 5 марта, 2017 Жалоба Поделиться Опубликовано 5 марта, 2017 написано же. вы создаете объект из пустого значения. перед строкой 141 допишите $products = new stdClass(); Спасибо большое. Но если даже удалить строки 141. $products->categories = $this->categories->get_categories(array('product_id'=>$product->id)); 142. $category = reset($products->categories); то тоже работает Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.