Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Портал > Модули и блоки

Ответ
 
Опции темы Опции просмотра
alx87 вне форума alx87
Младший участник

Аватар для alx87

| Цитировать Старый #1 02-21-2007, 13:37

Подскажите, а как можно вывести все новости добавленные за сегодня?
Вот через archive.php (news) можно вывести все новости за месяц, а как поправить этот файлик, чтобы новости за день выводились?

Мне просто нужно, чтобы была ссылочка которая выводила все новости, которые я добавил сегодня.

runcms1.2

PHP код:
<?php
// $Id: archive.php,v 1.2 2005/06/08 08:33:54 FARSUS Exp $
//***********************************************************/
//*                        RUNCMS                              */
//*              Simplicity & ease off use                  */
//*             < http://www.runcms.org >                   */
//***********************************************************/
// Original Author: The Xoops Project
// Author Website : http://www.xoops.org
// License Type   : GPL: See /manual/LICENSES/GPL.txt
// ---------------------------------------------------------- //

include_once("header.php");
include_once(
XOOPS_ROOT_PATH."/header.php");
include_once(
"class/class.newsstory.php");

$count     0;
$altbg     0;
$fromyear  "0000";
$frommonth "00";
$lastyear  "0000";
$lastmonth "00";

switch(
$_GET['op']) {
case 
"get":
    
$fromyear  intval($year);
    
$frommonth intval($month);
    break;
}

$useroffset "0";
if (
$xoopsUser) {
    
$timezone $xoopsUser->timezone();
    if (isset(
$timezone)) {
        
$useroffset $xoopsUser->timezone();
        } else {
            
$useroffset $xoopsConfig['default_TZ'];
        }
}

OpenTable();

echo 
'<table border="0" width="100%"><tr><td>';

$result=$db->query("SELECT published FROM ".$db->prefix("stories")." WHERE published>0 AND published<=".time()." ORDER BY published DESC");
if (!
$result) {
    echo 
$db->errno(). ": ".$db->error(). "<br />";
    
CloseTable();
    include_once(
XOOPS_ROOT_PATH."/footer.php");
    exit();
    } else {
    echo 
"<b>"._NW_NEWSARCHIVES."</b><br /><br />";
    while (list(
$time) = $db->fetch_row($result)) {
        
$datetime[1]  = date("Y"$time);
        
$datetime[2]  = date("m"$time);
        if ((
$lastyear != $datetime[1]) || ($lastmonth != $datetime[2])) {
            
$lastyear  $datetime[1];
            
$lastmonth $datetime[2];
            echo 
"<img src='images/size.gif' border='0' alt='' align='middle' />&nbsp;<a href='archive.php?op=get&amp;year=".$lastyear."&amp;month=".$lastmonth."'>";
            switch(
$lastmonth) {
                case 
"01":
                    print 
_NW_JANUARY;
                    break;
                case 
"02":
                    print 
_NW_FEBRUARY;
                    break;
                case 
"03":
                    print 
_NW_MARCH;
                    break;
                case 
"04":
                    print 
_NW_APRIL;
                    break;
                case 
"05":
                    print 
_NW_MAY;
                    break;
                case 
"06":
                    print 
_NW_JUNE;
                    break;
                case 
"07":
                    print 
_NW_JULY;
                    break;
                case 
"08":
                    print 
_NW_AUGUST;
                    break;
                case 
"09":
                    print 
_NW_SEPTEMBER;
                    break;
                case 
"10":
                    print 
_NW_OCTOBER;
                    break;
                case 
"11":
                    print 
_NW_NOVEMBER;
                    break;
                case 
"12":
                    print 
_NW_DECEMBER;
                    break;
            }
            echo 
", $lastyear</a><br />";
        }
    }
}

print (
"</td></tr></table>");

if (
$fromyear != "0000") {
    print (
"<br />");
    print (
"<table border='0' width='100%'><tr><td>");
    echo 
"<table width='100%' border='0' cellpadding='0' cellspacing='0' class='bg3'>";
    echo 
"<tr align='center' class='bg2'><td align='left'>&nbsp;<b>"._NW_ARTICLES." ( ";
    switch(
$frommonth) {
        case 
"01":
            print 
_NW_JANUARY;
            break;
        case 
"02":
            print 
_NW_FEBRUARY;
            break;
        case 
"03":
            print 
_NW_MARCH;
            break;
        case 
"04":
            print 
_NW_APRIL;
            break;
        case 
"05":
            print 
_NW_MAY;
            break;
        case 
"06":
            print 
_NW_JUNE;
            break;
        case 
"07":
            print 
_NW_JULY;
            break;
        case 
"08":
            print 
_NW_AUGUST;
            break;
        case 
"09":
            print 
_NW_SEPTEMBER;
            break;
        case 
"10":
            print 
_NW_OCTOBER;
            break;
        case 
"11":
            print 
_NW_NOVEMBER;
            break;
        case 
"12":
            print 
_NW_DECEMBER;
            break;
    }
    echo 
"
         
$fromyear )</b></td>
        <td align='center'><b>"
._NW_ACTIONS."</b></td>
        <td><b>"
._NW_VIEWS."</b></td>
        <td><b>"
._NW_COMMENTS."</b></td>
        <td><b>"
._NW_DATE."</b></td>
        </tr>"
;

    
// must adjust the selected time to server timestamp
    
$timeoffset $useroffset $xoopsConfig['server_TZ'];
    
$monthstart mktime(0-$timeoffset,0,0,$frommonth,1,$fromyear);
    
$monthend   mktime(23-$timeoffset,59,59,$frommonth+1,0,$fromyear);
    
$monthend   = ($monthend time()) ? time() : $monthend;
    
$sql "SELECT * FROM ".$db->prefix("stories")." WHERE published > $monthstart and published < $monthend ORDER by published DESC";
    
//echo $sql;
    
$result $db->query($sql);
    while (
$myrow $db->fetch_array($result)) {
        
$article    = new NewsStory($myrow);
        
$printP     "<a href='print.php?storyid=".$article->storyid()."'><img src='images/print.gif' border='0' alt='"._NW_PRINTERFRIENDLY."' width='15' height='11' /></a>&nbsp;";
        
$sendF      "<a target='_top' href='mailto:?subject=".rawurlencode(sprintf(_NW_INTARTICLE$meta['title']))."&body=".rawurlencode(sprintf(_NW_INTARTFOUND$meta['title']).":\r\n".XOOPS_URL."/modules/".$xoopsModule->dirname()."/article.php?storyid=".$article->storyid())."'><img src='images/friend.gif' border='0' alt='"._NW_SENDSTORY."' width='15' height='11' /></a>";
        
$storytitle $article->title();
        
$storytopic $article->topic_title();
        
$storytitle "<a href='index.php?storytopic=".$article->topicid()."'>".$storytopic."</a>: <a href='article.php?storyid=".$article->storyid()."'>".$storytitle."</a>";

        if (
$altbg==0) {
            echo 
"<tr align='right' class='bg1'>";
            
$altbg 1;
            } else {
                echo 
"<tr align='right'>";
                
$altbg=0;
            }
        
$sql $db->query("SELECT COUNT(*) FROM ".$db->prefix("comments")." WHERE item_id='".$article->storyid()."'");
        
$comments $db->fetch_row($sql);
        echo 
"
            <td align='left'>&nbsp;<a href='article.php?storyid="
.$article->storyid()."'>".$storytitle."</td>
            <td align='center'>
$printP $sendF</td>
            <td align='center'><small>"
.$article->counter()."</small></td>
            <td align='center'><small>"
.intval($comments[0])."</small></td>
            <td align='left'><small>"
.formatTimestamp($article->published(), "s"$useroffset)."</small></td>
            </tr>"
;
        
$count ++;
    }
echo 
"</table></td></tr></table><small>";
printf(_NW_THEREAREINTOTAL$count);
echo 
"</small>";
}

CloseTable();
include_once(
XOOPS_ROOT_PATH."/footer.php");
?>

Последний раз редактировалось alx87, 02-21-2007 в 13:45

  Сообщения: 83 c 30.01.2007 | Репутация: 22
alx87 вне форума alx87
Младший участник

Аватар для alx87

| Цитировать Старый #2 02-21-2007, 13:56

Готов впринципе заплатить, если нет такой функции.
Только тогда хочется, чтобы просто был файлик, допустим, today.php и он выводил все новости за сегодня, причем не заголовки, а с кратким содержанием, вот.

  Сообщения: 83 c 30.01.2007 | Репутация: 22
Shurik2k5 вне форума Shurik2k5
Проживающий

Аватар для Shurik2k5

| Цитировать Старый #3 02-21-2007, 15:30

В файл class/class.newsstory.php
добавить следующее:
PHP код:
function getAllToday($limit=0$start=0$topic=0$ihome=0$asobject=true) {
global 
$db$myts;

$ret = array();
$start_day=mktime(0,0,0,date('m'),date('d'),date('y'));
$end_day=mktime(23,59,59,date('m'),date('d'),date('y'));
$sql "SELECT * FROM ".$db->prefix("stories")." WHERE published > $start_day AND published <= ".$end_day."";

if ( !empty(
$topic) ) {
    
$sql .= " AND topicid=".intval($topic)." AND (ihome=1 OR ihome=0)";
    } else {
        if ( 
$ihome == ) {
            
$sql .= " AND ihome=0";
        }
    }

$sql   .= " ORDER BY published DESC";
$result $db->query($sqlintval($limit), intval($start));
while ( 
$myrow $db->fetch_array($result) ) {
    if ( 
$asobject ) {
        
$ret[] = new NewsStory($myrow);
        } else {
            
$ret[$myrow['storyid']] = $myts->makeTboxData4Show($myrow['title']);
        }
}

return 
$ret;
}

