2010-03-03 31 views
0

joomla搜索結果出現在主頁上。我希望它在新的頁面上顯示。根據一些在線帖子,我不得不修改mod_search.php以將項目ID設置爲不存在的項目,所以我將它設置爲0,但問題在於這些更改沒有反映在我的搜索模塊中。我也嘗試在模塊/ mod_search/tmpl/default/default.php表單中放置一個名爲itemid的隱藏字段,但即使這樣,我也將表單目標設置爲_blank,並嘗試更改表單的操作頁面index.php?Itemid = 0而不是index.php,但所有這些似乎都不反映在搜索模塊上。當我手動更改瀏覽器位置框中的itemid爲0時,結果顯示在不同的頁面上(多數民衆贊成我想要的)。定製joomla搜索結果頁面佈局

請建議我該怎麼辦?

回答

2

試圖改變請求方法搜索表單:

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

或類似這樣的

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

仍然沒有運氣...更改甚至沒有反映在頁面 – ria 2010-03-03 09:09:32

+0

我通過更新對joomla15/templates/TemplateName/html/mod_search/default.php文件的更改來解決此問題。現在我在新頁面上看到結果。 我如何設置此頁面以使用特定的joomla模板,而不是默認設置? – ria 2010-03-03 09:30:48

+0

您可以添加到default.php自定義CSS樣式。可能,本教程可以幫助您: http://www.learnwebdesignonline.com/cms/customizing-joomla-templates.htm http://joomlablogging.wordpress.com/2008/02/10/giving-your-joomla -blog-section-a-different-template/ – xaoc 2010-03-03 17:29:14

1

我知道這是一個老帖子,但我發現這個有一個簡單的解決方案使用Joomla 1.6,並想分享它。這是一個核心黑客,它不是最佳的,因爲它在升級過程中會消失,但它很容易做到。

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

當在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'); 
    } 
*/ 

這將顯示你的模板的空白頁的內容部分內的搜索結果。至少它爲我做了。

2

在Joomla 2.5中,mod_search屬性中有「itemId」字段,如果將其設置爲某個不存在的項目,則將其從清除模塊的搜索結果頁面清除,該模塊綁定到某些精確的菜單項(頁面)綁定到「全部」頁面。