MegaWolf Опубликовано 13 ноября, 2015 Жалоба Поделиться Опубликовано 13 ноября, 2015 Привет всем!Ребят кому не сложно, или кто то уже такое делал, поделитесь пожалуйста. Суть проблемы: К примеру, есть отзывы на странице бренда товаров (к примеру Sony), и есть отзывы уже в карточке любого товара этого бренда.Как сделать что бы отзывы с карточки товара выводились на странице бренда с товарами?Допустим зашел пользователь в бренд Sony, выбрал нужный товар, перешел в его карточку и там оставил отзыв, и надо что бы этот отзыв отображался и в карточке и в бренде. Заранее благодарю всех кто сможет помочь) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 14 ноября, 2015 Жалоба Поделиться Опубликовано 14 ноября, 2015 Надо возиться и полностью программировать. А если у Вас уже "есть отзывы на странице бренда", то есть нестандартная доработка, то еще сложнее. Бесплатное решение вряд ли найдется. Если готовы оплачивать, обращайтесь... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 14 ноября, 2015 Жалоба Поделиться Опубликовано 14 ноября, 2015 К примеру, есть отзывы на странице бренда товаров (к примеру Sony) нет такого в стандартном функционале. чтобы вывести на странице бренда все комментарии к товарам этого бренда:в view/ProductsView.php после (строка 192) кода: if(!empty($category)) { $brands = $this->brands->get_brands(array('category_id'=>$category->children, 'visible'=>1)); $category->brands = $brands; } вставить следующее: if (!empty($brand_url) && $products) { $brand_comments = $this->comments->get_comments( array('object_id'=>$products_ids, 'type'=>'product', 'approved'=>1) ); foreach ($brand_comments as &$c) { $c->product = $products[$c->object_id]; } $this->design->assign('brand_comments', $brand_comments); } дальше, в шаблоне design/тема/html/products.html для вывода комментариев после: {include file='pagination.tpl'} вставляем код: {if $brand && $brand_comments} <div id="comments"> <h2>Комментарии</h2> <!-- Список с комментариями --> <ul class="comment_list"> {foreach $brand_comments as $comment} <a name="comment_{$comment->id}"></a> <li> <!-- Имя и дата комментария--> <div class="comment_header"> {$comment->name|escape} <i>{$comment->date|date}, {$comment->date|time}</i> <br>К товару <a href="{$comment->product->url}">{$comment->product->name|escape}</a> </div> <!-- Имя и дата комментария (The End)--> <!-- Комментарий --> {$comment->text|escape|nl2br} <!-- Комментарий (The End)--> </li> {/foreach} </ul> <!-- Список с комментариями (The End)--> </div> {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
MegaWolf Опубликовано 14 ноября, 2015 Автор Жалоба Поделиться Опубликовано 14 ноября, 2015 нет такого в стандартном функционале. чтобы вывести на странице бренда все комментарии к товарам этого бренда:в view/ProductsView.php после (строка 192) кода: if(!empty($category)) { $brands = $this->brands->get_brands(array('category_id'=>$category->children, 'visible'=>1)); $category->brands = $brands; } вставить следующее: if (!empty($brand_url) && $products) { $brand_comments = $this->comments->get_comments( array('object_id'=>$products_ids, 'type'=>'product', 'approved'=>1) ); foreach ($brand_comments as &$c) { $c->product = $products[$c->object_id]; } $this->design->assign('brand_comments', $brand_comments); } дальше, в шаблоне design/тема/html/products.html для вывода комментариев после: {include file='pagination.tpl'} вставляем код: {if $brand && $brand_comments} <div id="comments"> <h2>Комментарии</h2> <!-- Список с комментариями --> <ul class="comment_list"> {foreach $brand_comments as $comment} <a name="comment_{$comment->id}"></a> <li> <!-- Имя и дата комментария--> <div class="comment_header"> {$comment->name|escape} <i>{$comment->date|date}, {$comment->date|time}</i> <br>К товару <a href="{$comment->product->url}">{$comment->product->name|escape}</a> </div> <!-- Имя и дата комментария (The End)--> <!-- Комментарий --> {$comment->text|escape|nl2br} <!-- Комментарий (The End)--> </li> {/foreach} </ul> <!-- Список с комментариями (The End)--> </div> {/if} Спасибо большое, попробую отпишусь) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 14 ноября, 2015 Жалоба Поделиться Опубликовано 14 ноября, 2015 Тяжеловато будет с таким решением. Даже у средних магазинов иногда бывает довольно много отзывов у ОДНОГО товара. А при таком способе весьма вероятно, что их станет катастрофически много, с тормозами при загрузке вплоть до зависания... Значит, надо пагинацию по отзывам делать. Но тогда это будет уже вторая пагинация (первая идет по товарам). Весьма тяжелая страница выходит... Второй аспект: будут идти отзывы подряд - первый на часы, второй на трусы. Думаете, будет хорошо выглядеть? Третий момент: каждый отдельный отзыв непонятно к чему относится. Стоит крепко подумать, стоит ли применять такое... Цитата Ссылка на сообщение Поделиться на другие сайты
MegaWolf Опубликовано 14 ноября, 2015 Автор Жалоба Поделиться Опубликовано 14 ноября, 2015 Тяжеловато будет с таким решением. Даже у средних магазинов иногда бывает довольно много отзывов у ОДНОГО товара.А при таком способе весьма вероятно, что их станет катастрофически много, с тормозами при загрузке вплоть до зависания...Значит, надо пагинацию по отзывам делать.Но тогда это будет уже вторая пагинация (первая идет по товарам).Весьма тяжелая страница выходит... Второй аспект: будут идти отзывы подряд - первый на часы, второй на трусы. Думаете, будет хорошо выглядеть? Третий момент: каждый отдельный отзыв непонятно к чему относится. Стоит крепко подумать, стоит ли применять такое...Согласен что будет глупо так выглядеть. Меня просто попросили помочь так сделать, но я не думал что настолько сложно это окажется)) Я уже об этом говорил, что покупателям это не понравиться, не понятно к чему был оставлен отзыв, ну хотят поэкспериментировать)) Цитата Ссылка на сообщение Поделиться на другие сайты
MegaWolf Опубликовано 14 ноября, 2015 Автор Жалоба Поделиться Опубликовано 14 ноября, 2015 Ребят представленный код не помог к сожалению. В файле ProductsView.php есть код который отвечает какие отзывы выводить на странице товаров определенного бренда: // Комментарии к бренду if (!$is_discounted){ $comments = $this->comments->get_comments(array('type'=>'brand', 'object_id'=>$category->id, 'approved'=>1, 'ip'=>$_SERVER['REMOTE_ADDR'])); $comments_count = count($comments); (int)$comments_count; $products_comments = $this->comments->get_products_comments($category->id); $this->design->assign('products_comments', $products_comments); $this->design->assign('comments', $comments); $this->design->assign('comments_count', $comments_count); //youtube $utube_video = $this->categories->ut_cat(intval($category->id)); $this->design->assign('utube_video', $utube_video); } И когда я меняю $comments = $this->comments->get_comments(array('type'=>'brand', 'object_id'=>$category->id, 'approved'=>1, 'ip'=>$_SERVER['REMOTE_ADDR'])); на $comments = $this->comments->get_comments(array('type'=>'product', 'object_id'=>$product->id, 'approved'=>1, 'ip'=>$_SERVER['REMOTE_ADDR'])); То выводит все отзывы всех товаров разных брендов (224 отзыва).А когда меняю на $comments = $this->comments->get_comments(array('type'=>'brand', 'object_id'=>$product->id, 'approved'=>1, 'ip'=>$_SERVER['REMOTE_ADDR'])); То уже выводит 20 отзывов, но все равно не оттуда черпает. Есть у кого то идея что прописать нужно? Заранее благодарю. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 15 ноября, 2015 Жалоба Поделиться Опубликовано 15 ноября, 2015 (изменено) Третий момент: каждый отдельный отзыв непонятно к чему относится. ... вообще-то понятно к чему. возле отзыва пишет к какому товару он Второй аспект: будут идти отзывы подряд - первый на часы, второй на трусы. Думаете, будет хорошо выглядеть? отзывы сортируются по дате добавления, а не идут подряд для каждого товара, https://yadi.sk/i/pUEmOUIfkThtfв итоге 2 из 3х ваших замечаний - сотрясание воздуха. Изменено 15 ноября, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 15 ноября, 2015 Жалоба Поделиться Опубликовано 15 ноября, 2015 Ребят представленный код не помог к сожалению. Есть у кого то идея что прописать нужно? Заранее благодарю. пишите в личку доступы, видимо у вас конфликт какой-то с отзывами бренда, или вы не туда вставляете. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 ноября, 2015 Жалоба Поделиться Опубликовано 15 ноября, 2015 в итоге 2 из 3х ваших замечаний - сотрясание воздуха.Замечание 1. Судя по тому, что на него у Вас возражений нет, оно полностью правильное.Замечание 2. Вы отметили, что "отзывы сортируются по дате добавления, а не идут подряд для каждого товара". Такая сортировка хороша на странице ОДНОГО товара, а в Вашей реализации, когда каждый отзыв к своему товару - сборная солянка. Сомнительно, что серьезному покупателю будет интересно. Его, как правило, интересуют отзывы на товар, который он уже приглядел, а не на все подряд. Я и поставил вопрос, хорошо ли это?Замечание 3. Тут я недоглядел, замечание неверное, Вы правы. Продолжим банкет. ...но все равно не оттуда черпает. Замечание 4. Для извлечения отзывов по брендам в предложенном решении используется$brand_comments = $this->comments->get_comments( array('object_id'=>$products_ids, 'type'=>'product', 'approved'=>1) );Смысл понять легко: извлекаются отзывы к товарам, у которых ID из массива $products_ids. А откуда берется этот массив? Это массив ID товаров, которые выводятся на текущей странице. То есть реально выводятся отзывы не ко всем товарам бренда, как требовалось, а только к товарам, показываемым на текущей странице. Отсюда вывод - это решение работает правильно, только если все товары бренда умещаются на одной странице. Видимо, автор проверял свое решение лишь в простейших случаях... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 ноября, 2015 Жалоба Поделиться Опубликовано 15 ноября, 2015 И когда я меняю...на....То выводит все отзывы всех товаров разных брендов (224 отзыва).А когда меняю на....То уже выводит 20 отзывов, но все равно не оттуда черпает.Есть у кого то идея что прописать нужно? Заранее благодарю. Идея одна - писать код не методом тыка и копирования из других мест, а хотя бы с небольшим пониманием.Например, когда у Вас встречается $category->id, то для страницы бренда это значение не определено.Что касается остального, например, 'type'=>'brand', то стандартно в Simpla этот параметр не обрабатывается. Если Вы изменяли обработку, то в этой теме неизвестно, где и как Вы проводили изменения... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 15 ноября, 2015 Жалоба Поделиться Опубликовано 15 ноября, 2015 Замечание 2. Вы отметили, что "отзывы сортируются по дате добавления, а не идут подряд для каждого товара". Такая сортировка хороша на странице ОДНОГО товара, а в Вашей реализации, когда каждый отзыв к своему товару - сборная солянка. Сомнительно, что серьезному покупателю будет интересно. Его, как правило, интересуют отзывы на товар, который он уже приглядел, а не на все подряд. Я и поставил вопрос, хорошо ли это? Замечание 4. Для извлечения отзывов по брендам в предложенном решении используется$brand_comments = $this->comments->get_comments( array('object_id'=>$products_ids, 'type'=>'product', 'approved'=>1) );Смысл понять легко: извлекаются отзывы к товарам, у которых ID из массива $products_ids. А откуда берется этот массив? Это массив ID товаров, которые выводятся на текущей странице. То есть реально выводятся отзывы не ко всем товарам бренда, как требовалось, а только к товарам, показываемым на текущей странице. Отсюда вывод - это решение работает правильно, только если все товары бренда умещаются на одной странице. Видимо, автор проверял свое решение лишь в простейших случаях... то вы пишите что подряд - плохо, теперь когда поняли что отзывы идут по дате - по дате плохо. нужно по товару который он приглядел (это как выяснять будете? по просмотренным товарам?) замечание 1 о пагинации и 4 имеют место быть. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 15 ноября, 2015 Жалоба Поделиться Опубликовано 15 ноября, 2015 то вы пишите что подряд - плохо, теперь когда поняли что отзывы идут по дате - по дате плохо. нужно по товару который он приглядел (это как выяснять будете? по просмотренным товарам?)Да, подряд - плохо. И по дате - плохо. Причины объяснил. "по товару который он приглядел" - это хорошо. И это реализовал давно разработчик Simpla на странице товара. "по товару который он приглядел" - было бы хорошо и на странице бренда, но реализовать нереально. Потому что скрипты сайта еще не научились читать мысли посетителя... Я еще в первом посте намекнул, кажется, достаточно ясно, что разработка такого - очень даже не простая. Не просто не только запрограммировать, то даже и не совсем очевидно, как спланировать работу, много тонкостей и много разных возможностей... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.