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

Вывод статей на главной


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

Сделала вывод статей на главной, но почему-то вывод чередуется с пустыми блоками.

artikle.thumb.JPG.1bea73ca5b39f0c7b7f4a4

Подскажите плиз, как можно решить проблему?

articles.php


 <?php

$module = new vamTemplate;

$module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

$sql = "select a.articles_id, ad.articles_name, ad.articles_description from " . TABLE_ARTICLES . " a left join " . TABLE_ARTICLES_DESCRIPTION . " ad on ad.articles_id = a.articles_id where a.articles_status = '1' ORDER BY articles_date_added DESC LIMIT " . MAX_NEW_ARTICLES_PER_PAGE . "";

$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/articles_default.html');

} else {

$module->caching = 1;

$module->cache_lifetime=CACHE_LIFETIME;

$module->cache_modified_check=CACHE_CHECK;

$module = $module->fetch(CURRENT_TEMPLATE.'/module/articles_default.html',$cache_id);

}

$default->assign('MODULE_articles', $module);

}

?>

articles_default.html

{config_load file="$language/lang_$language.conf" section="boxes"} 
<h1 style="text-align:center;"><a href="articles.php">{#heading_articles#}</a></h1>
<div class="page">
<div class="pageItem">
<div class="row-fluid last-news">

{foreach name=aussen item=module_data from=$module_content}

<b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b>

<div class="pageItem">

<dl class="itemLatestNewsDefault">


<dd class="itemNews">
<h4 class="title"><a href="{$module_data.ARTICLES_URL}">{$module_data.ARTICLES_NAME}</a></h4>
</dd>
<div style="min-height: 80px">
<div style="text-align:initial">
{$module_data.ARTICLES_DESCRIPTOIN|vam_truncate:255:"..."}
</div>
</div>
</dl>
<div class="clear"></div>
</div>


<b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b>


{/foreach} 


</div>
<div class="clear"></div>
</div>

</div>

 

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, termen сказал:

Сделала вывод статей на главной, но почему-то вывод чередуется с пустыми блоками.

artikle.thumb.JPG.1bea73ca5b39f0c7b7f4a4

Подскажите плиз, как можно решить проблему?

articles.php



 <?php

$module = new vamTemplate;

$module->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

$sql = "select a.articles_id, ad.articles_name, ad.articles_description from " . TABLE_ARTICLES . " a left join " . TABLE_ARTICLES_DESCRIPTION . " ad on ad.articles_id = a.articles_id where a.articles_status = '1' ORDER BY articles_date_added DESC LIMIT " . MAX_NEW_ARTICLES_PER_PAGE . "";

$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/articles_default.html');

} else {

$module->caching = 1;

$module->cache_lifetime=CACHE_LIFETIME;

$module->cache_modified_check=CACHE_CHECK;

$module = $module->fetch(CURRENT_TEMPLATE.'/module/articles_default.html',$cache_id);

}

$default->assign('MODULE_articles', $module);

}

?>

articles_default.html


{config_load file="$language/lang_$language.conf" section="boxes"} 
<h1 style="text-align:center;"><a href="articles.php">{#heading_articles#}</a></h1>
<div class="page">
<div class="pageItem">
<div class="row-fluid last-news">

{foreach name=aussen item=module_data from=$module_content}

<b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b>

<div class="pageItem">

<dl class="itemLatestNewsDefault">


<dd class="itemNews">
<h4 class="title"><a href="{$module_data.ARTICLES_URL}">{$module_data.ARTICLES_NAME}</a></h4>
</dd>
<div style="min-height: 80px">
<div style="text-align:initial">
{$module_data.ARTICLES_DESCRIPTOIN|vam_truncate:255:"..."}
</div>
</div>
</dl>
<div class="clear"></div>
</div>


<b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b>


{/foreach} 


</div>
<div class="clear"></div>
</div>

</div>

 

Я так подозреваю, что дело в том, что у Вас в sql запросе не указан id номер языка, т.е. статьи на каком языке выводить, получается, что у Вас статьи заданы для одного языка, а в магазине, видимо, ещё одни язык добавлен, для которого теекст статей не задан.

Исправьте Ваш sql запрос:

$sql = "select a.articles_id, ad.articles_name, ad.articles_description from " . TABLE_ARTICLES . " a left join " . TABLE_ARTICLES_DESCRIPTION . " ad on ad.articles_id = a.articles_id where a.articles_status = '1' ORDER BY articles_date_added DESC LIMIT " . MAX_NEW_ARTICLES_PER_PAGE . "";

на:

$sql = "select a.articles_id, ad.articles_name, ad.articles_description from " . TABLE_ARTICLES . " a left join " . TABLE_ARTICLES_DESCRIPTION . " ad on ad.articles_id = a.articles_id where a.articles_status = '1' and ad.language_id = '" . (int)$_SESSION['languages_id'] . "' ORDER BY articles_date_added DESC LIMIT " . MAX_NEW_ARTICLES_PER_PAGE . "";

По идее, должно помочь.

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

Да, все верно. Спасибо. Запрос правда не прошел:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$sql = "select a.articles_id, ad.articles_name, ad.articles_description from " .' at line 1

Но не суть. Я просто удалил второй язык - он не нужен. Все стало нормально отображаться

 

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

Александр, подскажите, пожалуйста, как выводить статьи только из определенного раздела?

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