簡體   English   中英

自定義joomla搜索結果頁面布局

[英]Customizing joomla search result page layout

joomla搜索結果顯示在主頁上。 我希望它顯示在新頁面上。 根據一些在線帖子,我不得不修改mod_search.php以將項目ID設置為不存在的項目,因此我將其設置為0,但是問題是這些更改根本沒有反映在我的搜索模塊中。 我還嘗試在模塊/mod_search/tmpl/default/default.php表單中放置一個名為itemid的隱藏字段,但是即使未選中,我也將表單目標設置為_blank並嘗試更改表單的操作頁面以說index.php?Itemid = 0而不是index.php,但是所有這些似乎都沒有反映在搜索模塊上。 當我手動將瀏覽器位置框中的itemid更改為0時,結果顯示在另一個頁面上(這就是我想要的)。

請建議我該怎么辦?

在Joomla 2.5中,mod_search屬性中有“ itemId”字段,如果將其設置為不存在的項目,則它將清除綁定到某些菜單項(頁面)的模塊中的搜索結果頁面,而僅保留綁定到“全部”的模塊”頁面。

嘗試更改搜索表單的請求方法:

<form ... method="get">
<input type="hidden" name="itemId" value="0" />

或像這樣

<form action="...?itemId=0" method="post">

我知道這是一篇較舊的文章,但是我找到了一個與Joomla 1.6一起使用的簡單解決方案,並希望與他人分享。 這是一個核心hack,並不是最佳選擇,因為它會在升級過程中消失,但是很容易做到。

像我這樣的人們一直在尋找的是允許用戶在頁面上的搜索框中輸入文本,並將結果顯示在模板內的空白頁面中,而不是將結果與其他內容,或被迫使用菜單項將用戶發送到單獨的搜索頁面。

在Joomla中使用搜索框時! 頁面以啟動搜索,正在使用的是搜索的“組件”部分而不是“模塊”。 搜索組件控制器中有一個部分,可以設置用於菜單的ID,或者自動設置結果來自請求頁面並在請求頁面中顯示。 我們只需要將其關閉即可將搜索結果發送到空白頁。

因此,在/components/com_search/controller.php中,注釋掉以下代碼:

/*              // set Itemid id for links from menu
    $app    = JFactory::getApplication();
    $menu   = $app->getMenu();
    $items  = $menu->getItems('link', 'index.php?option=com_search&view=search');

    if(isset($items[0])) {
        $post['Itemid'] = $items[0]->id;
    } else if (JRequest::getInt('Itemid') > 0) { //use Itemid from requesting page only if there is no existing menu
        $post['Itemid'] = JRequest::getInt('Itemid');
    }
*/

這將在模板的空白頁的內容部分內顯示搜索結果。 至少對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM