<?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.feedburner.com/~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/" version="2.0">

	<channel>
		<title>وبلاگ رضا شیخله</title>
	    <link>http://www.rezaonline.net/blog</link>
	    <description />
		<language>fa</language>
		<generator>Reza19sh@gmail.com</generator>
	    <pubDate>Tue, 21 May 2013 09:11:46 pm</pubDate>
	    <lastBuildDate>Tue, 21 May 2013 09:11:46 pm</lastBuildDate>
	    <dc:rights>Copyright 2013</dc:rights>
		
			    		    		    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/rezaonline/blog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="rezaonline/blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">rezaonline/blog</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
				<title>سالی که گذشت ...</title>
				<link>http://www.rezaonline.net/blog/y1391.html</link>
				<guid>http://www.rezaonline.net/blog/y1391.html</guid>
				<description>
<![CDATA[<p>در روزهای پایانی سال 91 بد نیست نگاهی به کارنامه امسال خود بی اندازم .<br>
چندماهه اول سال بنا به مشغله ای که داشتم فعالیت آنچنانی نداشتم اما در کل امسال ، سال خوبی بود .</p>

<p>امسال کار گرافیکی زیادی انجام ندادم ، همین <a href="http://rezaonline.net/blog">وبلاگ فعلی</a> ، <a href="http://ahangsaaz.com/">سایت آهنگساز </a> ، <a href="http://rezaworkshop.ir">کارگاه خودم</a> ، بخش ادمین و یوزر سایت <a href="http://www.mihanpal.com">میهن پال</a> ، <a href="http://rezaworkshop.ir/post/2/download-shop">اسکریپت دانلود شاپ </a> و چند پروژه کوچک کارنامه امسال من است .</p>

<p>در زمینه برنامه نویسی ، پیاده سازی <a href="http://rezaonline.net/blog">بلاگ شخصی خودم</a> ، <a href="http://rezaworkshop.ir">کارگاه خودم</a> ، <a href="http://rezaworkshop.ir/post/2/download-shop">اسکریپت دانلود شاپ</a> ، <a href="http://rezaworkshop.ir/post/7/webservice">وبسرویس پرداخت واسط</a> ، سیستم اعلام نمرات آموزشکده زبان ، چندیدن سیستم فروش آنلاین و در آخر وبسرویس پرداخت واسط <a href="http://mihanpal.com">میهن پال</a> ، که تاکنون فعالیت قابل قبولی از خود نشان داده .</p>

<p>امسال کاربا سیستم عامل <a href="http://ubuntu.ir">اوبونتو </a> هم چاشنی کارهام بود . همچنین فریم ورک دوست داشتنی <a href="http://yiiframework.com/">Yii </a> ، که فکر کنم بیس کاری چند سال آینده من باشد .</p>

<p>تحقیقاتی هم انجام دادم برای سویچ زبان برنامه نویسی خود به جاوا یا پایتون که در نهایت موکول میکنم به چند سال دیگه .</p>

<p>و در آخر امیداورم سال جدید ، سالی خوب و پراز پیشرفت های گوناگون برای همگی باشد .</p>]]>
		      	</description>
				<pubDate>Mon, 18 Mar 2013 09:56:01 pm</pubDate>
		     </item>
		    		    <item>
				<title>متغییرهای استاتیک داخل تابع</title>
				<link>http://www.rezaonline.net/blog/static-var-in-function.html</link>
				<guid>http://www.rezaonline.net/blog/static-var-in-function.html</guid>
				<description>
