termen 0 Опубликовано 13 июня, 2016 Жалоба Share Опубликовано 13 июня, 2016 Сделала вывод статей на главной, но почему-то вывод чередуется с пустыми блоками. Подскажите плиз, как можно решить проблему? 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> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 июня, 2016 Жалоба Share Опубликовано 13 июня, 2016 1 час назад, termen сказал: Сделала вывод статей на главной, но почему-то вывод чередуется с пустыми блоками. Подскажите плиз, как можно решить проблему? 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 . ""; По идее, должно помочь. Ссылка на сообщение Поделиться на другие сайты
termen 0 Опубликовано 13 июня, 2016 Автор Жалоба Share Опубликовано 13 июня, 2016 Да, все верно. Спасибо. Запрос правда не прошел: #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 Но не суть. Я просто удалил второй язык - он не нужен. Все стало нормально отображаться Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 июня, 2016 Жалоба Share Опубликовано 13 июня, 2016 Не за что Ссылка на сообщение Поделиться на другие сайты
YuraS 4 Опубликовано 25 апреля, 2020 Жалоба Share Опубликовано 25 апреля, 2020 Александр, подскажите, пожалуйста, как выводить статьи только из определенного раздела? Ссылка на сообщение Поделиться на другие сайты
YuraS 4 Опубликовано 25 апреля, 2020 Жалоба Share Опубликовано 25 апреля, 2020 нашел sql-запрос тут. немного подпилил напильником. вроде работает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 апреля, 2020 Жалоба Share Опубликовано 26 апреля, 2020 Хорошо, что разобрались. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения