изменение вывода новостей

Тема в разделе "Shop-script", создана пользователем zascia, 13 окт 2008.

Статус темы:
Закрыта.
  1. zascia

    zascia Писатель

    Регистр.:
    13 авг 2008
    Сообщения:
    3
    Симпатии:
    0
    Приветствую всех!
    У меня SS Free, хочу его немного переделать, в частности, сделать вывод списка кратких новостей и статей на главной странице, как тут http://ituning.com.ua/

    Из шаблона node_brief в отдельный мною созданный шаблон news_last перенес переменные, указал

    PHP:
    {section name=i loop=$node_to_show max=$node_to_show_count}
    {
    assign var = "node_info" value $node_to_show[i]}
    ...
    Список новостей стал выводиться в правой колонке, но только при клике на пункт меню "новости", а мне нужно, чтобы это было постоянно. Как это можно реализовать?
     
  2. alexander-x

    alexander-x Постоялец

    Регистр.:
    20 май 2007
    Сообщения:
    130
    Симпатии:
    26
    а если содержимое news_last закинуть index? :)
     
  3. zascia

    zascia Писатель

    Регистр.:
    13 авг 2008
    Сообщения:
    3
    Симпатии:
    0
    В index.php дописал


    PHP:
    //news last
        
    $result = array();
        
    $sf = array();
        
    $q db_query("SELECT count(*) FROM ".NODE_TABLE." WHERE class='2' AND enabled=1") or die (db_error());
        
    $n_count db_fetch_row($q);
        
    $n_count $n_count[0];

        if (
    $n_count) { // есть записи
            
    if ($offset $n_count$offset=0;
            
    $q db_query("SELECT nodeID FROM ".NODE_TABLE." WHERE class='2' AND enabled=1 order by date desc") or die (db_error());

            
    $result = array();
            
    $i=0;

            while (
    $row db_fetch_row($q)){
                if (isset(
    $_GET["show_all"]) || ($i>=$offset && $i<$offset+CONF_NODE_PER_PAGE)){
                    
    $q1 db_query("select nodeID, date, title, node from ".NODE_TABLE." where nodeID='$row[0]'") or die (db_error());
                    
    $row1 db_fetch_row($q1);
                    
    $row1[3] = _filter_url(node_teaser($row1[3]));
                    
    $result[] = $row1;
                }
                
    $i++;
            }
        }
        
    $smarty->assign("news_last",$result);

        if (!isset(
    $_GET["show_all"])){
            
    $min CONF_NODE_PER_PAGE;
            if (
    $min $n_count-$offset$min $n_count-$offset;
        }    else {
            
    $min $n_count;
            
    $offset "show_all";
        }

        
    $smarty->assign("news_to_show"$result);
        
    $smarty->assign("news_to_show_count"$min);

    Создал шаблон , где прописал

    PHP:
    {section name=i loop=$news_to_show max=$news_to_show_count}
            {
    assign var = "node_info" value $news_to_show[i]}

            <
    div class="news">
                <
    class="info">
                    <
    span class="time">14:55</span> <span class="calendar">{$node_info[1]|date_format:"%d.%m.%Y"}</span> <span class="views">1240</span> <span class="comments">14</span>
                </
    p>
                <
    div class="foto">
                    <
    a href="index.php?nodeID={$node_info[0]}title=""><img src="./img/news_pic.jpg" alt="" /></a>
                </
    div>
                <
    div class="text_block">
                    <
    p>{$node_info[3]}</p>
                </
    div>
                <
    div class="clear_left"></div>
                <
    div class="right_href">
                    <
    a href="index.php?nodeID={$node_info[0]}title=""><img src="./img/bg/href_bg.jpg" /></a>
                </
    div>
            </
    div>
        {/
    section}
    Понимаю, что конструкция громоздкая и, возможно, содержит в себе много лишнего, но она работает.
    Есть вопрос: можно ли этот ПХП код вынести в отдельную функцию с тем же именем, и можно ли ее немного подсократить?

    Еще непонятно: где найти модуль логин-пароль регистрации? Он существует в бесплатной версии?

    Извините, если вопросы покажутся дикими, до этого у меня не было опыта в программировании (
     
Статус темы:
Закрыта.