Başka bir gün joomla ile oynamak ve başka bir eksiklik düzeltmek için :)
This time it comes in the form of the administration(backend) menu. To add items/subitems to this menu, people have to write the menu items in an xml file accompanying their components/extension/plugin/whatever. When the extension is installed, joomla "generates" the menu items and "stores" them in the DB. Effectively, the real/tangible menu is rendered by reading the DB.
Bunun çeşitli etkileri vardır:
- Menü script değil
- Menü dinamik değildir; XML dosyası after kurulumu, değişen menü güncelleme olmayacak
- Öğeleri kaldırma script değildir; joomla Eğer uzantıyı kaldırdığınızda herhangi öğeleri kaldırarak ilgilenir.
I've got this system which relies on the ability to modify menu items on the fly, but through code. Simply put, I need to have functionality where I can create a volatile menu item (ie, it gets removed at the end of session).
Bunu yapmak için, ben muhtemel kesmek bir çift var:
- Ben sahte menü öğeleri iade yapabilirsiniz böylece joomla küresel veritabanı örneği geçersiz kılar. Veritabanı nesne JFactory sınıfının bir kamu özelliğinde saklanan bu mümkündür:
JFactory::$database=new MyFakeJDatabase(JFactory::$database);
- Çıkışı ve benim ihtiyaçlarına göre mess it up olmadan önce menü kodu (html) Intercept. Bu sonuç şablon için tasarlanmıştır ne olmayabilir, hangi html enjekte olacağını şablon dostu değildir.
- Javascript ile menü öğeleri oluşturun. Bu şablona VE menüleri değiştirir javascript ile sorunları uğrar.
- Onlara bir dahaki sefere (oturumunun veya son) kaldırmak böylece ben nasılsa "etiketi" öğeleri onları ihtiyaç ve her DB menü öğeleri oluşturun. Bir cazibe gibi çalışacak gibi bu sesler. Ben menü öğeleri tampon beri, ben belki bir bütün SQL deyiminde benim menü öğeleri oluşturabilirsiniz. Ben etiketli menü öğeleri kaldırmak için başka bir SQL kullanabilirsiniz daha. 2 SQL ifadeleri sunucu üzerinde bir yük çok olmayabilir.
Sen ne düşünüyorsun?
Edit: I've checked joomla/administrator/modules/mod_menu/helper.php
to see if I could find a way to inject my stuff, wishing that maybe joomla used a global variable or something, but to no use - the menu items are creating directly by reading the db and rendering as well.
FYI I've searched a while on Google, to no use.