Перейти к содержанию
Форум поддержки пользователей VamShop

вывод конкретного раздела


Рекомендуемые сообщения


// show the articles of a specified author
if (isset($_GET['authors_id'])) {

$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 au.authors_id = '" . (int)$_GET['authors_id'] . "' 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'] . "' order by a.sort_order, ad.articles_name";
} else {

$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";
}
} else {

$listing_sql = "select a.articles_id, a.articles_date_added, a.articles_date_available, ad.articles_name, ad.articles_head_desc_tag, ad.articles_viewed, au.authors_id, au.authors_name, td.topics_id, td.topics_name from " . TABLE_ARTICLES . " a left join " . TABLE_AUTHORS . " au on a.authors_id = au.authors_id, " . TABLE_ARTICLES_TO_TOPICS . " a2t left join " . TABLE_TOPICS_DESCRIPTION . " td on a2t.topics_id = td.topics_id, " . TABLE_ARTICLES_DESCRIPTION . " ad where (a.articles_date_available IS NULL or to_days(a.articles_date_available) <= to_days(now())) and a.articles_id = a2t.articles_id and a.articles_status = '1' and a.articles_id = ad.articles_id and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and td.language_id = '" . (int)$_SESSION['languages_id'] . "' ORDER BY IF (`a`.`sort_order`,`a`.`articles_date_available`, `a`.`articles_date_added`) DESC";
}
if ($_GET['akeywords'] != ""){

$_GET['akeywords'] = urldecode($_GET['akeywords']);

if (isset($_GET['description'])) {
$listing_sql = "select ad.articles_name, a.articles_date_added, a.articles_date_available, a.articles_id, ad.articles_description from " . TABLE_ARTICLES_DESCRIPTION . " ad inner join " . TABLE_ARTICLES . " a on ad.articles_id = a.articles_id where a.articles_status = '1' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and (ad.articles_name like '%" . $_GET['akeywords'] . "%' or ad.articles_description like '%" . $_GET['akeywords'] . "%' or ad.articles_head_desc_tag like '%" . $_GET['akeywords'] . "%' or ad.articles_head_keywords_tag like '%" . $_GET['akeywords'] . "%' or ad.articles_head_title_tag like '%" . $_GET['akeywords'] . "%') order by ad.articles_name ASC";
} else {
$listing_sql = "select ad.articles_name, a.articles_date_added, a.articles_date_available, a.articles_id, ad.articles_description from " . TABLE_ARTICLES_DESCRIPTION . " ad inner join " . TABLE_ARTICLES . " a on ad.articles_id = a.articles_id where a.articles_status='1' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and (ad.articles_name like '%" . $_GET['akeywords'] . "%' or ad.articles_head_desc_tag like '%" . $_GET['akeywords'] . "%' or ad.articles_head_keywords_tag like '%" . $_GET['akeywords'] . "%' or ad.articles_head_title_tag like '%" . $_GET['akeywords'] . "%') order by a.sort_order, ad.articles_name ASC";
}
}

