2011-03-16 17 views
5

Joomla eklentileri oluşturma ve kullanma konusunda muhtemelen çok kolay bir şey olan gerçek bir sorun yaşıyorum.Basit bir joomla eklentisini nasıl oluştururum?

Şimdiye kadar yaptığım işte.

Bir klasörün içinde aşağıdaki iki dosyayı kullanarak bir örnek joomla eklentisi oluşturdum ve hepsini aynı adlandırdı.

İçeriğini aşağıda listeledim.

eklentisi

Sonra

Tamam eklenti yöneticisi aracılığıyla etkinleştirmek yönetici paneli üzerinden düzgün yükler. hepsi gitmeye başladı.

Eklentiyi etkinleştirdikten sonra bir makaledeki eklentiyi nasıl kullanırım?

Posta KLASÖR: MakePlugIn KLASÖR: MakePlugIn

MakePlugIn.php -

<?php 
// No direct access allowed to this file 
defined('_JEXEC') or die('Restricted access'); 

// Import Joomla! Plugin library file 
jimport('joomla.plugin.plugin'); 

//The Content plugin MakePlugIn 
class plgContentMakePlugIn extends JPlugin 
{ 
    function plgContentMakePlugIn (&$subject) 
    { 
     parent::__construct ($subject); 
    } 
    function onPrepareContent (&$article, &$params, $page=0) 
    { 
     print "I am a happy plugin"; 
    } 
} 
?> 

MakePlugIn.xml -

<?xml version="1.0" encoding="utf-8"?> 
<install version="1.5" type="plugin" group="content"> 
    <name>Make-Plug-In</name> 
    <author>Make-Plug-In</author> 
    <creationDate>03/15/2011</creationDate> 
    <copyright>Copyright (C) 2011 Holder. All rights reserved.</copyright> 
    <license>GNU General Public License</license> 
    <authorEmail>[email protected]</authorEmail> 
    <authorUrl>www.authorwebsite.com</authorUrl> 
    <version>1.0</version> 
    <description>Make-Plug-In test</description> 
    <files> 
     <filename plugin="MakePlugIn">MakePlugIn.php</filename> 
    </files> 
</install> 

cevap

5

Sen echo ing veya print bilgileri ing olmamalı Eklenti.

Yöntem, bir parametre olarak makale referansı alıyor, değiştiriyor ve siz iyisiniz. Uygun nesne türünü ve özelliklerini hızlı bir şekilde tanımlamak için var_dump'u kullanabilirsiniz.

İşte Joomla tutorial on creating Content Plug-in.


ilk yorumuna cevaben 3/17/2011

Bu Güncelleme. Makaleyi değiştirmek için başvurulan nesnenin değerini değiştirin &$article.

function onPrepareContent(&$article, &$params, $limitstart) 
{ 
    // Include you file with ajax code 
    JHTML::_('script', 'ajax-file.js', 'media/path/to/js/dir/'); 

    // Create ajax div 
    $ajaxDiv = '<div id="ajax-div"></div>'; 

    // Modify article text by adding the div for ajax at the top 
    $article->text = $ajaxDiv . PHP_EOL . $article->text; 

    return true; 
} 

Adding external JS to the head of the document: aşağıdaki örneğe bakın.

+0

Dokümanlar üzerinde çalışıyorum. Belki de bu konuda yanlış bir şekilde gidiyorum. Belirli bir kategorinin her makale metninin üstüne

eklemek istediğimde, ajax kullanarak div'i yüklersem, eklenti veya modül oluşturmama olasılığı daha yüksektir ... Sitede zaten ajax kullanıyorum ama Şablonu şablon yöneticisi aracılığıyla lib dahil etmek zorundaydı. İhtiyacım olan her şeyi içeren kolay yüklenebilir bir paket oluşturarak gelecekte kaçınmak istiyorum. Onunla küçük başlıyorum ... böylece yön için her türlü düşünce kabul edilir. – Natrix

+0

Yanıtı güncelledim, makale nesnesini nasıl kullanacağım ekledi – Alex