محبوبترین مطالب روز - هفته - ماه
یکی از مشکلات من با مامبو ماژول محبوبترین مطالبه سایته.
گرچه امکان عالیای برای سایت حساب میشه ولی چون محبوبترین مطالب رو از ابتدای راهاندازی نشون میده یه جاهایی به کار نمیاد.
مثلا برای من که یه سایت خبری دارم. 5 تا مطلب قدیمی نمایش داده میشه که خیلی جالب نیست.
کسی ماژولی سراغ نداره بشه محبوبترین مطالب مطالب روز - هفته - ماه رو نمایش داد؟
پاسخ : محبوبترین مطالب روز - هفته - ماه
سلام
دوست عزیز نیاز به ماژول اضافی نیست
توجه به کد
کد:
OR a.publish_up <= " . $database->Quote( $now )
اگه همون ماژول را باز کنی چند جا می بینی برای کنترل تاریخ علامت => گذاشته اگه همون ها را به == تبدیل کنی مطالب محبوب روز را نشان می دهد
اگه به جای $now تاریخ 1 هفته پیش را بزاری یا تاریخی که اول هر هفته را نشان می دهد و علامت => را به =< تبدیل کنید از اون تاریخ به این ور محوب ها را نشان می دهد و به همین ترتیب
یا علی/خداحافظ
پاسخ : محبوبترین مطالب روز - هفته - ماه
کد رو پیدا نکردم...
کلش رو میزام اینجا.
میخواستم محبوبترین های ماه نمایش داده بشه.
modules\mod_mostread.php
کد:
<?php
/**
* @version $Id: mod_mostread.php,v 1.1 2005/07/22 01:58:30 eddieajau Exp $
* @package Mambo
* @copyright (C) 2000 - 2005 Miro International Pty Ltd
* @license [مهمان/کاربر گرامی برای دیدن لینک ها ابتدا باید عضو سایت شوید و لاگین کنید برای ثبت نام اینجا کلیک کنید] GNU/GPL
* Mambo is Free Software
*/
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
global $mosConfig_offset, $mosConfig_live_site;
$type = intval( $params->get( 'type', 1 ) );
$count = intval( $params->get( 'count', 5 ) );
$catid = trim( $params->get( 'catid' ) );
$secid = trim( $params->get( 'secid' ) );
$show_front = $params->get( 'show_front', 1 );
$class_sfx = $params->get( 'moduleclass_sfx' );
$now = date( 'Y-m-d H:i:s', time()+$mosConfig_offset*60*60 );
$access = !$mainframe->getCfg( 'shownoauth' );
// select between Content Items, Static Content or both
switch ( $type ) {
case 2:
$query = "SELECT a.id, a.title"
. "\n FROM #__content AS a"
. "\n WHERE ( a.state = '1' AND a.checked_out = '0' AND a.sectionid = '0' )"
. "\n AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '". $now ."' )"
. "\n AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '". $now ."' )"
. ( $access ? "\n AND a.access <= '". $my->gid ."'" : '' )
. "\n ORDER BY a.hits DESC LIMIT $count"
;
$database->setQuery( $query );
$rows = $database->loadObjectList();
break;
case 3:
$query = "SELECT a.id, a.title, a.sectionid"
. "\n FROM #__content AS a"
. "\n WHERE ( a.state = '1' AND a.checked_out = '0' )"
. "\n AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '". $now ."' )"
. "\n AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '". $now ."' )"
. ( $access ? "\n AND a.access <= '". $my->gid ."'" : '' )
. "\n ORDER BY a.hits DESC LIMIT $count"
;
$database->setQuery( $query );
$rows = $database->loadObjectList();
break;
case 1:
default:
$query = "SELECT a.id, a.title, a.sectionid, a.catid"
. "\n FROM #__content AS a"
. "\n LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id"
. "\n WHERE ( a.state = '1' AND a.checked_out = '0' AND a.sectionid > '0' )"
. "\n AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '". $now ."' )"
. "\n AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '". $now ."' )"
. ( $access ? "\n AND a.access <= '". $my->gid ."'" : '' )
. ( $catid ? "\n AND ( a.catid IN (". $catid .") )" : '' )
. ( $secid ? "\n AND ( a.sectionid IN (". $secid .") )" : '' )
. ( $show_front == "0" ? "\n AND f.content_id IS NULL" : '' )
. "\n ORDER BY a.hits DESC LIMIT $count"
;
$database->setQuery( $query );
$rows = $database->loadObjectList();
break;
}
// needed to reduce queries used by getItemid for Content Items
if ( ( $type == 1 ) || ( $type == 3 ) ) {
$bs = $mainframe->getBlogSectionCount();
$bc = $mainframe->getBlogCategoryCount();
$gbs = $mainframe->getGlobalBlogSectionCount();
}
// Output
?>
<ul class="mostread<?php echo $class_sfx; ?>">
<?php
foreach ($rows as $row) {
// get Itemid
switch ( $type ) {
case 2:
$query = "SELECT id"
. "\n FROM #__menu"
. "\n WHERE type = 'content_typed'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
break;
case 3:
if ( $row->sectionid ) {
$Itemid = $mainframe->getItemid( $row->id, 0, 0, $bs, $bc, $gbs );
} else {
$query = "SELECT id"
. "\n FROM #__menu"
. "\n WHERE type = 'content_typed'"
. "\n AND componentid = $row->id"
;
$database->setQuery( $query );
$Itemid = $database->loadResult();
}
break;
case 1:
default:
$Itemid = $mainframe->getItemid( $row->id, 0, 0, $bs, $bc, $gbs );
break;
}
// Blank itemid checker for SEF
if ($Itemid == NULL) {
$Itemid = '';
} else {
$Itemid = '&amp;Itemid='.$Itemid;
}
$link = sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $row->id . $Itemid );
?>
<li class="latestnews<?php echo $class_sfx; ?>">
<a href="<?php echo $link; ?>" class="mostread<?php echo $class_sfx; ?>">
<?php echo $row->title; ?>
</a>
</li>
<?php
}
?>
</ul>
پاسخ : محبوبترین مطالب روز - هفته - ماه
توی همین کدی که گذاشتی این عبارت رو پیدا کن:
کد:
OR a.publish_up <= '". $now ."' )
چند جا توی کدت هست!
[quote author=AHMADZADEH link=topic=5406.msg32728#msg32728 date=1174838828]
برای کنترل تاریخ علامت => گذاشته اگه همون ها را به == تبدیل کنی مطالب محبوب روز را نشان می دهد
اگه به جای $now تاریخ 1 هفته پیش را بزاری یا تاریخی که اول هر هفته را نشان می دهد و علامت => را به =< تبدیل کنید از اون تاریخ به این ور محوب ها را نشان می دهد و به همین ترتیب
[/quote]
پاسخ : محبوبترین مطالب روز - هفته - ماه
نقل قول:
یا تاریخی که اول هر هفته را نشان می دهد
این چجوری انجام میشه؟