Joomla veritabanı fonksiyonları içerir

2 Cevap php

Ben Joomla 1.5 kullanıyorum. Ben mükemmel veritabanından veri çeker özel bir bileşen oluşturduk. Bu gibi benim ana bileşeni dosyasında veritabanı başlatmak:

$db =& JFactory::getDBO();

Sorun benim bileşeni klasörden bir PHP dosyasına çağrılara yapar benim bileşeni sayfada bir jQuery otomatik tamamlama eklentisi olması. Bu PHP dosyası sonuçları eşleşen veritabanı arar ama bu özel bir PHP sayfası ve ben herhangi bir referans olmaksızın bu işlevleri erişemez, çünkü $db =& JFactory::getDBO(); çağrı çünkü ben sorgu yapamam.

Biri bana benim özel dosyasında Joomla işlevleri çağırmak için yardımcı olabilir misiniz?

Teşekkürler.

2 Cevap

Ben ayrı bir PHP dosyası arama ve yerine bileşeni raw görünümü biçimini kullanarak öneriyoruz. Bunu yapmak için, jQuery çekerek edilecek veriler için bileşenin bir görünüm oluşturabilirsiniz. Tartışma için, biz autocomplete Bu görünümü arayacağım. Gibi autocomplete görünümü ayarlamak herhangi diğer bir, sadece yerine view.raw.php ile view.html.php. Sonra JavaScript, çağrı index.php?option=com_yourcomponent&view=autocomplete&format=raw. Bu HTTP çağrısı SADECE dönecektir senin görünümünde çıktı ne.

Kesinlikle harici bir PHP dosyasını çalıştırmanız gerekiyorsa, Joomla ile bir stand-alone bir uygulama oluşturarak bir göz atın! Çerçeve: http://docs.joomla.org/How_to_create_a_stand-alone_application_using_the_Joomla%21_Framework Bu yeterli JFactory çekmek için kod ve veritabanı bağlantısı olduğunu. Ama gerçekten gerekiyorsa, sadece bu kullanın: Aksi, sadece Joomla içine başka bir giriş noktası yaratıyor! korumak ve güvenliğini sağlamak zorunda olacak bir uygulamadır.

http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/5ac0b49c0f458b1a: Sen JSON faydalı yapıyor Louis Landry yazıyı bulabilirsiniz

Ben de son zamanlarda bu konu hakkında bir yazı yazmış: http://www.designvsdevelop.com/the-way-not-to-do-javascript-in-joomla/

Ben joomla harici PHP dosyaları ve sınıfları dahil etmek JLoader sınıfını kullanmak istiyorum.

        

JLoader::register( 'classname', dirname(__FILE__).DS.'classfoldername'.DS.'classfile.php');

Bu sınıfı içerecek ve kullanıma hazır hale getirmek istiyoruz:

$theClass = new classname();