solopov 0 Опубликовано 28 июля, 2009 Жалоба Share Опубликовано 28 июля, 2009 Можно ли привязать статью к категории товаров или привязать категорию статей к категории товаров, соответственно, выводом бокса, наверное. Подозреваю что можно, поскольку похоже работает бокс фильтры. Есть ли у кого готовое решение, или подскажите, где копать? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 июля, 2009 Жалоба Share Опубликовано 29 июля, 2009 Нет, нельзя, ведь для этого готового кода нет. Ссылка на сообщение Поделиться на другие сайты
solopov 0 Опубликовано 29 июля, 2009 Автор Жалоба Share Опубликовано 29 июля, 2009 печально очень. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 июля, 2009 Жалоба Share Опубликовано 29 июля, 2009 Да, такого нет пока. Только товары к статьям. Ссылка на сообщение Поделиться на другие сайты
solopov 0 Опубликовано 29 июля, 2009 Автор Жалоба Share Опубликовано 29 июля, 2009 Готов вложить средства в доделку-переделку. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 июля, 2009 Жалоба Share Опубликовано 29 июля, 2009 Где-то был только вариант вывода статей у товаров, т.е. на странице карточки товара выводится список статей. Если интересен такой вариант, попробую найти ту тему. Можно попробовать тогда написать в разделе Коммерческие предлоежния на oscomm.biz, да и здесь в таком же разделе. Ссылка на сообщение Поделиться на другие сайты
solopov 0 Опубликовано 29 июля, 2009 Автор Жалоба Share Опубликовано 29 июля, 2009 Посмотрите пожалуйста хотя бы вариант вывода статей у товаров, если не поможет буду писать в КП Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 июля, 2009 Жалоба Share Опубликовано 29 июля, 2009 Вот так делается. Создаёте файл /includes/modules/product_articles.php с таким кодом: <?php$module = new vamTemplate;$module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');$sql = "select distinct ax.articles_id, ad.articles_name, a.articles_last_modified from " . TABLE_ARTICLES_XSELL . " ax LEFT JOIN ".TABLE_ARTICLES." a USING(articles_id) LEFT JOIN " . TABLE_ARTICLES_DESCRIPTION . " ad USING(articles_id) where ax.xsell_id = '" . (int)$_GET['products_id'] . "' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and a.articles_status = '1' order by a.articles_last_modified";$row = 0;$module_content = array ();$query = vamDBquery($sql);while ($one = vam_db_fetch_array($query,true)) { $SEF_parameter = ''; if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') $SEF_parameter = '&headline='.vam_cleanName($one['articles_name']); $module_content[]=array( 'ARTICLES_NAME' => $one['articles_name'], 'ARTICLES_DESCRIPTOIN' => $one['articles_description'], 'ARTICLES_URL' => vam_href_link(FILENAME_ARTICLE_INFO, 'articles_id=' . $one['articles_id'] . $SEF_parameter) );}if (sizeof($module_content) > 0) { $module->assign('language', $_SESSION['language']); $module->assign('module_content',$module_content); // set cache ID if (!CacheCheck()) { $module->caching = 0; $module= $module->fetch(CURRENT_TEMPLATE.'/module/product_articles.html'); } else { $module->caching = 1; $module->cache_lifetime=CACHE_LIFETIME; $module->cache_modified_check=CACHE_CHECK; $module = $module->fetch(CURRENT_TEMPLATE.'/module/product_articles.html',$cache_id); } $info->assign('MODULE_product_articles', $module);}?>[/code] Создаёте файл /templates/vamshop/module/product_articles.html: [code]{config_load file="$language/lang_$language.conf" section="boxes"} <h1><a href="{$ARTICLES_URL}">{#heading_articles#}</a></h1>{foreach name=aussen item=module_data from=$module_content}<div class="page"><b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b><div class="pageItem"><dl class="itemLatestNewsDefault"><dt class="itemNews"></dt><dd class="itemNews"><strong><a href="{$module_data.ARTICLES_URL}">{$module_data.ARTICLES_NAME}</a></strong></dd><dd class="itemNews">{$module_data.ARTICLES_DESCRIPTOIN|truncate:255:"...":true}</dd></dl><div class="clear"></div></div><b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b></div>{/foreach} <div class="clear"></div><p></p> Открываете /includes/modules/product_info.php и добавляете: include (DIR_WS_MODULES . 'product_articles.php');[/code] после: [code] include (DIR_WS_MODULES.'product_reviews.php'); В /templates/vamhop/module/product_info/product_info_v1.html добавляете: {if $MODULE_product_articles != ''}{$MODULE_product_articles}{/if}[/code] например после: [code]{if $MODULE_products_reviews != ''}{$MODULE_products_reviews}{/if} Всё, теперь на странице карточки товара будут выводиться статьи, с которыми связан данные товар. Статьи и товары связывают в Админке - Разное - Статьи - Статьи-товары. Нужно там их связать, что б на странице карточки товара показывались. Ссылка на сообщение Поделиться на другие сайты
Mastak 0 Опубликовано 8 мая, 2010 Жалоба Share Опубликовано 8 мая, 2010 А данные рекомендации должны работать с последней версией? И по связыванию. В админке есть Разное - Статьи - Товары-Статьи и не Статьи-Товары, это Вы так написали или еще нужно что то дописывать в языковые файлы?? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 мая, 2010 Жалоба Share Опубликовано 8 мая, 2010 Да, должны работать. Просто так назван пункт, по-моему, нормально, на странице карточки товара ведь будет ссылка на статью. Если я правильно помню. Ссылка на сообщение Поделиться на другие сайты
Mastak 0 Опубликовано 8 мая, 2010 Жалоба Share Опубликовано 8 мая, 2010 Но почему то не работает. К статьям товар выводится, а к товару ничего. Где и что посмотреть не подскажите? Для меня это очень важная функция. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 мая, 2010 Жалоба Share Опубликовано 8 мая, 2010 Так пример кода выше приведён, я когда его писал, проверял, всё работало. Ссылка на сообщение Поделиться на другие сайты
Mastak 0 Опубликовано 8 мая, 2010 Жалоба Share Опубликовано 8 мая, 2010 Этот код и использую. Другой мне написать не дано, к сожалению. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 мая, 2010 Жалоба Share Опубликовано 8 мая, 2010 Значит файлы не так или не туда сохраняете, может не в свой шаблон. А может нужно кэш почистить в Админке - Настройки - Контроль кэша. Ссылка на сообщение Поделиться на другие сайты
Mastak 0 Опубликовано 9 мая, 2010 Жалоба Share Опубликовано 9 мая, 2010 Значит файлы не так или не туда сохраняете, может не в свой шаблон. А может нужно кэш почистить в Админке - Настройки - Контроль кэша. Не, ну я не столько профан, что бы этого не проверить прежде чем задать вопрос. Всё я правильно сохраняю, и туда куда нужно. Проблема заключается как выяснилось в следующем, не работает при включенных коротких URL адресах. Админка-->Мета теги-->Использовать короткие URL адреса в магазине--> true Не могли бы помочь в данном вопросе? Ссылка на сообщение Поделиться на другие сайты
Mastak 0 Опубликовано 9 мая, 2010 Жалоба Share Опубликовано 9 мая, 2010 И еще, возможно это ошибка, а может нет. Но на всякий случай спрошу. Проверено на вновь установленном локально магазине версия 1.57 и на сервере1.58. В админке: Админка-->Разное-->Автоматически генерировать SEO URL--> true Адреса не генерируются, при создании товара и категории к примеру с названием -Тестовый товар, генерируется ссылка типа -.html Если Админка-->Разное-->Автоматически генерировать SEO URL--> false При создании товара к примеру с названием -Тестовый товар, генерируется ссылка типа p6_Testovyi-tovar.html при включенных коротких адресах или же типа product_info.php?products_id=9 при выключенных. Возможно я чего то не понимаю, но я всю жизнь считал что true это включено, а false выключено, и если стоит вопрос: Автоматически генерировать SEO URL? ТО это означает, что при true они должны генерироваться, а при false не должны. В данном случае все с точностью до наоборот. С уважением. Ссылка на сообщение Поделиться на другие сайты
Mastak 0 Опубликовано 11 мая, 2010 Жалоба Share Опубликовано 11 мая, 2010 Ну по первому вопросу вроде решил проблему. Правда наверное грубовато, так сказать " в лоб", но работает и при включенных коротких URL адресах и при выключенных. Может кто из гуру подправит, и даст более красивый и правильный вариант решения. Но пока так. В файле \includes\modules\product_info.php Найти строки: include (DIR_WS_MODULES.'product_reviews.php'); include (DIR_WS_MODULES . 'product_articles.php'); и между ними добавить строку как показано ниже: include (DIR_WS_MODULES.'product_reviews.php'); if (!isset($_GET['products_id']) && isset($product->data['products_id'])) $_GET['products_id']=$product->data['products_id']; include (DIR_WS_MODULES . 'product_articles.php'); Все, теперь сопутствующие статьи будут выводится на странице карточки товара. Но только название статьи. И еще небольшой вариант правки кода предложенного Вамом. В оригинале скрипта не выводится краткое описание статьи, для того что бы описание выводилось, в скрипте файла /includes/modules/product_articles.php Вместо: $sql = "select distinct ax.articles_id, ad.articles_name, a.articles_last_modified from " . TABLE_ARTICLES_XSELL . " ax LEFT JOIN ".TABLE_ARTICLES." a USING(articles_id) LEFT JOIN " . TABLE_ARTICLES_DESCRIPTION . " ad USING(articles_id) where ax.xsell_id = '" . (int)$_GET['products_id'] . "' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and a.articles_status = '1' order by a.articles_last_modified"; Пропишите: $sql = "select distinct ax.articles_id, articles_date_added, ad.articles_head_desc_tag, ad.articles_name, a.articles_last_modified from " . TABLE_ARTICLES_XSELL . " ax LEFT JOIN ".TABLE_ARTICLES." a USING(articles_id ) LEFT JOIN " . TABLE_ARTICLES_DESCRIPTION . " ad USING(articles_id) where ax.xsell_id = '" . (int)$_GET['products_id'] . "' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and a.articles_status = '1' order by a.articles_last_modified"; Или просто добавьте articles_date_added и ad.articles_head_desc_tag, первое можно не добавлять, это нужно тем кто желает выводить и дату добавления статьи. Далее в этом же файле замените 'ARTICLES_DESCRIPTOIN' => $one['articles_description'], На 'ARTICLE_SHORT_DESCRIPTION' =>$one['articles_head_desc_tag'], И если нужен вывод даты добавьте после этой строки вот такую: 'ARTICLES_DATE' => vam_date_short($one['articles_date_added']), Теперь внесите небольшие изменения в файл /templates/vamshop/module/product_articles.html Вместо: <dd class="itemNews"> {$module_data.ARTICLES_DESCRIPTOIN|truncate:255:"...":true} </dd> Пропишите: <dd class="itemNews"> {$module_data.ARTICLE_SHORT_DESCRIPTION|truncate:255:"...":true} </dd> <dd class="itemNews"> {$module_data.ARTICLES_DATE} </dd> Опять таки второе необходимо для вывода даты добавления статьи. Все, теперь скрипт будет работать. Проверено на версии 1.58. с двумя языками. Удачи. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения