Frycrosoft 0 Опубликовано 23 февраля, 2009 Автор Жалоба Share Опубликовано 23 февраля, 2009 расскажите что означает {foreach name=aussen item=module_data from=$module_content} Ссылка на сообщение Поделиться на другие сайты
Frycrosoft 0 Опубликовано 23 февраля, 2009 Автор Жалоба Share Опубликовано 23 февраля, 2009 это будет например так? $query = "SELECT * FROM ".TABLE_PRODUCTS." as p "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) "; $query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') and (p.manufacturers_id='".$product->data['manufacturers_id']."') "; $query .= "ORDER BY p.products_sort;"; $xproducts_query = vamDBquery($query); while ($xproducts_data = vam_db_fetch_array($xproducts_query, true)){ $col++; $row++; if ($col>=5) { $col=0;$xproducts_list .= "</td><td style="padding-left:80px;">"; } if ($row>=20) { $row=0;$xproducts_list .= "</td></tr><br><tr><td>"; } $xproducts_list .= "<a href=".vam_href_link('' .$xproducts_data["products_page_url"]).">" .$xproducts_data["products_name"]. "</a> <br>"; }[/code]но что-то все равно не получается Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 февраля, 2009 Жалоба Share Опубликовано 24 февраля, 2009 Вот описание, что такое foreach - http://smarty.net/manual/ru/language.function.foreach.php Ссылка на сообщение Поделиться на другие сайты
Frycrosoft 0 Опубликовано 24 февраля, 2009 Автор Жалоба Share Опубликовано 24 февраля, 2009 читал читал и все таки не понял )) пытаюсь понять так: в шаблоне product_info есть переменная {$XPRODUCTS_LIST} - она выводит список всех товаров которые находятся вместе с тем товаром, который мы в данный момент смотрим. переменную {$XPRODUCTS_LIST} я раскрываю в product_info.php кодом: $query = "SELECT * FROM ".TABLE_PRODUCTS." as p "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) "; $query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') and (p.manufacturers_id='".$product->data['manufacturers_id']."') "; $query .= "ORDER BY p.products_sort;"; $xproducts_query = vamDBquery($query); while ($xproducts_data = vam_db_fetch_array($xproducts_query, true)){ $xproducts_list .= "<a href=".vam_href_link('' .$xproducts_data["products_page_url"]).">" .$xproducts_data["products_name"]. "</a> <br>"; } $info->assign('XPRODUCTS_LIST', $xproducts_list); [/code] теперь, я хочу что бы список, который выводится в product_info.html(около 30 товаров выводится), делился на столбцы. Это я делаю следующим кодом: [code]{foreach name=aussen item=list from=$XPRODUCTS_LIST} {php} $col++; {/php} {$list.XPRODUCTS_LIST} {php} if ($col>=5) { $col=0; echo '</tr><tr>'; } {/php} {/foreach} Но foreach я явно сделал неверно... какой формат у foreach будет в данный момент что бы начало дилится на столбики? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 февраля, 2009 Жалоба Share Опубликовано 25 февраля, 2009 Не знаю, неправильно что-то делаешь. Ты посмотри пример какой-нибудь, например /templates/шаблон/source/boxes/bese_sellers.php и шаблон /templates/шаблон/boxes/box_best_sellers.html Что б для начала разобраться как с foreach работать. Ссылка на сообщение Поделиться на другие сайты
mosquito 0 Опубликовано 25 февраля, 2009 Жалоба Share Опубликовано 25 февраля, 2009 тут какбы не в foreach проблемка... хоть я и сам не знаю как она работает ) но работает она явно с МАСИВОМ данных!? мб я и не прав (но так должно быть :) ) а ты в foreach кладеш просто строковую переменную... пс пора задуматся :D Ссылка на сообщение Поделиться на другие сайты
Frycrosoft 0 Опубликовано 25 февраля, 2009 Автор Жалоба Share Опубликовано 25 февраля, 2009 все, додумал я... если кому надо то вот каким способом: $query = "SELECT * FROM ".TABLE_PRODUCTS." as p "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) "; $query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') and (p.manufacturers_id='".$product->data['manufacturers_id']."') "; $query .= "ORDER BY p.products_sort;"; $xproducts_query = vamDBquery($query); $rows = 0; $cols = 0; while ($xproducts_data = vam_db_fetch_array($xproducts_query, true)){ $rows ++; $cols ++; $xproducts_list .= "<a href=".vam_href_link('' .$xproducts_data["products_page_url"]).">" .$xproducts_data["products_name"]. "</a> <br>"; if ($cols>=5) { $cols=0;$xproducts_list .= "</td><td style='padding-left:80px;'>"; } if ($rows>=20) {$rows=0;$xproducts_list .= "</td></tr><br><tr><td>"; } } $info->assign('XPRODUCTS_LIST', $xproducts_list);[/code]На всякий случай напомню что делает данный скрипт:Расположен этот код в includes/modules/product_info.phpПосле строки $info->assign('PRODUCTS_MODEL', $product->data['products_model']); Функции: Выводит список всех товаров из категории и производителя, в котором вы находитесь. Например: Захожу в производитель Colgate, выбираю зубные пасты, там 3 пасты(паста1, паста2,паста3) захожу в паста1, а в ней список других двух паст. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 февраля, 2009 Жалоба Share Опубликовано 26 февраля, 2009 Спасибо, что поделился готовым кодом. P.S. Правильней конечно html тэги в шаблон выносить, но конечно если один раз делается и навегда, наверное и так нормально. Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 9 июня, 2010 Жалоба Share Опубликовано 9 июня, 2010 Здравствуйте! А можно сделать так, чтобы он выводил этот список товаров под боксами??? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 июня, 2010 Жалоба Share Опубликовано 9 июня, 2010 Нет. Только если шаблон таким образом сделать, т.е. {$main_content} метку в /tempaltes/шаблон/index.html вставить под боксы. Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 9 июня, 2010 Жалоба Share Опубликовано 9 июня, 2010 После того как добавляю код на некоторые товары не заходит, выдаёт ошибку Error! Unable to determine the page link! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 июня, 2010 Жалоба Share Опубликовано 9 июня, 2010 Такая ошибка на некоторых хостингах возникает при включении опции короткие url в Админке - Настройки - Мета-тэги - Использовать короткие URL, попробуйте выключить эту опцию. Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 9 июня, 2010 Жалоба Share Опубликовано 9 июня, 2010 Мне короткие урл очень нужны... Легче думаю хостинг куда подальше послать. Очень жаль что так получается. Хостинг Majordomo, ну так если что. Не советую... =) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 июня, 2010 Жалоба Share Опубликовано 9 июня, 2010 Есть и другие короткие url, заполняете поля SEO URL товара, категории и т.д. и тогда у Вас будет свой адрес, какой укажите. Вобщем, прочитайте описание колонки SEO URL товара - http://vamshop.ru/manual/catalog.html#id2569377 Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 10 июня, 2010 Жалоба Share Опубликовано 10 июня, 2010 Отключил короткие урл, но проблема осталась. На какие то товары заходит, а на какие то выдаёт ошибку "Error! Unable to determine the page link!" Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 июня, 2010 Жалоба Share Опубликовано 10 июня, 2010 Ссылку на магазин дайте. Может ещё что-то в файлах правили. Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 10 июня, 2010 Жалоба Share Опубликовано 10 июня, 2010 pitertel.ru Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 10 июня, 2010 Жалоба Share Опубликовано 10 июня, 2010 Всё разобрался. Если допустим в категории "телефоны Nokia" есть хоть один товар без seo url то весь товар в данной категории не будет открываться. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 10 июня, 2010 Жалоба Share Опубликовано 10 июня, 2010 Странно, такой проблемы по умолчанию нет. Единственное, что с включенной опцией короткие url на некоторых хостингах может быть такая проблема, но если выключить опцию, всё нормально работает. Ссылка на сообщение Поделиться на другие сайты
Valyok 0 Опубликовано 18 июня, 2010 Жалоба Share Опубликовано 18 июня, 2010 Подскажите пожалуйста, если это реально сделать. Как сделать так чтобы тот товар в карточке которой находишься не показывался в этом списке или хотя бы не был ссылкой на самого себя, а просто был обычным текстом? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 июня, 2010 Жалоба Share Опубликовано 18 июня, 2010 Лично я не в курсе как это сделать. Ссылка на сообщение Поделиться на другие сайты
retroman 0 Опубликовано 23 марта, 2016 Жалоба Share Опубликовано 23 марта, 2016 Допилил данный код, изменив в нём один фрагмент: $query = "SELECT * FROM ".TABLE_PRODUCTS." as p "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) "; $query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') and (p.manufacturers_id='".$product->data['manufacturers_id']."') "; $query .= "ORDER BY p.products_sort;"; $xproducts_query = vamDBquery($query); $rows = 0; $cols = 0; while ($xproducts_data = vam_db_fetch_array($xproducts_query, true)){ $xproducts_list .= "<li class='item span4 catlist first'><div class='thumbnail text-center'><div class='inner notop nobottom text-left'><h4 class='title'><a href=".vam_href_link('' .$xproducts_data["products_page_url"]).">" .$xproducts_data["products_name"]."</a></h4></div><a class='image' href=".vam_href_link('' .$xproducts_data["products_page_url"])."><img src='images/product_images/thumbnail_images/".$xproducts_data["products_image"]."' border='0'><span class='frame-overlay'></span><span class='price'>" .$xproducts_data["products_price"]."</span></a></div></li>"; } $info->assign('XPRODUCTS_LIST', $xproducts_list); В результате выводится не только список товаров данной категории, но и их изображение и цена. Чего я не смог сделать, но что хотелось бы: 1. Цена почему то выводится с разделителем и четырьмя нулями после него. То есть не 25400, а 25400.0000 2. Соображения хватило на вывод главной картинки товара, а очень хочется вывести ещё одну из дополнительных картинок (если у товара они есть) Если кто сочтёт возможным, буду рад помощи. Да. Ещё момент. Только сейчас его заметил. Я правильно понимаю, что в моём варианте кода эти две строки: $rows = 0; $cols = 0; не нужны? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2016 Жалоба Share Опубликовано 24 марта, 2016 Что б цена формитировалась, надо использовать класс $vamPrice, смотрите как сделан вывод цены и вывод доп. картинок например в карточке товара /includes/modules/product_info.php. Цена форматируется примерно так: $vamPrice->GetPrice($xproducts_data["products_id"], $format = true, 1, $xproducts_data["products_tax_class_id"], $xproducts_data["products_price"], 1); Ссылка на сообщение Поделиться на другие сайты
retroman 0 Опубликовано 24 марта, 2016 Жалоба Share Опубликовано 24 марта, 2016 Благодарю Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 24 марта, 2016 Жалоба Share Опубликовано 24 марта, 2016 Надеюсь, что разберётесь. В общем, смотрите готовый примре карточки товара, там всё есть - и форматирование цены и доп. картинки. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения