<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss version="2.0">
<channel>
<title>mojde</title>
<link>http://weblog.mojde.com/</link>
<description />
<copyright>Copyright 2008</copyright>
<lastBuildDate>May  6, 2008 10:52 AM</lastBuildDate>
<generator>http://www.movabletype.org/?v=2.64</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Mojde" type="application/rss+xml" /><item>
<title>تغييرات جديد Google Reader</title>
<description><![CDATA[<p>
<img border="0" src="http://weblog.mojde.com/archives/googleReader/logo.jpg" width="124" height="28" align="left">واقعا 
که کار اين گوگل درسته. انگار ذهن کاربران رو ميخونن. امروز که طبق معمول توي گوگل 
ريدر رفتم ديدم تغييراتي توش دادن. يکي از تغييراتي که فورا به چشمم اومد عنوان 
مطالب فارسي بود که راست به چپ شده.</p>
<p>تغيير ديگه اضافه شدن دکمه Share with note زير مطالب هست که با استفاده از اون 
ميشه علاوه بر شير کردن مطلب ياداشتي هم به اون اضافه کرد.</p>
<p>من چند روز بود با خودم فکر مي کردم کاش توي Google reader ميتونستم مطالب جالب 
سايتهايي که عضو فيدشون نيستيم رو هم Share کنم. توي تغييرات جديد اين امکان رو هم 
فراهم کردن. براي اين کار از منو سمت چپ زير Your stuff داخل بخش Notes بشيد و لينک 
Note in Reader رو داخل نوار ابزار مرورگر بکشيد. </p>
<p>(توي همه مرورگرها نوار ابزاري وجود داره که توي اون ميشه لينک سايتهاي مورد 
علاقه رو اضافه کرد. براي ديدن اين نوار توي فايرفاکس از منو گزينه 
View&gt;Toolbars&gt;Bookmarks Toolbar رو تيک بزنيد و توي IE روي يه جاي خالي نوار ابزار 
راست کليک کنيد و Links رو تيک بزنيد)</p>
<p>براي استفاده از لينک Note in Reader ميتونيد توي صفحه مورد نظرتون براي شير 
متني رو انتخاب کنيد و Note in Reader رو بزنيد. بعد ميتونيد خيلي ساده اگه خواستيد 
توضيحي بنويسيد و مطلب رو ارسال کنيد.</p>
<p>واقعا کار تميزي ارائه کردن.</p>]]></description>
<link>http://weblog.mojde.com/archives/001020.html</link>
<guid>http://weblog.mojde.com/archives/001020.html</guid>
<category>کامپيوتر</category>
<pubDate>May  6, 2008 10:52 AM</pubDate>
</item>
<item>
<title>نوشتن وبلاگ با برنامه Windows Live Writer</title>
<description><![CDATA[<p><p>Microsoft جديدا برنامه‌ای رو به نام Windows Live Writer منتشر کرده که با استفاده از اون می‌شه داخل کامپيوتر مطالب رو نوشت و عکس‌ها رو اضافه، کوچيک بزرگ و مرتب کرد و با يک دکمه مطلب و عکس‌ها رو به وبلاگ انتقال داد و منتشرشون کرد.</p> <p>نکته خيلی جالب اين برنامه اينه که با گرفتن آدرس وبلاگ و يوزرنيم/پسورد خودش قالب وبلاگ رو تشخصيص می‌ده و محيط برنامه رو شبيه به قالب وبلاگ در مياره به طوری که انگار عينا داخل خود وبلاگ داريم می‌نويسيم. اين کار کمک می‌کنه موقع نوشتن مطلب دقيقا ببينيم مطلب در نهايت به چه صورتی در وبلاگ قرار می‌گيره.</p> <p><span id="ctl02_ctl00_lblPermalink"><font style="font-size: 1.2em"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="169" alt="قرار دادن عکس رو وبلاگ" src="http://tk1.storage.msn.com/x1pbglk-vqL4Bt0LbBUCFAco6cVMRyQH-miA-fryvbkrnebrJpi7BRlat0D8g2C_etKoTYM1XvFhkbtFVgJ5JRzS2RDkXQvQKFVWE2CFYV0nPXwtfIQ7NXDUe7hAn2-GWO70SEk4a433rx-3MqakmvKUg_ErkB9qlCV" width="183" align="left" border="0"></font></span>قرار دادن عکس توی مطالب با اين برنامه خيلی ساده شده. به راحتی با زدن دکمه «Insert Picture» و انتخاب عکس، اون عکس به مطلب اضافه می‌شه&nbsp;اون وقت همون‌جا&nbsp;می‌تونيم سايزش رو کوچيک بزرگ کنيم و بهش افکت بديم و در صورت نياز اسم وبلاگ رو برای جلو گيری از استفاده غير مجاز بهش اضافه کنيم. محيط شبيه به قالب وبلاگ کمک می‌کنه که دقيقا متوجه بشيم که اندازه عکس قالب رو به هم می‌ريزه يا نه. اين برنامه می‌تونه عکس‌های کوچيک شده رو به عکس با سايز واقعی لينک کنه.</p> <p>برای اينکه اين برنامه عکس‌ها رو خودش اتوماتيک آپلود کنه می‌شه موقع معرفی وبلاگ مشخصات FTP سايتی رو بهش داد يا در صورتی که سيستم وبلاگ خودش می‌تونه عکس‌ها رو آپلود کنه (مثل Movable Type) از اون شيوه استفاده کرد.</p> <p>معرفی وبلاگ به اين برنامه خيلی ساده‌اس. با گرفتن آدرس و يوزرنيم/پسورد خودش سيستم و بخش ورود به وبلاگ رو تشخيص می‌ده. </p> <p>اين برنامه از سيستم‌های:</p> <ul> <li>Windows Live Spaces  <li>Word Press  <li>TypePad  <li>Blogger  <li>Movable Type</li></ul> <p>...و چند سيستم ديگه پشتيبانی می‌کنه. اميدوارم خدمات دهندگان ايرانی هم با پشتيانی از سيستم‌هايی که اين برنامه ميشناسه امکان استفاده از سيستم خودشون رو برای مردم فراهم کنند.</p> <p><a href="http://download.microsoft.com/download/f/9/a/f9a19f2d-cec4-4a25-9b0b-eb9655ea7561/Writer.msi">برنامه Windows Live Writer رو می‌تونيد از اينجا داونلود کنيد. حجم 4.5 مگ</a></p></p>]]></description>
<link>http://weblog.mojde.com/archives/001003.html</link>
<guid>http://weblog.mojde.com/archives/001003.html</guid>
<category>وبلاگ</category>
<pubDate>August 15, 2006 10:35 AM</pubDate>
</item>
<item>
<title>چگونه در ASP.NET صفحات را شبيه به هم بسازيم؟</title>
<description><![CDATA[<p>يکی از ملاک‌های يک سايت حرفه‌ای اينه که تمام صفحات سايت از اين قالب واحد 
پيروی کنن و هر صفحه‌ای شکلی متفاوت نداشته باشه.</p>
<p>در ASP.NET چيزی وجود داره به اسم User Control که به ما اين امکان را می‌ده که 
کدها رو بنويسم و طراحی‌های خودمون رو يک بار توش انجام بديم و بعد هر جا و هر چند 
بار که لازم بود ازش استفاده کنيم.</p>
<p>ما می‌تونيم برای اينکه طراحی‌ همه صفحات شکل هم باشن طراحی بخش بالايی صفحه رو 
توی يک User Control و طراحی بخش پايينی را توی يک User Control ديگه قرار بديم و 
داخل همه صفحات از اون‌ها استفاده کنيم. به اين صورت طراحی همه صفحات عينا شبيه هم 
می‌شن و در صورتی که بخواهيد طراحی صفحه رو عوض کنيد فقط کافيه اون دو تا رو عوض 
کنيد تا همه صفحات عوض بشن.</p>
<p>فايل‌های User Cntrolها پسوند ASCX دارن. برای ايجاد User Control توی پنل 
Solution Explorer روی اسم پروژه راست کليک کنيد از منو Add گزينه <span dir="ltr"> Add Web User 
Control…</span> رو انتخاب کنيد.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet6/simpleDesign.gif" width="384" height="238"></p>
<p>اينجا می‌خوايم طرح بالا را برای برای پروژه‌ای که در دفعات قبل ساختيم استفاده 
کنيم.</p>
<p>کد HTML صفحه بالا با اين صورت است:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;table border=&quot;1&quot; width=&quot;100%&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td bgcolor=&quot;#FFFF00&quot; align=&quot;center&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;h1&gt;عنوان سايت&lt;/h1&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td bgcolor=&quot;#FFFF00&quot; align=&quot;center&quot;&gt;صفحه اول - درباره <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ما -محصولات - تماس با ما&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td height=&quot;200px&quot;&gt;<br>
<br><b>به سايت ما خوش‌‌آمديد. اينجا متن اصلی هر صفحه <br>
قرار می‌گيرد و در هر صفحه‌ای اين بخش عوض خواهد شد.</b><br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td bgcolor=&quot;#00FF00&quot; align=&quot;center&quot;&gt;کليه حقوق محفوظ است&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&lt;/table&gt;
</p></div>
<p>
ما دو تا User Control برای بخش بالايی و پايينی ايجاد می‌کنيم و از اون‌ها توی 
صفحه استفاده می‌کنيم. بخش بالای کد (بالای «به سايت ما خوش‌آمديد») توی يه User 
Control و بخش پايينی سايت (پايين «عوض خواهد شد») توی يه User Control ديگه قرار 
می‌گيره.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet6/createUserControl.gif" width="251" height="125"></p>
<p>
توی پنل Solution Explorer روی اسم پروژه راست کليک کنيد و از منو Add زير منو <span dir="ltr"> Add 
Web User Control…</span> رو انتخاب کنيد. توی پنجره‌ای که باز می‌شه نام Header رو تايپ 
کنيد. به بخش بالايی سايت معمولا Header می‌گن به همين خاطر ما اين اسم رو برای اين 
User Control انتخاب می‌کنيم.</p>
<p>
User Control که باز شد توی بخش HTML بريد و کدهای بخش بالايی رو اضافه کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;table border=&quot;1&quot; width=&quot;100%&quot; dir=&quot;rtl&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td bgcolor=&quot;#FFFF00&quot; align=&quot;center&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;h1&gt;عنوان سايت&lt;/h1&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td bgcolor=&quot;#FFFF00&quot; align=&quot;center&quot;&gt;صفحه اول - درباره <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ما -محصولات - تماس با ما&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td height=&quot;200px&quot;&gt;</p></div>
	<p>
(يادتون هست که برای ذخيره صفحات فارسی چيکار بايد می‌کرديم!؟) ما مجبور نيستيم 
اينجا کدها رو مستقيما وارد کنيم و می‌تونيم در صورت تمايل در بخش Design هم طراحی 
خودمون رو انجام بديم. بخش بالا می‌تونه حتی فقط شامل عنوان سايت باشه.</p>
<p>
يک User Control ديگه به نام Footer به ترتيبی که گفتم ايجاد کنيد و کدهای بخش 
پايينی صفحه رو بهش اضافه کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;tr&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;td bgcolor=&quot;#00FF00&quot; align=&quot;center&quot;&gt;کليه حقوق محفوظ است&lt;/td&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/tr&gt;<br>
&lt;/table&gt;</p></div>
<p>
خب حالا ما طراحی صفحات رو داريم و فقط بايد از اون‌های توی صفحات خودمون استفاده 
کنيم. فايل Default.aspx رو باز کنيد و از توی Solution Explorer کنترل‌های Header 
و Footer را به داخل صفحه بکشيد:</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet6/addedUserControls.gif" width="194" height="188"></p>
<p>
بعد از اجرای پروژه صفحه شما به اين صورت خواهد بود:</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet6/pageWithUserControl.gif" width="378" height="238"></p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>
در ASP.NET 2.0 مورد جديدی اضافه شده به نام Master Page که کار طراحی صفحه رو خيلی 
راحتر می‌کنه. ما می‌تونيم داخل Master Page بالا و پايين صفحه و کلا همه طراحی رو 
انجام بديم و جای قرار گرفتن نوشته‌های صفحه رو تعيين کنيم. برای استفاده از طراحی 
فقط کافيه مشخص کنيم هر صفحه از چه Master Pageای استفاده کنه.
		</td>
	</tr>
</table>
<p>
حالا می‌تونيد چندتا صفحه جديد درست کنيم و از User Control های خودتون داخل اون‌ها 
هم استفاده کنيم. می‌خوايم دو تا از لينک‌های بالا رو درست کنيم.</p>
<p>
اول صفحه درباره ما رو می‌سازيم. توی Solution Explorer روی اسم پروژه راست کليک 
کنيد و از منو Add زيرمنو <span dir="ltr">Add Web Form…</span> رو انتخاب کنيد. اسم صفحه جديد رو AboutUs 
بذاريد. بعد همون طوری که <a href="http://weblog.mojde.com/archives/000978.html">قبلا توضيح دادم</a> Layout صفحه رو FlowLayout بذاريد و 
بخش‌های Header و Foter رو به اون صفحه اضافه کنيد.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet6/aboutUsPage.gif" width="253" height="131"></p>
<p>
حالا لينک‌های بالا رو درست می‌کنيم. اگه User Control بخش بالايی (Header) باز 
نيست، بازش کنيد. داخل بخش Design بريد و متن «صفحه اول» رو انتخاب کنيد. بعد 
دکمه‌های Ctrl+L رو بزنيد و اسم فايل مربوط به صفحه اول رو وارد کنيد:</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet6/addLink.gif" width="281" height="149"></p>
<p>
همين‌کار رو برای «درباره ما» هم تکرار کنيد و به صفحه AboutUs.aspx لينکش کنيد. 
پروژه رو اجرا کنيد. حالا تقريبا سايتی داريم که شبيه به يه سايت واقعی به نظر 
می‌رسه!</p>
]]></description>
<link>http://weblog.mojde.com/archives/000991.html</link>
<guid>http://weblog.mojde.com/archives/000991.html</guid>
<category>ASP.net</category>
<pubDate>June 20, 2006 09:33 AM</pubDate>
</item>
<item>
<title>ايجاد و اجرای اولين پروژه ASP.NET - بخش دوم: کدنويسی صفحه</title>
<description><![CDATA[<p>
حالا که ظاهر صفحه رو درست کرديم می‌رسيم به نوشتن کد صفحه. همون‌طور که گفتم 
می‌خوايم کاری کنيم که وقتی روی دکمه کليک شد کدمون اجرا بشه و متن خوش‌آمدگويی 
نمايش داده بشه. روی دکمه دابل کليک کنيد تا Visual Studio کدهای لازم برای اين کار 
رو آماده کنه.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet5/newEvent.gif" width="284" height="71"></p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>همه کنترل‌ها دارای رويداد‌های (Events) هستند که هر موقع اون رويدادها 
		اتفاق افتادند کدی که برای اون رويداد نوشته شده اجرا می‌شه. رويداد 
		OnClick که يکی از پراستفاده‌ترين رويداد‌ها هست وقتی روی کنترل کليک شد 
		اجرا می‌شود. وقتی روی کنترل دابل کليک می‌کنيد Visual Studio تابع مورد 
		نياز رو می‌سازه و اون رو به عنوان رويداد OnClick منصوب می‌کنه. فقط لازمه 
		شما توی اون تابع کدتون رو بنويسيد.</td>
	</tr>
</table>
<p>توی ويرايش‌گر تايپ کنيد: Label1 (به ويرايش‌گرتون دست نزنيد تا بعدش بگم چيکار 
کنيد!)</p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>هميشه يادتون باشه <span dir="ltr">C#</span> به بزرگی کوچيکی حروف به 
		شدت حساسه! و هرگز Label1 برابر با label1 نيست. خيلی از مشکلات برنامه‌ها 
		به همين خاطر پيش می‌آن.</td>
	</tr>
</table>
<p>هر کنترلی برای خودش يه اسم منحصربه‌فرد داره که بهش ID می‌گن. ما برای اشاره به 
هر کدام از کنترل‌های داخل صفحه و کار با هر کدوم بايد از اين ID استفاده کنيم. ID 
مربوط به Label ما Label1 هستش و چون ما می‌خوايم با اون کار کنيم و متن اون رو عوض 
کنيم به اين نام اشاره می‌کنيم.</p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>موقع ايجاد يک کنترل‌ Visual Studio به طور خودکار برای اون ID تعيين 
		می‌کنه. مثلا ID اولين Label صفحه Label1 و ID دومين Label صفحه Label2 
		می‌شه. توی پنل مشخصات می‌تونيد ID کنترل رو ببينيد و عوض کنيد. بهتره برای 
		کنترل‌های خودتون اسم بامسما انتخاب کنيد تا اگر تعداد کنترل‌ها زياد شد 
		برای پيدا کردن اون‌ها به مشکل برنخوريد.</td>
	</tr>
</table>
<p>بعد از Label1 يه دونه نقطه بذاريد. اون وقت يه پنجره باز می‌شه مثل اين:</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet5/sugestWindow.gif" width="273" height="131"></p>
<p>توی <span dir="ltr">C#</span> (و اکثر زبان‌های ديگه) وقتی از نقطه استفاده می‌کنيم که می‌خوايم از يکی 
از خصوصيات (يا متدهای) مربوط به کلاس مورد نظر خود استفاده کنيم. (Label هم يه نوع 
کلاس هستش) ما اينجا می‌خوايم خصوصيت Text مربوط به Label رو تغيير بديم به خاطر 
همين نقطه رو می‌ذاريم که بتونيم به خصوصيت Text برسيم.</p>
<p>ما وقتی نقطه رو می‌زنيم Visual Studio همه موارد مربوط به کلاس رو نشون می‌ده 
تا بتونيم از بين موارد يکی رو انتخاب کنيم. (با استفاده از اين قابليت می‌تونيم 
حتی با کلاس‌هايی که آشنايی هم نداريم تا حد زيادی کار کنيم) در ادامه کد
<span dir="ltr">Tex…</span> رو وارد کنيد تا مورد Text انتخاب بشه، اون وقت Enter 
رو بزنيد تا عبارت تکميل بشه.</p>
<p>خب حالا ما به خصوصيت Text مربوط به Label خودمون دسترسی داريم و می‌خوايم توی 
اون متن خوش‌آمدگويی رو بنويسيم. به عباری ديگه می‌خوايم متنی رو به خصوصيت Text 
منتصب کنيم. اين کار با علامت = انجام می‌شه. در آخر کد علامت = رو وارد کنيد.<br>
<br>
ما چی رو می‌خوايم داخل Label قرار بديم؟ می‌خوايم نام شخص بعلاوه متن خوش‌آمد رو 
داخل Label بنويسيم. مثلا اگر کاربر اسم «نويد» رو وارد کرده باشه بايد بنويسه: 
«نويد، خوش‌آمدی!» <br>
<br>
برای خوندن متن وارد شده داخل Textbox بايد خصوصيت Text مربوط به Textbox1 را 
بخونيم. بعد ما اون رو با متن «، خوش‌آمدی!» جمع می‌بنديم. در ادامه کد اين رو وارد 
کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
Textbox1.Text + "، خوش‌آمدی!"</p></div>
<p>برای اين‌که C# متوجه بشه با يه رشته متنی طرفه بايد متن رو داخل علامت نقل قول 
قرار بدين. علامت + هم دو متن رو به هم پيوند می‌ده. در آخر علامت ; را وارد کنيد. 
در <span dir="ltr">C#</span> بايد آخر همه خط‌ها يک علامت ; باشه. کد نهايی ما به اين صورت خواهد بود:</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet5/finalCode.gif" width="431" height="74"></p>
<p>حالا می‌تونيم پروژه رو اجرا کنيم. اما اول بايد مشخص کنيم پروژه ما با کدوم صفحه 
شروع به کار کنه. برای اين کار توی Solution Explorer روی فايل Default.aspx راست 
کليک کنيد و گزينه Set As Start Page رو بزنيد. بعد توی نوار ابزار بالا روی Start 
کليک کنيد. در صورتی که نوار ابزار مربوطه رو نمی‌بينيد منو <span dir="ltr">View &gt; Toolbars &gt; 
Debug</span> رو تيک بزنيد.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet5/startProject.gif" width="97" height="25"></p>
<p>در صورتی که همه‌چيز مرتب باشه صفحه شما توی Internet Explorer باز می‌شه. اسمی 
وارد کنيد و نتيجه کار رو ببينيد! موفق باشيد!</p>]]></description>
<link>http://weblog.mojde.com/archives/000985.html</link>
<guid>http://weblog.mojde.com/archives/000985.html</guid>
<category>ASP.net</category>
<pubDate>June 12, 2006 10:34 AM</pubDate>
</item>
<item>
<title>ايجاد و اجرای اولين پروژه ASP.NET - بخش اول: طراحی صفحه</title>
<description><![CDATA[<p>اين دفعه می‌خوام نحوه ايجاد يک برنامه خيلی ساده ASP.NET و اجرای اون رو توضيح 
بدم. می‌خوايم صفحه‌ای ايجاد کنيم که اسم کاربر رو می‌گيره و يه پيام خوش‌آمدگويی 
نشون می‌ده.</p>
<p>اول پروژه‌ای رو که توی مطالب قبلی ساختيم رو باز کنيد. اگه فايل Default.aspx 
باز نيست با کليک روی اون توی Solution Explorer بازش کنيد.</p>
<p>معمولا سمت چپ صفحه پنلی به اسم Toolbox هست که از توی اون می‌تونيم اشيائی که 
مربوط به صفحه هستن رو توی صفحه بکشيم و از اون‌ها برای طراحی صفحه استفاده کنيم. 
اگر اين پنل رو نمی‌بينيد از منو View گزينه Toolbox رو انتخاب کنيد. اين پنل چندين 
زبانه داره که ما اينجا از زبانه Web Forms استفاده می‌کنيم.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet4/toolbox.gif" width="208" height="149"></p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>دفعه قبل گفتم که با اضافه کردن خصوصيت <span dir="ltr">runat=<span lang="en-us">&quot;</span>server<span lang="en-us">&quot;</span></span> 
		به تگ‌های عادی می‌تونيد اون‌ها رو برای استفاده توی ASP.NET آماده کنيد. 
		به اين نوع کنترل‌ها HTML Control می‌گن که برای ايجاد سازگاری بين ASP.NET 
		و صفحات HTML قديمی درست شدن. اما کنترل‌های ديگه‌ای هم وجود دارن به اسم 
		Server Control که نسبت به اون کنترل‌ها قابليت‌های بيشتری دارن. تگ‌های 
		ايجاد شده با اين کنترل‌ها با <span dir="ltr">&lt;ASP:…</span> شروع می‌شن. 
		موارد موجود در زبانه Web Forms شامل Server Controlها می‌شن.</td>
	</tr>
</table>
<p>ما به اين کنترل‌ها نياز داريم:</p>
<ul>
	<li>کنترل Label که به ما اجازه می‌ده متن داخلش رو با استفاده از کد خودمون 
	تغيير بديم. اين کنترل متن خوش‌آمدگويی ما رو نشون می‌ده.<br>
&nbsp;</li>
	<li>کنترل Textbox که به کاربر اجازه می‌ده متنی رو توش وارد کنه. ما با 
	استفاده از کدمون می‌تونيم نوشته کاربر رو بخونيم. از اين کنترل ما برای گرفتم 
	اسم کاربر استفاده می‌کنيم.<br>
&nbsp;</li>
	<li>کنترل Button که يک دکمه است و کاربر می‌تونه روی اون کليک کنه. وقتی روی 
	دکمه کليک شد کدی که ما نوشتيم اجرا می‌شه. ما برای اين دکمه کدی می‌نويسيم که 
	اسم کاربر رو از کنترل Textbox بخونه و متن خوش‌آمدگويی رو توی Lable بنويسه.</li>
</ul>
<p>اول کنترل‌های Label ، Textbox و Button رو از توی Toolbox به داخل صفحه بکشيد.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet4/dragControls.gif" width="310" height="108"></p>
<p>بعد با دکمه‌های فلش‌دار صفحه‌کليد نشانگر رو ما بين کنترل‌ها ببريد و دکمه 
Enter رو بزنيد تا هر کنترل توی يه خط قرار بگيره.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet4/arrangeControls.gif" width="186" height="140"></p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>در صورتی که فاصله‌های زياد ايجاد شده با دکمه Enter رو دوست نداريد 
		می‌تونيد از ترکيب دکمه‌های Shift+Enter استفاده کنيد.</td>
	</tr>
</table>
<p>می‌بينيد که Label و Button متن پيش‌فرض خودشون رو دارن. برای تغيير متن داخل 
دکمه روی کنترل Button کليک کنيد. با کليک روی هر کنترل در پنل Properties که 
معمولا پايين سمت راست صفحه قرار داره ليست خصوصيات اون نمايش داده می‌شه و شما 
می‌تونيد اون خصوصيات رو ويرايش کنيد. در صورتی که اين پنل رو پيدا نمی‌کنيد از منو 
View گزينه Properties Window رو انتخاب کنيد.</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet4/propertiesWindow.gif" width="231" height="197"></p>
<p>برای تغيير متن داخل دکمه بايد خصوصيت Text اون رو عوض کنيد. توی پنل خصوصيات 
(Properties) اين خصوصيت رو پيدا کنيد و توی اون متن «ارسال» رو وارد کنيد. وقتی 
Enter رو بزنيد می‌بينيد که نوشته داخل دکمه عوض شده. (می‌تونيد خودتون امتحان کنيد 
ببينيد بقيه خصوصيات باعث چه تغييراتی توی کنترل می‌شن!)</p>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet4/textProperty.gif" width="209" height="30"></p>
<p>اين کار رو برای کنترل Label هم تکرار کنيد و متن اون رو بکنيد: «لطفا نام خود 
را وارد کنيد».</p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>ASP.NET و کلا تکنولوژی <span dir="ltr">.NET</span> از يونی‌کد 
		استفاده می‌کنه و به راحتی می‌شه هر جا از کاراکترهای غير لاتين هم استفاده 
		کرد. البته شما هنگام ذخيره صفحاتی که شامل کاراکترهای يونی‌کد هستند بايد 
		مشخص کنيد که به صورت يونی‌کد ذخيره شوند. برای اين کار از منو File مورد
		<span dir="ltr">Save As…</span> رو بزنيد و بعد روی فلش کوچيک کنار دکمه 
		Save کليک کنيد و <span dir="ltr">Save with Encoding...</span> رو بزنيد و 
		اونجا <span dir="ltr">Unicode (UTF-8 with signature) – Codepage 65001</span> رو انتخاب کنيد. در 
		صورتی که داخل کد يا HTML باشيد به منو File گزينه <span dir="ltr">Advanced Save Options…</span> 
		اضافه می‌شه که اونجا هم می‌تونيد نوع کدگذاری رو تعيين کنيد.</td>
	</tr>
</table>
<p align="center">
<img border="0" src="http://weblog.mojde.com/archives/aspnet4/finalDesign.gif" width="207" height="138"></p>
]]></description>
<link>http://weblog.mojde.com/archives/000983.html</link>
<guid>http://weblog.mojde.com/archives/000983.html</guid>
<category>ASP.net</category>
<pubDate>June  9, 2006 10:52 AM</pubDate>
</item>
<item>
<title>مروری کوتاه بر صفحات ASPX</title>
<description><![CDATA[<p><b>باز کردن پروژه‌های ايجاد شده قبلی</b></p>
<p>در مطلب قبلی يه پروژه جديد ايجاد کرديم. حالا می‌خوايم با باز کردن همون پروژه 
به کار خودمون ادامه بديم. با باز کردن دوباره Visual Studio پنجره‌ای باز می‌شه به 
اسم Start Page که توی اون اسم چهار پروژه‌ای که اخيرا روی اون‌ها کار می‌کرديم 
وجود داره که با کليک روی هر کدوم می‌تونيم اون پروژه رو باز کنيم. همچنين با 
استفاده از منو <span dir="ltr">File &gt; Open &gt; Project</span> می‌تونيد پروژه‌های قبلی رو باز کنيد. پروژه 
قبلی ما بايد توی <span dir="ltr">C:\Inetpub\wwwroot\ASPNETmojde1</span> قرار داشته باشه.</p>
<p><b>بخش طراحی (Design) و بخش برنامه‌نويسی (Code) صفحات</b></p>
<p>هنگام ايجاد پروژه جديد به طور پيش‌فرض يک فايل ساخته می‌شه به اسم 
WebForm1.aspx ، بهتره اسم اين فايل رو به Default.aspx تغيير بديد تا اون فايل به 
عنوان صفحه اول سايتتون در نظر گرفته بشه. برای اين کار توی پنل Solution Explorer 
روی اسم فايل راست کليک کنيد و Rename رو بزنيد.</p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>همون‌طور که می‌دونيد توی سايت‌ها برای هر صفحه‌ای يه فايل وجود داره. مثلا وقتی 
وارد Mojde.com می‌شيد صفحه‌ای که می‌بينيد يه فايل هستش، ولی شما که اسم فايلی رو 
وارد نکرديد! برای سرور يه سری فايل تعريف شده که وقتی شما اسم فايلی رو وارد 
نمی‌کنيد سرور به طور پيش‌فرض اون فايل‌ها رو می‌آره. مثلا اگه توی بخش آدرس 
www.mojde.com رو وارد کنيد سرور فايل <span dir="ltr">www.mojde.com/index.html</span> رو بهتون نشون 
می‌ده. در اينجا index.html فايل پيش‌فرض سرور هستش. توی سرورهای ويندوز 
Default.aspx يه فايل پيش‌فرض هستش.</td>
	</tr>
</table>
<p>اگه فايل Default.aspx باز نيست روش دابل کليک کنيد تا باز بشه. صفحه‌ای که 
می‌بينيد بهش می‌گن Design View که توی اون می‌تونيد طراحی صفحه خودتون رو انجام 
بديد. می‌تونيد نوشته‌های خودتون رو توی اون بنويسيد و با استفاده از نوار ابزار 
Formatting شکل و فرم نوشته‌ها رو تعيين کنيد. (اگه اين نوار ابزار رو نمی‌بينيد 
بريد توی منو <span dir="ltr">View &gt; Toolbars &gt; Formatting</span>) از منوهای Format و Table هم می‌تونيد 
استفاده کنيد. </p>
<p>همه اين‌ها باعث ايجاد کد HTML می‌شن. اين کد رو می‌تونيد توی بخش HTML ببينيد و 
در صورت نياز ويرايش کنيد.</p>
<p align="center"><img src="http://weblog.mojde.com/archives/aspnet3/design_html.gif?"></p>
<p>همين‌طور که می‌بينيد کدهای صفحات ASPX تا حد بسيار زيادی شبيه صفحات HTML هستن 
و فقط چند مورد جديد توی اون‌ها وجود داره. مثلا به بعضی تگ‌ها خصوصيت 
<span dir="ltr">runat=&quot;server&quot;</span> اضافه شده که مشخص می‌کنه تگ شما در سرور قابل دستری، تغيير و 
دستکاری هست و شما با برنامه خودتون می‌تونيد خصوصيات اون مثل رنگ و فونت و بقيه 
ظواهر رو تعيين کنيد.</p>
<p>در واقع شما می‌تونيد فقط با اضافه کردن اين خصوصيت به بعضی از تگ‌های صفحات 
HTML فعلی خودتون يک صفحه ASPX کامل داشته باشيد.</p>
<p>توی بخش HTML شما می‌تونيد هر کد HTML را که می‌خواهيد بدون هيچ محدوديتی اضافه 
کنيد و به صفحه خودتون شکل بديد.</p>
<p>چيزهايی رو که ديديد مربوط به طراحی ظاهری صفحات هستن و شامل هيچ کد 
برنامه‌نويسی نمی‌شن. همه کدهای برنامه‌نويسی شما توی يه فايل جداگونه نوشته و 
نگهداری می‌شن تا ظاهر صفحه و برنامه‌نويسی اون باهم قاطی نشه. اين باعث می‌شه 
خوانايی کدهای شما بهتر بشه و انجام تغييرات ظاهری ساده احيانا باعث تغيير در 
برنامه‌نويسی و ايجاد باگ نمی‌شه.</p>
<p>برای ديدن کدهای صفحه روی فايل Default.aspx راست کليک کنيد و مورد View Code رو 
انتخاب کنيد. از دکمه‌های بالای Solution Explorer هم می‌تونيد برای رفت و آمد بين 
کد و طراحی (Design) استفاده کنيد:</p>
<p align="center"><img src="http://weblog.mojde.com/archives/aspnet3/design_code.gif?"></p>
<p>دفعه بعد ساخت يه صفحه ساده با برنامه‌نويسی و اجرای اون رو بهتون ياد می‌دم.</p>
]]></description>
<link>http://weblog.mojde.com/archives/000981.html</link>
<guid>http://weblog.mojde.com/archives/000981.html</guid>
<category>ASP.net</category>
<pubDate>June  2, 2006 10:10 PM</pubDate>
</item>
<item>
<title>ايجاد يک وب‌سايت خالی برای شروع کار</title>
<description><![CDATA[<p>ابتدا در Visual Studio 2003 يک پروژه ASP.NET جديد ايجاد می‌کنيم. همه فايل‌های 
و کلاس‌ها و برنامه‌های سايت داخل يک پروژه قرار می‌گيرد.</p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td><img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>يک سايت که با ASP.NET ساخته می‌شود می‌تواند با چندين زبان مثل Visual 
		Basic ، <span dir="ltr">C#</span> و يا <span dir="ltr">J#</span> نوشت بطوری که هر صفحه از يکی از اين زبان استفاده کند 
		ولی در Visual Studio کل پروژه شما فقط با يک زبان نوشته خواهد شد.</td>
	</tr>
</table>
<p><b>ايجاد يک پروژه ASP.NET</b></p>
<ul>
	<li>داخل Visual Studio از منو File گزينه New &gt; Project را انتخاب کنيد.</li>
</ul>
<p align="center"><img src="http://weblog.mojde.com/archives/aspnet2/newproject.gif"></p>
<ul>
	<li>در کادر باز شده نوع پروژه را Visual <span dir="ltr">C#</span> و قالب آن را ASP.NET Web Application 
انتخاب کنيد.</li>
	<li>در بخش Location نام پروژه را وارد کنيد. در اين بخش 
<span dir="ltr">http://localhost/ASPNETmojde1</span> را وارد کنيد.</li>
</ul>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td>
		<img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>به <span dir="ltr">http://localhost/</span> دست نزنيد. اين مشخص می‌کند که 
		پروژه ASP.NET شما بر روی سرور خود کامپيوترتان ايجاد و اجرا خواهد شد. 
		ASP.NET يک تکنولوژی بر اساس Server است و فقط برروی سرور اجرا می‌شود. اين 
		سرور می‌تواند کامپيوتر خودتان باشد. معمولا پوشه پروژه شما در 
		C:\Inetpub\wwwroot (بسته په پارتيشن ويندوز) ايجاد خواهد شد.</td>
	</tr>
</table>
<ul>
	<li>&nbsp;ok را بزنيد تا پروژه ايجاد شود.</li>
</ul>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td>
		<img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>در صورتی که Internet Explorer در وضعيت Offline باشد موقع ايجاد يا باز کردن پروژه پيام خطايی دريافت خواهيد کرد. در چنين مواردی Internet Explorer رو باز کنيد و از منو File تيک گزينه Work Offline رو برداريد. </td>
	</tr>
</table>
<p>بعد از ايجاد پروژه صفحه‌ای نقطه‌نقطه می‌بينيد که اين اجازه را می‌دهد که اجزای 
صفحه (نظير تصاوير، برچسب‌ها يا جعبه‌های متن) را در هر نقطه از صفحه قرار دهيد. 
اين موضوع در نگاه اول خوب به نظر می‌رسه ولی چند مشکل بزرگ داره. اول اينکه 
مجبوريد مکان تک‌تک اجزای صفحه رو تعيين کنيد که گاهی ممکن است به علت متغير بودن 
متون صفحه اين کار ممکن نباشد. گاهی هم ممکن است اجزای صفحه روی هم قرار بگيرند. 
ديگه اينکه به علت مطلق بودن اندازه‌ها در صورتی که مثلا بخواهيم چيزی رو وسط صفحه 
(که اندازه‌ متغيری داره) قرار بديم يا برای هدر سايت بخوايم نواری قرار دهيم که از 
اين‌طرف تا اون طرف صفحه رو بگيره با اين شيوه امکان‌پذير نيست.</p>
<p>برای تغيير اين شيوه یه روش معمولی طراحی صفحات روی يک جای خالی صفحه راست کليک 
کنيد و از منو Properties رو انتخاب کنيد و بعد از ليست Page Layout گزينه 
FlowLayout رو انتخاب کنيد.</p>
<p><b>مديريت و اضافه کردن صفحات</b></p>
<p align="center">
<img src="http://weblog.mojde.com/archives/aspnet2/solution.gif"></p>
<p>با پنل Solution Explorer که به طور معمول سمت راست صفحه قرار داره می‌تونيد صفحات 
پروژه رو مديريت کنيد. (در صورتی اين پنل رو نمی‌بينيد از منو View گزينه رو انتخاب 
کنيد.</p>
<p>برای اضافه کردن صفحه جديد روی نام پروژه راست کليد کنيد و از زير منو Add روی 
گزينه Add Web Form کليک کنيد و نام صفحه خود رو تعيين کنيد. همونطور که می‌دونيد 
صفحات ASP.NET که بهشون Web Form گفته می‌شه و بازديدکنندگان سايت بهشون دسترسی 
دارن پسوند ASPX دارند.</p>
<table border="0" id="table1" cellspacing="0" cellpadding="0">
	<tr>
		<td>
		<img src="http://weblog.mojde.com/archives/images/noteicon.gif?"></td>
		<td>قبل از ارائه ASP.NET ما در برنامه‌های Visual چيزی 
		داشتيم به نام Windows Form که با اون پنجره‌های برنامه‌های معمولی ويندوز 
		رو ايجاد می‌کرديم و اجزايی (مثل دکمه و جعبه متن) روی اون قرار می‌داديم و 
		برای رويدادهايی که برای آن اجزا رخ می‌داد، برنامه می‌نوشتيم. (مثلا 
		می‌گفتيم وقتی روی دکمه کليک شد تاريخ روز از سيستم خونده بشه و توی جعبه 
		متن نشون بده) ASP.NET دقيقا همين شيوه رو توی طراحی وب پياده کرده به همين 
		علت اسم صفحات رو Web Form (مشابه Windows Form) گذاشتن.</td>
	</tr>
</table>
<p>برای تغيير اسم يا حذف صفحات هم می‌توانيد از پنل Solution Explorer استفاده کنيد. 
در اين پنل به طور معمولا فقط منابع اصلی ASP.NET رو که نياز داريد رو نشون می‌ده. 
برای ديدن همه فايل‌های پروژه (از جمله عکس‌ها) توی اين پنل دکمه Show All Files رو 
بزنيد.</p>
]]></description>
<link>http://weblog.mojde.com/archives/000978.html</link>
<guid>http://weblog.mojde.com/archives/000978.html</guid>
<category>ASP.net</category>
<pubDate>May 29, 2006 12:30 AM</pubDate>
</item>
<item>
<title>آموزش ASP .net</title>
<description><![CDATA[<p>از اين به بعد به اميد خدا می‌خوام آموزش ASP .net رو شروع کنم. خودم چون راهنما 
نداشتم برای اينکه توی ASP .net بتونم راه بيوفتم خيلی اذيت شدم به خاطر همين دوست 
دارم تمام اون چيزايی که دوست داشتم توی اون دوران يکی بهم بگه رو با شما درميون 
بذارم.</p>
<p>اغلب توی کتاب‌ها از چيزهای پايه‌ای آموزش رو شروع می‌کنن و بعدا به مسائل عملی 
می‌پردازن و اين باعث می‌شه شخصی که با شور و علاقه می‌خواد چيز ياد بگيره کسل و 
بی‌حوصله بشه و شايد به کلی از ياد گيری صرف نظر کنه.</p>
<p>من از همون اول می‌خوام کار رو به صورت عملی شروع کنم و در خلال کار به موارد 
تئوری هم اشاره کنم. برای استفاده بهتر از اين سری مطالب بهتره با HTML آشنايی 
متوسطی داشته باشيد ولی در مورد برنامه نويسی سعی می‌کنم از صفر شروع کنم.</p>
<p><b>برنامه‌های مورد نياز:</b></p>
<ul>
	<li>Windows <span dir="ltr">XP (Service Pack 2)</span>(البته با NT و 2000 هم 
می‌شه ولی چون من خودم اين سيستم عامل رو دارم بهتر می‌تونم راهنماييتون کنم)</li>
<li>Visual Studio 2003 (نسخه 2005اش هم اومده ولی من هنوز ندارمش و اغلب سرورها هم از 
ASP .net 2 که توی Visual Studio 2005 مورد استفاده قرار می‌گيره پشتيبانی نمی‌کنن)</li>
	<li>Access 2003 (اکسس که با مجموعه Office 2003 نصب می‌شه برای بانک اطلاعاتی به کار 
می‌ره. البته خيلی ضعيفتر از Sql Server هستش ولی برای سايت‌های ساده و آشنايی با 
اصول کار با بانک اطلاعاتی خوبه)</li>
</ul>
<p>برای زبان برنامه نويسی از <span dir="ltr">C#</span> (بخونيد سی شارپ) استفاده خواهيم کرد. من توی ASP 
قديمی از vbscript (نوعی بيسيک) استفاده می‌کردم که خيلی اذيتم می‌کرد برای همين با 
خودم فکر کردم برای ASP .net از <span dir="ltr">C#</span> استفاده کنم. البته حالا می‌دونم که زياد تفاوتی 
نمی‌کرد که از Visual basic استفاده می‌کردم يا <span dir="ltr">C#</span>. توی رغبت من به 
<span dir="ltr">C#</span> کلاسش هم 
بی‌تاثير نبود!! با اين حال يه دليل منتظی برای استفاده از <span dir="ltr">C#</span> اينه که Syntax و 
دستورالعمل‌های اون تا حد زيادی شبيه به Java هستش و در صورتی که بخواهيد روزی اون 
رو هم ياد بگيريد راحتر خواهيد بود.</p>]]></description>
<link>http://weblog.mojde.com/archives/000974.html</link>
<guid>http://weblog.mojde.com/archives/000974.html</guid>
<category>ASP.net</category>
<pubDate>May 26, 2006 05:13 PM</pubDate>
</item>
<item>
<title>تگ‌های پلاگ‌اين Paginate بخش 2</title>
<description><![CDATA[<p>در ادامه <a href="http://weblog.mojde.com/archives/000949.html">مطلب قبلی</a> 
که تعدادی از تگ‌های پلاگ‌اين <span lang="en-us">Paginate</span> 
را شرح دادم در اين بخش هم تعدادی ديگری از تگ‌ها را توضيح می‌دهم.
<a href="http://weblog.mojde.com/archives/000948.html">اينجا</a> توضيحاتی در 
مورد کليات اين‌ پلاگ‌اين داده ام.</p>
<p><b>تگ‌های شرطی</b></p>
<p>با استفاده از تگ‌های شرطی می‌توان براساس اين‌که کاربر در چه صفحه‌ای قراردارد، 
متن خاصی را نمايش داد. به علت اين‌که تتگ‌های شرطی پلاگ‌اين paginate کد php توليد 
می‌کنند، با استفاده از علامت «_» از تگ‌های شرطی خود MT متمايز شده‌اند. اين مسئله 
به‌اين معنی است که به‌جای تگ &lt;MTElse&gt; بايد از تگ &lt;MTPaginateElse_&gt; استفاده کنيد.</p>
<p>جدول نيز نشان می‌دهد هر کدام از تگ‌های شرطی در چه صفحاتی مثبت (true) می‌شوند:</p>
<ul>
	<li><span dir="ltr">MTPaginateIfFirstPage_<br>
	</span>متون داخل يک تگ فقط در صورتی صفحه، اولين صفحه يا تنها صفحه باشد، نمايش پيدا 
	می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfLastPage_<br>
	</span>متون داخل يک تگ فقط در صورتی صفحه، آخرين صفحه يا تنها صفحه باشد، نمايش پيدا 
	می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfMiddlePage_<br>
	</span>متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه يک صفحه 
	ميانی باشد (اولين و آخرين صفحه نباش)، نمايش پيدا می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfPreviousPage_<br>
	</span>متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه دارای صفحه 
	قبلی باشد (اولين صفحه نباشد)، نمايش پيدا می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfNextPage_<br>
	</span>متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه دارای صفحه 
	بعدی باشد (آخرين صفحه نباشد)، نمايش پيدا می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfAllPages_<br>
	</span>متون داخل يک تگ فقط در صورتی صفحه، صفحه‌ای باشد که همه مطالب صفحات را نمايش 
	می‌دهد، نمايش پيدا می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfPageHeader_<br>
	</span>متون داخل يک تگ فقط در صورتی بخش جاری اولين بخش صفحه باشد، نمايش پيدا می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateIfPageFooter_<br>
	</span>متون داخل يک تگ فقط در صورتی بخش جاری آخرين بخش صفحه باشد، نمايش پيدا می‌کنند.<br>
&nbsp;</li>
	<li><span dir="ltr">MTPaginateElse_<br>
	</span>از اين تگ تنها می‌توان داخل ديگر تگ‌های شرطی اين پلاگ‌اين استفاده کرد. در 
	صورتی که نتيجه تگ شرطی اصلی منفی باشد متون داخل اين تگ نمايش داده می‌شوند.
	<br>
	در مثال زير اگر کاربر در صفحه‌ای باشد که همه مطلب صفحات را نمايش می‌شود متن 
	«شما همه مطالب را مشاهده می‌کنيد» نمايش داده می‌شود و در غير اين صورت متن «شما 
	تنها بخشی از مطالب را مشاهده می‌کنيد» نمايش داده می‌شود:</li>
</ul>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateIfAllPages_&gt;<br>
&lt;p&gt; شما همه مطالب را مشاهده می‌کنيد &lt;/p&gt;<br>
&lt;MTPaginateElse_&gt;<br>
&lt;p&gt; شما تنها بخشی از مطالب را مشاهده می‌کنيد &lt;/p&gt;<br>
&lt;/MTPaginateIfAllPages_&gt;</p></div>
<p><b>تگ MTPaginateContent</b></p>
<p>نوشته‌هايی که مايليد صفحه صفحه شوند در داخل اين تگ قرار می‌گيرند. شما با استفاده 
از خصوصيات زير می‌توانيد طريقه صفحه‌صفحه شدن مطالب را تعيين کنيد:</p>
<ul>
	<li><span dir="ltr">max_words=&quot;n&quot;<br></span>اين خصوصيت تعيين می‌کند در هر صفحه حداکثر چند کلمه‌ می‌تواند وجود داشته باشد. 
مقدار پيش‌فرض 400 است.<br>
&nbsp;</li>
	<li><span dir="ltr">max_bytes=&quot;n&quot;<br></span>اين خصوصيت تعيين می‌کند هر صفحه حداکثر چند بايت‌ می‌تواند باشد. در صورت تعيين 
اين خصوصيت، خصوصيت “max_words” ناديده گرفته خواهد شد.<br>
&nbsp;</li>
	<li><span dir="ltr">max_sections=&quot;n&quot;<br></span>اين خصوصيت تعيين می‌کند در هر صفحه حداکثر چند بخش وجود داشته باشد (شما می‌توانيد 
به‌صورتی که بعدا توضيح داده خواهد شد، محتويات خود را بخش‌بندی کنيد). در صورت 
تعيين اين خصوصيت، خصوصيات “max_words” و “max_bytes” ناديده گرفته خواهند شد. <br>
&nbsp;</li>
	<li><span dir="ltr">section_start_tag=&quot;p&quot;<br></span>اين خصوصيت تعيين می‌کند کدام تگ برای شروع هر بخش در نظر گرفته شود. هر وقت نياز 
	
به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. در مثال زير هر 
پاراگراف (که در HTML با تگ p مشخص می‌شود) در يک بخش قرار می‌گيرد:
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateContent section_start_tag=&quot;p&quot;&gt;<br>....<br>&lt;/MTPaginateContent&gt;
</p></div></li>
	<li><span dir="ltr">section_start=&quot;section start&quot;<br></span>اين خصوصيت تعيين می‌کند چه جمله‌ای در متن شروع هر بخش را مشخص ‌کند. هر وقت نياز 
به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. در صورت تعيين 
اين خصوصيت، مقدار خصوصيت section_start_tag ناديده گرفته خواهد شد. برای اين که 
شکسته شدن صفحه قبل از متن “&lt;div class=”section”&gt;” اتفاق بيفتد از کد زير بايد 
استفاده کنيد: )از کد HTML نمی‌توان به طور مستقيم استفاده کنيد. علامت<span dir="ltr"> “&lt;”</span> بايد 
تبديل به <span dir="ltr">“&amp;lt;”</span> و علامت <span dir="ltr">“&gt;”</span> بايد تبديل به 
	<span dir="ltr">“&amp;gt;”</span> شود.)<br>
&nbsp;</li>
	<li><span dir="ltr">section_break=&quot;text&quot;<br></span>اين خصوصيت تعيين می‌کند چه جمله‌ای در متن بخش‌ها را از هم جدا می‌کند. هر وقت 
نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. متن نشان 
دهنده فواصل بين بخش‌ها (که توسط اين خصوصيت تعيين شده است) در متن اصلی نمايش داده 
نخواهد شد. به طور پيش‌فرض مقدار اين خصوصيت “&#95;&#95;MTPAGINATE_SECTION_BREAK&#95;&#95;” است. 
اين به اين معنی است که هر جا در متن اين را بنويسيد، يک بخش جديد به وجود می‌آيد. 
برای تعيين “&lt;p&gt;----&lt;/p&gt;” به عنوان جدا کننده هر بخش از کد زير بايد استفاده کرد:</li>
</ul>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateContent section_break=&quot;&amp;lt;p&amp;gt;----&amp;lt;/p&amp;gt;&quot;&gt;<br>
...<br>
&lt;/MTPaginateContent&gt;</p></div>
<ul>
	<li><span dir="ltr">page_break=&quot;text&quot;<br></span>اين خصوصيت تعيين می‌کند چه جمله‌ای در متن باعث ايجاد يک صفحه جديد شود. اين جمله 
در متن نمايش پيدا نمی‌کند. به طور پيش‌فرض جمله “&#95;&#95;MTPAGINATE_PAGE_BREAK&#95;&#95;” در 
متن باعث ايجاد صفحه جديد می‌شود. برای تعيين “&lt;p&gt;====&lt;/p&gt;” به عنوان جدا کننده 
صفحه از کد زير بايد استفاده کرد:</li>
</ul>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateContent page_break=&quot;&amp;lt;p&amp;gt;====&amp;lt;/p&amp;gt;&quot;&gt;<br>
...<br>
&lt;/MTPaginateContent&gt;</p></div>
<p><b>تگ MTPaginateSectionBreak</b></p>
<p>اين تگ فاصله بين بخش‌ها را تعيين می‌کند. هر وقت نياز به ايجاد صفحه جديد وجود 
داشت، شکستی بين بخش‌ها صورت خواهد گرفت. برای مثال در کد زير بعد از هر مطلب يک 
بخش جديد ايجاد می‌شود (در واقع هر مطلب در يک بخش قرار می‌گيرد):</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateContent max_bytes=&quot;1000&quot;&gt;<br>
&lt;MTEntries lastn=&quot;20&quot;&gt;<br>
&lt;p&gt;<br>
&lt;b&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle$&gt;&lt;/a&gt;&lt;/b&gt;<br>
&lt;$MTEntryExcerpt$&gt;<br>
&lt;/p&gt;<br>
&lt;$MTPaginateSectionBreak$&gt;<br>
&lt;/MTEntries&gt;<br>
&lt;/MTPaginateContent&gt;</p></div>
<p><b>تگ MTPaginatePageBreak</b></p>
<p>اين محل شکسته شدن صفحه را تعيين می‌کند. در مثال زير بعد از هر مطلب يک صفحه جديد 
ايجاد می‌شود:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateContent max_bytes=&quot;1000&quot;&gt;<br>
&lt;MTEntries lastn=&quot;20&quot;&gt;<br>
&lt;p&gt;<br>
&lt;b&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle$&gt;&lt;/a&gt;&lt;/b&gt;<br>
&lt;$MTEntryExcerpt$&gt;<br>
&lt;/p&gt;<br>
&lt;$MTPaginatePageBreak$&gt;<br>
&lt;/MTEntries&gt;<br>
&lt;/MTPaginateContent&gt;</p></div>
]]></description>
<link>http://weblog.mojde.com/archives/000972.html</link>
<guid>http://weblog.mojde.com/archives/000972.html</guid>
<category>راهنماهاي ام تی</category>
<pubDate>May 22, 2006 11:55 PM</pubDate>
</item>
<item>
<title>قالب حباب</title>
<description><![CDATA[<p>
قالب حباب قالب‌های مژده با يک قالب جديد به روز شد. قبلا اگر يادتون باشه بايد 
عکس‌های قالب‌ها در جايی آپلود می‌شد ولی عکس‌های اين قالب‌ها آپلود شده‌اند و بدون 
هيچ مشکلی می‌توانيد از قالب‌ها استفاده کنيد. من قبلا به خاطر ترس از پيش آمدن 
مشکل پهنای بانک می‌ترسيدم عکس‌های قالب‌ها را روی سايت آپلود کنم ولی اين دفعه با 
کمک <a href="http://dardeshgh.firoozi.net">امير فيروزی</a> عکس‌ها را آپلود کردم که همين‌جا ازش تشکر می‌کنم. امير زحمت طراحی اين قالب رو هم کشيده و ايشالله قراره با هم پشت‌سر‌هم قالب‌های بيشتری رو درست کنيم.</p><p>قالب‌ برای شش 
سيستم: بلاگر، بلاگ‌فا، بلاگ‌اسکای، ميهن‌بلاگ، پرشن‌بلاگ و پرشن‌بلاگ تهيه شده.
</p>
<div align="center">
<a href="http://templates.mojde.com/archives/bubble.html">
<img src="http://templates.mojde.com/archives/tempsimages/bubbleL.jpg" border="2" style="border: 1px solid #000000"></a>
<br>
<a href="http://templates.mojde.com/archives/bubble.html">دريافت</a>
</div> ]]></description>
<link>http://weblog.mojde.com/archives/000965.html</link>
<guid>http://weblog.mojde.com/archives/000965.html</guid>
<category>قالب‌های مژده</category>
<pubDate>March  7, 2006 09:06 AM</pubDate>
</item>
<item>
<title>سايت اسپيشيال و تحريم آمريكا!</title>
<description><![CDATA[<p>جديد: مشکل برطرف شد!<br />
-<br />
سايت <a href="http://www.Special.ir">Special.ir</a> فعلا برای چند روز بالا نمی آد. ديروز صبح ای‌ميلی از <a href="http://www.hostiran.net">هاست ايران</a> دريافت كردم كه نوشته بود به علت تحريم‌های آمريكا ديتا سنتری كه سرورهای اون‌ها اونجا نگه‌داری می‌شده دادن سروريس بهشون رو متوقف كرده. مسئولين هاست ايران نوشتن دارن دنبال يه ديتا سنتر جديد ديگه در خارج از آمريكا می‌گردن و احتمالا تا چند روز ديگه مشكل برطرف می‌شه. اين‌طوری كه نوشتن از اطلاعات سايت‌ها پشتيبان تهيه كردن و هيچ خطری اطلاعات سايت‌ها رو تهديد نمی‌كنه. همين‌جا از همه بچه‌های سايت واسه اين مشكل معضرت می‌خوام.<br />
-<br />
حالا می‌آن می‌گن اشكالی نداره ما رو تحريم كنن عوضش مستقل می‌شيم!</p>]]></description>
<link>http://weblog.mojde.com/archives/000963.html</link>
<guid>http://weblog.mojde.com/archives/000963.html</guid>
<category>گروه اسپيشيال</category>
<pubDate>March  3, 2006 12:02 PM</pubDate>
</item>
<item>
<title>برنامه چت</title>
<description><![CDATA[<p>چند وقت پيش يه مشتری واسمون پيدا شده بود که HTML سايت رو طراحی کرده بود ولی 
برای سايتش يه چت روم می‌خواست که با استفاده از اون بتونن مشتری‌ها رو بيشتر 
راهنمايی کنن. گويا به چند جا ديگه هم اين طرح رو ارائه داده بودن ولی کسی نتونسته 
بود واسشون درست کنه و به گذاشتن اون چت‌روم‌های آماده که هيچ سنخيتی با طراحی سايت 
نداشتن اکتفا می‌کردن.</p>
<p>اولش يه کم ترسيدم که از پسش برنيام واسه همين يه کم مهلت خواستم که ببينم 
می‌تونم انجامش بدم يا نه. اولش که توی گوگل دنبال برنامه‌های چت آماده گشتم هيچ 
چيز به درد بخوری پيدا نکردم و همه اونا به طرز مسخره‌ای برای نمايش چت صفحه‌ها رو 
دائم ريفرش می‌کردن که اصلا چنگی به دل نمی‌زد. اين بود که خودم تصميم گرفتم با 
روشی که تازه ياد گرفتم (XMLHttpRequest) که در اون برای دريافت و ارسال اطلاعات 
نيازی به ريفرش صفحه وجود نداره، کل برنامه رو خودم بنويسم.</p>
<p>توی نوشتن برنامه چت بزرگترين مشکلی که وجود داشت اين بود که وقتی يک درخواست 
برای خوندن چت‌های جديد ارسال می‌شد و به خاطر مشکلات شبکه دير جواب می‌گرفت، اين 
باعث ايجاد تداخل در درخواست‌های بعدی می‌شد.</p>
<p>بلاخره بعد از يه هفته تونستم نسخه آزمايشی رو پياده کنم و بعد از يکی، دو ماه 
مطابق نظرات مشتری امکاناتی بهش اضافه کردم و روی سايت قرارش دادم.
<a target="_blank" href="http://www.persianga-co.com">اينجا</a> می‌تونيد 
ببينيدش.</p>
<p>اينجا چند تا از امکاناتی که واسه اين چت گذاشتم رو شرح می‌دم:</p>
<ul>
	<li>به طور صد در صد می‌شه داخل اون از زبان فارسی استفاده کرد.<br>
&nbsp;</li>
	<li>امکان ايجاد چندين اتاق و تعيين زبان واسه اونا وجود داره تا اتاق‌ها شلوغ 
	نشن و هر کس بتونه با زبان خودش با اپراتورها چت کنه. کابران جديد به خلوت‌ترين 
	اتاق هدايت می‌شن.<br>
&nbsp;</li>
	<li>امکان تعيين چند اپراتور برای هر اتاق جهت کنترل اتاق. اپراتورها می‌تونن 
	کاربران رو حذف کنن. بعلاوه اين در صفحه اصلی چت جلوی اسم اپراتورها مشخص می‌شه 
	که آن شخص اپراتور و شخص مسئول برای جواب گويی است.<br>
&nbsp;</li>
	<li>امکان ارسال درخواست چت خصوصی اپراتورها برای افراد ديگر. در صورت موافقت 
	کاربر صفحه‌ای برای چت خصوصی باز می‌شود.<br>
&nbsp;</li>
	<li>امکان تعيين زبان چت برای کابران. برای هر زبان همه جملات صفحه به همان 
	زبان خواهد بود.<br>
&nbsp;</li>
	<li>هنگام نوشته شدن مطلب جديد در چت با صدايی اين موضوع اعلام می‌شود.<br>
&nbsp;</li>
	<li>بهترين خوبی اين چت اينه که کدش کامل دست خودمه و می‌تونم هر امکاناتی که 
	لازم بود بهش اضافه کنم. به عنوان مثال برای اين سايت در بخش چت مشخص می‌شه که 
	کابران در چه صفحاتی در حال رفت و آمد هستن.</li>
</ul>
<p>اين برنامه رو من با ASP نوشتم و برای استفاده از اون به هيچ برنامه اضافی جز يک 
Browser نياز نيست. فقط برای صدای چت بايد Flash Player نصب باشه.</p>]]></description>
<link>http://weblog.mojde.com/archives/000954.html</link>
<guid>http://weblog.mojde.com/archives/000954.html</guid>
<category>کامپيوتر</category>
<pubDate>November 11, 2005 12:12 PM</pubDate>
</item>
<item>
<title>تگ‌های پلاگ‌اين Paginate بخش 1</title>
<description><![CDATA[<p>در <a href="http://weblog.mojde.com/archives/000948.html">مطلب قبلی</a> کلياتی را در مورد پلاگ‌اين Paginate که مطالب را صفحه صفحه می‌کند شرح دادم. در اين مطلب همان طور که قول داده بودم تعدادی از تگ‌های اين پلاگ‌اين را شرح خواهم داد.</p>
<ul>
	<li>MTPaginate
	<p>اين تگ، تگ اصلی پلاگ‌اين Paginate است و بايد همه تگ‌های ديگر مربوط به اين 
	پلاگ‌اين داخل آن قرار بگيرد. شما می‌تواند از خصوصيات زير در اين تگ استفاده 
	کنيد:</p>
	<ul>
		<li><span dir="ltr">Page_selector=&quot;name&quot; </span>
		<p>به وسيله اين خصوصيت می‌توانيد نام پارامتری که اين پلاگ‌اين برای تعيين شماره 
صفحه، به نشانی اضافه می‌کند را تعيين کنيد. مقدار پيش‌فرض اين خصوصيت ‘page’ است. 
به عنوان مثال وقتی چند صفحه به وسيله اين پلاگ‌اين ايجاد شده باشد، نشانی هر صفحه 
چيزی شبيه به index.php?page=1 و index.php?page=4 خواهد بود. با استفاده از اين 
خصوصيت می‌توانيد کلمه ‘page’ را تغيير دهيد. اين کار در صورتی که صفحه شما در 
حال‌حاضر از پارامتر ‘page’ استفاده می‌کند، مفيد خواهد بود.</p>		
		</li>
		<li><span dir="ltr">default_page=&quot;1&quot; يا &quot;first&quot; يا &quot;last&quot; 
		يا &quot;all&quot;
</span>
<p>اين خصوصيت صفحه پيش‌فرضی را که برای اولين بار نمايش داده خواهد شد را تعيين 
می‌کند. علاوه‌بر شماره صفحه شما می‌تواند از مقدار ‘first’ برای نمايش صفحه اول، 
‘last’ برای نمايش صفحه آخر و ‘all’ برای نمايش کل مطالب در يک صفحه استفاده کنيد.</p>
<li><span dir="ltr">base_address=&quot;_relative&quot; يا &quot;_absolute&quot; يا &quot;URL&quot;</span><br>
<p>با استفاده از اين خصوصيت می‌توانيد نوع لينک‌هايی که برای رفت و آمد بين صفحات 
توليد می‌شود را تعيين کنيد. شما می‌توانيد از يک نشانی مشخص يا <span dir="ltr">&quot;_relative&quot;</span> برای 
استفاده از نشانی نسبی (مثلا document.php?page=3) و <span dir="ltr">&quot;_absolute&quot;</span> برای استفاده از 
نشانی مطلق (مثلا http://www.yoursite.com/blog/page.php?page=3) استفاده کنيد.</p>
		</li>
		<li><span dir="ltr">debug=&quot;1&quot;
		</span>
<p>از اين خصوصيت می‌توانيد در زمان طراحی قالب برای نمايش ليست مطالب همه صفحه‌ها در 
پايين صفحه برای اشکال‌زدايی استفاده کنيد. به صورت پيش‌فرض Debug غير فعال است.</p>
		</li>
		<li><span dir="ltr">mode=&quot;php&quot; or &quot;cgi&quot;
		</span>
<p>با استفاده از اين خصوصيت می‌توانيد نوع کدهای توليد شده توسط اين پلاگ‌اين را 
تعيين کنيد. مقدار پيش فرض ‘php’ است.</p>
		</li>
	</ul>
	</li>
	<li>MTPaginateIfSinglePage<br>
<p>اين تگ شرطی در صورتی که فقط يک صفحه توليد شده باشد، مثبت می‌شود و مطالب داخل آن 
نمايش داده می‌شود.</p>
	</li>
	<li>MTPaginateIfMultiplePages<br>
<p>اين تگ شرطی در صورتی که چند صفحه توليد شده باشد، مثبت می‌شود. برای مثال از اين 
تگ می‌توانيد برای نمايش ليست صفحات فقط در صورتی که چند صفحه وجود داشته باشد 
استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateIfMultiplePages&gt;<br>&nbsp;&nbsp;&nbsp; &lt;$MTPaginateNavigator$&gt;<br>&lt;/MTPaginateIfMultiplePages&gt;</p></div>
	</li>
	<li>MTPaginateVersion<br>
<p>اين تگ اطلاعات مربوط به نسخه پلاگ‌اين Paginate را نمايش می‌دهد.</p>
	</li>
	<li>MTPaginatePreviousPageLink<br>
<p>اين تگ نشانی صفحه قبلی را نمايش می‌دهد. در صورتی که صفحه جاری صفحه اول يا تنها 
صفحه باشد اين تگ يک رشته خالی را برمی‌گرداند. برای نمايش لينک صفحه قبلی در صورت 
وجود آن می‌توانيد از اين کد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateIfPreviousPage_&gt;<br>&nbsp;&nbsp;&nbsp; &lt;a href=&quot;&lt;$MTPaginatePreviousPageLink$&gt;&quot;&gt;صفحه قبل&lt;/a&gt;<br>&lt;/MTPaginateIfPreviousPage_&gt;</p></div>
	<li>MTPaginateNextPageLink<br>
<p>اين تگ نشانی صفحه بعدی را نمايش می‌دهد. در صورتی که صفحه جاری صفحه آخر يا تنها 
صفحه باشد اين تگ يک رشته خالی را برمی‌گرداند. برای نمايش لينک صفحه بعدی در صورت 
وجود آن می‌توانيد از اين کد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateIfNextPage_&gt;<br>&nbsp;&nbsp;&nbsp; &lt;a href=&quot;&lt;$MTPaginateNextPageLink$&gt;&quot;&gt;صفحه بعد&lt;/a&gt;<br>&lt;/MTPaginateIfNextPage_&gt;</p></div>
	<li>MTPaginateAllPagesLink<br>
	<p>از اين تگ برای نمايش نشانی صفحه‌ای که محتويات همه صفحات را باهم در يک صفحه نمايش 
می‌دهد استفاده می‌شود. برای نمايش لينک صفحه‌ای که محتوات همه صفحات را باهم نمايش 
می‌دهد (در صورتی که چند صفحه وجود داشته باشد) از اين کد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateIfMultiplePages&gt;<br>&nbsp;&nbsp;&nbsp; &lt;a href=&quot;&lt;$MTPaginateAllPagesLink$&gt;&quot;&gt;همه صفحات&lt;/a&gt;<br>&lt;/MTPaginateIfMultiplePages&gt;</p></div>
	</li>
	<li>MTPaginateNavigator<br>
	<p>اين تگ فهرستی از صفحات ايجاد شده را نمايش می‌دهد. با خصوصيات زير می‌توانيد طريقه 
نمايش فهرست را تعيين کنيد.</p>
	<ul style="direction: rtl">
		<li><span dir="ltr">style=&quot;navigator style&quot;</span>
	<p>اين خصوصيت نوع فهرست را تعيين می‌کند. شما می‌توانيد از يکی از مقادير زير استفاده 
کنيد: (مقدار پيش‌فرض ‘links’ است.)</p>
		<ul>
	<li>links برای <span dir="ltr"><a href="#page">1</a> | 2 | <a href="#page">3</a> | <a href="#page">4</a></span></li>
	<li>popup برای <span dir="ltr"><select size="1" name="page"><option>1</option>
	<option selected>2</option><option>3</option><option>4</option></select><br>
&nbsp;</span></li>		
		</ul>
		</li>
		<li><span dir="ltr">format=&quot;%d&quot;
		</span>
	<p>با استفاده از اين خصوصيت می‌توان متن مربوط به لينک‌ها را تعيين کرد. برای مثال 
برای نمايش: «<a href="#page">صفحه 1</a> | صفحه 2 | <a href="#page">صفحه 3</a> | 
	<a href="#page">صفحه 4</a>» از کد زير بايد استفاده کنيد:</p>
<div dir=ltr align=left><p class="code">
&lt;$MTPaginateNavigator format=&quot;صفحه %d&quot;&gt;</p></div>
		</li>
		<li align="right"><span dir="ltr">format_title=&quot;%d&quot;
		</span>
	<p>با استفاده از اين خصوصيت می‌توان عنوان لينک‌ها را تعيين کرد. در بعضی از مرورگرها 
وقتی نشانگرموس را روی لينک ببريد، اين عنوان نمايش پيدا می‌کند. برای مثال، برای 
قرار دادن: «صفحه (شماره صفحه)» برای عنوان لينک‌ها از کد زير بايد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator format_title=&quot;صفحه %d&quot;&gt;</p></div>
	</li>
	<li align="right"><span dir="ltr">format_current=&quot;%d&quot;
	</span>
	<p>با استفاده از اين خصوصيت می‌توان نوع نمايش متن مربوط به صفحه جاری را تعيين کرد. 
برای مثال، برای بزرگتر کردن صفحه جاری « <a href="#page">1</a> | <font size="+1">2</font> | 
	<a href="#page">3</a> | <a href="#page">4</a>» از اين کد استفاده کنيد: 
(کد مربوط به بزرگ کردن نوشته &quot;&lt;font size=+1&gt;%d&lt;/font&gt;&quot; به صورت معمول قابل 
استفاده نيست. علامت &quot;&lt;&quot; بايد تبديل به &quot;&amp;lt;&quot; و علامت &quot;&gt;&quot; بايد تبديل به &quot;&amp;gt;&quot; 
شود.)</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator format_current=&quot;&amp;lt;font size=+1&amp;gt;%d&amp;lt;/font&amp;gt;&quot;&gt;</p></div>
	</li>
	<li align="right" dir="rtl"><span dir="ltr">format_all=&quot;text&quot;
		</span>
		<p>وقتی اين خصوصيت تعيين می‌شود به ليست لينک‌ها، لينکی به صفحه‌ای که همه مطالب 
صفحات را باهم نمايش می‌دهد، اضافه می‌شود. برای مثال برای نمايش: «همه 3 صفحه | 
صفحه 1 | صفحه 2 | صفحه 3» از کد زير بايد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator format_all=&quot;همه %d صفحه&quot;&gt;</p></div>
	</li>
	<li align="right" dir="rtl"><span dir="ltr">format_all_title=&quot;text&quot;
		</span>
		<p>با استفاده از اين خصوصيت می‌توان عنوان لينک‌ صفحه‌ای که همه مطالب را باهم نمايش 
می‌دهد را تعيين کرد. در بعضی از مرورگرها وقتی نشانگر موس را روی لينک ببريد، اين 
عنوان نمايش پيدا می‌کند. برای مثال، برای قرار دادن متن: «نمايش همه صفحات باهم» 
برای عنوان اين لينک‌ از کد زير بايد استفاده کنيد:</p>
<div dir=ltr align=left><p class="code">
&lt;$MTPaginateNavigator format_all=&quot;همه صفحات&quot; format_all_title=&quot;نمايش همه صفحات 
باهم&quot;&gt;</p></div>
	</li>
	<li align="right" dir="rtl"><span dir="ltr">format_all_current=&quot;text&quot;
		</span>
		<p>با استفاده از اين خصوصيت می‌توان متنی که در صورت انتخاب صفحه «همه صفحات» نمايش 
داده می‌شود را تعيين کرد. برای مثال برای نمايش: «[ همه صفحات ] | صفحه 1 | صفحه 2 
| صفحه 3» از کد زير بايد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator format_all=&quot;All Pages&quot; format_all_current=&quot;[ همه صفحات ]&quot;&gt;</p></div>
	</li>
	<li align="right" dir="rtl"><span dir="ltr">place_all=&quot;before&quot; يا &quot;after&quot;
		</span>
		<p>اين خصوصيت مکان لينک صفحه «همه صفحات» تعيين می‌کند. برای قرار گرفتن لينک صفحه 
«همه صفحات» در قبل از ليست صفحات از کلمه &quot;before&quot; و برای قرارگيری آن بعد از ليست 
از &quot;after&quot; استفاده کنيد. کد زير لينک صفحه «همه صفحات» را بعد از ليست صفحات قرار 
می‌دهد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator format_all=&quot;همه صفحات&quot; placement_all=&quot;after&quot;&gt;</p></div>
	</li>
	<li align="right" dir="rtl"><span dir="ltr">list_pages=&quot;before&quot; يا &quot;after&quot; يا &quot;all&quot;
		</span>
		<p>اين خصوصيت صفحاتی را که ليست بايد نمايش دهد را مشخص می‌کند. &quot;all&quot; برای نمايش همه 
صفحات: «<a href="#page">1</a> | 2 | <a href="#page">3</a> | <a href="#page">4</a>» ، &quot;after&quot; برای نمايش صفحات بعد از صفحه جاری: «3 | 4» و 
&quot;before&quot; برای نمايش صفحات قبل از صفحه جاری: «1». برای مثال کد زير فقط ليست صفحات 
قبل از صفحه جاری را نمايش می‌دهد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator list_pages=&quot;before&quot;&gt;</p></div>
	<li align="right" dir="rtl"><span dir="ltr">separator=&quot;, &quot;
		</span>
		<p>اين خصوصيت علامتی را که لينک‌ها را از هم جدا می‌کند را تعيين می‌کند. به صورت 
پيش‌فرض علامت « | » لينک‌ها را از هم جدا می‌کند: «<a href="#page">1</a> | 2 | 
		<a href="#page">3</a> | <a href="#page">4</a>». برای جدا کردن 
لينک‌ها با کاما «<a href="#page">1</a>، 2، <a href="#page">3</a>، 
		<a href="#page">4</a>» از اين کد بايد استفاده کنيد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator separator=&quot;, &quot;&gt;</p></div>
	</li>
	<li align="right" dir="rtl"><span dir="ltr">target=&quot;name&quot;
		</span>
		<p>اين خصوصيت محل باز شدن لينک‌ صفحات (مثلا در پنجره جديد يا يک فريم مشخص) را تعيين 
می‌کند. برای مثال، کد زير باعث بازشدن صفحات در يک پنچره جديد می‌شود:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;$MTPaginateNavigator target=&quot;_blank&quot;&gt;</p></div>
	</li>
	</ul>
	</li>
</ul>
		<p><b>تگ‌های مربوط به شماره صفحات:</b></p>
<ul>
	<li>MTPaginateNumPages<br>
	اين تگ تعداد صفحات را نمايش می‌دهد.<br>
&nbsp;</li>
<li>MTPaginateCurrentPage<br>
اين تگ شماره صفحه جاری را نمايش می‌دهد.<br>
&nbsp;</li>
<li>MTPaginatePreviousPage<br>
اين تگ، در صورت وجود، شماره صفحه قبلی را نمايش می‌دهد.<br>
&nbsp;</li>
	<li>MTPaginateNextPage<br>
	اين تگ، در صورت وجود، شماره صفحه بعدی را نمايش می‌دهد.<br>
&nbsp;</li>
<li>MTPaginateNumSections<br>
اين تگ نشان می‌دهد که محتويات شما به چند بخش تقسيم شده است. (برای اين‌که در وسط 
يک پاراگراف صفحه شکسته نشود، بايد مطلب را به بخش‌های منطقی تقسيم کرد تا وقتی که 
لازم شد صفحه جديد ساخته شود، شکستی صفحه در بين بخش‌ها صورت بگيرد.)<br>
&nbsp;</li>
	<li>MTPaginateTopSection<br>
	اين تگ شماره اولين بخش داخل صفحه جاری را نمايش می‌دهد.<br>
&nbsp;</li>
<li>MTPaginateCurrentSection<br>
اين تگ شماره بخش جاری را نمايش می‌دهد.<br>
&nbsp;</li>
	<li>MTPaginateBottomSection<br>
	اين تگ شماره آخرين بخش داخل صفحه جاری را نمايش می‌دهد.</li>
</ul>
		<p>در بخش بعدی تعداد ديگری از تگ‌ها را شرح خواهم داد.</p>
]]></description>
<link>http://weblog.mojde.com/archives/000949.html</link>
<guid>http://weblog.mojde.com/archives/000949.html</guid>
<category>راهنماهاي ام تی</category>
<pubDate>October 21, 2005 08:04 PM</pubDate>
</item>
<item>
<title>قسمت کردن مطالب به چند صفحه در MT</title>
<description><![CDATA[<p>در مواقعی که مطالب صفحه طولانی و سنگين می‌شنود، خوب است که مطلب را به چند 
صفحه کوچک‌تر تقسيم کرد. اين کار علاوه‌بر کاهش زمان باز شدن صفحات، باعث زيبا شدن 
و حرفه‌ای‌تر به نظر آمدن صفحات نيز می‌شود. در MT اين کار با استفاده از پلاگ‌اين 
Paginate به‌راحتی قابل انجام است.</p>
<p>پلاگ‌اين Paginate را می‌توانيد از 
<a target="_blank" href="http://www.nonplus.net/software/mt/MTPaginate.htm">اينجا</a> دریافت کنيد.</p>
<p><b>نکته مهم:</b> اين پلاگ‌اين کد PHP توليد می‌کند و برای استفاده از آن سرور شما بايد 
از PHP پشتيبانی کند و پسوند صفحات وبلاگ شما نيز بايد PHP باشد.<br>
<br>
برای تغيير پسوند قالب‌های صفحات index (صفحات اصلی وبلاگ) در قسمت “Templates” 
قالب مورد نظر خود را انتخاب کنيد و در بخش “Output File” پسوند فايل را عوض کنيد. 
برای تغيير پسوند صفحات آرشيو وارد بخش “weblog config” و سپس “Preferences” شويد و 
در بخش “File extension for archive files” پسوند مورد نظر خود را وارد کنيد. بعد 
از انجام اين تغييرات وبلاگ را بازسازی کنيد.</p>
<p>اين پلاگ‌اين به‌طور خودکار محتويات يک صفحه طولانی را به چند صفحه تقسيم 
می‌کند. شما قادريد به کاربران اجازه دهيد بين صفحات با لينک‌های 
<a href="#privious">قبل</a> و <a href="#next">بعد</a>، فهرستی 
از شماره صفحات ( <a href="#1">1</a> | <a href="#2">2</a> | 3 | <a href="#4">4</a> 
) و يا فهرست بازشو (<select name="pages" size="1">
																										<option selected>1</option>
																										<option>2</option>
																										<option>3</option>
																										<option>4</option>
																										</select>) رفت و آمد کنند. شما قادر خواهيد بود حداکثر 
اندازه هر صفحه را تنظيم کنيد.</p>
<p>اين پلاگ‌اين برای اين‌که در وسط جملات يا پاراگراف‌ها و کلا جا‌های نامناسب 
صفحه شکسته نشود، صفحه شما را به بخش‌های مناسب تقسيم می‌کند و شکستن صفحه را فقط 
در بين اين بخش‌ها انجام می‌دهد. شما قادر خواهيد بود به عنوان مثال هر پاراگراف را 
در يک بخش قرار دهيد تا صفحه در وسط يک پاراگراف شکسته نشود.</p>
<p>در مثال زير شما يک قالب ساده که با استفاده از اين پلاگ‌اين ساخته شده است را 
مشاهده می‌کنيد. اين قالب لينک و خلاصه 20 مطلب آخر را نمايش می‌دهد. اگر صفحه شما 
از 1000 بايت بيشتر حجم پيدا کند در نقطه (&lt;$MTPaginateSectionBreak$&gt;) شکسته خواهد 
شد و يک صفحه جديد به آن اضافه خواهد شد. اگر بيش از يک صفحه وجود داشته باشد، 
ليستی جهت پرش بين صفحات نمايش خواهد داد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginate&gt;<br>
&nbsp;
&lt;h1&gt;&lt;$MTBlogName$&gt;&lt;/h1&gt;<br>
&nbsp;
&lt;MTPaginateIfMultiplePages&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;div&gt;&lt;$MTPaginateNavigator style=&quot;popup&quot;$&gt;&lt;/div&gt;<br>
&nbsp;
&lt;/MTPaginateIfMultiplePages&gt;<br>
&nbsp;
&lt;MTPaginateContent max_bytes=&quot;1000&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;MTEntries lastn=&quot;20&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;p&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;b&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle$&gt;&lt;/a&gt;&lt;/b&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;$MTEntryExcerpt$&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/p&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;$MTPaginateSectionBreak$&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;/MTEntries&gt;<br>
&nbsp;
&lt;/MTPaginateContent&gt;<br>
&lt;/MTPaginate&gt;</p></div>
<p align="right" dir="rtl"><b>شرح کد</b></p>
<p>همين‌طور که می‌بينيد کل کد بين تگ MTPaginate قرار گرفته. برای استفاده از اين 
پلاگ‌اين بايد همه تگ‌های مربوط به پلاگ‌اين را در بين تگ MTPaginate قرار دهيد.</p>
<p>خط زير عنوان وبلاگ را نمايش می‌دهد:</p>
<div style="direction: ltr; text-align: left"><p class="code">&lt;h1&gt;&lt;$MTBlogName$&gt;&lt;/h1&gt;</p></div>
<p>بخش بعدی کد باعث می‌شود در صورتی که چند صفحه وجود داشته باشد، فهرست صفحات 
نمايش داده شود. فهرست صفحات به صورت يک فهرست بازشو نمايش داده می‌شود. (برای 
نمايش فهرست به صورت لينک به جای “popup” از “links” استفاده کنيد): </p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginateIfMultiplePages&gt;<br>
&nbsp;
&lt;div&gt;&lt;$MTPaginateNavigator style=&quot;popup&quot;$&gt;&lt;/div&gt;<br>
&lt;/MTPaginateIfMultiplePages&gt;</p></div>
<p>بخش بعدی تگ “MTPaginateContent” است. محتوياتی که می‌خواهيم صفحه‌صفحه شوند 
بايد داخل اين تگ قرار بگيرند. اين تگ نحوه تقسيم شدن صفحات را تعيين می‌کند. ما در 
اين‌جا حجم هر صفحه را 1000 بايت تعيين کرده‌ايم:</p>
<div style="direction: ltr; text-align: left"><p class="code">&lt;MTPaginateContent max_bytes=&quot;1000&quot;&gt;</p></div>
<p>بخش بعدی کد لينک و خلاصه 20 عدد از آخرين مطالب را نمايش می‌دهد. در اين بخش تگ 
“MTPaginateSectionBreak” باعث می‌شود هر يک از مطالب داخل يک بخش قرار بگيرد تا در 
وسط يک مطلب صفحه شکسته نشود:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTEntries lastn=&quot;20&quot;&gt;<br>
&nbsp;
&lt;p&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;b&gt;&lt;a href=&quot;&lt;$MTEntryPermalink$&gt;&quot;&gt;&lt;$MTEntryTitle$&gt;&lt;/a&gt;&lt;/b&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;$MTEntryExcerpt$&gt;<br>
&nbsp;
&lt;/p&gt;<br>
<b>&nbsp;
&lt;$MTPaginateSectionBreak$&gt;</b><br>
&lt;/MTEntries&gt;</p></div>
<p>در مثال زير يک قالب آرشيو تکی ساده که با استفاده از پلاگ‌اين Paginate ساخته 
شده است را مشاهده می‌کنيد. اين کد باعث قرارگيری هر پاراگراف (که با تگ p مشخص 
می‌شوند) در يک بخش می‌شود و هر صفحه بايد حداکثر 800 کلمه داشته باشد. هر صفحه 
شامل يک يا چند پاراگراف خواهد بود. (اگر يک پاراگراف بيشتر از 800 کلمه باشد، صفحه 
فقط شامل همان يک پاراگراف خواهد بود). اگر بيش از يک صفحه وجود داشته باشد فهرستی 
از صفحات را نمايش خواهد داد.</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;MTPaginate&gt;<br>
&nbsp;
&lt;h1&gt;&lt;$MTEntryTitle$&gt;&lt;/h1&gt;<br>
&nbsp;
&lt;MTPaginateIfMultiplePages&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;div&gt;&lt;$MTPaginateNavigator$&gt;&lt;/div&gt;<br>
&nbsp;
&lt;/MTPaginateIfMultiplePages&gt;<br>
&nbsp;
&lt;MTPaginateContent max_words=&quot;800&quot; section_start_tag=&quot;p&quot;&gt;<br>
&nbsp;&nbsp;&nbsp;
&lt;$MTEntryBody$&gt;<br>
&nbsp;
&lt;/MTPaginateContent&gt;<br>
&nbsp;
&lt;a href=&quot;&lt;$MTBlogURL$&gt;&quot;&gt;Index&lt;/a&gt;<br>
&lt;/MTPaginate&gt;</p></div>
<p>در بخش‌های بعدی تگ‌های پلاگ‌اين Paginate را با جزييات شرح خواهم داد.</p>]]></description>
<link>http://weblog.mojde.com/archives/000948.html</link>
<guid>http://weblog.mojde.com/archives/000948.html</guid>
<category>راهنماهاي ام تی</category>
<pubDate>October  7, 2005 01:43 PM</pubDate>
</item>
<item>
<title>استفاده از عکس‌های Flickr در وبلاگ</title>
<description><![CDATA[<p><img border="2" src="http://www.flickr.com/images/flickr_logo_beta.gif" width="106" height="35" align="left">طبق قولی که دفعه قبل داده بودم در اين‌جا در مورد نحوه استفاده از عکس‌های 
فليکر در وبلاگ را توضيح خواهم داد:</p>
<p>ابتدا بايد مشخصات وبلاگ خود را به فليکر بدهيد. برای اين کار به 
<a href="http://www.flickr.com/blogs.gne">اين‌جا</a> برويد و 
روی &#39;Set up a new blog&#39; کليک کنيد. سپس در صفحه بعد سيستم وبلاگ خود را انتخاب 
کنيد، متاسفانه فليکر در بين سيستم‌هايی که در زبان فارسی برای وبلاگ‌نويسی رايج 
هستند فقط از Blogger، Movable type و WordPress پشتيبانی می‌کند.</p>
<p>سپس در صفحه بعد نام کاربری و رمز عبور وبلاگ خود را وارد کنيد. در صورتی 
Movable type را به عنوان نوع سيستم خود انتخاب کرده باشيد، بايد آدرس فايل mt.cgi 
که به وسيله آن وارد سيستم می‌شويد را وارد کنيد، اين آدرس معمولا به اين شکل است:</p>
<div style="direction: ltr; text-align: left"><p class="code">
http://www.your-site.com/cgi-bin/mt/mt.cgi</p></div>
<p>سپس در صورت سوال، وبلاگی را که می‌خواهيد عکس‌ها در آن انتشار پيدا کند را 
انتخاب کنيد. (اگه چندين وبلاگ داريد نگران نباشيد، بعدا با انجام مجدد اين مراحل 
می‌توانيد ديگر وبلاگ‌های خود را نيز اضافه کنيد.)</p>
<p>در صفحه بعدی برای تاييد جزئيات وارد شده از شما سوال می‌شود. پس از تاييد در صورتی 
که مايليد طريقه نمايش عکس در وبلاگ را تعيين کنيد روی &#39;Create a custom posting 
template&#39; کليک کنيد و يکی قالب‌های آماده شده را انتخاب کنيد. در صفحه بعد در 
صورتی که با HTML و CSS آشنايی داريد با زدن دکمه Customize می‌توانيد شخصا طريقه 
نمايش عکس‌ها را تعيين کنيد.</p>
<p>در صفحه Customize می‌توانيد کدهای HTML مورد استفاده برای نمايش عکس را به دل‌خواه 
خود ويرايش کنيد. در اين کدها به‌جای مشخصات عکسی که برای انتشار انتخاب شده، بايد 
از تگ‌های خاصی که توسط فليکر ايجاد شده‌اند استفاده کرد. در اين‌جا فهرستی از اين 
تگ‌های مخصوص را مشاهده می‌کنيد:</p>
<table border="1" cellspacing="1" id="table1" style="border-collapse: collapse" bordercolor="#000000">
<thead><tr><th>تگ</th><th>توضيح</th></tr></thead>
	<tr>
		<td>{photo_url}</td>
		<td>لينک نمايش عکس در فليکر.</td>
	</tr>
	<tr>
		<td>{photo_src}</td>
		<td>نشانی عکس در اندازه بزرگ.</td>
	</tr>
	<tr>
		<td>{photo_src_m}</td>
		<td>نشانی عکس در اندازه متوسط.</td>
	</tr>
	<tr>
		<td>{photo_src_t}</td>
		<td>نشانی عکس در اندازه بندانگشتی.</td>
	</tr>
	<tr>
		<td>{photo_src_s}</td>
		<td>نشانی عکس در اندازه بندانگشتی مربع.</td>
	</tr>
	<tr>
		<td>{photo_title}</td>
		<td>عنوان عکس.</td>
	</tr>
	<tr>
		<td>{photo_desc}</td>
		<td>توضيحات عکس که توسط آپلود کننده عکس نوشته شده.</td>
	</tr>
	<tr>
		<td>{uploader_id}</td>
		<td>شماره آی‌دی آپلود کننده عکس، از اين ‌آی‌دی برای مثال مي‌توان برای 
نمايش عکس شخص آپلود کننده استفاده کرد. *</td>
	</tr>
	<tr>
		<td>{uploader_name}</td>
		<td>نام آپلود کننده عکس در فليکر.</td>
	</tr>
	<tr>
		<td>{uploader_profile}</td>
		<td>لينک صفحه مشخصات آپلود کننده عکس.</td>
	</tr>
	<tr>
		<td>{upload_date}</td>
		<td>تاريخ آپلود عکس.</td>
	</tr>
	<tr>
		<td>{upload_datetime}</td>
		<td>تاريخ و ساعت آپلود عکس.</td>
	</tr>
	<tr>
		<td>{poster_id}</td>
		<td>شماره آی‌دی شما، از اين ‌آی‌دی برای مثال مي‌توانيد برای نمايش عکس 
خودتان در فليکر استفاده کنيد. *</td>
	</tr>
	<tr>
		<td>{poster_name}</td>
		<td>نام شما در فليکر.</td>
	</tr>
	<tr>
		<td>{poster_profile}</td>
		<td>لينک صفحه مشخصات شما در فليکر.</td>
	</tr>
	<tr>
		<td>{title}</td>
		<td>عنوانی که شما برای عکسی که فليکر پست می‌کند، وارد می‌کنيد.</td>
	</tr>
	<tr>
		<td>{description_raw}</td>
		<td>توضيحاتی که شما برای عکسی که فليکر پست می‌کند، وارد می‌کنيد.</td>
	</tr>
	<tr>
		<td>{description}</td>
		<td>همانند مورد قبل، فقط اين مورد خطوطی را که شکسته‌ايد را به &lt;br/&gt; 
تبديل می‌کند تا اين شکستگی‌ها در صفحه شما نمايان شوند.</td>
	</tr>
	<tr>
		<td colspan="2">* برای نمايش آيکون شخص می‌توانيد از اين کد استفاده کنيد: 
		<div style="text-align: left; direction: ltr">http://photos12.flickr.com/buddyicons/{uploader_id}.jpg</div>
			<div>و برای نمايش عکس خود از اين کد استفاده کنيد:</div>
		<div style="text-align: left; direction: ltr">http://photos12.flickr.com/buddyicons/{poster_id}.jpg</div></td>
	</tr>
</table>
<p>من در اين‌جا يکی قالب‌ها را برای زبان فارسی تغيير داده‌ام که حالت زيباتری به پست 
می‌دهد:</p>
<div style="direction: ltr; text-align: left"><p class="code">
&lt;div style=&quot;float: right; margin-left: 10px; margin-bottom: 10px;&quot;&gt;<br>
&lt;a href=&quot;{photo_url}&quot; title=&quot;photo sharing&quot;&gt;&lt;img src=&quot;{photo_src_m}&quot; alt=&quot;&quot; 
style=&quot;border: solid 2px #000000;&quot; /&gt;&lt;/a&gt;<br>
&lt;br /&gt;<br>
&lt;span style=&quot;font-size: 0.9em; margin-top: 0px;&quot;&gt;<br>
&lt;a href=&quot;{photo_url}&quot;&gt;{photo_title}&lt;/a&gt;<br>
&lt;br /&gt;<br>
آپلود شده توسط: &lt;a href=&quot;{uploader_profile}&quot;&gt;{uploader_name}&lt;/a&gt;.<br>
&lt;/div&gt;<br>
{description}<br>
&lt;br clear=&quot;all&quot; /&gt;</p></div>
<p>بعد از تغيير قالب دکمه Preview را بزنيد و در صورتی که قالب مورد پسندتان بود دکمه 
&#39;Save this layout&#39; را بزنيد.</p>
<p>بعد در انجام تنظيمات برای ارسال عکس به وبلاگ تنها کافيست در بالای عکس‌های غير 
خصوصی، دکمه &#39;blog this&#39; را بزنيد و پس از انتخاب وبلاگ مورد نظرتان عنوان و توضيحی 
برای عکس وارد کنيد. خوشبختانه صفحات فليکر يونی‌کد هستند و می‌توانيد عنوان و 
توضيح را فارسی وارد کنيد. </p>]]></description>
<link>http://weblog.mojde.com/archives/000946.html</link>
<guid>http://weblog.mojde.com/archives/000946.html</guid>
<category>وبلاگ</category>
<pubDate>September 30, 2005 01:08 PM</pubDate>
</item>


</channel>
</rss>