<![CDATA[<p>کلمه استاتیک از اسمش پیداست یعنی ایستا و بدون تغییر و ما میخواییم از این خاصیت استفاده بهینه کنیم .</p>

<p>فرض کنید یک تابع قرار هست بسازید که اطلاعات کاربر فعلی رو از دیتابیس بخونه .</p>
<div><div class="php-hl-main"><pre> 
<span class="php-hl-reserved">function</span> <span class="php-hl-identifier">currentUser</span><span class="php-hl-brackets">(</span><span class="php-hl-brackets">)</span>
<span class="php-hl-brackets">{</span><span class="php-hl-code">
    @</span><span class="php-hl-identifier">session_start</span><span class="php-hl-brackets">(</span><span class="php-hl-brackets">)</span><span class="php-hl-code">;
    </span><span class="php-hl-var">$user_id</span><span class="php-hl-code"> = </span><span class="php-hl-brackets">(</span><span class="php-hl-identifier">int</span><span class="php-hl-brackets">)</span> <span class="php-hl-var">$_SESSION</span><span class="php-hl-brackets">[</span><span class="php-hl-quotes">'</span><span class="php-hl-string">user_id</span><span class="php-hl-quotes">'</span><span class="php-hl-brackets">]</span><span class="php-hl-code">;
    </span><span class="php-hl-var">$qr</span><span class="php-hl-code"> = </span><span class="php-hl-identifier">mysql_query</span><span class="php-hl-brackets">(</span><span class="php-hl-quotes">&quot;</span><span class="php-hl-string">SELECT * FROM `user` WHERE `id`=</span><span class="php-hl-var">{$user_id}</span> <span class="php-hl-quotes">&quot;</span><span class="php-hl-brackets">)</span><span class="php-hl-code">;
    </span><span class="php-hl-var">$result</span><span class="php-hl-code"> = </span><span class="php-hl-identifier">mysql_fetch_row</span><span class="php-hl-brackets">(</span><span class="php-hl-var">$qr</span><span class="php-hl-brackets">)</span><span class="php-hl-code">;    
    </span><span class="php-hl-reserved">return</span> <span class="php-hl-var">$result</span><span class="php-hl-code">;
</span><span class="php-hl-brackets">}</span></pre></div></div>
<p>حال در جای جای اسکریپت از تابع currentUser استفاده میکنید . <br> مثلا یه جا برای گرفتن نام کاربر فعلی ، یه جا برای نمایش ایمیل و ...
<br>
مساله ای که اینجا مطرح هست این است که با هر بار استفاده از تابع currentUser دستور کوئری اجرا خواهد شد پس به تعداد تکرار این تابع 
دستور کوئری تکراری خواندن اطلاعات اجرا خواهد شد و این یک کار بیخود هست .
<br>
خب با کمک یک متغییر استاتیک این مساله رو حل میکنیم :)
<br>
تابع بالا رو به شکل زیر بنویسید
</p>
<div><div class="php-hl-main"><pre> 
<span class="php-hl-reserved">function</span> <span class="php-hl-identifier">currentUser</span><span class="php-hl-brackets">(</span><span class="php-hl-brackets">)</span>
<span class="php-hl-brackets">{</span>
    <span class="php-hl-reserved">static</span> <span class="php-hl-var">$result</span><span class="php-hl-code"> ;
    
    </span><span class="php-hl-reserved">if</span><span class="php-hl-brackets">(</span><span class="php-hl-code"> ! </span><span class="php-hl-reserved">empty</span><span class="php-hl-brackets">(</span><span class="php-hl-var">$result</span><span class="php-hl-brackets">)</span><span class="php-hl-brackets">)</span>
        <span class="php-hl-reserved">return</span> <span class="php-hl-var">$result</span><span class="php-hl-code">;
    
    @</span><span class="php-hl-identifier">session_start</span><span class="php-hl-brackets">(</span><span class="php-hl-brackets">)</span><span class="php-hl-code">;
    </span><span class="php-hl-var">$user_id</span><span class="php-hl-code"> = </span><span class="php-hl-brackets">(</span><span class="php-hl-identifier">int</span><span class="php-hl-brackets">)</span> <span class="php-hl-var">$_SESSION</span><span class="php-hl-brackets">[</span><span class="php-hl-quotes">'</span><span class="php-hl-string">user_id</span><span class="php-hl-quotes">'</span><span class="php-hl-brackets">]</span><span class="php-hl-code">;
    </span><span class="php-hl-var">$qr</span><span class="php-hl-code"> = </span><span class="php-hl-identifier">mysql_query</span><span class="php-hl-brackets">(</span><span class="php-hl-quotes">&quot;</span><span class="php-hl-string">SELECT * FROM `user` WHERE `id`=</span><span class="php-hl-var">{$user_id}</span> <span class="php-hl-quotes">&quot;</span><span class="php-hl-brackets">)</span><span class="php-hl-code">;
    </span><span class="php-hl-var">$result</span><span class="php-hl-code"> = </span><span class="php-hl-identifier">mysql_fetch_row</span><span class="php-hl-brackets">(</span><span class="php-hl-var">$qr</span><span class="php-hl-brackets">)</span><span class="php-hl-code">;    
    </span><span class="php-hl-reserved">return</span> <span class="php-hl-var">$result</span><span class="php-hl-code">;
</span><span class="php-hl-brackets">}</span></pre></div></div>
<p>دستور بالا را بررسی کنید ، ساده است ، با اولین بار استفاده از تابع ، متغییر result بررسی میشه که آیا خالی هست یا خیر که مسلماً در اولین بار 
فاقد مقدار خواهد بود ، در خطهای پائین این متغییر ست میشود و برای دفعات بعد مقدار ست شده برگردانده میشود و نیازی نیست کوئری اجرا شود .<br>
به همین سادگی :)</p>]]>
		      	</description>
				<pubDate>Wed, 13 Feb 2013 04:07:01 am</pubDate>
		     </item>
		    		    <item>
				<title>Url های کاربرپسند بدون استفاده از apache mod rewrite</title>
				<link>http://www.rezaonline.net/blog/userfriendly-url-without-mod-rewrite.html</link>
				<guid>http://www.rezaonline.net/blog/userfriendly-url-without-mod-rewrite.html</guid>
				<description>
<![CDATA[<p>قضیه سئو که الان باب صحبت هر محافلی شده&nbsp; در مواردی صحبت از آدرسهای کاربرپسند داره .<br>
 پیاده سازی آدرسهای مناسب و شبه استاتیک غالباً با استفاده از ماژول rewrite آپاچی قابل پیاده هست (apache_mod_rewrite) که دستوارت را در فایل htaccess. نوشته میشود .<br>
 حال اگر بنا به دلایلی نشود از این قابلیت استفاده کرد میشود باز هم با پی اچ پی آدرسهایی مناسب رو تولید کرد که تنها یک تفاوت دارند و آن هم داشتن عبارت index.php در میان آدرس تولیدی هست .<br>
 بطور مثال : <br>
</p>
<code> http://example.org/index.php/user/id/1 <br>
 http://example.org/index.php/post/id/1 <br>
 http://example.org/index.php/site/post/first-post<br>
 http://example.org/index.php/site/page/about<br>
 http://example.org/index.php/site/category/example/page/2 </code> پیاده سازی این نوع آدرس دهی نیازمند رعایت چند اصول ساده است که براساس برنامه نویسی شی گرا قابل پیاده است .<br>
 اکثر فریم ورکهای پی اچ پی که تحت معماری MVC پیاده شده اند ، چنین قابلیتی را ارئه میدهند حتی بیشتر (تنظیمات روتر بصورت دلخواه) .<br>
 در ادامه با من باشید تا چنین روشی رو با هم پیاده کنیم .<br>]]>
		      	</description>
				<pubDate>Thu, 17 Jan 2013 01:55:01 am</pubDate>
		     </item>
		    		    <item>
				<title>برنامه نویسی ، از ایده تا اجرا</title>
				<link>http://www.rezaonline.net/blog/programming-in-10-tip.html</link>
				<guid>http://www.rezaonline.net/blog/programming-in-10-tip.html</guid>
				<description>
<![CDATA[<p>توی چندین انجمن تاپیک هایی رو دیدم که افرادی که تازه برنامه نویسی رو شروع کرده اند ، عنوان میکردند که برای استارت یک پروژه نمیدونن از کجا شروع کنن ، منم فرصت رو غنیمت شمردم و این 10 قدم رو برای شروع تا پایان یک پروژه پیشنهاد میکنم .</p>

<blockquote> قدم اول : مشخص کردن ایده ، هدف<br>
 قدم دوم : بررسی امکانات مورد نیاز<br>
 قدم سوم : طراحی UI برنامه (رابط گرافیکی)<br>
 قدم چهارم : پیاده سازی دیتابیس روی کاغذ<br>
 قدم پنجم : پیاده سازی دیتابیس و جداول<br>
 قدم ششم : شروع کد نویسی<br>
 قدم هفتم : بازنگری نهایی<br>
 قدم هشتم : بارگزاری سایت<br>
 قدم نهم : تائید نهایی<br>
 قدم دهم : افزایش اطلاعات<br>
</blockquote>
 در ادامه در مورد هر کدام توضیحاتی میدهم .<br>]]>
		      	</description>
				<pubDate>Tue, 25 Dec 2012 01:25:01 am</pubDate>
		     </item>
		    		    <item>
				<title>خداحافظ وردپرس</title>
				<link>http://www.rezaonline.net/blog/bye-bye-wordpress.html</link>
				<guid>http://www.rezaonline.net/blog/bye-bye-wordpress.html</guid>
				<description>
<![CDATA[<center><img alt="کنترلر سایت" src="http://www.rezaonline.net/blog/static/file/rezaYii.png"></center>
<p>سلام<br>
 بعد از مدتی یه وقت کوتاهی پیدا کردم و یه سیستم نوشتم برای وبلاگ خودم .<br>
 همانطور که میدونید(یا شایدم نمیدونید) وبلاگ قبلی با استفاده از <a href="http://wordpress.org">وردپرس</a> بود ، سیستمی که از همان اوایل کار من ، یکی از پر استفاده ترین ابزارهای کارم بوده .<br>
 بطور کل خیلی چیزها از استفاده کردن از این سیستم یاد گرفتم اما دیگه وقت تغییر بود .<br>
 دلیل خاصی نداشتم برای تغییر سیستم ، فقط اینکه وردپرس امکانات زیادی داشت که به درد این وبلاگ نمیخورد ، بار اضافی هم مثل همیشه سردرد داره .</p>

<p>این وبلاگ رو با استفاده از <a href="http://www.yiiframework.com/performance/">فریم ورک Yii</a> پیاده کردم ، که یکی از<a href="http://phpframeworks.com/"> فریم ورک های خوب php</a> هست .<br>
 اینبار تصمیم گرفتم از یه طرح کلاسیک استفاده کنم ، ولی خودمونیم <a href="http://www.rezaonline.net/blog/static/file/old_rezaonline.png">قالب قبلی</a> ، خداییش محشر بود !</p>

<p>امیدوارم این تغییر باعث بشه بیشتر تشویق بشم بنویسم ، والبته اگه وقت کنم ! <br>
 مطالب وبلاگ قبلی رو تاحدی انتقال دادم روی این ، اگه عمری باقی باشه ، در خدمتتون هستیم برای بقیه اش .<br>
راستی اگه توی لینکدونی ، آدرس کسی رو یادم رفته بذارم بهم گوشزد کنید !<br>
</p>]]>
		      	</description>
				<pubDate>Sat, 22 Dec 2012 01:01:01 am</pubDate>
		     </item>
		    		    <item>
				<title>برنامه نویسی و موسیقی</title>
				<link>http://www.rezaonline.net/blog/programming-and-music.html</link>
				<guid>http://www.rezaonline.net/blog/programming-and-music.html</guid>
				<description>
<![CDATA[<p>عنوان این مطلب شاید یه کمی گول زننده باشه ، شاید دنبال این باشید یه مقاله پر و پیمون واسه دانشگاتون گیر آوردین و ... <br>
 اما از این خبرا نیست :) <br>
 اصولاً من وقتی برنامه نویسی میکنم ، آهنگ گوش میدم . خب یه نتیجه گیری جز به کل داشته باشیم میشه گفت اکثر برنامه نویس ها موقع کار ، آهنگ گوش میدن ! <br>
 خودمونیم ما ایرانی ها ، هر چیزی رو گوش میدم در حالیکه هر چیزی لایق شنیدن نیست . <br>
 خواستم بگم این آهنگ دکتر آرند استین رو دانلود کنید .<br>
 لذت اولین بار شنیدنش وصف نشدنیه ! امیدوارم یاد بگیرید من بعد به چی گوش بدین . <br>
</p>
<a href="http://bayanbox.ir/user/rezaonline/sounds/Dr%20Arnd%20Stein-amoonlight.mp3" title="دانلود موزیک" target="_blank">لینک دانلود</a>]]>
		      	</description>
				<pubDate>Sat, 20 Oct 2012 01:37:01 am</pubDate>
		     </item>
		    		    <item>
				<title>آموزش ساخت افزونه وردپرس - قسمت اول</title>
				<link>http://www.rezaonline.net/blog/how-to-make-wordpress-plugin-part1.html</link>
				<guid>http://www.rezaonline.net/blog/how-to-make-wordpress-plugin-part1.html</guid>
				<description>