$articles_split = new splitPageResults($listing_sql, $_GET['page'], MAX_ARTICLES_PER_PAGE);
if (($articles_split->number_of_rows > 0)) {
$vamTemplate->assign('NAVIGATION_BAR', TEXT_RESULT_PAGE.' '.$articles_split->display_links(MAX_DISPLAY_PAGE_LINKS, vam_get_all_get_params(array ('page', 'info', 'x', 'y'))));
$vamTemplate->assign('NAVIGATION_BAR_PAGES', $articles_split->display_count(TEXT_DISPLAY_NUMBER_OF_ARTICLES));
}
$module_content = '';
if ($articles_split->number_of_rows > 0) {
$vamTemplate->assign('no_articles', 'false');
$articles_query = vam_db_query($articles_split->sql_query);
while ($articles = vam_db_fetch_array($articles_query)) {
[/CODE]

Отсюда копать?

Ссылка на сообщение
Поделиться на другие сайты

Ну да.

Бери свой рабочий код, что у тебя был, только меняй в нём sql запрос и поставляй значение topics_id

Был же рабочий код вывода статей, вот его и используй.

Ссылка на сообщение
Поделиться на другие сайты


$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, " . 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 and a.articles_id = a2t.articles_id and ad.articles_id = a2t.articles_id andad USING(articles_id) where ax.xsell_id = '" . (int)$_GET['products_id'] . "' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and a2t.topics_id = '2' and a.articles_status = '1' order by a.articles_last_modified";
[/CODE]

как то так, но ругается... не подскажешь где накосячил?

Ссылка на сообщение
Поделиться на другие сайты

Прицепи свой php и html код шаблона, а так же как он подключаеся на странице карточки товара, т.е. весь код, что б я мог тоже попробовать.

Ссылка на сообщение
Поделиться на другие сайты

php


<?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, " . 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 and a.articles_id = a2t.articles_id and ad.articles_id = a2t.articles_id andad USING(articles_id) where ax.xsell_id = '" . (int)$_GET['products_id'] . "' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and a2t.topics_id = '2' 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] html модуля
[CODE]
{config_load file="$language/lang_$language.conf" section="boxes"}
{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">
<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}
</dd>
<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>
html кусок из prodact_info.html

<!-- Применение-->
{if $MODULE_product_articles != ''}
<div class="tabbertab">
<h2>Применение</h2>
<p>{$MODULE_product_articles}</p>
<div class="clear"></div>
</div>
{/if}
<!-- Применение-->
[/code]

сделан через вкладки

Ссылка на сообщение
Поделиться на другие сайты

Вот такой код ведь должен работать:



<?php
$module = new vamTemplate;
$module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
$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 = '1' order by a.sort_order, ad.articles_name";
$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]

Должен статью выводить из категории с id 1

Во всяком случае, sql запрос правильный.

Ссылка на сообщение
Поделиться на другие сайты

ох....

Выводить те же самые прикрепленные к товарам статьи но не из всех разделов, а только из одного.

Ведь порой нужно что бы на странице с товарам была определнная статья, а остальные статьи так.... второстепенно.

Т.е я в админке наприкрепляю к одному товару 10 статей, а на странице товара выводились только из определенного раздела, с определенным id

Ссылка на сообщение
Поделиться на другие сайты

А что должно быть?!

sql запрос и выводить статьи из определённого раздела.

У меня выводятся только ссылки на ВСЕ статьи из данного раздела, да же не прикрепленные к товару

Ссылка на сообщение
Поделиться на другие сайты

Я конкретный sql запрос не подскажу.

Смысл в том, что нужно в запрос добавить через left join articles_to_topics таблицы, что б выводились только статьи из нужного раздела.

Опять же, есть ведь примеры sql запроса вывода из определённой категории и есть пример запроса только прицепленных к товару статей, вот и нужно просто условие перенести из первого запроса во второй.

Ссылка на сообщение
Поделиться на другие сайты

Саш


$sql = "select distinct ax.articles_id, ad.articles_name, a.articles_last_modified, a2t.topics_id from " . TABLE_ARTICLES_XSELL . " ax LEFT JOIN ".TABLE_ARTICLES." a USING(articles_id) LEFT JOIN " . TABLE_ARTICLES_DESCRIPTION . " ad USING(articles_id) LEFT JOIN " . TABLE_ARTICLES_TO_TOPICS . " a2t USING(articles_id) where ax.xsell_id = '" . (int)$_GET['products_id'] . "' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' and a2t.topics_id = '2' and a.articles_status = '1' order by a.articles_last_modified";
[/CODE] Добавил LEFT JOIN и т.д Выводится действительно как и нужно статья, лежащая в нужном разделе, прикрепленная как и должно быть НО Только ссылка не нее. Хотя я добавил только вот
[CODE]
LEFT JOIN " . TABLE_ARTICLES_TO_TOPICS . " a2t USING(articles_id)
и

and a2t.topics_id = '2'
[/code]

т.е описание (текст самой статьи) куда то подевался

Ссылка на сообщение
Поделиться на другие сайты

Так нужно наверное добавить в sql запрос описания, т.е. ad.articles_description

ad. и т.д. это алиасы таблиц.

Ссылка на сообщение
Поделиться на другие сайты

Агаг...

нет просто я очень плохо в SQL рабзираюсь и вроде по логике думаю, что выводилось до этого, будет и тут выводиться.

ad.articles_description

так же через LEFT JOIN ?

Ссылка на сообщение
Поделиться на другие сайты

Это добавить через запятую после ad.articles_name

И наверное не лишним ведь будет взять книжку по sql, что б хотя бы основы понимать, т.е. как запросы строятся.

Ссылка на сообщение
Поделиться на другие сайты

да, ничего не надо было больше

Огромное тебе спасибо Саш!!!

а про SQL я уже сижу учу))) вот как раз взялся учить, получилось...

Учусь по видеоурокам Е.Попова

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...