phpcmsv9系統(tǒng)一直是建站的首選,。最的筆者在使用的過(guò)程中發(fā)現(xiàn)推薦位最大保存條數(shù)不生效,,不管設(shè)置成多少在推薦位信息管理里查看還是一直在增加,。為了簡(jiǎn)化數(shù)據(jù)庫(kù)大小及方便在推薦位里查找了近推送的數(shù)據(jù),,就對(duì)代碼進(jìn)行了改選,,使其生效,。
在文件/phpcms/modules/admin/classes/push_api.class.php第180行附近查找
1 2 3 4 5 6 | //顏色選擇為隱藏域 在這里進(jìn)行取值
$info [ 'data' ][ 'style' ] = $d [ 'style' ];
$info [ 'thumb' ] = $info [ 'data' ][ 'thumb' ] ? 1 : 0;
$info [ 'siteid' ] = get_siteid();
$info [ 'data' ] = array2string( $info [ 'data' ]);
$info [ 'expiration' ] = $expiration ;
|
在其下添加如下代碼:
1 2 3 4 5 6 7 8 9 10 11 | // 添加處理推薦位刪除過(guò)期數(shù)據(jù)流程
$this ->db = pc_base::load_model( 'position_model' );
$maxnum = $this ->db->get_one( "`posid` = " . $pid );
$ids = $pos_data ->select( array ( 'posid' => $pid ), 'id' ,( $maxnum [ 'maxnum' ]). ",10000" , 'listorder DESC' );
if ( $ids ){
foreach ( $ids as $k => $v ) {
$idsarr .= $v [ 'id' ]. "," ;
}
$idsarr =rtrim( $idsarr , ',' );
$pos_data ->query( "delete from phpcms_position_data where `posid` =" . $pid . " and id in (" . $idsarr . ")" );
}
|
這樣修改后在修改文章修改了推薦位后就可以更新推薦位內(nèi)的推薦新聞條數(shù),。但是新添加的新聞直接打推薦一還是不能更新。還需要修改以下文件,。
在文件/phpcms/modules/content/fields/posid/update.inc.php第16行附近查找
1 | $thumb = $this ->data[ 'thumb' ] ? 1 : 0;
|
在其下添加如下代碼:
1 2 3 4 5 6 7 8 9 10 | $this ->db = pc_base::load_model( 'position_model' );
$maxnum = $this ->db->get_one( "`posid` = " . $r );
$ids = $position_data_db ->select( array ( 'posid' => $r ), 'id' ,( $maxnum [ 'maxnum' ]). ",10000" , 'listorder DESC' );
if ( $ids ){
foreach ( $ids as $k => $v ) {
$idsarr .= $v [ 'id' ]. "," ;
}
$idsarr =rtrim( $idsarr , ',' );
$position_data_db ->query( "delete from phpcms_position_data where `posid` =" . $r . " and id in (" . $idsarr . ")" );
}
|
修改這個(gè)文件后需要在后臺(tái)更新緩存。這樣修改完后推薦位最大保存條數(shù)就生效了,,添加的時(shí)候總會(huì)比設(shè)置的值多一條以備查看,。
個(gè)人建議設(shè)置最大保存要比前臺(tái)顯示的條數(shù)多十條左右,這樣取消一個(gè)推薦還有可用的推薦信息在前臺(tái)顯示,,不至于顯示為空,。
|