KoVaLsKy 59 Опубликовано 28 февраля, 2012 Жалоба Share Опубликовано 28 февраля, 2012 Саш, если мне на карточке товара нужно что бы выводились только статьи из конкретного раздела, но мне в /includes/modules/product_articles.php что то вроде этого нужно писать? Саш, а если не какой то конкретный раздел надо вывести, то нужно что писать что то вроде [CODE] if (isset($_GET['articles_id[x]'])){ php код} [/CODE] где Х id раздела Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 28 февраля, 2012 Автор Жалоба Share Опубликовано 28 февраля, 2012 я так понимаю надо брать условие что то вроде if (articles_tPath=18) и внутри его ставить $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) ); [/CODE] Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 февраля, 2012 Жалоба Share Опубликовано 28 февраля, 2012 Так если url картинки товара, то там неизвестен $_GET['articles_i В строке браузера только products_id, никаких articles_id нет, это нужно наверное из php кода доставать, а не из $_GET Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 28 февраля, 2012 Автор Жалоба Share Опубликовано 28 февраля, 2012 я наверное не так выразился. если брать из темы http://vamshop.ru/forum/topic/9821-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC-%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8-%D0%BD%D0%B0-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BA%D0%B8-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%B0/page__hl__%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8__fromsearch__1 и какое условие и как брать, например из /article_info.php что бы вовод делался только если статья лежит в конкретном разделе. править нужно /includes/modules/product_articles.php и я так чувствую что нужно условие ставить перед $module_content[]=array( Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 февраля, 2012 Жалоба Share Опубликовано 29 февраля, 2012 Наверное нужно писать разные условия и подставлять условие в sql запрос на выборку только статей из нужного раздела. В принципе, есть ведь в магазине примеры и вывод из определённых категорий и прочее, т.е. код можно посмотреть готовый. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 февраля, 2012 Автор Жалоба Share Опубликовано 29 февраля, 2012 Саш а в каком у нас категории то формируются и выводятся? Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 февраля, 2012 Автор Жалоба Share Опубликовано 29 февраля, 2012 includs/default.php ? Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 февраля, 2012 Автор Жалоба Share Опубликовано 29 февраля, 2012 Пробую Вот так-не работает <?php $module = new vamTemplate; $module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/'); $sql = "select distinct ax.articles_id, ad.articles_name, ad.articles_description, 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 (); if (isset($tPath) == 18) { $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); } } ?> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 29 февраля, 2012 Жалоба Share Опубликовано 29 февраля, 2012 $tPath не определена ведь. Нужно писать для начала sql запрос, что б узнать id номер категории. Как-то так наверное. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 29 февраля, 2012 Автор Жалоба Share Опубликовано 29 февраля, 2012 Саш, смотрб SQL таблицу, id раздела определяется как topics_id [/CODE] думаешь надо [color=#282828][font=helvetica, arial, sans-serif] писать для начала sql запрос?[/font][/color][color=#282828][font=helvetica, arial, sans-serif]как? скажи плиз...[/font][/color] Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 марта, 2012 Жалоба Share Опубликовано 1 марта, 2012 Если ты выводишь статьи, то уже ведь есть sql запрос, по идее, из этого запроса и нужно доставать topics_id И затем уже использовать это значение в условии. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 1 марта, 2012 Автор Жалоба Share Опубликовано 1 марта, 2012 Саш, смотри делаю запрос $topics_articles_query = "select count(*) as total from " . TABLE_ARTICLES_TO_TOPICS . " where topics_id = '" . (int)$current_topic_id . "'"; [/CODE] и пробую вывести, для начала значение ячеек в цикле [CODE] if ($current_topic_id==2){ echo $current_topic_id; } echo (int)$current_topic_id; но почему то не срабатывает. не потому что уже к SQL уже сделан запрос? $sql = "select distinct ax.articles_id, ad.articles_name, ad.articles_description, 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"; [/code] Оказывается id раздела еще хранится в таблице TABLE_ARTICLES_TO_TOPICS т.е Весь код выглядит [CODE] <?php $module = new vamTemplate; $module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/'); $sql = "select distinct ax.articles_id, ad.articles_name, ad.articles_description, 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"; $topics_articles_query = "select count(*) as total from " . TABLE_ARTICLES_TO_TOPICS . " where topics_id = '" . (int)$current_topic_id . "'"; $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 ($current_topic_id==2){ echo $current_topic_id; } echo (int)$current_topic_id; } 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); } ?> из за echo вверху экрана выводятся 000 -это нормально, ибо я к товару прикрепил 3 разных статьи из 3х разных разделов, а вывести мне нужно только из 2го Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 марта, 2012 Жалоба Share Опубликовано 1 марта, 2012 Так вроде ж нужен topics_id, если я правильно помню. Тогда sql запрос типа: $topics_articles_query ="select topics_id as from ". TABLE_ARTICLES_TO_TOPICS ." where articles_id = '".(int)$one['articles_id']."'"; Что б составить условия, нужно ж я так понимаю вытащить сначала topics_id Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 1 марта, 2012 Автор Жалоба Share Опубликовано 1 марта, 2012 $topics_articles_query ="select topics_id as from ". TABLE_ARTICLES_TO_TOPICS ." where articles_id = '".(int)$one['articles_id']."'"; [/CODE] так же id статьи вытаскивается. а мне ж надо id категории (раздела) т.е в массив вставляю[CODE] echo (int)$one['articles_id']; и выводятся id статей. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 марта, 2012 Жалоба Share Опубликовано 1 марта, 2012 Сначала запрос на статьи, оттуда мы берём id статьи, затем ниже вот этот запрос, что б узнать id категории статьи. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 1 марта, 2012 Автор Жалоба Share Опубликовано 1 марта, 2012 не хватает мне толку что то сделать дальше((((( Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 марта, 2012 Жалоба Share Опубликовано 2 марта, 2012 Если нужно просто тупо указать вывод статей из конкретного раздела, то sql запрос будет такой: $listing_sql = "select a.articles_id, a.authors_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_name, td.topics_name, a2t.topics_id from " . TABLE_ARTICLES . " a left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_status = '1' and a.articles_id = a2t.articles_id and ad.articles_id = a2t.articles_id and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and td.language_id = '" . (int)$_SESSION['languages_id'] . "' and a2t.topics_id = '" . (int)$current_topic_id . "' order by a.sort_order, ad.articles_name"; [/code] Можно ведь его было посмотртеть в /articles.php Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 2 марта, 2012 Автор Жалоба Share Опубликовано 2 марта, 2012 Саш, мне так же надо будет использовать функции vamDBquery(); vam_db_fetch_array() [/CODE] ???? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 марта, 2012 Жалоба Share Опубликовано 2 марта, 2012 А ты смотрел как выводятся статьи в articles.php ?! Оттуда можно взять ведь код. Так как раз код вывода статей из конкретных категорий. Такой вариант не подходит? Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 2 марта, 2012 Автор Жалоба Share Опубликовано 2 марта, 2012 Пробовал его взять-никак. пробовал <?php $module = new vamTemplate; $module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/'); $sql = "select distinct ax.articles_id, ad.articles_name, ad.articles_description, 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"; $listing_sql = "select a.articles_id, a.authors_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_name, td.topics_name, a2t.topics_id from " . TABLE_ARTICLES . " a left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_status = '1' and a.articles_id = a2t.articles_id and ad.articles_id = a2t.articles_id and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and td.language_id = '" . (int)$_SESSION['languages_id'] . "' and a2t.topics_id = '" . (int)$current_topic_id . "' order by a.sort_order, ad.articles_name";$row = 0; $module_content = array (); $query = vamDBquery($sql); if ((int)$current_topic_id == 2) { 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] просто не выводит Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 марта, 2012 Жалоба Share Опубликовано 2 марта, 2012 Так ведь надо id категории подставлять в sql запрос, статьи из которой нужно вытащить, т.е. менять: a2t.topics_id = '" . (int)$current_topic_id . "' [/code] например на: [code] a2t.topics_id = '1' Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 2 марта, 2012 Автор Жалоба Share Опубликовано 2 марта, 2012 Вообще странно.... или у меня кривые руки... тут же нужно добраться до topics_id и если значение этой ячейки равно числу, то выполняется вывод статьи на странице товара Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 марта, 2012 Жалоба Share Опубликовано 2 марта, 2012 Уточните, что именно нужно!? Если выводить статьи из определённого раздела, то вот имено такой sql запрос для вывода статей из раздела, где подставляется id раздела. Ссылка на сообщение Поделиться на другие сайты
KoVaLsKy 59 Опубликовано 2 марта, 2012 Автор Жалоба Share Опубликовано 2 марта, 2012 (изменено) <?php $module = new vamTemplate; $module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/'); $sql = "select distinct ax.articles_id, ad.articles_name, ad.articles_description, 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"; $listing_sql = "select a.articles_id, a.authors_id, a.articles_date_added, ad.articles_name, ad.articles_head_desc_tag, au.authors_name, td.topics_name, a2t.topics_id from " . TABLE_ARTICLES . " a left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_DESCRIPTION . " ad, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_status = '1' and a.articles_id = a2t.articles_id and ad.articles_id = a2t.articles_id and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and td.language_id = '" . (int)$_SESSION['languages_id'] . "' and a2t.topics_id = '2' order by a.sort_order, ad.articles_name"; $module_content = array (); $query = vamDBquery($sql); $res = vamDBquery($listing_sql); while ($one = vam_db_fetch_array($query,true) and $one = vam_db_fetch_array($res,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] && vam_db_fetch_array($res)) дополнительное условие к while Модуль да же выводится, но он пуст и в нем лишь только ссылка <a href="http://laramirra.com/article_info.php?articles_id="></a> а если веместо [CODE] while ($one = vam_db_fetch_array($query,true) && vam_db_fetch_array($res)) поставить while ($one = vam_db_fetch_array($res,true)){ [/code] то выводятся только ссылки на статьи (лежащие в этом разделе) что в принцепе логично да данного запроса Изменено 2 марта, 2012 пользователем KoVaLsKy то выводятся только ссылки на статьи (лежащие в этом разделе) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 марта, 2012 Жалоба Share Опубликовано 2 марта, 2012 Я лишь хочу сказать, что нужно взять за образец пример sql запроса из articles.php и поправить его под Ваши требования. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения