<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.taraah.ir/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>طراح - آموزش طراحی سایت و برنامه نویسی تحت وب</title>
	
	<link>http://taraah.ir</link>
	<description>وبلاگ در مورد برنامه نویسی تحت وب PHP , Jquery ,CSS,Graphic</description>
	<lastBuildDate>Wed, 16 May 2012 20:11:58 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.taraah.ir/taraah" /><feedburner:info uri="taraah" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>taraah</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>مروری بر Regular Expression</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/5LzEYfOXgxE/</link>
		<comments>http://taraah.ir/?p=671#comments</comments>
		<pubDate>Tue, 15 May 2012 21:02:08 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expression]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=671</guid>
		<description><![CDATA[Regular Expression یک الگو برای داده ها را نشان می دهد که می توان کنار هم قرار گرفتن کاراکتر های یک رشته رو تحلیل کرد ، مثلا می توان مشخص کرد که رشته ی مورد نظر چند کاراکتر باشد و اعداد و حروف چگونه در کنار هم قرار بگیرند و حتی چه عدد و حروفی [...]]]></description>
			<content:encoded><![CDATA[<p>Regular Expression یک الگو برای داده ها را نشان می دهد که می توان کنار هم قرار گرفتن کاراکتر های یک رشته رو تحلیل کرد ، مثلا می توان مشخص کرد که رشته ی مورد نظر چند کاراکتر باشد و اعداد و حروف چگونه در کنار هم قرار بگیرند و حتی چه عدد و حروفی استفاده شوند ، همه ی این ها را می توان با الگوهای Regular Expression مشخص کرد ، میتوان فقط رشته هایی ساخت که از یک الگوی خاص پیروی کنند یا مطابق با الگوی خاصی باشند ، می توان رشته های مختلف را با این الگو مقایسه کرد و در صورت صحیح بودن از آنها استفاده نمود ، مثلا آدرس ایمیل یک الگوی خاصی دارد که تشکیل شده از @ و . و چند کلمه ی حروفی است ، برای اینکه چک شود که رشته ی وارد شده صحیح است یا نه آن را با الگویی مقایسه می کنیم .</p>
<p><img class="wp-image-673 aligncenter" title="regular-expressions-regex" src="http://taraah.ir/wp-content/uploads/2012/05/regular-expressions-regex.jpg" alt="" width="309" height="152" /><br />
<span id="more-671"></span><br />
مستندات و طرز نوشتن این الگوها در ظاهر کمی پیچیده به نظر می رسد اما با مطالعه مستندات آن از منابع زیر میتوانید در این زمینه اطلاعات کسب نمایید . اگر عبارت <a href="http://bit.ly/JweNNK" target="_blank">regular expression tutorial</a>  را جستجو کنید مستندات بسیار خوبی در این زمینه وجود دارد .</p>
<p>اما دستورات کلی بصورت یکباره در این <a href="http://taraah.ir/dl/regex/regular-expressions-cheat-sheet-v2.pdf">فایل PDF</a> تعریف شده اند . که مختصر و مفید دستورات را توضیح داده است .</p>
<p>بطور مثال اگر * در آخر چیزی بیاد میتونه باشه یا نباشه ، اما اگر + در آخر بیاید حداقل یکی از این الگو می بایست باشد .</p>
<pre class="brush:php;">

([A-Za-z0-9-]+)
</pre>
<p>این نشان دهنده ی قرار گرفتن حداقل یک حرف در گستره ی A-Z یا a-z یا ۰-۹ می باشد یعنی هر حرفی الفبایی و عددی باشد قبول است اما حتما یکی یا بیشتر .</p>
<p>مابقی مثال ها را با مطابقت دادن دستور با این<a href="http://taraah.ir/dl/regex/regular-expressions-cheat-sheet-v2.pdf"> فایل PDF </a>می توانید بفهمید .</p>
<p>از Regular Expresion در خیلی از زبانهای برنامه نویسی استفاده می شود ، یکی از پرکاربررین آن Javascript است که میتوان با دستورات match() و exec() رشته های خود را مقایسه و اصلاح کنید .</p>
<p>برای تست کردن دستوراتی که می نویسید می توانید از <a href=" http://bit.ly/JexlBl" target="_blank">Regular Expression Teste</a>r های آنلاین یا افزونه فایرفاکس به نام <a href="http://bit.ly/JexHbd" target="_blank">Regular Expresion Tester </a>استفاده نمایید .</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li><li><a href="http://taraah.ir/?p=638" title="صفحه بندی مطالب زیاد با Jquery ">صفحه بندی مطالب زیاد با Jquery </a></li><li><a href="http://taraah.ir/?p=627" title="منوی درختی از اطلاعات XML">منوی درختی از اطلاعات XML</a></li><li><a href="http://taraah.ir/?p=614" title="ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch ">ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=5LzEYfOXgxE:ksQHf3Iatfo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=5LzEYfOXgxE:ksQHf3Iatfo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=5LzEYfOXgxE:ksQHf3Iatfo:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/5LzEYfOXgxE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=671</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=671</feedburner:origLink></item>
		<item>
		<title>شمارگر دایره ای</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/_b_Je0_6IKk/</link>
		<comments>http://taraah.ir/?p=664#comments</comments>
		<pubDate>Mon, 14 May 2012 12:31:26 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[HTML-CSS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[طراحی سایت]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[knob]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[جی کوئری]]></category>
		<category><![CDATA[پلاگین]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=664</guid>
		<description><![CDATA[در بعضی از سایتهایی که برای انجام کاری احتیاج به شمارش معکوس دارند مثل دانلود های غیر مستقیم از سایتهای اشتراک گذاری فایل یا دریافت مقدار چیزی بصورت گرافیکی نه عدد از کاربر از شمارشگر های دایره ای استفاده می کنند این کار در گرافیک سایت بسیار تاثیر گذار می باشد ، در این پست [...]]]></description>
			<content:encoded><![CDATA[<p>در بعضی از سایتهایی که برای انجام کاری احتیاج به شمارش معکوس دارند مثل دانلود های غیر مستقیم از سایتهای اشتراک گذاری فایل یا دریافت مقدار چیزی بصورت گرافیکی نه عدد از کاربر از شمارشگر های دایره ای استفاده می کنند این کار در گرافیک سایت بسیار تاثیر گذار می باشد ، در این پست قصد دارم یک پلاگین Jquery را معرفی کنم که تگ <strong>input</strong> را به صورت لغزنده ی دایره ای به شمل زیر در می آورد .</p>
<p style="text-align: center;"><img class=" wp-image-665 aligncenter" title="knob" src="http://taraah.ir/wp-content/uploads/2012/05/knob.jpg" alt="" width="142" height="148" /></p>
<p>میتوانید در <a href="http://anthonyterrien.com/knob/">سایت سازنده </a>نمونه های این لغزنده ها را ببینید . همچنین برای روش استفاده می توانید در صفحه ی <a href="https://github.com/aterrien/jQuery-Knob">Github </a>سازنده مستندات آن را مطالعه کنید و پلاگین را دانلود نمایید . اگر با دانلود از <a href="https://github.com/aterrien/jQuery-Knob">github </a> مشکل داشتید از <a href="http://taraah.ir/dl/knob.zip">هاست طراح</a> آن را بطور مستقیم می توانید دریافت نمایید .</p>
<p><span id="more-664"></span></p>
<p>استفاده از این پلاگین خیلی کار پیچیده ای نیست کافیست با دستور زیر در تگ Head ابتدا کتابخانه Jquery و پلاگین مورد نظر را بارگذاری نمایید .</p>
<pre class="brush:xml;">
&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"&gt;&lt;/script&gt;
&lt;script src="js/jquery.knob-1.1.1.js"&gt;&lt;/script&gt;

&nbsp;
</pre>
<p>سپس با دستور زیر پلاگین را برای المان مورد نظر صدا می زنیم .</p>
<pre class="brush:js;">&lt;script&gt;
$(function() {
$(".dial").knob();
}
&lt;/script&gt;</pre>
<p>گزینه های مختلفی برای  تغییر شکل و مقدار حداقل و حداکثر عددی آن وجود دارد که همگی باید بصورت attribute در تگ input ای که پلاگین را به آن اختصاص می دهید و صدا می زنید تعریف شود . بصورت دستور زیر در قسمت HTML سایت تگ input را قرار می دهید . توجه کنید کلاس input همان کلاسی باشد که در بالا پلاگین را برای آن صدا زده ایم .</p>
<pre class="brush:xml;">&lt;input type="text" data-min="-50" data-max="50"&gt;</pre>
<p>برای مشاهده ی یکجای دستورات بهتر است در <a href="http://taraah.ir/dl/knob.zip">فایل دانلودی</a> سورس صفحه را مشاهده کنید .</p>
<p>یکی از معایب این پلاگین کار نکردن در مرورگر IE می باشد .</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=535" title="اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery">اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery</a></li><li><a href="http://taraah.ir/?p=608" title="ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb">ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb</a></li><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=_b_Je0_6IKk:TbMlTGrjVGc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=_b_Je0_6IKk:TbMlTGrjVGc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=_b_Je0_6IKk:TbMlTGrjVGc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/_b_Je0_6IKk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=664</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=664</feedburner:origLink></item>
		<item>
		<title>ثابت نگه داشتن المانی در حین اسکرول</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/NMj5mdq6xpk/</link>
		<comments>http://taraah.ir/?p=660#comments</comments>
		<pubDate>Sat, 12 May 2012 20:12:33 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[fixed scroll]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[scroll]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=660</guid>
		<description><![CDATA[برای fix کردن یک باکس در Sidebar بعد از مقداری اسکرول و دوباره بازگشت به حالت قبل می توان از کدی که در این نوشته شرح می دهم استفاده کرد . در صورتی که میخواهید مستقیما تاثیرات را به المان مذکور وارد کنید از دستور زیر می بایست استفاده کنید : (function($) { $(document).ready( function() [...]]]></description>
			<content:encoded><![CDATA[<p>برای fix کردن یک باکس در Sidebar بعد از مقداری اسکرول و دوباره بازگشت به حالت قبل می توان از کدی که در این نوشته شرح می دهم استفاده کرد .</p>
<p>در صورتی که میخواهید مستقیما تاثیرات را به المان مذکور وارد کنید از دستور زیر می بایست استفاده کنید :</p>
<pre class="brush:php;">
(function($)
{
$(document).ready( function()
{
var elementPosTop = $('#jq4u-sidebar-ads').position().top;
$(window).scroll(function()
{
var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height();
//if top of element is in view
if (wintop &gt; elementPosTop)
{
//always in view
$('#jq4u-sidebar-ads').css({ "position":"fixed", "top":"10px" });
}
else
{
//reset back to normal viewing
$('#jq4u-sidebar-ads').css({ "position":"inherit" });
}
});
});
})(jQuery);</pre>
<p>که در این صورت #jq4u-sidebar-ads نام آیدی المانی است که می بایست ثابت بماند .<br />
<span id="more-660"></span></p>
<p>همچنین می توان برای سادگی کار و پرهیز از پیچیدگی این کد را بصورت پلاگین Jquery درآورده بصورت زیر و در یک فایل قرار دهید و آن را در Head لود نمایید  :</p>
<pre class="brush:js;">

(function($)
{
$.fn.keepElementInView = function()
{
var elemPosTop = this.position().top;
$(window).scroll(function()
{
var wintop = $(window).scrollTop(), docheight = $(document).height(), winheight = $(window).height();
if (wintop &gt; elemPosTop)
{
this.css({ "position":"fixed", "top":"10px" });
}
else
{
this.css({ "position":"inherit" });
}
});
return this;
};

&nbsp;

$(document).ready( function()
{
jQuery('#jq4u-sidebar-ads').keepElementInView();
});

&nbsp;
</pre>
<p>سپس با دستور زیر این پلاگین را برای المان های مختلف صدا میزنیم :</p>
<pre class="brush:js;">
$(document).ready( function()

&nbsp;

{
jQuery('#jq4u-sidebar-ads').keepElementInView();
});
</pre>
<p><span style="font-family: monospace;"><br />
</span></p>
<div>
<div>این کار برای نمایش قسمتهای مهم سایت که همواره باید در دید باشند مناسب است .</div>
</div>
<div></div>
<div></div>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=608" title="ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb">ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb</a></li><li><a href="http://taraah.ir/?p=513" title="نمایش اطلاع یا اخطار روی صفحه با Jquery">نمایش اطلاع یا اخطار روی صفحه با Jquery</a></li><li><a href="http://taraah.ir/?p=74" title="استفاده از پلاگین نظر سنجی AJAX">استفاده از پلاگین نظر سنجی AJAX</a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=NMj5mdq6xpk:c41FbbrPR9I:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=NMj5mdq6xpk:c41FbbrPR9I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=NMj5mdq6xpk:c41FbbrPR9I:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/NMj5mdq6xpk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=660</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=660</feedburner:origLink></item>
		<item>
		<title>Filepicker آپلود از همه جا</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/1rOga7rwg_8/</link>
		<comments>http://taraah.ir/?p=654#comments</comments>
		<pubDate>Thu, 10 May 2012 19:24:04 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[remote]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=654</guid>
		<description><![CDATA[سایت Filepicker یک وب سرویس در اختیار توسعه دهنده گاه قرار داده که به آنها اجازه می دهد از آپلودری جالب استفاده کنند . از امکانات این آپلودر آپلود فایلها از آدرس URL و یا از کامپیوتر ، آپلود از DropBox و آپلود از عکسهای فیسبوک می باشد. بطور مثال یک توسعه دهنده و برنامه نویس [...]]]></description>
			<content:encoded><![CDATA[<p>سایت <strong><a href="https://www.filepicker.io">Filepicker</a></strong> یک وب سرویس در اختیار توسعه دهنده گاه قرار داده که به آنها اجازه می دهد از آپلودری جالب استفاده کنند . از امکانات این آپلودر آپلود فایلها از آدرس URL و یا از کامپیوتر ، آپلود از DropBox و آپلود از عکسهای فیسبوک می باشد.</p>
<p><img class="size-full wp-image-655 aligncenter" title="filepicker" src="http://taraah.ir/wp-content/uploads/2012/05/filepicker.jpg" alt="" width="164" height="182" /></p>
<p>بطور مثال یک توسعه دهنده و برنامه نویس سایتی ، با دریافت کدی مخصوص از این سایت می تواند به عنوان واسطه از این سایت برای ارتباط با فیسبوک و دراپ باکس و دیگر سایتها استفاده نماید . چون عملیات تحت سرور انجام می شود اولا پهنای باند کاربر کم نمی شود ، همچنین لینکهای مسدود و فیل*تر شده نیز قابل استفاده و آپلود خواهند بود . در <a href="https://www.filepicker.io">سایت سازنده </a> چندین دمو و مثال برای استفاده از این وب سرویس ارائه شده است . قسمت آپلود دارای چندین بخش است که مهمترین آن آپلود مستقیم از سایت دیگر است ، قسمت دراپ باکس و فیسبوک به هر کاربر سایت اجازه می دهد که از اکانتهای خود فایلها را آپلود نماید ، توسعه دهنده احتیاج به ثبت اپلیکشن و گرفتن API از این دو سایت نیست ، بلکه <a href="https://www.filepicker.io">FilePicker </a>این کار را برای توسعه دهندگان و برنامه نویسان به عنوان واسطه انجام می دهد .<br />
<span id="more-654"></span><br />
برای شروع کافیست که کد توسعه دهندگی را از <a href="https://www.filepicker.io">سایت FilePicker </a> دریافت نمایید و طبق روشی که شرح می دهیم و در مستندات آن نیز می باشد می توانید آپلودر را در سایت خود استفاده نمایید .</p>
<p>در تگ Head صفحه با دستور زیر توابع API را از سایت Filepicker لود می نماییم .</p>
<pre class="brush:js;">
&lt;script type="text/javascript" src="//api.filepicker.io/v0/filepicker.js"&gt;&lt;/script&gt;
</pre>
<p>سپس با دستور زیر کدی که از سایت دریافت کرده اید را وارد می نمایید</p>
<pre class="brush:js;">
filepicker.setKey(apiKey);
</pre>
<p>سپس با دستور زیر یک attribute به هر دگمه ای می توان اضافه نمود که در صورت کلیک کردن آپلودر باز شود :</p>
<pre class="brush:js;">
onclick="filepicker.getFile('image/*', function(url){$('#exampleResult a').attr('href', url).html(url);});"
</pre>
<p>این را مثلا به یک لینک اختصاص می دهیم .در این دستور مشخص می کنیم ، آدرس URL آپلود شده را هم به قسمت #exampleResult a در صفحه نشان بدهد ، البته در function هر کاری که مایلید می توانید با این URL انجام دهید ، مثلا با AJAX مسیر فایل آپلود شده را درون دیتابیس ذخیره نمایید تا بعدا قابل استفاده باشد .</p>
<p>توسط این وب سرویس می توان برنامه های بسیار جالبی نوشت ، مثلا دریافت خودکار یک سری عکس از چند سایت و آپلود آنها در سایت و &#8230;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=638" title="صفحه بندی مطالب زیاد با Jquery ">صفحه بندی مطالب زیاد با Jquery </a></li><li><a href="http://taraah.ir/?p=627" title="منوی درختی از اطلاعات XML">منوی درختی از اطلاعات XML</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=1rOga7rwg_8:JIl0fddOwtA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=1rOga7rwg_8:JIl0fddOwtA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=1rOga7rwg_8:JIl0fddOwtA:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/1rOga7rwg_8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=654</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=654</feedburner:origLink></item>
		<item>
		<title>مدیریت فایل در هر جایی از سایت برای کاربران</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/KdwKM2PpPdQ/</link>
		<comments>http://taraah.ir/?p=650#comments</comments>
		<pubDate>Tue, 01 May 2012 21:21:08 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[متفرقه]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[file manager]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jqueryui]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=650</guid>
		<description><![CDATA[داشتن قسمت مدیریت فایل با قابلیهای کامل برای کاربران (و نه فقط مدیر) یک امکان جالبی است ، مثلا برای هر کاربر یک گروه یک فایل منیجر با سطح دسترسی خاص میتوان ایجاد کرد . داشتن فضای اختصاصی و ایجاد و جذف و تغییر نام پوشه ها و فایلها و انتقال و کپی و &#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>داشتن قسمت مدیریت فایل با قابلیهای کامل برای کاربران (و نه فقط مدیر) یک امکان جالبی است ، مثلا برای هر کاربر یک گروه یک فایل منیجر با سطح دسترسی خاص میتوان ایجاد کرد . داشتن فضای اختصاصی و ایجاد و جذف و تغییر نام پوشه ها و فایلها و انتقال و کپی و &#8230; با استفاده از AJAX از دیگر امکانات فایل منیجری است که قصد معرفی آن را دارم .</p>
<p><img class="wp-image-651 aligncenter" title="file_manager" src="http://taraah.ir/wp-content/uploads/2012/05/file_manager.jpg" alt="" width="428" height="242" /></p>
<p><span id="more-650"></span></p>
<p><a href="http://elfinder.org/">elfinder</a> یک مدریت فایل تحت وب و متن باز است که قابلیت های زیادی را در اختیار برنامه نویسان وب قرار داده است ، میتوان به امکانات زیر اشاره نمود :</p>
<p>۱- بارگذاری فایل منیجر فقط با دستور لود اسکریپت</p>
<p>۲- استفاده از آن در هر جای صفحه</p>
<p>۳- قرار دادن سطح دسترسی برای کلاینت</p>
<p>۴ &#8211; امکان استفاده از API برای هر عملیات</p>
<p>۵ &#8211; مطابقت با CodIgniter</p>
<p>6- استفاده از ویرایشگر متن برای ویرایش فایلهای متنی</p>
<p>۷ &#8211; نمایش مشخصات فایل ، اضافه کردن مشخصات دلخواه به فایلها</p>
<p>۸ &#8211; جلوگیری از نمایش مسیر مطلق پوشه ها</p>
<p>۹ &#8211; پلاگینها و ماژول های thirdparty مثل python , Ruby on Rail , &#8230;</p>
<p>می توانید نحوه ی استفاده از این فایل منیجر را در<a href="https://github.com/Studio-42/elFinder/wiki"> مستندات سایت سازنده</a> مشاهده نمایید . <a href="http://elfinder.org/">دمو</a> و<a href="http://elfinder.org/"> لینک دانلود</a> در صفحه اصلی سایت سازنده موجود است .</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li><li><a href="http://taraah.ir/?p=638" title="صفحه بندی مطالب زیاد با Jquery ">صفحه بندی مطالب زیاد با Jquery </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=KdwKM2PpPdQ:S3kA968w3zs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=KdwKM2PpPdQ:S3kA968w3zs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=KdwKM2PpPdQ:S3kA968w3zs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/KdwKM2PpPdQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=650</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=650</feedburner:origLink></item>
		<item>
		<title>پر کردن فیلدهای فرم با Jquery و JSON</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/xmNeObZx7nc/</link>
		<comments>http://taraah.ir/?p=644#comments</comments>
		<pubDate>Tue, 01 May 2012 18:38:54 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[HTML-CSS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[طراحی سایت]]></category>
		<category><![CDATA[fill]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[input]]></category>
		<category><![CDATA[input text]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=644</guid>
		<description><![CDATA[این پلاگین به شما اجازه می دهد که با یک خط دستور فیلدهای فرم را با داده های مورد نظر بعد از لود شدن صفحه پر کنید ، از این روش می توانید هم برای پر کردن اطلاعات پیش فرض بجای استفاده از وارد کردن مستقیم کدهای برنامه نویسی مثلا PHP استفاده کنید و هم [...]]]></description>
			<content:encoded><![CDATA[<p>این پلاگین به شما اجازه می دهد که با یک خط دستور فیلدهای فرم را با داده های مورد نظر بعد از لود شدن صفحه پر کنید ، از این روش می توانید هم برای پر کردن اطلاعات پیش فرض بجای استفاده از وارد کردن مستقیم کدهای برنامه نویسی مثلا PHP استفاده کنید و هم با اتصال این دستور به یک تابع یا دگمه چندین اطلاعات را بطور داینامیک در فرم ها لود کنید .</p>
<p><img class="size-full wp-image-647 aligncenter" title="fill_it" src="http://taraah.ir/wp-content/uploads/2012/05/fill_it.png" alt="" width="300" height="189" /></p>
<p>در هر دو روش این پلاگین کار را ساده تر می کند ، همیشه باز و بسته کردن تگهای PHP داخل مشخصه ی Value فرم ها کاری خسته کننده و تکراری می باشد و امکان خطا را هم بالاتر می برد ، اگر checkbox هایی را بخواهیم با PHP علامت گذاری کنیم که کار بسیار پیچیده تر خواهد شد و کمی برنامه نویسی شرطی هم وارد خواهد شد . پر کردن فیلدها با جاواسکریپت (جی کوئری) هم از لحاظ سادگی و هم کنترل بهتر قویا پیشنهاد می شود .</p>
<p>نام این پلاگین <a href="http://bulma171.github.com/fillthis.jquery.js/">fillthis </a>می باشد که میتوانید از <a href="http://bulma171.github.com/fillthis.jquery.js/">سایت سازنده</a> آن را دریافت نمایید  . در ادامه نحوه ی استفاده از این پلاگین را شرح می دهیم .<br />
<span id="more-644"></span><br />
پس از لود کردن Jquery و فایل fillthis.jquery.js به شکل زیر :</p>
<pre class="brush:xml;">
&lt;script type="text/javascript" src="jquery-1.3.2.min.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="fillthis.jquery.js"&gt;&lt;/script&gt;
</pre>
<p>با استفاده از دستور زیر یک فیلد را با یک مقداری پر می کنید . (البته این دستور را زیر المان های HTML و یا بعد از لود کامل صفحه بنویسید.)</p>
<pre class="brush:js;">

 $("#SingleInput").fillwith('Value!');
</pre>
<p>که singleInput آیدی فیلد مورد نظر است و Value هم مقداری است که می بایست به فیلد وارد شود .</p>
<p>اگر لیست MultySelect بود با دستور زیر چند مقدار را انتخاب می کنید .</p>
<pre class="brush:js;">
 $("#MultiSelect").fillwith('value1;value2;value3');
</pre>
<p>اگر Checkbox و Radio بود می بایست عدد ۱ و ۰ را برای انتخاب کردن و انتخاب نکردن آن به عنوان مقدار در دستور وارد کرد .</p>
<pre class="brush:js;">
$("#checkbox").fillwith('1');
</pre>
<p>همچنین می توانید با استفاده از فرمت JSON با یک دستور همه فیلدها را با هم پر کنید :</p>
<pre class="brush:js;">

$.fillthis({ "Input1": "Value1", "Input2": "Value2", "Input3": "Value3", "Input4": "Value4" });
</pre>
<p>فایده ی این روش این است که  می توان با AJAX اطلاعات را بصورت JSON دریافت نمود و کاملا داینامیک با دستوری که قبلا نوشته اید این اطلاعات را در فیلدها جایگزین کرد . مثلا چند دسته اطلاعات که در یک فرم با انتخاب کاربر پر می شوند .</p>
<p>در دستوراتی که در بالا نوشته شده ، SELECTOR یک آیدی می باشد در صورتی که می خواهید انتخاب با نام فیلد باشد از این دستور می بایست استفاده کرد .</p>
<pre class="brush:js;">
$("input[name=FiledName]").fillwith('value');
</pre>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=638" title="صفحه بندی مطالب زیاد با Jquery ">صفحه بندی مطالب زیاد با Jquery </a></li><li><a href="http://taraah.ir/?p=627" title="منوی درختی از اطلاعات XML">منوی درختی از اطلاعات XML</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=xmNeObZx7nc:cgkgxLDxdtM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=xmNeObZx7nc:cgkgxLDxdtM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=xmNeObZx7nc:cgkgxLDxdtM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/xmNeObZx7nc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=644</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=644</feedburner:origLink></item>
		<item>
		<title>صفحه بندی مطالب زیاد با Jquery</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/QykdxNixYRo/</link>
		<comments>http://taraah.ir/?p=638#comments</comments>
		<pubDate>Sat, 28 Apr 2012 19:35:21 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[HTML-CSS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[طراحی سایت]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[paginate]]></category>
		<category><![CDATA[pagination]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=638</guid>
		<description><![CDATA[در صورتی که مطالب یا عکسها یا داده های جدول زیادی را می بایست به کاربران نمایش دهید اما می خواهید این مقدار بصورت کنترل شده هر بار به کاربر نشان داده شود و با صفحه بندی ۱ ۲ ۳ اطلاعات صفحه بندی شود ، می بایست با استفاده یا با استفاده از زبان برنامه [...]]]></description>
			<content:encoded><![CDATA[<p>در صورتی که مطالب یا عکسها یا داده های جدول زیادی را می بایست به کاربران نمایش دهید اما می خواهید این مقدار بصورت کنترل شده هر بار به کاربر نشان داده شود و با صفحه بندی ۱ ۲ ۳ اطلاعات صفحه بندی شود ، می بایست با استفاده یا با استفاده از زبان برنامه نویسی اصلی سایت خود مثلا PHP اینکار را انجام دهید یا اطلاعات دریافت شده را با جاواسکریپت صفحه بندی کنید . روش اول برای حالتی مناسب است که نمی خواهید به سرور فشار آورده شود و هر بار یک مقدار محدود کوئری از دیتابیس گرفته شود ، اما عیب این روش یکی ریفرش شدن صفحه در هر بار درخواست و پیچیده شدن لینک گذاری صفحات برای کنترل صفحات است ، اما در روش دوم اطلاعات پردازش شده را فقط در نمایش صفحه بندی می کنیم در این حالت یکبار تعداد زیادی اطلاعات از سرور دریافت شده و بعد با Jquery یا جاواسکریپت این اطلاعات زیاد را صفحه بندی می کنیم مزایای این روش دقیقا رفع معایب حالت قبل است ، نه صفحه ریفرش می شود نه لازم به پیچیده کردن لینک گذاری و برنامه نویسی است .</p>
<p><img class="size-full wp-image-639 aligncenter" title="111" src="http://taraah.ir/wp-content/uploads/2012/04/111.jpg" alt="" width="500" height="238" /></p>
<p><strong><a href="http://luis-almeida.github.com/jPages/">jPages </a> </strong>یک پلاگین Jquery می باشد که براحتی این کار را برای شما انجام می دهد ، امکانات بسیار زیاد این پلاگین تقریبا هر نیازی را برطرف می کند :</p>
<p>۱- انواع مختلف نمایش صفحه بندی</p>
<p>۲- عوض شدن صفحات با حرکت اسکرول موس</p>
<p>۳ &#8211; تغییر تعداد اطلاعات نمایش داده شده</p>
<p>۴ &#8211; پریدن به یک صفحه خاص</p>
<p>۵ &#8211; حمایت از انیمشن های Jquery , CSS</p>
<p>6- استفاده از Lazy Load برای پیش لود کردن عکسها</p>
<p>۷- استفاده در جدول عکسها و هر حالی از اطلاعات</p>
<p>۸- قرار دادن دگمه جلو عقب در مکانهای دلخواه</p>
<p>۹ &#8211; ساخت انواع گالری عکسها و نمایش بند انگشتی عکسها</p>
<p>۱۰ &#8211;  عوض شدن صفحات بطور خودکار</p>
<p><span id="more-638"></span></p>
<p>&nbsp;</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/04/211.jpg"><img class="alignnone size-full wp-image-640" title="211" src="http://taraah.ir/wp-content/uploads/2012/04/211.jpg" alt="" width="500" height="451" /></a></p>
<p>نحوه ی استفاده :</p>
<p>ابتدا با دستورات زیر کتابخانه هاو استایل  Jquery , Jpage را در صفحه لود کنید :</p>
<pre class="brush:xml;">

&lt;link rel="stylesheet" href="css/jPages.css"&gt;

&lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"&gt;&lt;/script&gt;

&lt;script src="js/jPages.js"&gt;&lt;/script&gt;
</pre>
<p>دو قسمت در المان های HTML می باشند که یکی برای قرار دادن لیست اطلاعات itemContainer و دیگری برای نمایش شماره صفحه بندی ها و دگمه ها holder می باشد .</p>
<pre class="brush:xml;">

&lt;!-- Future navigation panel --&gt;
&lt;div class="holder"&gt;&lt;/div&gt;

&lt;!-- Item container (doesn't need to be an UL) --&gt;
&lt;ul id="itemContainer"&gt;
&lt;!-- Items --&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
...
&lt;/ul&gt;
</pre>
<p>اطلاعات در تگ های لیست می بایست قرار گیرند . در آخر صفحه هم تابع سازنده صفحه بندی را با دستور Jquery زیر صدا می زنیم .</p>
<pre class="brush:js;">
$(function(){

$("div.holder").jPages({ containerID : "itemContainer" });

});
</pre>
<p>این ساده ترین استفاده از این پلاگین می باشد ، می توانید سورس پلاگین و مثال ها و دموهای ساخته شده را از صفحه ی <a href="https://github.com/luis-almeida/jPages">github </a>سازنده یا در صورت مشکل از <a href="http://taraah.ir/dl/jpag/Pages.zip">اینجا </a> دریافت نمایید .</p>
<p>همچنین <strong>دمو</strong> <strong>ها</strong> و <strong>مثالهای مختلف</strong> را در <a href="http://luis-almeida.github.com/jPages/">سایت سازنده </a>می توانید مشاهده کنید .  بهترین توضیح برای نحوه ی ساخت همه ی مثال ها و دموها سورس صفحات موجود در فایل زیپ هست . </p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li><li><a href="http://taraah.ir/?p=627" title="منوی درختی از اطلاعات XML">منوی درختی از اطلاعات XML</a></li><li><a href="http://taraah.ir/?p=614" title="ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch ">ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=QykdxNixYRo:mohhTtNN7OM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=QykdxNixYRo:mohhTtNN7OM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=QykdxNixYRo:mohhTtNN7OM:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/QykdxNixYRo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=638</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=638</feedburner:origLink></item>
		<item>
		<title>استفاده از کدهای PHP در داخل پستهای وردپرس</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/SBv9S7JETtQ/</link>
		<comments>http://taraah.ir/?p=633#comments</comments>
		<pubDate>Sat, 21 Apr 2012 17:41:42 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[مدیریت محتوا]]></category>
		<category><![CDATA[وردپرس]]></category>
		<category><![CDATA[php in wordpress]]></category>
		<category><![CDATA[shortcode]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress code]]></category>
		<category><![CDATA[کد وردپرس]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=633</guid>
		<description><![CDATA[بعضی وقتها لازم است برای شخصی تر کردن وردپرس ، کدهایی را در هنگام اجرای پستهای خاصی اجرا کرد ، فرض کنید می خواهید دسترسی بعضی پستها را محدود به کاربران کنید و خیلی کارهای خاص دیگر که بین همه ی پستها عمومیت ندارد . با استفاده از shortCode ها می توان کدهای PHP را [...]]]></description>
			<content:encoded><![CDATA[<p>بعضی وقتها لازم است برای شخصی تر کردن وردپرس ، کدهایی را در هنگام اجرای پستهای خاصی اجرا کرد ، فرض کنید می خواهید دسترسی بعضی پستها را محدود به کاربران کنید و خیلی کارهای خاص دیگر که بین همه ی پستها عمومیت ندارد . با استفاده از shortCode ها می توان کدهای PHP را از داخل ویرایشگر فراخوانی و اجرا کرد .</p>
<p><img class="size-full wp-image-634 aligncenter" title="shortCode" src="http://taraah.ir/wp-content/uploads/2012/04/shortCode.png" alt="" width="300" height="189" /></p>
<p>همچنین در ادامه نحوه ی استفاده از ShortCode ها را در Widget ها یا ابزارک های پوسته شرح می دهم .<br />
<span id="more-633"></span></p>
<p>برای معرفی یک ShortCode در فایل Function.php موجود در پوشه ی قالب ، بعد از معرفی تابع مورد نظر  ، دستور زیر را وارد کرد :</p>
<pre class="brush:php;">

add_shortcode( 'shortCodeName', 'function_name' );
</pre>
<p>با این دستور ، در ادیتور کافیست بصورت زیر ShortCode را فراخوانی کنیم :</p>
<pre class="brush:xml;">
[ShortCodeName][/ShortCodeName]
</pre>
<p>بطور مثال اگر بخواهیم محدودیت دسترسی به یک نوشته را ایجاد کنیم ، می بایست کدهای زیر را در function.php بیاوریم :</p>
<pre class="brush:php;">

function paulund_check_user_sc( $at, $content = null ) {

&nbsp;

if ( is_user_logged_in() &amp;&amp; !is_null( $content ) &amp;&amp; !is_feed() ) {
return $content;
} else {
return '';
}
}

&nbsp;
</pre>
<pre class="brush:php;">

add_shortcode( 'user_only', 'paulund_check_user_sc' );
</pre>
<p>که در اینجا تابع paulund_check_user_sc را به shortCode ای به نام user_only احتصاص داده ایم<br />
و با نوشتن عبارت زیر در پست ها آن را فراخوانی خواهیم کرد :</p>
<pre class="brush:xml;">

[user_only]This content can only be seen by logged in users[/user_only]
</pre>
<p><strong>فعال کردن shortCode ها در widget  ها :</strong></p>
<p>بصورت پیش فرض ShortCode ها را نمی توان در custom HTML Widget ها استفاده نمود (ابزارک های متن دلخواه)</p>
<p>با ایجاد این عبارت در function.php این مسئله هم حل خواهد شد :</p>
<pre class="brush:php;">

add_filter('widget_text', 'do_shortcode');
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=369" title="تغییر ایمیل پیش فرض وردپرس در ارسالهای خودکار">تغییر ایمیل پیش فرض وردپرس در ارسالهای خودکار</a></li><li><a href="http://taraah.ir/?p=296" title="معرفی 7 پلاگین ضروری برای وردپرس">معرفی 7 پلاگین ضروری برای وردپرس</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=SBv9S7JETtQ:zSCZ6u1uqp4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=SBv9S7JETtQ:zSCZ6u1uqp4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=SBv9S7JETtQ:zSCZ6u1uqp4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/SBv9S7JETtQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=633</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=633</feedburner:origLink></item>
		<item>
		<title>منوی درختی از اطلاعات XML</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/zrwYVQsh32o/</link>
		<comments>http://taraah.ir/?p=627#comments</comments>
		<pubDate>Thu, 19 Apr 2012 19:19:35 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=627</guid>
		<description><![CDATA[XML یکی از بهترین فرمت ها برای ذخیره اطلاعات و دسته بندی و  استفاده از اطلاعات ذخیره شده می باشد و می تواند نقش یک دیتابیس را ایفا کند ، در این نوشته قصد دارم با داشتن اطلاعات XML یک منوی درختی با Jquery ایجاد کنیم و در ادامه نحوه ی استفاده از اطلاعات XML [...]]]></description>
			<content:encoded><![CDATA[<p>XML یکی از بهترین فرمت ها برای ذخیره اطلاعات و دسته بندی و  استفاده از اطلاعات ذخیره شده می باشد و می تواند نقش یک دیتابیس را ایفا کند ، در این نوشته قصد دارم با داشتن اطلاعات XML یک منوی درختی با Jquery ایجاد کنیم و در ادامه نحوه ی استفاده از اطلاعات XML را که بصورت داینامیک توسط وب سرویس ها تولید می شود شرح دهیم ، در این حالت با AJAX به وب سرویسی که با PHP اطلاعات را دریافت و ارسال می کند می توان تعامل داشت .</p>
<p><img class="size-full wp-image-628 aligncenter" title="xml_tree" src="http://taraah.ir/wp-content/uploads/2012/04/xml_tree.png" alt="" width="300" height="189" /></p>
<p>قبل از شروع لطفا <a href=" http://taraah.ir/dl/xmltree/index.html"><strong>دمو</strong></a> را مشاهده کنید .</p>
<p><span id="more-627"></span></p>
<p>۱- لینک XML استاتیک</p>
<p>فرض کنید اطلاعات XML بصورت زیر داشته باشیم و در یک فایل XML هم قرار داده باشیم .</p>
<pre class="brush:xml;">&lt;?xml version="1.0"?&gt;
&lt;characters&gt;
&lt;character orientation='good'&gt;
&lt;name&gt;Mario&lt;/name&gt;
&lt;nationality&gt;Italian&lt;/nationality&gt;
&lt;love_interest&gt;Princess Peach&lt;/love_interest&gt;
&lt;sidekick&gt;Luigi&lt;/sidekick&gt;
&lt;attack_style&gt;Jumping on heads&lt;/attack_style&gt;
&lt;recent_games&gt;
&lt;game platform='wii'&gt;Mario Galaxy&lt;/game&gt;
&lt;game platform='wii'&gt;Mario Galaxy 2&lt;/game&gt;
&lt;game platform='3ds'&gt;Mario Bros. 3D&lt;/game&gt;
&lt;/recent_games&gt;
&lt;/character&gt;
&lt;character orientation='good'&gt;
&lt;name&gt;Kirby&lt;/name&gt;
&lt;nationality&gt;Unknown&lt;/nationality&gt;
&lt;sidekick&gt;Prince Fluff&lt;/sidekick&gt;
&lt;attack_style&gt;Eating&lt;/attack_style&gt;
&lt;recent_games&gt;
&lt;game platform='wii'&gt;Kirby's Epic Yarn&lt;/game&gt;
&lt;game platform='ds'&gt;Kirby's Mass Attack&lt;/game&gt;
&lt;game platform='wii'&gt;Kirby's Return to Dreamland&lt;/game&gt;
&lt;/recent_games&gt;
&lt;/character&gt;
&lt;character orientation='evil'&gt;
&lt;name&gt;Bowser&lt;/name&gt;
&lt;nationality&gt;Unknown&lt;/nationality&gt;
&lt;sidekick&gt;Bowser Jr.Fluff&lt;/sidekick&gt;
&lt;attack_style&gt;Fire breathing&lt;/attack_style&gt;
&lt;recent_games&gt;
&lt;game platform='ds'&gt;Bowser's Inside Story&lt;/game&gt;
&lt;/recent_games&gt;
&lt;/character&gt;
&lt;/characters&gt;</pre>
<p>&nbsp;</p>
<p>سپس در فایل HTML پس از لود Jquery و فایل JS و استایل پلاگین :</p>
<pre class="brush:xml;">&lt;link rel='stylesheet' type='text/css' href='xmltree.css' /&gt;
&lt;script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.js'&gt;&lt;/script&gt;
&lt;script src='xmltree.js'&gt;&lt;/script&gt;</pre>
<p>با دستور زیر یک Object می سازیم :</p>
<pre class="brush:js;">&lt;script&gt;$(function() { new XMLTree({fpath: 'xml.xml', container: '#tree', startCollapsed: true , attrsAsData: true}); });&lt;/script&gt;</pre>
<p>آرگومان اول xml.xml مسیر فایل یا آدرس XML است که می خواهیم اطلاعات را از روی آن بخوانیم .</p>
<p>آرگومان دوم المان HTML ای است که می خواهیم اطلاعات در آنها چاپ شود . در اینجا #tree می باشد . آرگومان سوم برای این است که در شروع همه ی شاخه ها بسته باشند و آرگومان سوم برای این است که attribute های تگ های XML به data های Jquery تبدیل شوند ، مثلا می توان برای هر تگ یک آیدی قرار داد و با این روش از آن آیدی ها در کد Jquery استفاده کرد .</p>
<p>XML تولید شده داینامیک :</p>
<p>فرض کنید با یک وب سرویس قرار است کار کنید که با یک آدرس یک سری تگ (تگ های مادر ) و با آدرس دیگر تگ های دیگر (مثلا تگ بچه)  تولید می شوند می بایست با کلیک روی تگ مادر آدرس سورس تغییر کند تا بتواند تگهای بچه را دریافت کند .</p>
<p>با این دستور تگهای root مادر دریافت می شوند و سپس در گزینه ی subTreeRequest یک تابع برای دریافت تگهای بچه صدا می زنیم ، این تابع وقتی اجرا می شود که روی یکی از شاخه های مادر کلیک شود .</p>
<pre class="brush:js;">new XMLTree({
fpath: 'web_service.php?level=root',
container: '#tree',
subTreeBranches: true,
subTreeRequest: generate_sub_tree_url,
attrsAsData: true
});</pre>
<p>&nbsp;</p>
<p>در زیر تابع  generate_sub_tree_url را هم تعریف می کنیم که برای دریافت اطلاعات تگهای بچه در بالا صدا زدیم .</p>
<pre class="brush:js;">function generate_sub_tree_url(li) {
return 'web_service.php?branch_id='+li.data('id');
}</pre>
<p>&nbsp;</p>
<p>همانطور که مشاهده می کنید ، آدرس url تغییر کرده است ، و از اطلاعات attribute که در قسمت attrsAsData: true تولید کردیم استفاده کردیم  . در حقیقت به وب سرویس اعلام کردیم که اطلاعات این تگ مادر با این آیدی را تولید کن .</p>
<p>توجه داشته باشید که اطلاعات data برای Jquery در تگ li ذخیره می شوند پس برای دستیابی به آنها باید از دستور</p>
<pre class="brush:js;">li.data('id')</pre>
<p>استفاده کرد .</p>
<p>اختصاص attribute به تگهای xml همانند اختصاص  attribute ها به HTML می باشد ، مثل حالت زیر :</p>
<pre class="brush:xml;">&lt;character orientation='good' id="1"&gt;</pre>
<p>که attribute برای این تگ را id تغریف کردیم و مقدار ۱ را به آن داده ایم ، حال می توانیم در کدهای Jquery از این مقدار ۱ برای مثال استفاده کنیم .</p>
<p>&nbsp;</p>
<p><a href=" http://taraah.ir/dl/xmltree/index.html"><strong>دمو</strong> </a>        <strong><a href=" http://taraah.ir/dl/xmltree/xmltree.zip">دانلود سورس</a></strong></p>
<p>&nbsp;</p>
<p>یک نکته ی جالب هم در url ساخته شده توسط این پلاگین است ، در صورتی که منوها را باز کنید می بینید آخر URL سایت شناسه تگ ها را نشان می دهد مثلا :</p>
<pre class="brush:xml;">
#tree0:0,2,6;
</pre>
<p>نشان دهنده ی این است که اولین تگ سپس سومین تگ و در نهایت هفتمین تگ به ترتیب باز شده است ،</p>
<p>این نوع تغییر url دو مزیت مفید دارد :</p>
<p>۱- بعد از رفرش صفحه منوها در همان حالت قبلی می مانند.</p>
<p>۲- می توان با این روش برای گزینه ی خاصی از منو که باز باشد لینک بدهیم ، وقتی کاربر لینک را باز کرد با منوی کاملا بسته مواجه نخواهد شد .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li><li><a href="http://taraah.ir/?p=638" title="صفحه بندی مطالب زیاد با Jquery ">صفحه بندی مطالب زیاد با Jquery </a></li><li><a href="http://taraah.ir/?p=621" title="تبدیل اطلاعات XML به JSON">تبدیل اطلاعات XML به JSON</a></li><li><a href="http://taraah.ir/?p=614" title="ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch ">ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=zrwYVQsh32o:Mw02vZd_w6o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=zrwYVQsh32o:Mw02vZd_w6o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=zrwYVQsh32o:Mw02vZd_w6o:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/zrwYVQsh32o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=627</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=627</feedburner:origLink></item>
		<item>
		<title>تبدیل اطلاعات XML به JSON</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/XbZGmgt-3VI/</link>
		<comments>http://taraah.ir/?p=621#comments</comments>
		<pubDate>Wed, 18 Apr 2012 19:37:02 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=621</guid>
		<description><![CDATA[XML و JSON دو نوع فرمت برای دریافت داده های دسته بندی شده می باشند ، بسیاری از اطلاعات ارسالی وب سرویس ها و API ها به این دو فرمت می باشد ، در صورتی که اطلاعات دریافتی بصورت XML باشند (مثلا RSS) و برنامه ای که می خواهید اطلاعات را توسط آن استفاده کنید [...]]]></description>
			<content:encoded><![CDATA[<p>XML و JSON دو نوع فرمت برای دریافت داده های دسته بندی شده می باشند ، بسیاری از اطلاعات ارسالی وب سرویس ها و API ها به این دو فرمت می باشد ، در صورتی که اطلاعات دریافتی بصورت XML باشند (مثلا RSS) و برنامه ای که می خواهید اطلاعات را توسط آن استفاده کنید با فرمت JSON کار می کند چاره ای ندارید که اطلاعات XML را بطور اتوماتیک به Json تبدیل کنید .</p>
<p>در این نوشته با استفاده از یک پلاگین Jquery تبدیل فرمت اطلاعات XML به JSON همراه با گزینه های قابل تغییر آن شرح می دهم .</p>
<p><img class="size-full wp-image-622 aligncenter" title="xml_JSON" src="http://taraah.ir/wp-content/uploads/2012/04/xml_JSON.png" alt="" width="300" height="189" /></p>
<p><span id="more-621"></span></p>
<p>در نمونه های زیر تبدیل فرمت انجام شده است که هدف این نوشته بیشتر مشخص می شود .</p>
<p>XML</p>
<pre class="brush:xml;">&lt;root&gt;
&lt;item&gt;
&lt;one&gt;Fars&lt;/one&gt;
&lt;two&gt;Tehran&lt;/two&gt;
&lt;three&gt;
&lt;four&gt;Qom&lt;/four&gt;
&lt;/three&gt;
&lt;/item&gt;
&lt;/root&gt;</pre>
<p>تبدیل به :</p>
<pre class="brush:xml;">{
one: 'Fars',
two: 'Tehran',
three: 'Qom'
}</pre>
<p>البته در تبدیل اختیار کامل با شما خواهد بود که مثلا Qom را در three بگذارید یا three را مادر و four را بچه قرار دهید و Qom را در four قرار دهید یعنی :</p>
<pre class="brush:xml;">{
one: 'Fars',
two: 'Tehran',
three: {
four: 'Qom'
}
}</pre>
<p>طرز استفاده :</p>
<p>فرض کنید XML بصورت زیر است :</p>
<pre class="brush:xml;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;news&gt;
&lt;item&gt;
&lt;headline&gt;PHP&lt;/headline&gt;
&lt;href&gt;http://taraah.ir/?cat=4&lt;/href&gt;
&lt;description&gt;this is a description for PHP&lt;/description&gt;
&lt;thumb&gt;http://taraah.ir/wp-content/themes/taraah_theme/images/origami/logo.png&lt;/thumb&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;headline&gt;HTML-CSS&lt;/headline&gt;
&lt;href&gt;http://taraah.ir/?cat=7&lt;/href&gt;
&lt;description&gt;this is a description for HTML-CSS&lt;/description&gt;
&lt;thumb&gt;http://taraah.ir/wp-content/themes/taraah_theme/images/origami/logo.png&lt;/thumb&gt;
&lt;/item&gt;
&lt;item&gt;
&lt;headline&gt;Javascript&lt;/headline&gt;
&lt;href&gt;http://taraah.ir/?cat=5&lt;/href&gt;
&lt;description&gt;this is a description for Javascript&lt;/description&gt;
&lt;thumb&gt;http://taraah.ir/wp-content/themes/taraah_theme/images/origami/logo.png&lt;/thumb&gt;
&lt;/item&gt;
&lt;/news&gt;</pre>
<p>کافیست پس از لود کردن Jquery و پلاگین در Head سایت به شکل زیر  :</p>
<p>&nbsp;</p>
<p>سپس با AJAX از نوع XML اطلاعات را از XML می خوانیم :</p>
<pre class="brush:js;">$.ajax({
url: 'xml.xml',
async: false,
dataType: 'xml',
success: function(xml) {
$(xml).XMLToJSON(jawsData = [], 'news item', {headline: 'title', href: 'url', description: 'moreInfo.info', thumb: 'moreInfo.image'});
}
})</pre>
<p>&nbsp;</p>
<p>همانطور که مشاهده کردید در قسمت success با دستور زیر اطلاعات XML را در آرایه ای به نام Json_array قرار دادیم :</p>
<pre class="brush:js;">$(xmldata).XMLToJSON(Json_array = [], remap = {headline:'title', description: 'moreInfo.info', thumb:'moreInfo.image'});</pre>
<p>آرگومان اول تابع همانطور که گفته شد اسم آرایه ای است که می خواهید اطلاعات در آن قرار بگیرد که در اینجا Json_array می باشد .</p>
<p>آرگومان دوم remap است و نشان می دهد که اطلاعات هر کدام از تگ های XML در چه آیتمی از Json باید قرار بگیرد ، در اینجا مثلا اطلاعات headline در XML را در آیتم title از JSON قرار دادیم همچنین تگ description  را در بچه ی moreInfo به نام info قرار دادیم ، image بچه ی دیگر moreInfo  می باشد که تگ tumb در آن ریخته شده است . (اطلاعات را در اینجا دسته بندی کردیم برخلاف XML که همه ی تگ ها را در کنار هم قرار داده بود .)</p>
<p>با اجرای این دستور یک آرایه JSON خواهیم داشت که جلوتر می توانیم با یک حلقه ی for می توانیم اطلاعات آن را بازخوانی کنیم :</p>
<pre class="brush:js;">$(function() {
for(var i=0;i&lt;jawsData.length;i++){
$("#contain").append(jawsData[i].title+"&lt;br&gt;");
$("#contain").append(jawsData[i].url+"&lt;br&gt;");
$("#contain").append(jawsData[i].moreInfo.info+"&lt;br&gt;");
$("#contain").append(jawsData[i].moreInfo.image+"&lt;hr&gt;");

}

});</pre>
<p>&nbsp;</p>
<p>به این صورت اطلاعات در المان HTML با آیدی Contain چاپ خواهد شد .</p>
<p><a href="http://taraah.ir/dl/xml_to_json/"><strong>دمو</strong> </a>             <a href="http://taraah.ir/dl/xml_to_json/xml_to_json.zip"><strong>دانلود سورس</strong> </a></p>
<p>&nbsp;</p>
<p>(فایل <a href="http://taraah.ir/dl/xml_to_json/xml_to_json.js">xml_to_json.js </a> پلاگین می باشد که در فایل زیپ قرار داده شده است.)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=627" title="منوی درختی از اطلاعات XML">منوی درختی از اطلاعات XML</a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=650" title="مدیریت فایل در هر جایی از سایت برای کاربران">مدیریت فایل در هر جایی از سایت برای کاربران</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=XbZGmgt-3VI:UzhpWL7s5po:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=XbZGmgt-3VI:UzhpWL7s5po:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=XbZGmgt-3VI:UzhpWL7s5po:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/XbZGmgt-3VI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=621</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=621</feedburner:origLink></item>
		<item>
		<title>ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/rqZ8qy0f20M/</link>
		<comments>http://taraah.ir/?p=614#comments</comments>
		<pubDate>Mon, 16 Apr 2012 19:31:10 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[جاواسکریپت]]></category>
		<category><![CDATA[جی کوئری]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=614</guid>
		<description><![CDATA[موبایلهای هوشمند و تبلت هایی که مجهز به صفحات multi touch هستند یک مزیت نسبت به صفحات معمولی دارند و آن چند منظوره بودن کلیک یا tap روی صفحه است . این امکان فقط در اپلیکشن ها استفاده می شود ،  در صفحات وب معمولی ، tap زدن یا دوباره tap زدن یا hold , [...]]]></description>
			<content:encoded><![CDATA[<p>موبایلهای هوشمند و تبلت هایی که مجهز به صفحات multi touch هستند یک مزیت نسبت به صفحات معمولی دارند و آن چند منظوره بودن کلیک یا tap روی صفحه است . این امکان فقط در اپلیکشن ها استفاده می شود ،  در صفحات وب معمولی ، tap زدن یا دوباره tap زدن یا hold , drag کاربردی ندارد ، در این نوشته قصد دارم پلاگینی را معرفی و  شرح دهم که با استفاده از آن می توانید توابع جاواسکریپت و Jquery را برای اجرا در هنگام اتفاق این event ها به عمل در آورید .</p>
<p><img class="size-full wp-image-615 aligncenter" title="device" src="http://taraah.ir/wp-content/uploads/2012/04/device.jpg" alt="" width="605" height="132" /></p>
<p>مثلا فرض کنید یک اسلایدشو می خواهید در صفحه ایجاد کنید که با کشیدن drag کردن روی عکسها ، تعویض عکس رخ دهد ، یا با چرخاندن انگشتها ، عکس هم بچرخد یا رنگ عوض شود یا متنها حرکت کنند و  &#8230;</p>
<p><a href="http://eightmedia.github.com/hammer.js/">Hammer.js</a> یک کلاس javascript است که این کار را انجام می دهد ، کافیست یک object برای المان html ای که می خواهید توابع را برای آن معرفی کنید تعریف کنید . (OOP)  البته پلاگین Jquery هم برای آن وجود دارد .<br />
<span id="more-614"></span></p>
<p><strong>با جاواسکریپت (بدون Jquery)</strong></p>
<p><strong>1-</strong> ابتدا سورس کلاس را لود کنید :</p>
<pre class="brush:js;">&lt;script src="<a href="http://eightmedia.github.com/hammer.js/hammer.js%22%3E%3C/script">http://eightmedia.github.com/hammer.js/hammer.js"&gt;&lt;/script</a>&gt;</pre>
<p><strong>2-</strong> با این دستور یک object برای آیدی container بسازید</p>
<pre class="brush:js;">
var hammer = new Hammer(document.getElementById("container"));</pre>
<p><strong>3-</strong> سپس بر روی شیئ ساخته شده میتوانید event های زیر را با توابع اجرایی خاص ، تعریف کنید .</p>
<pre class="brush:js;">
hammer.ondragstart = function(ev) { };
hammer.ondrag = function(ev) { };
hammer.ondragend = function(ev) { };

hammer.ontap = function(ev) { };
hammer.ondoubletap = function(ev) { };
hammer.onhold = function(ev) { };

hammer.ontransformstart = function(ev) { };
hammer.ontransform = function(ev) { };
hammer.ontransformend = function(ev) { };</pre>
<p><strong>با استفاده از JQuery</strong></p>
<p><strong>1-</strong> ابتدا لود پلاگین :</p>
<pre class="brush:js;">
&lt;script src="http://eightmedia.github.com/hammer.js/jquery.hammer.js"&gt;&lt;/script&gt;
</pre>
<p><strong>2-</strong> تعریف توابع برای event ها :</p>
<pre class="brush:js;">

$("#element")
.hammer({
// options...
})
.bind("tap", function(ev) {
console.log(ev);
});

&nbsp;
</pre>
<p>سورس این کلاس و پلاگین را از <strong><a href="http://eightmedia.github.com/hammer.js/">سایت سازنده</a> </strong> دریافت کنید ، همچنین برای مشاهده مستندات آن به صفحه ی <a href="https://github.com/eightmedia/hammer.js">github </a> آن مراجعه کنید .</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li><li><a href="http://taraah.ir/?p=535" title="اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery">اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery</a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li><li><a href="http://taraah.ir/?p=644" title="پر کردن فیلدهای فرم با Jquery و JSON">پر کردن فیلدهای فرم با Jquery و JSON</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=rqZ8qy0f20M:23BCpVpdfKE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=rqZ8qy0f20M:23BCpVpdfKE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=rqZ8qy0f20M:23BCpVpdfKE:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/rqZ8qy0f20M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=614</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=614</feedburner:origLink></item>
		<item>
		<title>ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/L_OxMbErmsM/</link>
		<comments>http://taraah.ir/?p=608#comments</comments>
		<pubDate>Mon, 16 Apr 2012 18:27:03 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[HTML-CSS]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[طراحی سایت]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery plugin]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[picture]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[tumb]]></category>
		<category><![CDATA[tumbnail]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=608</guid>
		<description><![CDATA[در صورتی که برای گالری عکس سایت خود از استایل شبکه بندی یا  tumbnail عکسها می خواهید استفاده کنید ، هم می توانید عکسهای کوچک شده را جداگانه بطور دستی بسازید یا  از اسکریپتی استفاده کنید که tumbnail این عکس ها را بطور خودکار بعد از آپلود بسازد و در جایی ذخیره کند ، که [...]]]></description>
			<content:encoded><![CDATA[<p>در صورتی که برای گالری عکس سایت خود از استایل شبکه بندی یا  tumbnail عکسها می خواهید استفاده کنید ، هم می توانید عکسهای کوچک شده را جداگانه بطور دستی بسازید یا  از اسکریپتی استفاده کنید که tumbnail این عکس ها را بطور خودکار بعد از آپلود بسازد و در جایی ذخیره کند ، که در هر دو روش کار سختی در پیش رو خواهید داشت ، یکی دیگر از راههای ساخت tumbnail استفاده از یک پلاگین Jquery است که بدون ذخیره ی جداگانه tumbnail و یا ساخت جداگانه آن بطور کاملا سفارشی می تواند از عکسهای شما tumbnail تهیه کند . توجه کنید که این کار صرفا به معنی تغییر اندازه عکس نیست . کم کردن حجم Crop کردن و انتخاب قسمت خاصی از عکس از مزایای این روش است .</p>
<p><img class="size-full wp-image-609 aligncenter" title="tumbnail_jquery" src="http://taraah.ir/wp-content/uploads/2012/04/tumbnail_jquery.png" alt="" width="300" height="189" /></p>
<p>پلاگین <strong><a href="http://www.garralab.com/nailthumb.php">jQuery NailThumb</a></strong>  عکس هایی را که class خاصی به آنها داده اید را بطور خودکار تحت تاثیر قرار می دهد ، اصلا لازم نیست برنامه خاصی بنویسید ، در زیر یک نمونه استفاده از آن را که در سایت سازنده قرار داده شده شرح می دهم :<br />
<span id="more-608"></span></p>
<p><strong>۱-</strong> ابتدا کتابخانه Jquery و فایل JS پلاگین و فایل CSS پلاگین را در Head صفحه ی خود معرفی کنید تا لود شود .</p>
<pre class="brush:xml;"><code> &lt;script type="text/javascript" src="path/to/jquery.js"&gt;&lt;/script&gt; </code>

<code>&lt;script type="text/javascript" src="path/to/jquery.nailthumb.1.0.js"&gt;&lt;/script&gt;</code>

<code> &lt;link href="path/to/jquery.nailthumb.1.0.css" type="text/css" rel="stylesheet" /&gt;</code></pre>
<p><strong>2-</strong> سپس می بایست استایل های دلخواه خود را به کلاسی که بعدا به عکس ها می دهید بصورت زیر بدهید :</p>
<pre class="brush:css;">
&lt;style type="text/css" media="screen"&gt;

.square-thumb {
width: 150px;
height: 150px;
}
&lt;/style&gt;

&nbsp;
</pre>
<p><strong>3-</strong> حالا در body یک سری div با کلاسی که در بالا option ها را به آن داده اید می سازید و عکس ها را داخل آن ها قرار می دهید .</p>
<pre class="brush:xml;">&lt;div class="nailthumb-container square-thumb"&gt;
&lt;img src="path/to/image.png" /&gt;
&lt;/div&gt;
&lt;div class="nailthumb-container square-thumb"&gt;
&lt;img src="path/to/image.png" /&gt;
&lt;/div&gt;
&lt;div class="nailthumb-container square-thumb"&gt;
&lt;img src="path/to/image.png" /&gt;
&lt;/div&gt;</pre>
<p><strong>4-</strong> در آخر صفحه هم که همه ی المان های درگیر معرفی شده اند وقت آن رسیده پلاگین را برای کلاسی که به همه ی div های عکسها داده ایم صدا بزنیم .</p>
<p>بهتر است مثل حالتی که در اینجا معرفی کردیم از دو کلاس برای div عکسها استفاده کنیم . چون ممکن است بعضی از عکس ها را با option های مختلفی  بخواهید تحت تاثیر قرار دهید ، مثلا ۲ ۳ تای اول را یک اندازه و بقیه را یه اندازه دیگر ، اما در آخر پلاگین را برای همه صدا می زنید ، مثلا در اینجا کلاس option دهی square-thumb و کلاس صدا زدن پلاگین nailthumb-container می باشد . که nailthumb-container برای همه ی عکس ها یکی خواهد بود اما ممکن است غیر از square-thumb هم کلاسی برای option های دیگر داشته باشیم .</p>
<pre class="brush:js;">&lt;script type="text/javascript"&gt;
jQuery(document).ready(function() {
jQuery('.nailthumb-container').nailthumb();
});
&lt;/script&gt;</pre>
<p>در آخر کل سورس html به این شکل زیر در می آید :</p>
<pre class="brush:xml;">&lt;script type="text/javascript" src="path/to/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="path/to/jquery.nailthumb.1.0.js"&gt;&lt;/script&gt;
&lt;link href="path/to/jquery.nailthumb.1.0.css" type="text/css" rel="stylesheet" /&gt;
&lt;style type="text/css" media="screen"&gt;
.square-thumb {
width: 150px;
height: 150px;
}
&lt;/style&gt;
...
&lt;div&gt;
&lt;img src="path/to/image.png" /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;img src="path/to/image.png" /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;img src="path/to/image.png" /&gt;
&lt;/div&gt;
...
&lt;script type="text/javascript"&gt;
jQuery(document).ready(function() {
jQuery('.nailthumb-container').nailthumb();
});
&lt;/script&gt;</pre>
<p>دمو ها و مثال های مختلف را در <strong><a href="http://www.garralab.com/nailthumb.php">سایت سازنده </a></strong> می توانید مشاهده کنید ، اگر با دانلود کردن از سایت <strong><a href="https://sourceforge.net/projects/nailthumb/files/latest/download?source=files">sourceforge </a></strong> مشکل داشتید از<strong><a href="http://taraah.ir/dl/tumbnail/nailthumb.1.0.zip"> این لینک</a></strong> کتابخانه ها را دریافت کنید .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=660" title="ثابت نگه داشتن المانی در حین اسکرول">ثابت نگه داشتن المانی در حین اسکرول</a></li><li><a href="http://taraah.ir/?p=513" title="نمایش اطلاع یا اخطار روی صفحه با Jquery">نمایش اطلاع یا اخطار روی صفحه با Jquery</a></li><li><a href="http://taraah.ir/?p=74" title="استفاده از پلاگین نظر سنجی AJAX">استفاده از پلاگین نظر سنجی AJAX</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=L_OxMbErmsM:R44cQEPSX-A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=L_OxMbErmsM:R44cQEPSX-A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=L_OxMbErmsM:R44cQEPSX-A:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/L_OxMbErmsM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=608</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=608</feedburner:origLink></item>
		<item>
		<title>دریافت پارامترهای ماژول و پلاگین و قالب و کامپوننتهای جوملا از فایلهای params</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/wHNDta2lc10/</link>
		<comments>http://taraah.ir/?p=596#comments</comments>
		<pubDate>Fri, 13 Apr 2012 16:13:55 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جوملا]]></category>
		<category><![CDATA[مدیریت محتوا]]></category>
		<category><![CDATA[افزونه جوملا]]></category>
		<category><![CDATA[برنامه نویسی جوملا]]></category>
		<category><![CDATA[جوملا ماژول]]></category>
		<category><![CDATA[جوملا کامپوننت]]></category>
		<category><![CDATA[ماژول]]></category>
		<category><![CDATA[پلاگین جوملا]]></category>
		<category><![CDATA[کامپوننت]]></category>
		<category><![CDATA[کامپوننت جوملا]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=596</guid>
		<description><![CDATA[پارمترهایی که در قسمت parameters در کامپوننت ها و ماژولها و پلاگینهای مختلف تنظیم می شوند در تمام قسمتهای دیگر جوملا قابل استفاده می باشند ، این اطلاعات در فایلهای XML ذخیره می شوند نه دیتابیس ، در نتیجه برای دسترسی به اطلاعات داخل این فایلهای XML می بایست از دستورات دیگری استفاده کنیم ، [...]]]></description>
			<content:encoded><![CDATA[<p>پارمترهایی که در قسمت parameters در کامپوننت ها و ماژولها و پلاگینهای مختلف تنظیم می شوند در تمام قسمتهای دیگر جوملا قابل استفاده می باشند ، این اطلاعات در فایلهای XML ذخیره می شوند نه دیتابیس ، در نتیجه برای دسترسی به اطلاعات داخل این فایلهای XML می بایست از دستورات دیگری استفاده کنیم ، همچنین دستورات برای استفاده از اطلاعات در داخل خود افزونه با بیرون آن متفاوت است . مثلا فرض کنید می خواهید با توجه به تعداد پستهایی که در منویی خاص برای نشان دادن تنظیم شده است ، عملکرد قالب را تغییر دهید ، یا از اطلاعات یک پلاگین در کامپوننت دیگر استفده نمایید . در این نوشته قصد دارم نحوه ی دریافت این اطلاعات را شرح دهم .</p>
<p><img class="size-full wp-image-598 aligncenter" title="joomla_params" src="http://taraah.ir/wp-content/uploads/2012/04/joomla_params.png" alt="" width="300" height="189" /></p>
<p><span id="more-596"></span><br />
پارامترهای پلاگین در داخل خود پلاگین :</p>
<pre class="brush:php;">$param = $this-&gt;params-&gt;get('paramName', 'defaultValue');</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>پارامترهای پلاگین در خارج از پلاگین :</p>
<pre class="brush:php;">
$plugin = &amp;JPluginHelper::getPlugin('exampleType', 'example');
 $pluginParams = new JParameter($plugin-&gt;params);
$param = $pluginParams-&gt;get('paramName', 'defaultValue');
</pre>
<p>&nbsp;</p>
<p>پارامترهای ماژول در داخل ماژول :</p>
<pre class="brush:php;">
$param = $params-&gt;get('paramName', 'defaultValue');
</pre>
<p>&nbsp;</p>
<p>پارامترهای ماژول در خارج از  ماژول :</p>
<pre class="brush:php;">
$module = &amp;JModuleHelper::getModule('example');

$moduleParams = new JParameter($module-&gt;params);

$param = $moduleParams-&gt;get('paramName', 'defaultValue');
</pre>
<p>&nbsp;</p>
<p>پارامترهای کامپوننت در داخل خود کامپوننت :</p>
<pre class="brush:php;">

$componentParams = &amp;JComponentHelper::getParams('com_example');

$param = $componentParams-&gt;get('paramName', 'defaultValue');
</pre>
<p>پارامترهای کامپوننت خارج از کامپوننت :</p>
<pre class="brush:php;">
<pre>$componentParams = &amp;JComponentHelper::getParams('com_example');
$param = $componentParams-&gt;get('paramName', 'defaultValue');</pre>
</pre>
<p>&nbsp;</p>
<p>پارامترهای قالب در داخل خود قالب :</p>
<pre class="brush:php;">
<pre>$param = $this-&gt;params-&gt;get('paramName');</pre>
</pre>
<p>&nbsp;</p>
<p>پارامترهای قالب در خارج از قالب :</p>
<pre class="brush:php;">
<pre>jimport('joomla.filesystem.file');
$mainframe = &amp;JFactory::getApplication();
$params = $mainframe-&gt;getParams(JFile::read(JURI::root() .'/templates/template_name/params.ini'));
$param = $params-&gt;get('paramName', 'defaultValue');</pre>
</pre>
<p>&nbsp;</p>
<p>دریافت پارامترهای قالب از داخل یک فایل خاص include شده در خارج از فریم ورک جوملا :</p>
<pre class="brush:php;">
<pre>// Get params.ini relative to the current file location (use your own relative path here)
$paramsFile = dirname(__FILE__) . '/../../params.ini';

// Only continue if the file exists
if(file_exists($paramsFile)) {
    // Get contents from params.ini file
    $iniString = file_get_contents($paramsFile);

    // Escape double quotes in values and then double-quote all values (because Joomla doesn't do that for us..)
    $iniQuoted = preg_replace('/=(.*)\\n/', "=\"$1\"\n", addcslashes($iniString, '"'));

    // Parse the ini string to an associative array
    $iniParsed = parse_ini_string($iniQuoted);
} else {
    $iniParsed = '';
}

// Set params to obtained values or empty array
$params = (!empty($iniParsed)) ? $iniParsed : array();

// Get param value from array
$param = $params['paramName'];</pre>
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=581" title="3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود">3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود</a></li><li><a href="http://taraah.ir/?p=589" title="امنیت در برنامه نویسی کامپوننت تحت جوملا">امنیت در برنامه نویسی کامپوننت تحت جوملا</a></li><li><a href="http://taraah.ir/?p=569" title="گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا">گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا</a></li><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=wHNDta2lc10:UhJpIfpXE7M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=wHNDta2lc10:UhJpIfpXE7M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=wHNDta2lc10:UhJpIfpXE7M:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/wHNDta2lc10" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=596</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=596</feedburner:origLink></item>
		<item>
		<title>امنیت در برنامه نویسی کامپوننت تحت جوملا</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/2FReJfFD0jQ/</link>
		<comments>http://taraah.ir/?p=589#comments</comments>
		<pubDate>Mon, 02 Apr 2012 17:23:18 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جوملا]]></category>
		<category><![CDATA[مدیریت محتوا]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[joomla component]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[امنیت جوملا]]></category>
		<category><![CDATA[امنیت در جوملا]]></category>
		<category><![CDATA[کامپوننت جوملا]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=589</guid>
		<description><![CDATA[فریم ورک ها معمولا دستوراتی برای تحلیل داده ها و افزایش امنیت آنها ارائه می دهند ، جوملا از این قاعده مستثنی نیست ، گرچه این CMS تا به حال خیلی به دلایل امنیتی آپدیت شده و می شود ، اما می بایست برای برنامه نویسی تحت جوملا این دستورات را شناخت و استفاده نمود [...]]]></description>
			<content:encoded><![CDATA[<p>فریم ورک ها معمولا دستوراتی برای تحلیل داده ها و افزایش امنیت آنها ارائه می دهند ، جوملا از این قاعده مستثنی نیست ، گرچه این CMS تا به حال خیلی به دلایل امنیتی آپدیت شده و می شود ، اما می بایست برای برنامه نویسی تحت جوملا این دستورات را شناخت و استفاده نمود ، چون هنگام آپدیت کتابخانه های آن دستورات تغییری نمی کنند و با استفاده از همان دستورات پیشین جوملای امن تری خواهید داشت . با اینکه هیچ موقع امنیت ۱۰۰ درصد نمی شود اما باید تلاش کرد حدالامکان این امنیت را افزود .</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/04/joomla-security-developer-nepal.jpg"><img class="alignnone size-full wp-image-591" title="joomla-security-developer-nepal" src="http://taraah.ir/wp-content/uploads/2012/04/joomla-security-developer-nepal.jpg" alt="" width="300" height="200" /></a></p>
<p><span id="more-589"></span></p>
<p><strong>۱- امنیت در اسم فایلها :</strong></p>
<p>در صورتی که فایلی را از کاربر دریافت می کنید برای قرار گرفتن در لیست فایلها در سرور ، نباید کاراکتر غیر امن داشته باشد و می بایست بطور خودکار این کاراکتر ها حذف و جایگزین شوند برای استفاده از این دستور ابتدا کتابخانه را فراخوانی کنید :</p>
<pre class="brush:php;">jimport('joomla.filesystem.file');</pre>
<p>سپس با دستور زیر اسم فایل امن تری تولید کنید :</p>
<pre class="brush:php;">$safeFilename = JFile::makeSafe($unsafeFilename);</pre>
<p>از اسم تولید شده برای rename کردن فایلها استفاده نمایید .</p>
<p>&nbsp;</p>
<p>برای چک کردن فرمت فایلها از دستور زیر استفاده نمایید ، گرچه برای بعضی فرمتها ممکن است درست کار نکند :</p>
<pre class="brush:php;">$safeFilename = JFile::makeSafe($unsafeFilename);</pre>
<p>روش بهتر این است که ، اگر لازم است فقط یک فرمت خاص دریافت شود ، برای پاک کردن فرمت فایل از دستور زیر استفاده نمایید و در آخر بطور دستی فرمت را به انتهای اسم اضافه نمایید ، در این حالت مثلا اگر فرمت فایل jpeg یا JPG باشد یا با حروف بزرگ کوچک باشد مشکلی نخواهید داشت (ممکن است وب سرور بین JPG , jpg در هنگام نمایش فرق قائل شود و این باعث عدم کنترل روی استفاده از فایلها خواهد شد و مشکلاتی را پدید خواهد آورد .)</p>
<pre class="brush:php;">$filenameWithoutExtension = JFile::stripExt($filename);

$filename = JFile::stripExt($filename) . '.jpeg';</pre>
<p><strong>2- نام فولدرها و مسیرها :</strong></p>
<p>ممکن است نام فولدر ها و مسیرها هم دارای کاراکترهای خاص باشند بهتر است با دستورات زیر آنها را تمییز کنیم :</p>
<pre class="brush:php;">jimport('joomla.filesystem.path');
jimport('joomla.filesystem.folder');

$cleanDirPath = JPath::clean($unsafeDirPath);
// make the directory path safe
$safeDirPath = JFolder::makeSafe($cleanDirPath);</pre>
<p>فقط توجه کنید برای حالت path باید مسیر مطلق باشد نه نسبی .</p>
<p>&nbsp;</p>
<p><strong>3- دریافت و انتقال داده</strong></p>
<p>در جوملا دستور JRequest اطلاعات را با متودهای GET , POST , COOKIE , SERVER ,  FIELS , REQUEST با روش زیر دریافت می کند .</p>
<pre class="brush:php;">$string = JRequest::getVar('nameOfVar', 'default', 'METHOD', 'TYPE', MASK);</pre>
<p>nameOfVar : نام متغیر</p>
<p>DefualtValue : اگر موجود نبود این را به عنوان پیش فرض قرار می دهد .</p>
<p>Method : مثلا GET POST COOKIE و &#8230;</p>
<p>Type : نوع داده مثلا string , integer , float , word , &#8230;</p>
<p>MASK : برای باز کردن بعضی از سخت گیری های امنیتی استفاده می شود .</p>
<p>مثلا به این شکل :</p>
<pre class="brush:php;">$string = JRequest::getVar('nameOfVar', 'default', 'REQUEST','STRING', JREQUEST_ALLOWRAW);</pre>
<p>&nbsp;</p>
<p>بجای استفاده از GetVar و قرار دادن type می توانید مستقیما از GetWord , GetString , GetInt , GetFloat  استفاده نمایید و قسمت type را حذف کنید .</p>
<p>چون JRequest  در سختگیرانه ترین حالت ممکن داده ها را ویرایش میکند ، با استفاده از Mask می توانید این محدودیت ها را بردارید .</p>
<p>بجای کلمه mask در دستور از MASK های زیر استفاده نمایید و جایگزین آنها کنید .</p>
<p>۱- JREQUEST_ALLOWHTML</p>
<p>در حالت بدون mask تمامی تگ های HTML  حذف می شوند اما با استفاده از این MASK فقط قسمتهای خطرناک آنها حذف می شوند و بقیه باقی میمانند .</p>
<p>۲- JREQUEST_NOTRIM</p>
<p>در حالت بدون MASK فاصله های دور و اطراف داده حذف می شوند ، این MASK از این کار جلوگیری می کند .</p>
<p>۳ - JREQUEST_ALLOWRAW</p>
<p>این باعث می شود که هر دو حالت بالایی اتفاق بیفتد ، هم فاصله ها باقی بمانند هم تگ های HTML  و هم تگ های LINK , SCRIPT (در هنگام استفاده باید دقت شود . چون قسمتهای خطرناک تگها را باقی می گذارد .)</p>
<p>در صورتی که می خواهید از تو نوع استفاده نمایید با کاراکتر | فاصله قرار دهید :</p>
<p>JREQUEST_NOTRIM | JREQUEST_ALLOWHTML</p>
<p>مثلا برای دریافت داده ی THEME از حالت POST طوری که بتوان هم از فاصله در اول داده استفاده کرد و هم تگ HTML و  اگر داده ای نبود کلمه ی NO NAME برگردانده شود ،  دستور زیر را می نویسیم :</p>
<p>$string = JRequest::getVar(&#8216;THEME &#8217;, &#8216;NO NAME&#8217;, &#8216;POST &#8217;,'STRING&#8217;, JREQUEST_NOTRIM | JREQUEST_ALLOWRAW);</p>
<p>&nbsp;</p>
<p><strong>4- امنیت در فرم ها :</strong></p>
<p>برای اینکه اطلاعات از فرمهای دیگر به URL  ای که در Action فرم تعریف شده بطور دستی ارسال نشود از Token در زیر فرم ها استفاده می کنیم ، در این صورت فرم قبل از ارسال یک رشته رمز تولید می کند و در سرور نیز ذخیره می شود ، بعد از ارسال فرم چک می شود که Token ارسال شده است یا نه و اگر ارسال شده با مقداری که در سرور وجود  دارد مطابقت دارد یا نه . اگر چنین بود می توان اطمینان داشت که فرم از جایی که قرار است ارسال شود ، ارسال شده و نقش امنیتی بسیاری خواهد داشت ، مخصوصا در فرمهای مهم مثل پرداخت بانکی این روش بسیار به امنیت کممک خواهد کرد .</p>
<p>با دستور زیر قبل از اینکه تگ form را ببندید رشته ی پنهان token را به فرم برای ارسال می افزایید</p>
<pre class="brush:php;">echo JHTML::_('form.token');</pre>
<p>در صفحه ای که فرم را به آن ارسال می کنید تا پردازش شود ،  با دستور زیر آن را چک می کنید :</p>
<pre class="brush:php;">if (!JRequest::checkToken('REQUEST')) {
// return 403 error
JError::raiseError(403, JText::_('ALERTNOAUTH'));
// belt and braces approach to guarantee the script stops
jexit('Invalid Token');
}</pre>
<p>که اگر اشتباه بود خطا نشان دهد .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=581" title="3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود">3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود</a></li><li><a href="http://taraah.ir/?p=569" title="گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا">گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا</a></li><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li><li><a href="http://taraah.ir/?p=596" title="دریافت پارامترهای ماژول و پلاگین و قالب و کامپوننتهای جوملا از فایلهای params">دریافت پارامترهای ماژول و پلاگین و قالب و کامپوننتهای جوملا از فایلهای params</a></li><li><a href="http://taraah.ir/?p=523" title="مشکل با اجازه آپلود فایلهای zip , rar (و فرمتهای تعریف نشده) در CI">مشکل با اجازه آپلود فایلهای zip , rar (و فرمتهای تعریف نشده) در CI</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=2FReJfFD0jQ:fa_9eILmWIY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=2FReJfFD0jQ:fa_9eILmWIY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=2FReJfFD0jQ:fa_9eILmWIY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/2FReJfFD0jQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=589</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=589</feedburner:origLink></item>
		<item>
		<title>۳ کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/vq_pL7fgHww/</link>
		<comments>http://taraah.ir/?p=581#comments</comments>
		<pubDate>Sun, 01 Apr 2012 08:47:23 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جوملا]]></category>
		<category><![CDATA[مدیریت محتوا]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[افزونه]]></category>
		<category><![CDATA[افزونه جوملا]]></category>
		<category><![CDATA[جوملا کامپوننت]]></category>
		<category><![CDATA[ماژول]]></category>
		<category><![CDATA[پلاگین]]></category>
		<category><![CDATA[پلاگین جوملا]]></category>
		<category><![CDATA[کامپوننت]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=581</guid>
		<description><![CDATA[در این نوشته ۳ تا از کتابهایی که مربوط به گسترش افزونه های جوملا می باشد را برای دانلود رایگان قرار می دهم . این کتابها به زبان انگلیسی می باشند و بسیار مفید و با مثال توضیح داده شده است . دقت شود پیش نیاز اینکه بتوانید از این کتابها استفاده کنید اینست که [...]]]></description>
			<content:encoded><![CDATA[<p>در این نوشته ۳ تا از کتابهایی که مربوط به گسترش افزونه های جوملا می باشد را برای دانلود رایگان قرار می دهم . این کتابها به زبان انگلیسی می باشند و بسیار مفید و با مثال توضیح داده شده است . دقت شود پیش نیاز اینکه بتوانید از این کتابها استفاده کنید اینست که حتما به شیء گرایی و کلاس نویسی با php مسلط باشید . همچنین آشنا با سیستم MVC یا Model view controller نیز باشید .</p>
<p><strong>۱-</strong></p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/04/joomla_1_5_Developeing_CookBook.jpg"><img class="alignnone size-medium wp-image-583" title="joomla_1_5_Developeing_CookBook" src="http://taraah.ir/wp-content/uploads/2012/04/joomla_1_5_Developeing_CookBook-300x244.jpg" alt="" width="300" height="244" /></a></p>
<p>نام کتاب :  Joomla 1.5 Development Cookbook</p>
<p>نام نویسنده : James Kennard</p>
<p>توضیحات : Solve real world Joomla! 1.5 development problems with over 130 simple but incredibly useful recipes</p>
<p><strong><a href="http://taraah.ir/dl/joomla_book/Joomla%201.5%20Development%20Cookbook.rar">دانلود مستقیم</a></strong></p>
<p><span id="more-581"></span></p>
<p><strong>۲-</strong></p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/04/component_developer.jpg"><img class="alignnone size-medium wp-image-582" title="component_developer" src="http://taraah.ir/wp-content/uploads/2012/04/component_developer-283x300.jpg" alt="" width="283" height="300" /></a></p>
<p>نام کتاب : Joomla-Component-Development-Backend</p>
<p>نام نویسنده : Prabhu Patil</p>
<p>توضیحات :</p>
<p>This document is about a Joomla component named &#8220;Students&#8221; that manage our Students<br />
List, Add, Edit and Remove feature. This new version of Joomla (1.5) uses an approach<br />
to component development based on the Model-View-Component design pattern.</p>
<p><strong><a href="http://taraah.ir/dl/joomla_book/Joomla-Component-Development-Backend.rar">دانلود مستقیم</a></strong></p>
<p>&nbsp;</p>
<p><strong>3- </strong></p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/04/Learning_Joomla_Extension.jpg"><img class="alignnone size-medium wp-image-584" title="Learning_Joomla_Extension" src="http://taraah.ir/wp-content/uploads/2012/04/Learning_Joomla_Extension-230x300.jpg" alt="" width="230" height="300" /></a></p>
<p>نام کتاب : Learning_Joomla_Extension_Development</p>
<p>نام نویسنده : Jozeph_LeBlanc</p>
<p>توضیحات :</p>
<p>A practical tutorial for creating your first joomla 1.5 extension</p>
<p>create component module and plugin with PHP</p>
<p><strong><a href="http://taraah.ir/dl/joomla_book/Learning_Joomla_Extension_Development_-_Jozeph_LeBlanc.rar">دانلود مستقیم</a></strong></p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=596" title="دریافت پارامترهای ماژول و پلاگین و قالب و کامپوننتهای جوملا از فایلهای params">دریافت پارامترهای ماژول و پلاگین و قالب و کامپوننتهای جوملا از فایلهای params</a></li><li><a href="http://taraah.ir/?p=569" title="گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا">گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا</a></li><li><a href="http://taraah.ir/?p=589" title="امنیت در برنامه نویسی کامپوننت تحت جوملا">امنیت در برنامه نویسی کامپوننت تحت جوملا</a></li><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li><li><a href="http://taraah.ir/?p=535" title="اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery">اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=vq_pL7fgHww:-DTBqLi6d9Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=vq_pL7fgHww:-DTBqLi6d9Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=vq_pL7fgHww:-DTBqLi6d9Y:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/vq_pL7fgHww" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=581</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=581</feedburner:origLink></item>
		<item>
		<title>گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/60_l4CLSy_o/</link>
		<comments>http://taraah.ir/?p=569#comments</comments>
		<pubDate>Thu, 29 Mar 2012 22:16:42 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جوملا]]></category>
		<category><![CDATA[مدیریت محتوا]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=569</guid>
		<description><![CDATA[در جوملا می توان چند کاربر و چند سطح دسترسی برای مدیریت پشت سایت اضافه نمود ، اما کنترل اینکه کدام یک از مدیران تغییراتی را در کامپوننت خاصی اعمال کرده اند با امکانات خود جوملا امکان پذیر نیست ، در این نوشته قصد دارم ابتدا از کلاس تولید Log در فایل سورس کامپوننت جوملا [...]]]></description>
			<content:encoded><![CDATA[<p>در جوملا می توان چند کاربر و چند سطح دسترسی برای مدیریت پشت سایت اضافه نمود ، اما کنترل اینکه کدام یک از مدیران تغییراتی را در کامپوننت خاصی اعمال کرده اند با امکانات خود جوملا امکان پذیر نیست ، در این نوشته قصد دارم ابتدا از کلاس تولید Log در فایل سورس کامپوننت جوملا استفاده کنم و همه ی تغییرات های بعدی را در یک فایل ثبت کنم و در آخر هم تغییر همزمان کامپوننت توسط چند مدیر را محدود کنم ، طوری که وقتی یک مدیر به قسمت تغییرات کامپوننت جوملا رفت برای دیگر مدیران آن قسمت قفل شود و قالب تغییر نباشد تا مدیر ذخیره یا انصراف را بزند .</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/joomla_logo.png"><img class="alignnone size-full wp-image-574" title="joomla_logo" src="http://taraah.ir/wp-content/uploads/2012/03/joomla_logo.png" alt="" width="312" height="73" /></a></p>
<p>۱- استفاده از کلاس Log جوملا :</p>
<p>اگر با نحوه ی کارکرد سیستم MVC آشنا باشید ارتباط با دیتابیس از طریق model های نوشته شده انجام می گیرد . چون تغییراتی که مد نظر ماست هنگام save کردن فرم کاربری می بایست log برداری شود پس باید تغییرات را در پوشه ی model که کار ذخیره کردن را انجام می دهد انجام دهیم .</p>
<p>مثلا فرض کنیم بخواهیم تغییرات در قسمت مدیریت کاربر را log برداری کنیم ، طوری که وقتی مدیری وارد تنظیمات کاربری یک کاربر شد و دگمه save را زد ذخیره شود که در چه زمانی و توسط چه کسی چه کاربری تغییر کرده ، یا اگر کاربر جدیدی ساخته شد ، ذخیره شود که چه کسی آن را ساخته است . به نظر خیلی جالب و مفید خواهد بود مخصوصا وقتی چندین سوپر مدیر سایت داشته باشد .</p>
<p><span id="more-569"></span><br />
برای این کار در مسیر زیر فایل user.php را می بایست باز کرده و در انتهای تابع save کد های ذخیره ی log را اضافه کنید</p>
<p>administrator\components\com_users\models</p>
<p>کدهای log گیری :</p>
<pre class="brush:php;">// log saving by www.taraah.ir
jimport('joomla.error.log');

$log = JLog::getInstance('users_saves.php');

$entry = array(
'comment' =&gt; 'Activity done by ' . JFactory::getUser()-&gt;name ."-".JFactory::getUser()-&gt;username." effected userId : ".$data['id']
);

$log-&gt;addEntry($entry);
//ending Log
}</pre>
<p>این کدها را در تابع save و قبل از return true قرار دهید تا با هربار Save کردن صفحه ی هر کاربر ، اجرا شود . در خط اول کتابخانه log فراخوانی شده . در خط دوم نام فایلی که باید لاگ ها ذخیره شوند معرفی می شود . در خط بعدی هم اطلاعاتی که باید ذخیره شود مشخص شده که نام مدیر و حساب کاربری و آیدی کاربری که تغییر کرده ثبت می شود . در آخر هم این اطلاعات ثبت می شود برای چک کردن کافیست بعد از چند بار save کردن و کاربر ساختن به پوشه ی log در روت بروید و users_saves.php را چک کنید .</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/Capture.jpg"><img class="alignnone  wp-image-573" title="Capture" src="http://taraah.ir/wp-content/uploads/2012/03/Capture.jpg" alt="" width="508" height="121" /></a></p>
<p>همانطور که مشاهده می کنید در فایل مورد نظر هم آی پی و هم تاریخ و اطلاعاتی که درخواست داده بودید ذکر شده است ، با استفاده از این روش می توانید برای هر کامپوننت خاصی که می خواهید فعالیت مدیران را روی آنها مورد تحلیل قرار دهید ، استفاده نمایید .</p>
<p>پیشنهاد : برای اینکه این قابلیت به راحتی برای هر قسمت از مدیریت جوملا قابل استفاده باشد می توان یک پلاگین تحت مدیریت و یک event خاص هم برای ذخیره فرم ها تعریف کرد تا عملیات log گیری را براحتی بتوان انجام داد .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=581" title="3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود">3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود</a></li><li><a href="http://taraah.ir/?p=589" title="امنیت در برنامه نویسی کامپوننت تحت جوملا">امنیت در برنامه نویسی کامپوننت تحت جوملا</a></li><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=608" title="ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb">ساخت tumbnail از عکسها بصورت خودکار با jQuery NailThumb</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=60_l4CLSy_o:-DueB_NdSos:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=60_l4CLSy_o:-DueB_NdSos:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=60_l4CLSy_o:-DueB_NdSos:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/60_l4CLSy_o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=569</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=569</feedburner:origLink></item>
		<item>
		<title>استفاده از Jquery در کامپوننت نویسی جوملا</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/sm7knV8wuFk/</link>
		<comments>http://taraah.ir/?p=562#comments</comments>
		<pubDate>Wed, 28 Mar 2012 19:01:49 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جوملا]]></category>
		<category><![CDATA[مدیریت محتوا]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[جاواسکریپت]]></category>
		<category><![CDATA[جی کوئری]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=562</guid>
		<description><![CDATA[جوملا بطور پیش فرض از کتابخانه mootools استفاده می کند ، Jquery   هم مانند mootools و شاید بیشتر از آن ، استفاده های زیادی در طراحی وب دارد ، پلاگین های بسیاری بر اساس Jquery نوشته شده ، در این نوشته قصد دارم نحوه ی اضافه کردن این کتابخانه و عدم تداخل با Mootools [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.joomla.org/">جوملا </a> بطور پیش فرض از کتابخانه <a href="http://mootools.net/">mootools </a> استفاده می کند ، <a href="http://jquery.com/">Jquery  </a> هم مانند mootools و شاید بیشتر از آن ، استفاده های زیادی در طراحی وب دارد ، پلاگین های بسیاری بر اساس Jquery نوشته شده ، در این نوشته قصد دارم نحوه ی اضافه کردن این کتابخانه و عدم تداخل با Mootools در کامپوننتی که برای جوملا می نویسیم ، شرح دهم .</p>
<p>&nbsp;</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/mootools-jquery-200x198.jpg"><img class="alignnone size-full wp-image-563" title="mootools-jquery-200x198" src="http://taraah.ir/wp-content/uploads/2012/03/mootools-jquery-200x198.jpg" alt="" width="200" height="198" /></a></p>
<p>&nbsp;</p>
<p>جوملا برای عدم تداخل این دو کتابخانه خودش یک تابع ایجاد کرده که کافیست بلافاصله بعد از لود کردن Jquery این تابع هم صدا زده شود .</p>
<p><span id="more-562"></span><br />
این تابع را با دستور زیر صدا بزنید :</p>
<pre class="brush:js;">

jQuery.noConflict();
</pre>
<p>فقط توجه داشته باشید که حتما این کار را بلافاصله بعد از لود کردن Jquery می بایست انجام دهید تا قبل از معرفی Mootools در سورس صفحه ظاهر شود ، وگرنه تداخل ایجاد خواهد شد .</p>
<p>در صورتی که قالب مورد استفاده احتیاج به Jquery دارد می بایست در تگ Head و در تمامی صفحات Jquery لود شود ، اما اگر یک کامپوننت خاص یا ماژول خاص فقط احتیاج به Jquery داشت ، نیازی نیست در همه ی صفحات لود شود و سرعت باز شدن سایت را کاهش دهد . در اینجا برای هر دو حالت شرح می دهیم .</p>
<p>لود کردن در قالب HTML</p>
<pre class="brush:xml;">

&lt;script src="js/<a href="http://taraah.ir/dl/jquery_joomla/js.zip">jquery-1.6.1.min.js</a>" type="text/javascript"&gt;&lt;/script&gt;
&lt;script src="js/<a href="http://taraah.ir/dl/jquery_joomla/js.zip">jquery-noconflict.js</a>" type="text/javascript"&gt;&lt;/script&gt;
</pre>
<p>خط اول که خود Jquery است و حط دوم یک فایل است که تابع noConflict را صدا زده است . می توانید از اینجا این فایل<a href="http://taraah.ir/dl/jquery_joomla/js.zip"> jquery-noconflict.js</a> را دانلود کنید یا  بجای خط دوم از دستور زیر استفاده کنید :</p>
<pre class="brush:js;">
&lt;script type="text/javascript"&gt;

jQuery.noConflict();

&lt;/script&gt;
</pre>
<p>استفاده از Jquery در کامپوننت یا ماژول خاص</p>
<p>اگر در کامپوننت یا ماژول از سیستم MVC استفاده شده باشد فایل View وظیفه نمایش HTML و JS دارد ، اطلاعات زیر را پوشه ی tmpl و در فایل defualt.php می بایست وارد کنیم . این فایل مخصوص وارد کردن html , css , jquery برای نمایش می باشد . اطلاعات زیر را در اولین خط ها قبل از به نمایش آوردن هر چیزی بین تگهای php قرار می دهیم .</p>
<pre class="brush:php;">
$document = JFactory::getDocument();

$document-&gt;addScript(JURI::base() . 'media/com_explore/js/<a href="http://taraah.ir/dl/jquery_joomla/js.zip">jquery-1.6.1.min.js</a>');
$document-&gt;addScript(JURI::base() . 'media/com_explore/js/<a href="http://taraah.ir/dl/jquery_joomla/js.zip">jquery-noconflict.js</a>');
</pre>
<p>با استفاده از این دستور هر وقت که کاربر درگیر این کامپوننت یا ماژول شد و این صفحه را درخواست داد در Head صفحه به طور خودکار لود می شود .</p>
<p>هر فایل اسکریپت دیگری که مثلا حاوی توابع Jquery است را اگر خواستید بکار ببرید کافیست زیر این دو خط آنهم بطور مشابه لود کنید .</p>
<p>&nbsp;</p>
<p>در صورتی که این کامپوننت یا ماژول را برای استفاده تجاری قرار است بنویسید و از آینده آن که در چه سایتی و چه قالبی قرار است استفاده شود خبر ندارید بهتر است قبل از صدا زدن Jquery و لود آن شرط قرار دهید که اگر قبلا Jquery در HEAD صفحه لود شد بود دوباره اضافه نشود .</p>
<p>برای این کار می بایست یک تابع معرفی شود که کلمه ی Jquery را در  Head سایت  جستجو کند . برای این کار در فایلی که به نام کامپوننت است و در پوشه کامپوننت قرار داد شده این تابع را که به نوعی Helper است با دستور زیر صدا می زنیم :</p>
<pre class="brush:php;">

include JPATH_COMPONENT . '/helpers/jquery.php';
</pre>
<p>&nbsp;</p>
<p>سپس فایل <a href="http://taraah.ir/dl/jquery_joomla/jquery.zip">jquery.php</a> را <a href="http://taraah.ir/dl/jquery_joomla/jquery.zip">اینجا </a>دانلود کرده و در پوشه ی Helper در کنار فایل کامپوننت قرار دهید . (همان مسیری که در بالا به کامپوننت معرفی کرده اید.)</p>
<p>اگر فایل <a href="http://taraah.ir/dl/jquery_joomla/jquery.zip">jquery.php</a> را باز کنید مشاهده می کنید که یک تابع بنام already_loaded معرفی شده است، حال که این تابع موجود در فایل را معرفی کردیم از آن در فایلی که می خواهیم Jquery را صدا بزنیم استفاده می کنیم و چک می کنیم که آیا Jqeury قبلا لود شده یا نه ، بجای معرفی تابع چک کننده می توانستیم مستقیما این عمل چک کردن را انجام دهیم .</p>
<pre class="brush:php;">

if (!ExploreJQuery::already_loaded()) {
$document-&gt;addScript(JURI::base() . 'media/com_explore/js/jquery-1.6.1.min.js');
$document-&gt;addScript(JURI::base() . 'media/com_explore/js/jquery-noconflict.js');
}
</pre>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=614" title="ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch ">ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch </a></li><li><a href="http://taraah.ir/?p=581" title="3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود">3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود</a></li><li><a href="http://taraah.ir/?p=535" title="اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery">اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery</a></li><li><a href="http://taraah.ir/?p=589" title="امنیت در برنامه نویسی کامپوننت تحت جوملا">امنیت در برنامه نویسی کامپوننت تحت جوملا</a></li><li><a href="http://taraah.ir/?p=569" title="گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا">گرفتن log از فعالیت مدیران بر روی یک کامپوننت خاص از جوملا</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=sm7knV8wuFk:8Fy8dWh6Q8s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=sm7knV8wuFk:8Fy8dWh6Q8s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=sm7knV8wuFk:8Fy8dWh6Q8s:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/sm7knV8wuFk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=562</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=562</feedburner:origLink></item>
		<item>
		<title>تفاوت اثر تابع روی متغیرها عددی و object ها در جاواسکریپت</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/SAHZ92sDfhk/</link>
		<comments>http://taraah.ir/?p=555#comments</comments>
		<pubDate>Fri, 16 Mar 2012 11:29:28 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[جاوا]]></category>
		<category><![CDATA[جاوا اسکریپت]]></category>
		<category><![CDATA[جاواسکریپت]]></category>
		<category><![CDATA[کد جاواسکریپت]]></category>
		<category><![CDATA[کد جاواسکریپت در وردپرس]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=555</guid>
		<description><![CDATA[در جاواسکریپت هم می توانید از متغیرهای عددی و هم Object ها برای انتقال اطلاعات به توابع و برگشت آنها استفاده نمایید ، اما در استفاده از این دو نوع متغیر تفاوت هایی از نظر محل اثر وجود دارد ، به این معنی که متغیر یا Variable که با var در جاواسکریپت تعریف می شود [...]]]></description>
			<content:encoded><![CDATA[<p>در جاواسکریپت هم می توانید از متغیرهای عددی و هم Object ها برای انتقال اطلاعات به توابع و برگشت آنها استفاده نمایید ، اما در استفاده از این دو نوع متغیر تفاوت هایی از نظر محل اثر وجود دارد ، به این معنی که متغیر یا Variable که با var در جاواسکریپت تعریف می شود ، اگر به آن عدد تخصیص بدهیم و وارد تابعی دیگر کنیم ، علارقم تغییر مقدارش در آن تابع به هنگام بازگشت مقدار متغیر تغییر نکرده است ،  حتی اگر متغیر بصورت global و خارج از تابع معرفی شود .</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/js1.jpg"><img class="alignnone size-full wp-image-559" title="js" src="http://taraah.ir/wp-content/uploads/2012/03/js1.jpg" alt="" width="300" height="225" /></a></p>
<p><span id="more-555"></span></p>
<p>برای روشن شدن یک مثال می زنم :</p>
<pre class="brush:js;">window.onload=initAll;
var x;
function initAll(){
x=5;
f(x);
document.getElementById("h1").innerHTML=x;

}
function f(x){
x +=4;
return x;
}</pre>
<p>در این مثال ابتدا متغیر x را بصورت global معرفی کردیم تا به هنگام تغییر در توابع مقدارش هم تغییر کند . سپس در تابع اولی iniAll پس از مقدار دادن به آن تابع f را صدا می زنیم .  تابع f تابع دومی است که تغییرات را روی x اعمال می کند ، اما در خروجی که x را روی صفحه نشان می دهیم ، مقدارش همان ۵ باقی مانده است و به علاوه ی ۴ نشده است . این بدین خاطر است که هنگام ارسال متغیر عددی یک کپی از آن ارسال می شود فقط برای استفاده ، (یک خیابان یک طرفه) نه برای تغییر و بازگشت ، یعنی ارجاع داده نمی شود که اگر این متغیر در تابعی دیگر تغییر کرد ، روی متغیر اولیه در کل تاثیر بگذارد ، این در حالتی اتفاق می افتد که اطلاعات موجود روی متغیر از نوع primary باشد ، مثلا عدد یک data اولیه و primary است  ، اما اگر این کار را با یک object یا array انجام دهیم جواب ۹ را دریافت می کنیم چون در object و array با ارجاع ارسال می شود و مثل یک خیابان ۲ طرفه هم برای استفاده و ارسال اطلاعات و هم دریافت اطلاعات استفاده می شود .</p>
<p>در مثال زیر با یک object این کار را انجام می دهیم و مقدار ۹ در خروجی  بر خلاف حالت پیش مشاهده می شود .</p>
<pre class="brush:js;">window.onload=initAll;
function initAll(){
y=new Object;
y.num=5;
g(y);
document.getElementById("h2").innerHTML=y.num;

}

function g(y){
y.num +=4;
return y;
}</pre>
<p>&nbsp;</p>
<p>تنها در صورتی مقدار متغیر variable قابل تغییر است که در تابع اولی خروجی تابع دوم را مستقیما به متغیر تخصیص دهیم جواب ۹ مشاهده خواهد شد :</p>
<pre class="brush:js;">function initAll(){
x=5;
x=f(x);
document.getElementById("h1").innerHTML=x;
}</pre>
<p>همانطور که مشاهده می کنید با تخصیص خروجی f به x با دستور  x=f مقدار x را بطور مستقیم تغییر دادیم ، با این دستور حتی اگر متغیر بطور محلی هم تعریف شده باشد جواب ۹ را دریافت خواهید کرد .</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=614" title="ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch ">ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch </a></li><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li><li><a href="http://taraah.ir/?p=535" title="اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery">اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery</a></li><li><a href="http://taraah.ir/?p=529" title="کار با فرمت زمان و تاریخ در جاواسکریپت">کار با فرمت زمان و تاریخ در جاواسکریپت</a></li><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=SAHZ92sDfhk:13i4ky0lPZ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=SAHZ92sDfhk:13i4ky0lPZ8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=SAHZ92sDfhk:13i4ky0lPZ8:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/SAHZ92sDfhk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=555</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=555</feedburner:origLink></item>
		<item>
		<title>اشتراک اینترنت با وایرلس از ویندوز به اندروید</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/NlEbR-oqnq8/</link>
		<comments>http://taraah.ir/?p=543#comments</comments>
		<pubDate>Tue, 06 Mar 2012 18:17:35 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[سرور سیستم عامل]]></category>
		<category><![CDATA[ویندوز]]></category>
		<category><![CDATA[اشتراک اینترنت]]></category>
		<category><![CDATA[اندروید]]></category>
		<category><![CDATA[اینترنت]]></category>
		<category><![CDATA[وای فای]]></category>
		<category><![CDATA[وایرلس]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=543</guid>
		<description><![CDATA[سیستم عامل موبایل اندروید بطور پیش فرض نمی تواند اتصال adhoc network ساخته شده توسط کامپیوتر را شناسایی کند ، همین باعث می شود که  اشتراک گذاشتن اینترنت از کامپیوتر با وایرلس با این روش امکان پذیر نباشد ، گرچه سیستم عامل های دیگر یا کامپیوترهای دیگر می توانند این اتصال را شناسایی کنند . [...]]]></description>
			<content:encoded><![CDATA[<p>سیستم عامل موبایل اندروید بطور پیش فرض نمی تواند اتصال adhoc network ساخته شده توسط کامپیوتر را شناسایی کند ، همین باعث می شود که  اشتراک گذاشتن اینترنت از کامپیوتر با وایرلس با این روش امکان پذیر نباشد ، گرچه سیستم عامل های دیگر یا کامپیوترهای دیگر می توانند این اتصال را شناسایی کنند .</p>
<p>یکی از روش های اشتراک اینترنت به اندروید تغییراتی در فایلهای سیستمی اندروید می باشد که اگر می بایست گوشی روت شود و کمی پیچیده خواهد شد .</p>
<p>اما روشی که در این نوشته قصد توضیحش را دارم  بدون احتیاج به هیچ تغییری در گوشی و فقط با تغییر نوع وایرلس امکان اشتراک اینترنت مقدور خواهد بود .</p>
<p>&nbsp;</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/Android-wifi21.jpg"><img class="size-full wp-image-550 aligncenter" title="Android-wifi2" src="http://taraah.ir/wp-content/uploads/2012/03/Android-wifi21.jpg" alt="" width="300" height="198" /></a></p>
<p><span id="more-543"></span></p>
<p>ویندوز بصورت گرافیکی ساخت این نوع اتصال را در مرکز اتصالات network and sharing center ندارد  و می بایست با چند کد ساده در CMD این اتصال را بسازید .</p>
<p>ابتدا CMD  را باز کرده سپس کد زیر را در آن کپی کنید :</p>
<p>&nbsp;</p>
<p style="text-align: left;">netsh wlan set hostednetwork mode=allow ssid=taraah.ir key=1234567890</p>
<p>که در آن بجای taraah.ir که اسم ssid می باشد یک نام دلخواه و بجای ۱۲۳۴۵۶۷۸۹۰ که کلید واژه می باشد هم یک کلمه ۱۰ رقمی وارد کنید .</p>
<p>در صورتی که پس از اینتر پیغام زیر را مشاهده کردید اتصال ساخته شده است .</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/taraah1.jpg"><img class="alignnone size-full wp-image-546" title="taraah1" src="http://taraah.ir/wp-content/uploads/2012/03/taraah1.jpg" alt="" width="620" height="63" /></a></p>
<p>سپس اینترنت کابلی خود را روی wireless اشتراک گذاری کنید ، برای این کار در network and sharing center روی اتصال اینترنت بوجود آمده کلیک کنید و سپس properties را زده و در برگه sharing تیک گزینه اول را زده و اینترنت را برای wireless به اشتراک بگذارید .</p>
<p>&nbsp;</p>
<p>پس از مطمئن شدن از اینکه وایرلس روشن است با دستور زیر می توانید اتصال ایجاد شده را شروع کرده و کانکت شوید .</p>
<p style="text-align: left;">netsh wlan start hostednetwork</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/taraah2.jpg"><img class="alignnone size-full wp-image-547" title="taraah2" src="http://taraah.ir/wp-content/uploads/2012/03/taraah2.jpg" alt="" width="281" height="46" /></a></p>
<p>در صورتی که internet access روی اتصال ساخته شده در آیکون موجود در tray سمت راست  taskbar را مشاهده کردید می توانید با گوشی اندرویدی خود به وایرلس ساخته شده متصل شوید . نام کانکشن و کلمه عبور همان هایی خواهند بود که در CMD وارد کردید ، مثلا در اینجا taraah.ir , 1234567890</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li>No Related Post</li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=NlEbR-oqnq8:8IEstL8qaUg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=NlEbR-oqnq8:8IEstL8qaUg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=NlEbR-oqnq8:8IEstL8qaUg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/NlEbR-oqnq8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=543</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=543</feedburner:origLink></item>
		<item>
		<title>اجرای عملیات بعد از نگه داشتن چند ثانیه ای موس با Jquery</title>
		<link>http://feeds.taraah.ir/~r/taraah/~3/bbi_6nxEErs/</link>
		<comments>http://taraah.ir/?p=535#comments</comments>
		<pubDate>Fri, 02 Mar 2012 16:49:29 +0000</pubDate>
		<dc:creator>احد نعمتی</dc:creator>
				<category><![CDATA[Jquery]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[جاواسکریپت]]></category>
		<category><![CDATA[جی کوئری]]></category>
		<category><![CDATA[پلاگین]]></category>

		<guid isPermaLink="false">http://taraah.ir/?p=535</guid>
		<description><![CDATA[Evenet هایی که بصورت پیش فرض در Jquery وجود دارند  عملیات موس نگه داشتن روی المانی  بعد از مدتی مشخص را پشتیبانی نمی کنند ، به این معنی که یا موس روی المانی هست یا نیست یا بر روی آن کلیک شده است ، اما با استفاده از پلاگینی که امروز قصد دارم معرفی کنم ، [...]]]></description>
			<content:encoded><![CDATA[<p>Evenet هایی که بصورت پیش فرض در Jquery وجود دارند  عملیات موس نگه داشتن روی المانی  بعد از مدتی مشخص را پشتیبانی نمی کنند ، به این معنی که یا موس روی المانی هست یا نیست یا بر روی آن کلیک شده است ، اما با استفاده از پلاگینی که امروز قصد دارم معرفی کنم ، می توان براحتی کنترل کرد که کاربر بعد از مدتی مشخص که موس را روی المانی خاص نگه داشت عملیاتی انجام شود . همچنین بعد از اینکه موس را از آنجا خارج کرد عملیاتی انجام شود و در نهایت وقتی بعد از اجرای عملیات ایستادن موس ، حرکت دوباره موس را داشته باشیم ، عملیاتی انجام شود .</p>
<p><a href="http://taraah.ir/wp-content/uploads/2012/03/Capture11.jpg"><img class="alignnone size-full wp-image-538" title="Capture1" src="http://taraah.ir/wp-content/uploads/2012/03/Capture11.jpg" alt="" width="329" height="206" /></a><a href="http://taraah.ir/wp-content/uploads/2012/03/Capture21.jpg"><img class="alignnone size-full wp-image-539" title="Capture2" src="http://taraah.ir/wp-content/uploads/2012/03/Capture21.jpg" alt="" width="208" height="193" /></a></p>
<p><strong><a href="http://taraah.ir/dl/stop_mouse/">دمو   </a>   <a href="http://taraah.ir/dl/stop_mouse/stop_mouse.zip">دانلود </a>   <a href="http://www.websanova.com/plugins/websanova/mousestop">سایت سازنده</a></strong></p>
<p>این پلاگین با ورزن های قدیمی Jquery مثل ۱٫۳٫۲ هم کار می کند .<br />
<span id="more-535"></span></p>
<p><strong>طرز استفاده :</strong></p>
<p>ابتدا Jquery و پلاگین را در ابتدای صفحه لود نمایید .</p>
<pre class="brush:xml;">
&lt;script src="jquery.min.js" &gt;&lt;/script&gt;
&lt;script src="mousestop.js" &gt;&lt;/script&gt;
</pre>
<p>سپس این کد اسکریپت را برای فراخوانی تابع در پایین سایت و یا وقتی سایت کامل لود شد استفاده نمایید .</p>
<pre class="brush:js;">

$("#container").mousestop(function, [options]);
</pre>
<p>در اینجا برای آیدی Container مثلا این تابع را صدا می زنیم که با حرکت موس روی این المان function اجرا شود ، همچنین می توانید از options برای گزینه های دیگر مثل خارج شدن موس و &#8230; استفاده کنید . مثلا نمونه کد زیر را که مربوط به دمو ساخته شده است را مشاهده کنید .</p>
<pre class="brush:js;">

$("#mouse").mousestop(function(){
$("#mouse").css("background","green");
$("#titr").text("حالا موس را خارج کنید.");

}, {timeToStop: 4000, onMouseout: function(e){
$("#mouse").css("background","blue");
$("#titr").text("حالا می توانید دوباره ۳ ثانیه موس را روی مستطیل نگه دارید");
},onStopMove: function(e){
}},{delayToStop: 300});
</pre>
<p>از این پلاگین می توانید برای ظاهر شدن لینک دانلود بعد از مدتی موس نگه داشتن مثلا استفاده کنید تا از دانلود ماشینی یا روبات جلوگیری کنید .</p>
<p>یا از کاربر بخواهید برای فعال شدن دگمه submit فرم موس را مقداری یک جا نگه دارد .  (استفاده به عنوان آنتی اسپم) و خیلی کاربردهای دیگر که مربوط به تعامل با کاربر است .</p>
<p>&nbsp;</p>
<h3  class="related_post_title">نوشته های مرتبط</h3><ul class="related_post"><li><a href="http://taraah.ir/?p=664" title="شمارگر دایره ای">شمارگر دایره ای</a></li><li><a href="http://taraah.ir/?p=614" title="ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch ">ساخت صفحات وب کاملا در تعامل با دستگاههای multi touch </a></li><li><a href="http://taraah.ir/?p=562" title="استفاده از Jquery در کامپوننت نویسی جوملا">استفاده از Jquery در کامپوننت نویسی جوملا</a></li><li><a href="http://taraah.ir/?p=581" title="3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود">3 کتاب برای آموزش گسترش افزونه های جوملا با PHP برای دانلود</a></li><li><a href="http://taraah.ir/?p=654" title="Filepicker آپلود از همه جا ">Filepicker آپلود از همه جا </a></li></ul><div class="feedflare">
<a href="http://feeds.taraah.ir/~ff/taraah?a=bbi_6nxEErs:81K9_AaaPZ4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/taraah?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.taraah.ir/~ff/taraah?a=bbi_6nxEErs:81K9_AaaPZ4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/taraah?i=bbi_6nxEErs:81K9_AaaPZ4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/taraah/~4/bbi_6nxEErs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://taraah.ir/?feed=rss2&amp;p=535</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://taraah.ir/?p=535</feedburner:origLink></item>
	</channel>
</rss>

