2012-11-12 56 views
2

我想做的下一件事:joomla 2.5修改後端組件

我正在開發一個Joomla網站,有一些圖像顯示的背景。

我想是顯示根據顯示的網站上部分不同的圖像,例如:

HOME: ../images/img1.jpg ../images/img2.jpg

關於我們: ../images/img3.jpg ../images/img4.jpg

我想在後端的「編輯菜單項」佈局上使用某種重寫來添加一些新的字段,我選擇要顯示的部分的圖片,然後輸出這些部分文件作爲模板上的HTML。

有沒有辦法做到這一點?

或者也許有一個更簡單的方法。

回答

0

如果我明白你的問題

<?php 
$menu = &JSite::getMenu(); 
$menuItem = $menu->getActive(); 

print_r($menuItem); 
?> 

根據您在可以輸出的CSS菜單上。如果您有任何問題,請告訴我。

+0

不,因爲我需要一個uotput作爲標籤,我需要一種方法來添加到在後端「編輯/新菜單項」的方式來選擇將上顯示thepictures部分,就像您選擇極好的模塊將被顯示,或根據您獲得的菜單的元數據情緒 –

+0

可以回顯img標記。但是你要求的是開發一個能完成你的任務的組件。 – Techie

+0

不是一個組件,我只需要在創建菜單項時顯示的菜單上添加一個額外的字段。這個想法只是輸出基於網站 –

2

這不是你需要爲Joomla編寫代碼的事情,因爲有很多方法可以使用模板樣式變體(2.5+)或各種擴展來做到這一點。

多年來,我們使用了「Menu Dependent Items」擴展,當時我們需要一個簡單的解決方案,它可以在1.5-> 2.5的範圍內工作。

+0

,這似乎是完美的,但我得到這個錯誤嚴格的標準:非靜態方法JSite :: getMenu()不應被靜態調用,假設$這從D:\ xampp \ htdocs \ {sitename} \ modules \ mod_menu_dep_items \ mod_menu_dep_items_class.php 75行 嚴格標準:非靜態方法JApplication :: getMenu()不應該靜態調用,假設$ this來自D:\ xampp \ htdocs中的不兼容上下文\ {sitename} \ includes 523行中的\ application.php –

+0

嚴格標準:非靜態方法JApplication :: getMenu()不應該靜態調用,假設$ this來自D:\ xampp \ htdocs \ {sitename}中的不兼容上下文\ includes \ application.php 523行 嚴格標準:只應通過D:\ xampp \ htdocs \ {sitename} \ modules \ mod_menu_d中的引用來分配變量ep_items \ mod_menu_dep_items_class.php 75行 –

+0

另外,我想設置不止一個圖像 –

0

我同意使用模板風格。

複製您的模板併爲template.xml添加一個用於背景圖片的新參數。 然後添加代碼以將圖像插入到模板的index.php。

然後爲每個想要使用的圖像創建樣式。

將相應的樣式分配給相應的菜單項。

0

這可能有助於ü....

首先,你必須administrator/components/com_menus/models/forms/item.xml

例如創建一個字段

<field name="your_fieldname" type="media" 
       label="fieldname" 
       description="Give your field description" /> 

加入這一行administrator/components/com_menus/views/item/tmpl/edit.php

<li><?php echo $this->form->getLabel('your_fieldname'); ?> 
<?php echo $this->form->getInput('your_fieldname'); ?></li> 

再加一個場d在yourtableprefix_menu中,字段名稱必須是您的字段名稱。

新增

文件includes/menu.php,功能負載()

添加字段名在下面的行

$query->select('m.id, m.menutype, m.title, m.alias, m.path AS route, m.link, m.type, m.level, m.language,m.our_image'); 

我正在加入m.our_image,這樣你可以添加你的字段名

index.php文件

$menu = &JSite::getMenu(); 
$menuItem = $menu->getActive(); 
print_r($menuItem); 
echo $menuItem->your_fieldname; //for get the particular value 
+1

我真的不會用這種方式編輯核心文件。除此之外,當您更新時,它們將被覆蓋。如果你真的想添加一個字段,你應該使用一個插件來做到這一點。 – Elin