<![CDATA[<p>بعد از غیبتی طولانی اومدم یه سلام تپل بدم و برم سراغ یه چیزی که به درد همتون میخوره .<br>
 حقیقتش میبینم که در وبلاگستان فارسی خیلی ها هستن که افزونه ها رو فارسی میکنن ، معرفی میکنن و ... اما حقیقتش کمتر کسائی هستن که خودشون بیان افزونه بنویسن و من دوست دارم ایرانی جماعت توی این زمینه حرفی واسه گفتن داشته باشه !<br>
 ماشاالله این روزها هر سایتی میری همه طراح شدن و قالب میزنن اونم از نوع بد و خوبش ، اینجاست که یه چیز جدید یاد گرفتن واقعاً میچسبه!<br>
<br>
 سرتون رو در نیارم برای ساخت افزونه وردپرس یه کمی اطلاعات باید داشته باشید .<br>
 Html ,Css در حد متوسط به بالا و php در حد متوسط بلد باشین کافیه یه چند خط Sql هم میخواین که خدا بزرگه البته اینو اضافه کنم که یک ایده تپل قابل اجرا هم لازمه!<br>
<br>
 در ادامه یک سری از توابع وردپرس که راست دست کار ماست رو معرفی میکنم و در مطلب آتی انشاالله یک افزونه رو با هم مینویسیم تا یک کار عملی هم کرده باشیم .<br>
<br>
 در ادامه با من باشید ...</p>]]>
		      	</description>
				<pubDate>Sun, 22 Jul 2012 10:42:01 am</pubDate>
		     </item>
		    		    <item>
				<title>افزونه فارسی شمارشگر دانلود-wp-download-mirror-counter</title>
				<link>http://www.rezaonline.net/blog/wp-download-mirror-counter-plugin.html</link>
				<guid>http://www.rezaonline.net/blog/wp-download-mirror-counter-plugin.html</guid>
				<description>
<![CDATA[توی این چند روزه تصمیم گرفتم یک افزونه دیگه برای وردپرس بنویسم . <br>
کار این افزونه اینه ، شما فایل های دانلودی رو اضافه میکنید بهش و با استفاده از آی دی اون فایل ، و استفاده از ShortCode افزونه در هر جای نوشته/برگه میتونید لینک دانلود اون فایل رو بذارید . همچنین یک ShortCode دیگه برای نمایش تعداد دانلود های اون فایل در نظر گرفتم که بطور مجزا میتونید در نوشته/برگه استفاده کنید.
<br>
وجه قابل تمایز این افزونه با افزونه های دیگه ، سادگی کار با اون و سبکی اون هست .<br>
همچنین قابلیت اضافه کردن 5 لینک دانلود برای هر فایل از سرورهای مختلف رو داره .
یعنی مثلاً شما میتونید فایلتون رو هم توی چندین سایت آپلود کنید و به Mirrorها اضافه کنید (لینک کمکی دانلود) . که البته با دانلود فایل از هر کدام از سرورها ، باز تعداد دانلود شمارش میشه .<br>
یک قابلیت جالب دیگه هم اینکه ، اگه مثلاً شما برای یک فایل 5 تا لینک کمکی بذارید ، و بعد از چند مدت یکی از لینک‌های کمکی رو پاک کنید ، در صورتیکه به همون آدرس برید ، اگر سرورهای دیگه وجود داشته باشه بطور تصادفی کاربر رو به یکی از سرورها هدایت میکنه ، پس نگران نباشید .<br>

در کل این افزونه خیلی به درد سایتهای دانلود میخوره که معمولاً برای فایلهای دانلودیشون ، چندین لینک کمکی دارن . اینطوری میتونن اطلاعات تعداد دانلودهاشونم داشته باشن .<br>


<a href="http://wordpress.org/extend/plugins/wp-download-mirror-counter/" target="_blank">افزونه در مخزن wordpress.org ثبت شد . (دانلود)</a>

<br>
موفق باشید]]>
		      	</description>
				<pubDate>Fri, 17 Feb 2012 11:53:01 pm</pubDate>
		     </item>
		    	    	    
	</channel>
</rss>
