weblinksのviewcate.phpで親カテゴリー表示の場合、子カテゴリーの記事も引っ張る

親カテゴリーに所属するリンクがない場合、子カテゴリーのデータが引っ張ってこられる。
しかし、親カテゴリーに所属するリンクがある場合、子カテゴリーのデータは一切出てこない。
親カテゴリーのページに、親カテゴリーと子カテゴリーの所属のデータ全てを引っ張って来たい。

viewcate.phpの
function &build( &$category, &$keyword_array ) 以降を下記のように変更

$total = $this->_link_view_handler->get_top_link_count_by_cid($cid); の下に、

$total_all = intval($category[‘link_count’]);

を追加。これは、子カテゴリーを含めたデータ数が欲しかったため。

その後、

$link_list =& $this->get_linklist_self( $total, $cid, $keywords_urlencoded ); を削除し、

$link_list =& $this->get_linklist_self_p_and_c( $total_all, $cid, $keywords_urlencoded );

を追加。get_linklist_self_p_and_cは新しく追加するfunctionです。

L300以降、
function &get_linklist_self( $total, $cid, $keywords ){}以降に

function &get_linklist_self_p_and_c( $total, $cid, $keywords )
{
ツꀀglobal $xoopsTpl;

ツꀀ$pagenavi =& weblinks_pagenavi_menu::getInstance();

ツꀀ$pagenavi->setPerpage(ツꀀツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $this->_conf[‘perpage’] );
ツꀀ$pagenavi->set_sortid_default( $this->_conf[‘orderby’] );
ツꀀ$pagenavi->setTotal($total);

ツꀀ$pagenavi->getGetPage();
ツꀀ$pagenavi->getGetSortid();

ツꀀ$start = $pagenavi->calcStart();
ツꀀ$sortツꀀ = $pagenavi->get_sort();

ツꀀ$link_list =& $this->_link_view_handler->get_link_all_child_and_parent_list_latest_by_cid($cid, $this->_conf[‘perpage’], $start);

ツꀀ$script = WEBLINKS_URL.’/viewcat.php?cid=’.$cid;
ツꀀif ( $keywords )
ツꀀ{
ツꀀツꀀ$script .= ‘&keywords=’. $keywords;
ツꀀ}
ツꀀ$pagenavi->assign_navi($xoopsTpl, $script);

ツꀀreturn $link_list;
}

を追加。
get_link_all_child_and_parent_list_latest_by_cidは新しく追加した関数です。

modules\weblinks\class\weblinks_link_view_handler.php の

function &get_link_all_child_list_latest_by_cid($cid, $limit=0, $start=0){} (L185) 以降に、下記のfunctionを追加。

function &get_link_all_child_and_parent_list_latest_by_cid($cid, $limit=0, $start=0)
{
ツꀀ$orderbyツꀀツꀀ = ”;
ツꀀ$lid_arrツꀀツꀀ =& $this->get_lid_array_parent_child_by_cid_orderby($cid, $orderby, $limit, $start);
ツꀀ$link_list =& $this->_get_link_list_by_lid_array($lid_arr);
ツꀀreturn $link_list;
}

get_link_all_child_and_parent_list_latest_by_cidは、新しく追加した関数です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です