<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>https://docs.joomlafarsi.com/index.php?action=history&amp;feed=atom&amp;title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%3A_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86</id>
		<title>آموزش: ایجاد پلاگین - تاریخچهٔ ویرایش‌ها</title>
		<link rel="self" type="application/atom+xml" href="https://docs.joomlafarsi.com/index.php?action=history&amp;feed=atom&amp;title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%3A_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86"/>
		<link rel="alternate" type="text/html" href="https://docs.joomlafarsi.com/index.php?title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4:_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&amp;action=history"/>
		<updated>2026-06-10T01:31:09Z</updated>
		<subtitle>تاریخچهٔ ویرایش‌های این صفحه در ویکی</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://docs.joomlafarsi.com/index.php?title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4:_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&amp;diff=3873&amp;oldid=prev</id>
		<title>Hamidy در ‏۱۳ ژوئیهٔ ۲۰۱۳، ساعت ۰۸:۲۴</title>
		<link rel="alternate" type="text/html" href="https://docs.joomlafarsi.com/index.php?title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4:_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&amp;diff=3873&amp;oldid=prev"/>
				<updated>2013-07-13T08:24:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://docs.joomlafarsi.com/index.php?title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4:_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&amp;amp;diff=3873&amp;amp;oldid=3869&quot;&gt;نمایش تغییرات&lt;/a&gt;</summary>
		<author><name>Hamidy</name></author>	</entry>

	<entry>
		<id>https://docs.joomlafarsi.com/index.php?title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4:_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&amp;diff=3869&amp;oldid=prev</id>
		<title>Shmata: صفحه‌ای جدید حاوی «=مقدمه= در این مقاله آموزش پلاگین نویسی [http://www.joomlafarsi.com جوملا]  تصمیم داریم ...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://docs.joomlafarsi.com/index.php?title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4:_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&amp;diff=3869&amp;oldid=prev"/>
				<updated>2013-07-12T00:57:02Z</updated>
		
		<summary type="html">&lt;p&gt;صفحه‌ای جدید حاوی «=مقدمه= در این مقاله آموزش &lt;a href=&quot;/index.php?title=%D9%BE%D9%84%D8%A7%DA%AF%DB%8C%D9%86&quot; title=&quot;پلاگین&quot;&gt;پلاگین&lt;/a&gt; نویسی [http://www.joomlafarsi.com جوملا]  تصمیم داریم ...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=مقدمه=&lt;br /&gt;
در این مقاله آموزش [[پلاگین]] نویسی [http://www.joomlafarsi.com جوملا]  تصمیم داریم یک [[پلاگین]] helloworld از نوع content plugin برای [[جوملا]] 2.5 ایجاد کنیم. Content Plugin ها قادر به ایجاد تغییرات در محتوای مطالب هستند مطلبی که از طریق مدیریت مطالب در [[جوملا]] ایجاد میشوند. اکثر [[پلاگین]] ها از نوع content هستند. پلاگین ها براساس بک رویداد خاصی (event) اجرا میشوند. &lt;br /&gt;
=انواع event ها در پلاگین محتوا=&lt;br /&gt;
انواع event در [[پلاگین]] محتوا یا content plugin ها به شرح ذیل میباشند.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
1) onContentPrepare($context, &amp;amp;$item, &amp;amp;$params, $offset =0)&lt;br /&gt;
&lt;br /&gt;
2) onContentAfterTitle($context, &amp;amp;$item, &amp;amp;$params, $offset=0)&lt;br /&gt;
&lt;br /&gt;
3) onContentBeforeDisplay($context, &amp;amp;$item, &amp;amp;$params, $offset=0)&lt;br /&gt;
&lt;br /&gt;
4) onContentAfterDisplay($context, &amp;amp;$item, &amp;amp;$params, $offset=0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
item$ یک رفرنس (اشاره گر) به مطلب که در view است.   &amp;lt;br/&amp;gt;&lt;br /&gt;
params$ یک رفرنس به آرایه مربوط به پارامترها است.   &amp;lt;br/&amp;gt;&lt;br /&gt;
offset$ یک متغیر '''integer''' است که تعیین کننده صفحه ای از مطالب است که باید نمایش داده شود.    &amp;lt;br/&amp;gt;&lt;br /&gt;
context$ یک متن است برای جایی که این رویداد (event) شروع به کار میکند &lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
(example,'com_content.article')&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[[پلاگین]] های محتوا (content plugin) از com_content اجرا میشوند و نحوه اجرا شدن و فراخوانی آنها همانند دستور ذیل است&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$results = $dispatcher-&amp;gt;trigger('onContentPrepare', array ('com_content.article', &amp;amp;$item, &amp;amp;$this-&amp;gt;params, $offset));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
شما میتوانید کد بالا را جهت اجرای [[پلاگین]] محتوا در Root\components\com_content\views\article در فایل view.html.php و در کلاس ContentViewArticle مشاهده کنید.&lt;br /&gt;
=ایجاد یک پلاگین=&lt;br /&gt;
کلاس [[پلاگین]] باید همانند&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
plg&amp;lt;PluginType&amp;gt;&amp;lt;PluginName&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 نام گذاری شود.&lt;br /&gt;
 بنابراین در این مقاله ما نام [[پلاگین]] مان را '''plgContentHelloworldPlugin''' قرار میدهیم.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
 کلاس [[پلاگین]] شامل یک کانستراکتور (constructor) است که کلاس پدر کانستراکتور را فراخوانی میکند, کلاس پدر کانستراکتور خود نوعی از کلاس '''JPlugin''' است و همچنین کلاس [[پلاگین]] شامل یک تابع event handler است که در هنگام رویدادن event مورد نظر اجرا خواهد شد.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
در این مثال ما از رویداد ()onContentPrepare استفاده میکنیم. که هنگام آماده شدن مطلب برای نمایش این رویداد فراخوانی میشود.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class plg&amp;lt;PluginType&amp;gt;&amp;lt;PluginName&amp;gt; extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
public function __construct(&amp;amp;$subject, $params )&lt;br /&gt;
{&lt;br /&gt;
parent::__construct( $subject, $params );&lt;br /&gt;
}&lt;br /&gt;
public function onContentPrepare($context, &amp;amp;$article, &amp;amp;$params, $offset = 0)&lt;br /&gt;
{&lt;br /&gt;
//Plugin code goes here&lt;br /&gt;
return true;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
برای دریافت عنوان مطالب ما از پارامتر article$ در onContentPrepare به صورت زیر استفاده میکنیم.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$title = &amp;amp;$article-&amp;gt;title;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
برای دریافت متن مطالب ما از پارامتر article$ در onContentPrepare به صورت زیر استفاده میکنیم.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$text = &amp;amp;$article-&amp;gt;text; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''نکته :''' توجه داشته باشید که در دستورات بالا از عملگر &amp;amp; استفاده شده است این عملگر برای گرفتن یک رفرنس یا اشاره گر است. بنابراین ما می توانیم article-&amp;gt;$text; به text$ تغییر دهیم. ما در این [[پلاگین]] تصمیم داریم یک متن قبل از عنوان مطلب ‘Helloworld Before Title’ و یک متن بعد ‘Helloworld After Title’ از عنوان مطلب نمایش دهیم. با استفاده از عملگر الحاق رشته این کار را همانند دستورات زیر میتوانیم انجام دهیم.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$title = 'Helloworld Before Title'.$title.' Helloworld After Title'; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
همین کار را میتوانیم برای محتوای مطالب همانند شکل زیر انجام دهیم&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$text = 'Helloworld Before Text'.$text.' Helloworld After Text';  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=فایلهای پلاگین=&lt;br /&gt;
1.	helloworldPlugin.php این فایل, فایل اصلی [[پلاگین]] است. زمانیکه که رخداد مورد نظر اتفاق افتاد کدهای موجود در این فایل باید اجرا شوند. &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
2.	helloworldPlugin.xml این فایل حاوی اطلاعاتی در مورد [[پلاگین]] است و همچنین شامل اطلاعات مربوط به نصب این [[پلاگین]] نیز میباشد.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
==ایجاد فایل helloworldPlugin.php==&lt;br /&gt;
تمام کد فایل helloworldPlugin.php شامل&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// no direct access&lt;br /&gt;
defined('_JEXEC') or die;&lt;br /&gt;
jimport( 'joomla.plugin.plugin' );&lt;br /&gt;
class plgContentHelloworldPlugin extends JPlugin&lt;br /&gt;
{&lt;br /&gt;
public function __construct(&amp;amp;$subject, $params )&lt;br /&gt;
{&lt;br /&gt;
parent::__construct( $subject, $params );&lt;br /&gt;
}&lt;br /&gt;
public function onContentPrepare($context, &amp;amp;$article, &amp;amp;$params, $offset = 0)&lt;br /&gt;
{&lt;br /&gt;
// Article Title&lt;br /&gt;
$title = &amp;amp;$article-&amp;gt;title;&lt;br /&gt;
// Change Article Title&lt;br /&gt;
$title = 'Helloworld Before Title'.$title.' Helloworld After Title';&lt;br /&gt;
// Article Text&lt;br /&gt;
$text = &amp;amp;$article-&amp;gt;text;&lt;br /&gt;
// Change Article Text&lt;br /&gt;
$text = 'Helloworld Before Text'.$text.' Helloworld After Text';&lt;br /&gt;
return true;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
میباشد.&lt;br /&gt;
==ایجاد فایل helloworldPlugin.xml ==&lt;br /&gt;
تمام کد فایل helloworldPlugin.xml شامل &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;install version=&amp;quot;2.5&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;content&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;helloworldPlugin Content Plugin&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;author&amp;gt;Joomla Farsi&amp;lt;/author&amp;gt;&lt;br /&gt;
&amp;lt;creationDate&amp;gt;92/04/20&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
&amp;lt;copyright&amp;gt;Copyright (C) 2013&amp;lt;/copyright&amp;gt;&lt;br /&gt;
&amp;lt;authorEmail&amp;gt;sh.matapour@gmail.com&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;2.5.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;helloworldPlugin Content Test description&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
&amp;lt;filename plugin=&amp;quot;helloworldPlugin&amp;quot;&amp;gt;helloworldPlugin.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;config&amp;gt;&lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/install&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
میباشد.&lt;br /&gt;
==ایجاد فایل index.html ==&lt;br /&gt;
تمام کد فایل index.html شامل &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
است. که یک صفحه خالی را نمایش میدهد.&lt;br /&gt;
=ایجاد بسته نصبی=&lt;br /&gt;
همینک باید یک فایل '''zip''' از فولدر '''helloworldPlugin''' بسازید که شامل فایلهای زیر باشد.&lt;br /&gt;
&amp;lt;div dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
1.	helloworldPlugin.php&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2.	index.html&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3.	helloworldPlugin.xml&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
فایل zip ساخته شده در این مرحله میتواند از طریق مدیریت افزونه ها در [[جوملا]] نصب گردد.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
بعد از نصب [[پلاگین]] فوق [[پلاگین]] helloworldPlugin Content Plugin در قسمت مدیریت [[پلاگین]] ها باید قابل مشاهده باشد.&lt;br /&gt;
[[پرونده:Helloworldcontentplugin.jpg |center|frame ]]&lt;br /&gt;
تنها کاری که باید بکنید اینست که [[پلاگین]] فوق را فعال (enabled) کنید و نتیجه را در یک مطلب [[جوملا]] مشاهده کنید. همانطور که همانند شکل زیر مشاهده میکنید متن های article title و article text به همراه کلمه helloworld به عنوان و متن مطالب الحاق شده اند.&lt;br /&gt;
[[پرونده:Helloworldcontentplugin res.jpg |center|frame ]]&lt;br /&gt;
به این شکل شما قادر خواهید بود که محتوای مطالب را با استفاده از content plugin ها تغییر دهید.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
جمع آوری شده توسط :[http://forum.joomlafarsi.com/members/26237-shmata شهاب مطاع پور]&lt;br /&gt;
&lt;br /&gt;
{{آموزش}}&lt;br /&gt;
&lt;br /&gt;
{{معرفی پشتیبانی}}&lt;br /&gt;
&lt;br /&gt;
{{کپی رایت}}&lt;br /&gt;
&lt;br /&gt;
[[رده:کامپوننت‌های جوملا 2.5]] [[رده: سوالات متداول جوملا 2.5]] [[رده: کدنویسی و گسترش جوملا 2.5]][[رده: مقالات جوملا 2.5]]&lt;/div&gt;</summary>
		<author><name>Shmata</name></author>	</entry>

	</feed>