function 
countByTopicToday($topicid=0) {
global 
$db;

$start_day=mktime(0,0,0,date('m'),date('d'),date('y'));
$end_day=mktime(23,59,59,date('m'),date('d'),date('y'));

$sql "SELECT COUNT(*) FROM ".$db->prefix("stories")." WHERE published > $start_day AND published <= ".$end_day."";

if ( 
$topicid != ) {
    
$sql .= " and topicid=".intval($topicid);
}

$result $db->query($sql);
list(
$count) = $db->fetch_row($result);

return 
$count;

В файл modules/news/xoops_version.php
добавить
PHP код:
$modversion['sub'][3]['name'] = _MI_NEWS_SMNAME4;
$modversion['sub'][3]['url']  = 'today.php'
а также в файл language/russian/modinfo.php добавть
PHP код:
define("_MI_NEWS_SMNAME4","За сегодня"); 
должно работать.
Вложения
Тип файла: rar today.rar (1.7 Кбайт, 2 просмотров)


Форум RunLiveCMS
Багтрекер RunLiveCMS
Энциклопедия RunLiveCMS
Посетить домашнюю страницу Shurik2k5
  Сообщения: 513 c 12.06.2006 | Репутация: 80
alx87 вне форума alx87
Младший участник

Аватар для alx87

| Цитировать Старый #4 02-21-2007, 17:05

Спасибо, вроде бы все работает. Вот только он не выводит новости, у которых я поставил галочку, чтобы они на главной не появлялись.
Подскажи пожалуйста как это исправить?

  Сообщения: 83 c 30.01.2007 | Репутация: 22
Shurik2k5 вне форума Shurik2k5
Проживающий

Аватар для Shurik2k5

| Цитировать Старый #5 02-21-2007, 17:30

заменить код в class/class.newsstory.php
PHP код:
function getAllToday($limit=0$start=0$topic=0$ihome=0$asobject=true) {
global 
$db$myts;

$ret = array();
$start_day=mktime(0,0,0,date('m'),date('d'),date('y'));
$end_day=mktime(23,59,59,date('m'),date('d'),date('y'));
$sql "SELECT * FROM ".$db->prefix("stories")." WHERE published > $start_day AND published <= ".$end_day."";

if ( !empty(
$topic) ) {
    
$s7ql .= " AND topicid=".intval($topic)." AND (ihome=1 OR ihome=0)";
    } 

$sql   .= " ORDER BY published DESC";
$result $db->query($sqlintval($limit), intval($start));
while ( 
$myrow $db->fetch_array($result) ) {
    if ( 
$asobject ) {
        
$ret[] = new NewsStory($myrow);
        } else {
            
$ret[$myrow['storyid']] = $myts->makeTboxData4Show($myrow['title']);
        }
}

return 
$ret;
}

function 
countByTopicToday($topicid=0) {
global 
$db;

$start_day=mktime(0,0,0,date('m'),date('d'),date('y'));
$end_day=mktime(23,59,59,date('m'),date('d'),date('y'));

$sql "SELECT COUNT(*) FROM ".$db->prefix("stories")." WHERE published > $start_day AND published <= ".$end_day."";

if ( 
$topicid != ) {
    
$sql .= " and topicid=".intval($topicid);
}

$result $db->query($sql);
list(
$count) = $db->fetch_row($result);

return 
$count;

Оценка сообщения (репутация)
+0 Raushan положительно:


Форум RunLiveCMS
Багтрекер RunLiveCMS
Энциклопедия RunLiveCMS
Посетить домашнюю страницу Shurik2k5
  Сообщения: 513 c 12.06.2006 | Репутация: 80
alx87 вне форума alx87
Младший участник

Аватар для alx87

| Цитировать Старый #6 02-21-2007, 18:51

Спасибище огромное!
И последнее, подскажи как сделать, чтобы все новости дня выводились на одной странице, а не по 10, т.е. чтобы внизу не было навигации по страницам, а все было на одной странице.
Еще раз спасибо!

  Сообщения: 83 c 30.01.2007 | Репутация: 22
alx87 вне форума alx87
Младший участник

Аватар для alx87

| Цитировать Старый #7 02-21-2007, 21:42

Все спасибо сам разобрался.
Жирный плюсик тебе!

  Сообщения: 83 c 30.01.2007 | Репутация: 22
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2018, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 128.60 Kb. compressed to 123.22 Kb. by saving 5.38 Kb. (4.18%)
Page generated in 0.06789 seconds with 10 queries