آموزش ASP 3.0 برای مبتدیان - قسمت اول

همان طور که مستحضر هستید، صفحات وب به دو دسته ایستا (Static) و پویا (Dynamic) تقسیم می شوند. صفحات Static صفحاتی هستند که همواره ثابت بوده و تغییر پیدا نمی کنند. اما صفحات Dynamic، بر خلاف آنها، همواره به صورت دینامیکی در حال تغییر هستند.
علاوه بر تقسیم بندی بالا، صفحات وب را به دو دسته صفحات سمت کاربر (
Client Side) و سمت سرور (Server Side) نیز تقسیم می کنند. کد اصلی صفحات Server Side، از دید کاربران مخفی می ماند و کاربران به کد اصلی این گونه صفحات دسترسی ندارند. این صفحات بر روی سرور جرا می شوند.صفحات Client Side، صفحاتی هستند که بر روی کامپیوتر کاربر اجرا می شوند و در نتیجه، کاربر به کد اصلی دسترسی دارد. کدهای جاوااسکریپت از این گونه صفحات هستند.
برای ایجاد نمودن صفحات دینامیکی، از تکنولوژیهای مختلفی نظیر
ASP, PHP, ASP.NET, JSP و ... استفاده می کنند. ASP تکنولوژی است که توسط شرکت Microsoft ایجاد شده و می بایست بر روی سرور ویندوز (Windows) اجرا شود. ASP مخفف عبارت Active Server Pages به معنای صفحات فعال سرور می باشد.حال شاید این سوال برای شما پیش بیاید که اگر صفحات Server Side نظیر ASP، بر روی سرور اجرا می شوند، پس چگونه آنها را بر روی کامپیوتر خود اجرا نمائیم؟ مایکروسافت برای حل این مشکل، از IIS در ویندوزهای 2000,XP و PWS در ویندوزهای 98,ME استفاده می کند. این نرم افزارها به شما این اجازه را می دهند که در حقیقت، یک سرور مجازی بر روی کامپیوتر خود ایجاد نمایید.
PWS مخفف عبارت Personal Web Server و IIS هم مخفف Internet Information Services می باشد. برای نصب و راه اندازی IIS در ویندوزهای 2000,XP، می بایست مراحل زیر را دنبال کنید:

1- بر روی منوی Start و سپس Settings -> Control Panel کلیک نمایید.
2- در پنجره
Control Panel، بر روی اپلت Add or Remove Programs دوبار کلیک نمایید.
3- سپس بر روی گزینه
Add/Remove Windows Components موجود در سمت چپ صفحه، کلیک نمایید تا پنجره Windows Components Wizard نمایان شود.
4- در لیست
Components، بر روی گزینه Internet Information Services (IIS) کلیک کنید تا مربع کنار آن، علامت تیک بخورد. اگر رنگ داخل مربع، به صورت خاکستری در آمد، بدین معناست که تنها قسمتی از IIS بر روی کامپیوتر نصب خواهد شد. پس بر روی گزینه Details کلیک کنید تا جزئیات IIS نمایان شود. حال گزینه هایی را که بدون علامت باقی مانده اند را تیک بزنید تا تمامی جزئیات نصب شوند. در نهایت بر روی دکمه OK کلیک کنید. حال می بایست رنگ داخل مربع کنار Internet Information Services (IIS)، به صورت سفید (به همراه یک علامت تیک) در آمده باشد.5- حال بر روی دکمه Next کلیک کنید.
6- اگر که ویندوز خود را از روی
CD نصب کرده باشید، در این مرحله می بایست CD ویندوز را درون درایو قرار دهید. در غیر این صورت نیازی به انجام این کار نیست.

پس از تنظیم IIS، نوبت به معرفی دایرکتوری مجازی (Virtual Directory) به آن می باشد. به وسیله این دایرکتوری مجازی، شما قادر خواهید بود صفحات Server Side (نظیر ASP) را بر روی کامپیوتر خود اجرا کنید. به طور پیش فرض، آدرس این پوشه به صورت X:\Inetpub\wwwroot خواهد بود که در آن، X نام پارتیشنی است که ویندوز 2000,XP شما در آنجا نصب شده است...برای ایجاد نمودن صفحات ASP، می بایست همانند فایلهای HTML عمل کنید. یعنی از یک نرم افزار WYSIWYG و یا یک نرم افزار متنی ساده نظیر Notepad استفاده نمایید. برای اینکه کارتان طولانی نشود، نرم افزار Front Page را باز کنید تا یک فایل HTML ساده که دارای تگهای پایه می باشد، ایجاد شود. آن را در مسیر X:\Inetpub\wwwroot و با پسوند asp ذخیره کنید (مثلا HelloWorld.asp). حال برای نوشتن اولین صفحه ASP خود، فایل ذخیره شده را با Notepad باز نمایید. حال قبل از تگ <html>، یعنی در بالای صفحه، عبارت زیر را تایپ نمایید:

<%@ Language=VBScript %>

سپس در بین تگهای </body> و <body>، عبارتهای زیر را تایپ نمایید:

<%
Response.Write("Hello World!")
%>

حال شما می بایست کدی شبیه به کد زیر را داشته باشید:

<%@ Language=VBScript %>
<html>

<head>
<title>Hello World</title>
</head>

<body>
<%
Response.Write("Hello World!")
%>
</body>

</html>

این قطعه کد سبب نمایش عبارت Hello World در صفحه وب شما می شود و اما تجزیه و تحلیل کد...
عبارت
<%@ Language=VBScript %> در تمامی صفحات ASP وجود دارند. این عبارت بدین معناست که زبان به کار رفته در این فایل ASP، زبان اسکریپتی VBScript می باشد (از JavaScript هم برای درست کردن فایلهای ASP استفاده می کنند).
تمامی قطعه کدهای
ASP می بایست در بین کاراکترهای <% و %> قرار بگیرند. این کاراکترها سبب می شوند که عبارتهای موجود بین آنها، ترجمه شده و به صورت خروجی HTML در بیاید.
از عبارت
Response.Write هم برای نوشتن بر روی صفحه استفاده می شود.
حال برای تست این صفحه وب، مرورگر
IE خود را باز کنید و یکی از دو عبارت زیر را در آن تایپ کرده و کلید Enter را فشار دهید:

http://localhost/HelloWorld.asp
http://YourComputerName/HelloWorld.asp

(من فرض کرده ام که شما نام فایل را به صورت HelloWorld.asp ذخیره کرده اید). در عبارت دوم، به جای عبارت YourComputerName می بایست نام کامپیوتر خود را که در هنگام نصب ویندوز، آن را وارد نمودید، وارد کنید. چنانچه این نام را به خاطر ندارید، می توانید با دنبال کردن مراحل زیر، آن نام را به دست آورید:

1- بر روی My Computer کلیک سمت راست ماوس را زده و از منوی ظاهر شده، گزینه Properties را انتخاب کنید.2- به قسمت Hardware بروید.3- بر روی دکمه Device Manager کلیک کنید تا پنجره Device Manager نمایان شود.4- در بالای این پنجره، نام کامپیوتر خود را می توانید مشاهده کنید.

هیچ فرقی نمی کند که از کدام یک از روشهای بالا برای مشاهده صفحه وب ASP خود استفاده کنید. چنان چه صفحه وب خود را مشاهده نکردید، مطمئن شوید که آن را در مسیر X:\Inetpub\wwwroot ذخیره کرده اید. یعنی آدرس اصلی فایل می بایست به صورت X:\Inetpub\wwwroot\HelloWorld.asp باشد.
پس از مشاهده صفحه، از منوی
View گزینه Source را انتخاب کنید تا کد صفحه نمایان شود. مشاهده می کنید که از هیچ یک از کدهای ASP خبری نیست و کد خروجی آن که به صورت HTML می باشد، مشاهده می شود. این کد چیزی شبیه به کد زیر می باشد:

<html>

<head>
<title>HelloWorld</title>
</head>

<body>
Hello World!
</body>

</html>

آموزش ASP 3.0 برای مبتدیان - قسمت دوم

+ در این درس مروری بر متغیرها و VBScript خواهیم داشت...+ در نوشتن این آموزشها، از کتاب Sams Teach Yourself Active Server Pages 3.0 in 21 Days استفاده شده است.

متغیرها
متغیرها (
Variables) را می توان همانند جعبه ای در نظر گرفت که محتوی یک مقدار می باشند. حال این مقدار می تواند یک عبارت رشته ای، یا یک عدد و یا یک مقدار درست (True) یا غلط (False) باشد. از متغیرها، می توان برای نگه داشتن اطلاعات ورودی که از کاربر گرفته شده است، استفاده نمود (در درسهای بعدی در مورد چگونگی انجام این کار، توضیح خواهم داد).
برای تعریف یک متغییر، از کلمه کلیدی
Dim استفاده می شود. بدین صورت که ابتدا کلمه Dim آمده و سپس، بعد از گذاشتن یک جای خالی (Space)، نام متغیر مورد نظر خود را می نویسیم:

Dim NameOfVariable

برای مقداردهی به متغیرها، می بایست نام متغیر را نوشته، سپس علامت تساوی (=) را گذاشته و بعد از آن، مقدار مورد نظر خود را به متغیر بدهید:

NameOfVariable = "Hello! World"

کد فوق، رشته عبارت Hello! World را به متغیر NameOfVariable نسبت می دهد. چنان چه بخواهید یک مقدار عددی را به متغیر خود نسبت دهید، می بایست از استفاده از علامت کوتیشن (") پرهیز کنید:

NameOfVariable = 17

همان طور که گفته شد، متغیرها دارای انواع مختلفی می باشند:

  • اعداد صحیح (Integer)
  • رشته ها (Strings)
  • درست یا غلط (Boolean)
  • ...

شاید برای شما این سوال پیش بیاید که دانستن انواع متغیرها به چه دردی می خورد. در زبانهای برنامه نویسی دیگر، (به عنوان مثال در ASP.NET)، علاوه بر تعریف کردن یک متغیر، می بایست نوع آن متغیر را نیز تعریف کنید. به عنوان مثال اگر بخواهید یک متغیر را که حاوی یک رشته باشد، تعریف کنید، می بایست از کد زیر استفاده نمایید:

Dim NameOfVariable As String

اما در ASP، نیازی به این کار نیست و فقط کافیست که متغیر را تعریف کنید، نه نوع آن را. به این نوع متغیرها، Variant Variables (متغیرهای قابل تغییر) می گویند...
در
VBScript امکان آن وجود دارد که شما، بدون آنکه متغیری را تعریف نمایید، از آن در کد برنامه استفاده نمایید. و این کار هم سبب بروز هیچ گونه خطایی نمی شود. اما بهتر است این کار را نکنید (در آینده نه چندان دور و با کسب تجربه، علت آن را خواهید فهمید). برای اینکه متوجه شوید که در کجا، از متغیری که قبلا آن را ایجاد نکرده اید، استفاده کرده اید، می توانید بعد از عبارت <%@ Language=VBScript %>، عبارت زیر را قرار دهید:

<% Option Explicit %>

این عبارت سبب می شود که در صورت استفاده از متغیری که قبلا ایجاد نشده است، پیغامی بر روی صفحه نمایش داده شود. به عنوان مثال، قطعه کد زیر را در نظر بگیرید:

<%@ Language = "VBScript" %>
<% Option Explicit %>

<html>

<head>
<title>Hello World!</title>
</head>

<body>
<%
Response.Write(NameOfVariable)
%>
</body>

</html>

این صفحه را با پسوند asp ذخیره کرده و به وسیله IIS، آن را اجرا کنید. با انجام این کار، پیغامی همانند پیغام زیر دریافت خواهید کرد:

 

 

Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'NameOfVariable'
/HelloWorld.asp, line 13

همان طور که مشاهده می کنید، در خط سوم این پیغام، عبارت Variable is undefined به معنای متغیر تعریف نشده می باشد، نشان داده شده است.

ثابتها
علاوه بر متغیرها،
VBScript دارای نوع دیگری از داده ها به نام ثابتها (Constants) نیز می باشد. اگر بخواهید ثابتها را در ذهن خود تصور کنید، می توانید بگویید متغیری که فقط یک بار مقدار می گیرد و در طول کد ثابت می ماند... برای تعریف ثابتها، از کلمه Const استفاده می کنیم:

Const Telephone = "000-00-00"

از ثابتها، معمولا برای داده هایی استفاده می کنند که در طول برنامه، نیازی به عوض شدن ندارند. با استفاده از ثابتها، به راحتی می توانید بر روی سایت خود تسلط داشته باشید. به عنوان مثال، همان طور که در کد بالا مشاهده می کنید، ثابتی تحت عنوان Telephone ساخته شده است که به آن مقدار 000-00-00 نسبت داده شده است. فرض کنید که این شماره تلفن شرکت X باشد. حال این شرکت، به جای دیگری انتقال پیدا کرده است. برای عوض کردن شماره تلفنهای درج شده در سایت، فقط کافیست که این یک ثابت را تغییر دهید. به همین راحتی!

آرایه ها
علاوه بر متغیرها و ثابتها،
VBScript دارای نوع دیگری از داده ها تحت عنوان آرایه (Array) می باشد. برای ایجاد کردن آرایه ها، می بایست به صورت زیر عمل کنید:

Dim NameOfArray(X)

به جای حرف X، یک عدد جایگزین می شود. این عدد تعداد متغیرها را معلوم می کند. برای دستیابی به متغیر درون آرایه، می بایست نام آرایه را به همراه عدد مورد نظر که به آن اندیس (Index) می گویند، بیاورید. به عنوان مثال آرایه زیر را در نظر بگیرید:

Dim Marks(3)

این آرایه دارای چهار متغیر تحت نامهای Marks(0), Marks(1), Marks(2) و Marks(3) می باشد. معمولا از آرایه ها، برای ذخیره کردن مقادیر مربوط به هم استفاده می کنند. این کار سبب راحتی مقدار دهی و دستیابی به متغیرها می شود. به عنوان مثال فرض کنید می خواهید نمرات میان ترم یک دانش آموز را ذخیره کنید. برای انجام همچین کاری، استفاده از آرایه ها بسیار راحت تر از استفاده از متغیرها می باشد. برای درک این مطلب دو کد زیر را در نظر بگیرید:

Dim Marks(3)
Marks(0)=17
Marks(1)=10
Marks(2)=20
Marks(3)=15

 

Dim Marks0, Marks1, Marks2, Marks3
Marks0=17
Marks1=10
Marks2=20
Marks3=15

همان طور که مشاهده می کنید، استفاده از آرایه ها، کد نویسی را بسیار کم تر و کار با برنامه را بسیار راحت می نماید.علاوه بر روش فوق، می توانید از تابع Array برای مقدار دهی سریع به متغیرهای آرایه، استفاده کنید. روش این کار به صورت زیر است:

Dim NameOfArray
NameOfArray = Array(ValueOf1stVariable, ValueOf2ndVariable, ValueOf3rdVariable, ...)

به عنوان مثال، آرایه Marks را که در بالا ساخته شد، می توانید به روش زیر بسازید:

Dim Marks
Marks = Array(17, 10, 20, 15)

حال که با انواع متغیرها آشنا شدید، به بررسی عملگرها (Operators) در VBScript می پردازیم...

عملگرها (
Operators)
همان طور که در ریاضی، چند عدد را با هم جمع یا تفریق، ضرب یا تقسیم می کنید و یا باقیمانده و خارج قسمت یک تقسیم را به دست می آورید، در
VBScript هم می توانید همین کارها را انجام دهید...
در بالا از یک عملگر انتساب یا
Assigment که آن را با علامت مساوی (=) نمایش می دهند، استفاده کردید. همان طور که ملاحظه نمودید، از این عملگر برای نسبت دهی یک مقدار به یک متغیر استفاده می شد:

Dim MathematicsMark
MathematicsMark = 20


عملگر جمع
از این عملگر، برای جمع کردن دو عدد و یا ترکیب نمودن دو رشته با هم استفاده می کنند:

<%
Dim Marks
Marks = Array(20, 20, 0)
Response.Write("Total of your number is: ")
Response.Write(Marks(0) + Marks(1) + Marks(2))
%>

ترکیب چندین رشته با یکدیگر:

<%
Dim x1, x2, x3
x1 = "My name is"
x2 = " "
x3 = "Mojtaba Dashtinejad"
Response.Write(x1 + x2 + x3)
%>


عملگر تفریق
از این عملگر هم، برای تفریق استفاده می شود:

<%
Dim n1, n2
n1 = 40
n2 = 50
Response.Write(n2 - n1)
%>


عملگر ضرب
علامت ستاره (*) به عنوان عملگر ضرب در کامپیوتر به کار می رود.

<%
Dim n1, n2
n1 = 40
n2 = 50
Response.Write(n2 * n1)
%>


عملگر تقسیم
در
VBScript برای یک تقسیم، چندین عملگر وجود دارد. عملگر /، باقیمانده تقسیم را به طور کامل نمایش می دهد. اما عملگر \، تنها مقدار صحیح تقسیم را بر می گرداند:

<%
Response.Write("25/4 = " & 25/4)
Response.Write("<br>")
Response.Write("25\4 = " & 25\4)
%>

(عملگر & که در مثال بالا از آن استفاده شده است، برای چسباندن دو مقدار به یکدیگر استفاده می شود).
عملگر دیگری که مربوط به تقسیم می باشد، عملگر
mod می باشد. این عملگر، باقیمانده تقسیم را بر می گرداند:

<%
Response.Write("25 mod 4 returns " & 25 mod 4)
%>


حق تقدم با کدام عملگر است؟به حاصل عبارت ساده
2*5-5 فکر کنید. ممکن است فکر کنید که جواب این عبارت برابر 2*0=0 خواهد بود. اما در حقیقت این طور نیست. حاصل برابر 10-5=5 می باشد. برای اینکه عملگر ضرب نسبت به عملگر تفریق، تقدم دارد. در جدول زیر، حق تقدم عملگرها آورده شده است...

Precedence

Operators

Highest (Done First)


















Lowest (Done Last)

Anything In Parantheses
Exponentiation (^)
Negation (-)
Multiplication, Division (*,/)
Integer Division (\)
Moduls (mod)
Addition, Subtraction (+,-)
String Concatenation (&)
Equality (=)
Inequality (<>)
Less Than (<)
Greater Than (>)
Less Than Or Equal To (<=)
Greater That Or Equal To (>=)
Not
And
Or
Xor
Eqv
Imp

 

عملگرهای مقایسه ای (Comparision Operators)

حتما تا به حال، با عملگرهای مقایسه ای برخورد کرده اید. جدول زیر نشان دهنده عملگرهای مقایسه ای می باشد.

Operator

True When...

False When...

A = B
A > B
A < B
A >= B
A <= B
A <> B

A and B are the same
A larger than B
A smaller than B
A larger than or same as B
A smaller than or same as B
A and B are different

A and B are different
A same as or smaller than B
A same as or larger than B
A smaller than B
A larger than B
A and B are the same


عملگرهای منطقی (
Logical Operators)

با این عملگرها، در ریاضیات، آشنا شده اید. عملگرهایی نظیر و (که آن را با علامت \/ نشان می دهند) و یا عملگر یا (که آن را با علامت /\ نشان می دهند) و ... در VBScript هم این عملگرها کاربرد دارند. اما مثلا به جای استفاده از علامت \/ (که در ریاضیات کاربرد دارد)، در VBScript از کلمه AND استفاده می کنیم. جدول زیر در بر گیرنده عملگرهای مقایسه می باشد.

 

 

Operator

True When...

False When...

A AND B
A OR B
NOT A
A XOR B
A EQV B
A IMP B

A and B both true
One of A or B is true
A is false
A or B true, but not both
Both false or both true
A is false or B is true

Either A or B is false
Both A and B are false
A is true
Both true or both false
One is false; other is true
A is true and B is false


ساختارهای کنترلی

منظور از ساختارهای کنترلی، عبارات شرطی، دستورات ElseIf، حلقه ها، سابروتین ها و هر چیز دیگری که به وسیله آن می توانید برنامه خود را کنترل نمایید، می باشد... در ادامه مقاله، با تعدادی از این ساختارهای کنترلی آشنا می شویم...

عبارات شرطی

عبارات شرطی را می توان به سه دسته تقسیم نمود:

1.     عبارات If...Then

2.     عبارات If...Then...Else

3.     عبارات ElseIf


1- عبارات
If...Then

ساختار کلی این گونه عبارات شرطی، به صورت زیر می باشد:

If Condition Then
    Code Block
End If

تمامی عبارات شرطی، برای اجرا شدنشان، می بایست یک مقدار True (صحیح) را باز گردانند. چنان چه عبارت Condition در این شرط درست باشد، شرط اجرا می شود و در غیر این صورت به کد بعدی می رود (کدهای بعد از End If). مثال:

<%
Dim MathematicsMark
MathematicsMark = 15
If MathematicsMark > 10 Then
    Response.Write("You passed your exam")
End If
%>

مثالی دیگر:

<%
Dim iGrade, strLetterGrade
iGrade = 85
If (iGrade >= 90) Then
    strLetterGrade = "A"
End If
If (iGrade >= 80) AND (iGrade < 90) Then
    strLetterGrade = "B"
End If
If (iGrade >= 70) And (iGrade < 80) Then
    strLetterGrade = "C"
End If
If (iGrade >= 60) And (iGrade < 70) Then
    strLetterGrade = "D"
End If
If (iGrade < 60) Then
    strLetterGrade = "F"
End If
Response.Write _
                ("The numerical grade is " & "<b>" & iGrade & "</b>" & "<br>" & _
                " and the letter grade is " & "<b>" & strLetterGrade & "</b>")
%>

برای اینکه خط آخر طولانی نشود، از کاراکتر _ برای انتقال متن به پایین استفاده کرده ام. استفاده نکردن از این کاراکتر، سبب بروز خطا می شود.2- عبارات If...Then...Else
همان طور که در ساختار شرطی بالا دیدید، هنگامی که ساختار
True بود، شرط اجرا می شد و در غیر این صورت، نه. اما شاید شما بخواهید که در صورت غلط بودن شرط هم، به کاربر پیغامی را نمایش دهید. برای این کار، از عبارات شرطی If...Then...Else استفاده می نمایند. ساختار کلی این گونه عبارات شرطی، به صورت زیر می باشد:

 

 

If Condition1 Then
    Code Block 1
Else
    Code Block 2
End If

هنگامی که Condition1 درست باشد، Code Block 1 اجرا می شود. در غیر این صورت، Code Block 2 اجرا شده و شرط به پایان می رسد.به عنوان نمونه، مثال بالا را در نظر بگیرید. ما از عبارات شرطی If...Then به طور مکرر استفاده نمودیم. به جای استفاده از آن کد، می توانید از کد زیر استفاده کنید:

<%
Dim iGrade, strLetterGrade
iGrade = 85
If (iGrade >= 90) Then
    strLetterGrade = "A"
Else
    If (iGrade >= 80) Then
        strletterGrade = "B"
    Else
        If (iGrade >= 70) Then
            strLetterGrade = "C"
        Else
            If (iGrade >= 60) Then
                strLetterGrade = "D"
            Else
                strLetterGrade = "F"
            End If
        End If
    End If
End If
Response.Write _
                ("The numerical grade is " & "<b>" & iGrade & "</b>" & "<br>" & _
                " and the letter grade is " & "<b>" & strLetterGrade & "</b>")
%>

استفاده از این نوع کدنویسی، کمی مشکل می باشد. چرا که عبارات شرطی تو در تو می شوند و هر چه حالات شرط ما بیشتر باشد، بیشتر گیج خواهیم شد. برای حل این مشکل، می توانید از نوع سوم عبارات شرطی، یعنی عبارات ElseIf استفاده نمایید.3- عبارات ElseIf
عبارت
ElseIf همان طور که می بینید، از دو کلمه Else + If تشکیل شده است. به قطعه کد زیر توجه کنید:

If Condition1 Then
    Code Block 1
Else
    If Condition2 Then
        Code Block 2
    End If
End If

همان طور که می بینید، بعد از عبارت Else، ما به خط پایین رفته و عبارت شرطی دیگری را با If آغاز نمودیم. حالا می توانید به جای اینکار، در حقیقت آنها را به یکدیگر بچسبانید. یعنی کد بالا به صورت زیر در می آید:

If Condition1 Then
    Code Block 1
ElseIf Condition2 Then
    Code Block 2
End If

حالا مثال تودرتوی بالا را با استفاده از ElseIf مشاهده کنید:

<%
Dim iGrade, strLetterGrade
iGrade = 85
If (iGrade >= 90) Then
    strLetterGrade = "A"
ElseIf (iGrade >= 80) Then
    strLetterGrade = "B"
ElseIf (iGrade >= 70) Then
    strLetterGrade = "C"
ElseIf (iGrade >= 60) Then
    strLetterGrade = "D"
Else
    strLetterGrade = "F"
End If
Response.Write _
                ("The numerical grade is " & "<b>" & iGrade & "</b>" & "<br>" & _
                " and the letter grade is " & "<b>" & strLetterGrade & "</b>")
%>


عبارتهای
Select Case
این گونه عبارتها، در واقع حالتهای مختلف را بررسی کرده و آن حالتی را که درست می باشد، اجرا می نماید. ساختار کلی این گونه عبارتها، به صورت زیر می باشد:

Select Case Expression
Case Value 1
    Code for when expression equals value 1
Case Value 2
    Code for when expression equals value 2
Case Value N
    Code for when expression equals value N
End Select

به عنوان نمونه، مثال بالا را که با ElseIf درست شده است، با Select Case ببینید:

<%
Dim iGrade, strLetterGrade
iGrade = 85
Select Case iGrade
Case 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100
    strLetterGrade = "A"
Case 80, 81, 82, 83, 84, 85, 86, 87, 88, 89
    strLetterGrade = "B"
Case 70, 71, 72, 73, 74, 75, 76, 77, 78, 79
    strLetterGrade = "C"
Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69
    strLetterGrade = "D"
Case Else
    strLetterGrade = "F"
End Select
Response.Write _
                ("The numerical grade is " & "<b>" & iGrade & "</b>" & "<br>" & _
                " and the letter grade is " & "<b>" & strLetterGrade & "</b>")
%>

حلقه ها (Loops)
حلقه های
Do...Loop
شکل این حلقه ها به دو صورت می باشد:

1.     Do While...Loop

2.     Do Until...Loop

1- حلقه های Do While...Loop
ساختار کلی این حلقه به صورت زیر است:

Do While Condition
    Code Block
Loop

این نوع حلقه ها تا زمانی ادامه می یابند که Condition برقرار باشد:

<%
Dim Counter
Counter = 1
Do While (Counter <= 50)
    Response.Write(Counter & "<br>")
    Counter = Counter + 1
Loop
%>

در این قطعه کد، ابتدا متغیر Counter را ایجاد کرده و به آن مقدار 1 را نسبت داده ایم. سپس با استفاده از حلقه Do While...Loop، آن را تا هنگامی که کوچکتر یا مساوی (=>) عدد 50 باشد، بر روی صفحه می نویسیم. همان طور که می بینید، بعد از عبارت Response.Write(Counter & "<br>")، عبارت Counter = Counter + 1 نوشته شده است. این عمل سبب می شود که پس از اینکه Counter یک بار بر روی صفحه نوشته شد، با عدد 1 جمع شود تا مقدار آن 1 واحد افزایش یابد و سپس در صورتی که شرط بر قرار بود (کوچکتر یا مساوی 50)، حلقه از ابتدا دوباره شروع شود.
نوع دیگری از همین نوع حلقه ها وجود دارند که ساختار آنها، به صورت زیر می باشد:

Do
    Code Block
Loop While Condition

این نوع حلقه ها هم، همانند حلقه های بالایی می باشند. یعنی تا موقعی که Condition برقرار باشد، حلقه اجرا می شود. اما دارای یک فرق کوچک می باشد و آن این است که این حلقه حداقل یک بار اجرا می شود:

<%
Dim Counter
Counter = 1
Do
    Response.Write(Counter & "<br>")
    Counter = Counter + 1
Loop While (Counter > 50)
%>

در مثال بالا ابتدا متغیر Counter بر روی صفحه نوشته و یک واحد به آن افزوده می شود. در صورتی که متغیر Counter بزرگتر از 50 باشد (Counter > 50)، حلقه از نو تکرار می شود.
2- حلقه های
Do Until...Loopاین نوع حلقه ها هم تقریبا شبیه حلقه های Do While...Loop می باشد. با فرق اینکه، حلقه های Do While...Loop تا هنگامی ادامه می یابند که عبارت True باشد. اما در حلقه های Do Until...Loop، هنگامی که عبارت True می شود، حلقه از کار می افتد. ساختار کلی این نوع حلقه ها به صورت زیر است:

Do Until Condition
    Code Block
Loop

مثال:

<%
Dim Counter
Counter = 1
Do Until (Counter > 50)
    Response.Write(Counter & "<br>")
    Counter = Counter + 1
Loop
%>


حلقه های
While...Wend
این نوع حلقه ها، دقیقا همانند حلقه های
Do While...Loop می باشند. یعنی به جای عبارت Do While از عبارت While، و به جای کلمه Loop از کلمه Wend استفاده می کنیم. ساختار کلی این نوع حلقه ها به صورت زیر می باشد:

While Condition
    Code Block
Wend

مثال:

<%
Dim Counter
Counter = 1
While (Counter <= 50)
    Response.Write(Counter & "<br>")
    Counter = Counter + 1
Wend
%>


حلقه های
For...Next
این نوع حلقه ها مواقعی کاربرد دارند که شما بدانید کد خود را چند دفعه می خواهید اجرا کنید. ساختار کلی این نوع حلقه ها، به صورت زیر می باشد:

For Variable = FirstValue to LastValue step StepValue
    Code Block
Next

مثلا فرض کنید که می خواهید اعداد زوج مابین 2 تا 50 را بر روی صفحه بنویسید. برای این کار می توانید از قطعه کد زیر استفاده نمایید:

<%
Dim Counter
For Counter = 2 to 50 step 2
    Response.Write(Counter & "<br>")
Next
%>

+ ساختارهای کنترلی دیگری نیز، نظیر سابروتینها، توابع (Functions)، حلقه های For Each...Next و ... وجود دارند که در این مقاله مورد بررسی قرار نمی گیرند...+ در قسمت بعدی که قسمت آخر می باشد، در مورد چگونگی کار با فرمها و جمع آوری مقادیر فرم به طور مفصل بحث خواهم کرد...+ دیگر مباحث ASP نظیر پایگاه داده (Database)، آبجکتها (Objects)، کوکی ها (Cookies) و ... در این سری آموزشی مورد بررسی قرار نمی گیرند...

ارسال به دوستان از طریق MT

همان طور که می دانید، MT دارای اسکریپتی تحت عنوان mt-send-entry-cgi می باشد که به وسیله آن، خوانندگان شما قادر خواهند بود لینک آن مطلب را برای دیگران ارسال کنند. اما آنها نمی توانند کل مطلب (و یا تکه ای از آن) را در عوض یک لینک خالی، برای دیگران ارسال کنند.
اما با استفاده از اسکریپت
mt-mail-entry.cgi، کاربران شما قادر به انجام این کار خواهند بود...

نحوه نصب

ابتدا فایل MT-Email-Entry.zip را دانلود کرده و آن را با استفاده از نرم افزار WinZip باز کرده و فایل درون آن را در جایی از هارد دیسک خود Extract نمایید. سپس فایل mt-mail-entry.cgi را در همان جایی که فایل mt.cgi قرار دارد، آپلود کرده و Permission آن را به 755 تغییر بدهید.

ساختن یک قالب ایمیل

به قسمت Templates وبلاگ خود رفته و یک قالب به نام mail_entry_text (برای ایمیلهای ساده متنی) و/یا mail_entry_html (برای ایمیلهای HTML) درست نمایید.
ممکن است بخواهید از همان تگهای معتبر در قالب
Individual Entry Archive استفاده نمایید. همچنین می توانید از یکی از تگهای اختیاری زیر نیز استفاده کنید:

  • MTMailEntryVersion
    نسخه فعلی این اسکریپت
    CGI را نمایش می دهد.
  • MTMailTo
    آدرس ایمیل شخص گیرنده را مشخص می کند.
  • MTMailFrom
    آدرس ایمیل شخص فرستنده را مشخص می کند.
  • MTMailMessage
    متنی که توسط کاربر فرستنده نوشته شده است را مشخص می کند.
  • MTMailIfMessage
    این تگ هنگامی درست می باشد که کاربر فرستنده، متنی را در
    Message Box وارد نماید.
  • MTMailIfNoMessage
    این تگ هنگامی درست می باشد که کاربر فرستنده، هیچ متنی را در
    Message Box وارد ننماید.

قالب mail_entry_text نباید دارای هیچ گونه تگ HTMLای باشد. یک قالب ساده متنی ممکن است چیزی شبیه به کد زیر باشد:

<MTMailFrom> has sent you a link!

<MTMailMessage>

Title: <MTEntryTitle>
Link: <MTEntryPermalink>

<MTEntryBody remove_html="1">

قالب mail_entry_html می بایست یک سند HTML معتبر همانند Individual Entry Archive باشد. این قالب ممکن است چیزی شبیه به کد زیر باشد:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><$MTBlogName$>: <$MTEntryTitle$></title>
<base href="<$MTEntryPermalink$>">
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
</head>
<body>
<div id="banner">
<h1><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName$></a></h1>
<span class="description"><$MTBlogDescription$></span>
</div>
<div id="container">
<div class="blog">
<MTMailIfMessage>
<div class="blogbody">
<p>Message from &lt;<MTMailFrom remove_html="1" encode_html="1">&gt;</p>
<p><MTMailMessage sanitize="1"></p>
</div>
</MTMailIfMessage>
<div class="blogbody">
<h3 class="title"><$MTEntryTitle$></h3>
<$MTEntryBody$>
<MTEntryIfExtended>
<span class="extended">
<a href="<$MTEntryPermalink$>">Continue reading "<$MTEntryTitle$>"</a>
</span><br />
</MTEntryIfExtended>
</div>
</div>
</body>
</html>


اضافه کردن یک لینک به فرم ایمیل

شما می توانید از کد زیر، برای لینک به قالب Mail استفاده کنید:

<a href="<$MTCGIPath$>mt-mail-entry.cgi?entry_id=<$MTEntryID$>">Email Entry</a>

همچنین اگر می خواهید که فرم ایمیل شما، در پنجره ای جدید باز شود، کدهای زیر را در بالای صفحه وب خود (در بین تگهای </head> و <head>) قرار دهید:

<script type="text/javascript" language="javascript">
<!--
function OpenEmail (c) {
    window.open(c,
        'email',
        'width=480,height=480,scrollbars=yes,status=yes');
}
//-->
</script>

و کد لینک را به صورت زیر تغییر دهید:

<a href="<$MTCGIPath$>mt-mail-entry.cgi?entry_id=<$MTEntryID$>"
    onclick="OpenEmail(this.href); return false">Mail Entry</a>


تنظیم کردن یک فرم ایمیل سفارشی

برای سفارشی کردن کردن فرم ایمیل، به قسمت Templates وبلاگ خود رفته و یک قالب به نام mail_entry_form بسازید.
ممکن است بخواهید از همان تگهای معتبر در فرم ایمیل قبلی استفاده کنید، اما چنان چه بخواهید، می توانید از تگهای اختیاری زیر نیز، استفاده نمایید:

  • MTMailIfEmailSent
    این تگ هنگامی درست می باشد که ایمیل با موفقیت ارسال شود.
  • MTMailIfNoEmailSent
    این تگ هنگامی درست می باشد که هیچ گونه ایمیلی فرستاده نشود.
  • MTMailIfErrors
    این تگ هنگامی درست می باشد که در
    Submit فرم، خطایی وجود داشته باشد.
  • MTMailIfNoErrors
    این تگ هنگامی درست می باشد که در
    Submit فرم، هیچ گونه خطایی وجود نداشته باشد.
  • MTMailIfErrorFrom
    این تگ هنگامی درست می باشد که ایمیل شخص فرستنده، اشتباه باشد.
  • MTMailIfNoErrorFrom
    این تگ هنگامی درست می باشد که ایمیل شخص فرستنده، درست باشد.
  • MTMailIfErrorTo
    این تگ هنگامی درست می باشد که ایمیل شخص گیرنده، اشتباه باشد.
  • MTMailIfNoErrorTo
    این تگ هنگامی درست می باشد که ایمیل شخص گیرنده، درست باشد.
  • MTMailIfErrorSend
    این تگ هنگامی درست می باشد که در حین ارسال ایمیل، خطایی به وجود آید.
  • MTMailIfNoErrorSend
    این تگ هنگامی درست می باشد که در حین ارسال ایمیل، هیچ گونه خطایی به وجود نیاید.
  • MTMailSendError
    خطایی که در هنگام ارسال ایمیل به وجود می آید، توسط سیستم گزارش می شود. یک رشته (
    String) خالی در صورتی که هیچ گونه خطایی به وجود نیاید.


قالب فرم ایمیل

این قالب به صورت پیش فرض، چیزی شبیه به کد زیر می باشد:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<title><$MTBlogName$>: Email <$MTEntryTitle remove_html="1"$></title>
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
</head>

<body>
<div id="banner-commentspop">
<$MTBlogName$>
</div>

<div class="blog">

<div class="comments-head">Send via email: <$MTEntryTitle$></div>

<MTMailIfEmailSent>
<!-- If email was sent, let the user know -->
<div class="comments-body">
The email <b><MTMailSubject></b> was successfully sent to &lt;<MTMailTo encode_html="1">&gt;.
</div>
</MTMailIfEmailSent>

<MTMailIfErrors>
<!-- If there were problems, let the user know -->
<div class="comments-body">
<MTMailIfErrorFrom>
Your email address is not valid!
</MTMailIfErrorFrom>
<MTMailIfErrorTo>
The recipient email address is not valid!
</MTMailIfErrorTo>
<MTMailIfErrorSend>
Failed to send email: <MTMailSendError encode_html="1">
</MTMailIfErrorSend>
</div>
</MTMailIfErrors>

<div class="comments-body">
<form method="get" action="<$MTCGIPath$>mt-mail-entry.cgi" name="mail_form">
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />

<table>
<tr>
<td>
    <label for="to">Recipient email address:</label><br />
    <input tabindex="1" id="to" name="to" value="<MTMailTo encode_xml="1">" /><br /><br />
</td>
<td>
    <label for="from">Your email address:</label><br />
    <input tabindex="2" id="from" name="from" value="<MTMailFrom encode_xml="1">" /><br /><br />
</td>
</tr>
</table>

<label for="message">Message (optional):</label><br />
<textarea tabindex="4" id="message" name="message"
    rows="5" cols="50"><MTMailMessage encode_html="1"></textarea><br /><br />

<input type="button" onclick="window.close()" value=" Cancel " />
<input style="font-weight: bold;" type="submit" name="post" value=" Send " /><br /><br />
</form>
</div>

</div>

</body>
</html>

پارامترهای CGI

در زیر، لیست کاملی از پارامترهایی که mt-mail-entry.cgi استفاده می کند را، مشاهده می کنید:

  • entry_id (مورد نیاز)
    کد (
    ID) مربوط به مطلب را نشان می دهد.
  • template_text
    نام قالبی را، که برای ارسال نامه های ساده متنی، مورد استفاده قرار می گیرد را نمایش می دهد. پیش فرض آن
    mail_entry_text می باشد.
  • template_html
    نام قالبی را، که برای ارسال نامه های
    HTML مورد استفاده قرار می گیرد را، نمایش می دهد. پیش فرض آن mail_entry_html می باشد.
  • template_form
    نام قالبی را، که برای فرم ایمیل مورد استفاده قرار می گیرد، نمایش می دهد. پیش فرض آن
    mail_entry_form می باشد.
  • from
    آدرس ایمیل شخص فرستنده را مشخص می کند.
  • to
    آدرس ایمیل شخص گیرنده را مشخص می کند.
  • message
    پیغام اختیاری ایمیل را مشخص می کند.
  • subject
    موضوع نامه را مشخص می کند. پیش فرض آن به صورت <$
    MTBlogName$>: <$MTEntryTitle$> می باشد.
  • post
    مشخص می کند که فرم ایمیل در حال
    Submit شدن می باشد.

چگونه یک مجله الکترونیکی راه بیاندازیم؟

این روزها تب راه اندازی مجلات الکترونیکی بر روی اینترنت و به صورت مجازی، به طور فراوانی مشاهده می شود. از این رو تصمیم به نوشتن مقاله ای نمودم که اگر کسی خواهان انجام این کار باشد، ولی راه و رسم آن را نمی داند، بتواند بدون داشتن کمتر اطلاعاتی، اقدام به ایجاد آن نماید.
مجله الکترونیکی شما، هر روز (یا هر هفته، هر ماه...) آپدیت خواهد شد. از این رو شما نیاز به برنامه ای دارید که بتوانید این کار را به وسیله یک کلیک انجام دهید. در نتیجه، سایت شما از رده سایتهای ایستا (
Static) به دسته سایتهای پویا (Dynamic) انتقال پیدا خواهد کرد. برای اینکه برنامه ای بنویسید که به وسیله آن، قادر به آپدیت کردن منظم مجله الکترونیکی خود باشد، نیازمند دانستن یکی از زبانهای برنامه نویسی سمت سرور (Server Side) نظیر CGI, ASP, PHP و ... هستید. اما برای راحتی کار شما و جلوگیری از دوباره رفتن راه دیگران، می توانید از سیستم های از قبل برنامه نویسی شده ای که برای همین منظور ایجاد شده اند، استفاده کنید. یکسری از این سیستم ها پولی و برخی دیگر، کاملا رایگان هستند. از آن جمله سیستم ها می توان به VirtuaNews, PHP-Nuke, Movable Type و ... اشاره نمود. دو سیستم VirtuaNews و PHP-Nuke به منظور راه اندازی سایتهای خبری به کار می روند و جزء قوی ترین سیستم ها در این زمینه به حسای می آیند. اما سیستم Movable Type، برای راه اندازی یک وبلاگ (Weblog) مورد استفاده قرار می گیرد. از این رو، مسلم است که کار با این سیستم، نسبت به دو سیستم دیگر، راحت تر بوده و زمان کمتری را، برای یادگیری، به خود اختصاص می دهد.در این مقاله، به چگونگی راه اندازی یک مجله الکترونیکی توسط سیستم Movable Type (که از این به بعد آن را MT می خوانیم)، خواهم پرداخت.
این مقاله از دو قسمت اساسی تشکیل شده است:

  • قسمت اول: نصب و راه اندازی MT
  • قسمت دوم: راه اندازی یک مجله الکترونیکی توسط MT

(قسمت اول این مقاله، به دلایلی فعلا نوشته نشده است)

قسمت دوم: راه اندازی یک مجله الکترونیکی توسط MT

پس از آنکه نصب و راه اندازی MT با موفقیت به پایان رسید، نوبت به چگونگی ایجاد یک مجله الکترونیکی توسط این سیستم پرقدرت می شود. برای درک و کارایی بیشتر، ادامه مقاله را همراه با یک مثال، دنبال می کنیم. در این مثال، ما از ابتدا، با همان چیزهایی که در این مقاله می آموزید، اقدام به ساخت یک مجله الکترونیکی می نمائیم.فرض کنید مجله الکترونیکی شما دارای 4 بخش زیر می باشد:

1.     گزارش ویژه

2.     رسانه

3.     اینترنت

4.     کامپیوتر

برای هر بار آپدیت مجله، شما نیاز به 4 مقاله دارید که در هر بار آپدیت، مقاله جدید جایگزین مقاله قدیم می شود و در اختیار کاربران قرار می گیرد (همچنین مقالات قدیمی به آرشیو انتقال پیدا می کنند). حال به صفحه وب زیر (شکل 1) توجه کنید:


شکل 1


همان طور که در شکل هم مشاهده می کنید، صفحه وب شما دارای 4 مقاله اصلی در هر شماره خواهد بود. پس در حقیقت، شما نیاز به 4 گروه اصلی (
Category) دارید. برای ایجاد نمودن این گروه ها، به MT رفته و با Username و Password خود وارد شوید. سپس بر روی گزینه Categories موجود در سمت چپ صفحه، کلیک کرده تا به قسمت گروه های MT بروید. سپس در کادرهای خالی، به ترتیب نامهای Special, Media, Internet و Computer را وارد کرده و در نهایت بر روی دکمه OK کلیک کنید تا گروه های مورد نظر، ساخته شوند. پس از ساخت گروه ها، نوبت به کدگذاری، درون صفحه اصلی می شود. برای نوشتن این کدها، هیچ گونه نیازی به دانستن تکنولوژی های برنامه نویسی نمی باشد. فقط اگر اطلاعات مختصری درباره HTML داشته باشید، راحت تر می توانید این کار را انجام دهید. حال به تکه صفحه وب زیر (شکل 2) دقت کنید.


شکل 2


همان طور که مشاهده می کنید، هر مقاله دارای 3 بخش زیر می باشد:

1.     نام مقاله

2.     لینک به مقاله

3.     توضیح یا بخش کوتاهی از مقاله

برای تعیین کردن نام مقاله در MT، از تگ <$MTEntryTitle$> استفاده می شود. پس به جای "نام مقاله"، این عبارت را قرار دهید. برای لینک به مقاله، عبارت <$MTEntryTitle$> را درون تگ لینک (<a>) قرار داده و مقدار href آن را به صورت <$MTEntryPermalink$> تنظیم کنید. یعنی چیزی شبیه به کد زیر:

<a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a>

به جای گزینه "توضیح یا بخش کوتاهی از مقاله"، می بایست از تگ <$MTEntryExcerpt$> استفاده نمایید (در ادامه مقاله، توضیح خواهم داد که چگونه علاوه بر مقاله اصلی، توضیح کوتاهی نیز، برای آن در نظر بگیرید).

برای 3 قسمت دیگر صفحه وب هم، این کدها را قرار دهید. بعد از انجام این کار، نوبت به آن می رسد که به MT بفهمانید که مثلا در قسمت "کامپیوتر"، نام و لینک مقاله کامپیوتری را نمایش دهد. برای این کار، از تگهای اصلی MT، نظیر <MTEntries> استفاده می کنیم...
برای اینکه بتوانیم ادامه مثال را راحت تر دنبال نماییم، من کد
HTML مربوط به صفحه وب را ساخته ام... این کد را در زیر مشاهده می کنید:

<html>

<head>
<meta http-equiv="Content-Language" content="fa">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>eMagazine</title>
<style type="text/css">
body {
    background-color: #333333;
}

p {
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.5;
    font-family: tahoma;
    font-size: 10pt;
    color: #cccccc;
    text-align: justify;
    direction: rtl;
}

p#Header {
    font-family: arial;
    font-size: 30pt;
    color: #ff7700;
    text-align: center;
    font-weight: bold;
}

p#Footer {
    font-family: arial;
    font-size: 15pt;
    color: #ff7700;
    text-align: center;
    font-weight: bold;
}

p.Categories {
    font-family: arial;
    font-size: 25pt;
    color: #cccccc;
    text-align: center;
    font-weight: bold;
}

p.Name {
    font-family: tahoma;
    font-size: 10pt;
    font-weight: bold;
    color: #cccccc;
    text-align: justify;
    direction: rtl;
}

a {
    color: #ffffff;
}
</style>
</head>

<body>

<div align="center">
<table border="0" width="750" cellspacing="0" cellpadding="0">
    <tr>
        <td colspan="2" height="50"><p id="header">
مجله الکترونیکی</p></td>
    </tr>
    <tr>
        <td width="50%">
            <p class="Name"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></p>
            <p><$MTEntryExcerpt$></p>
        </td>
        <td width="100%"><p class="Categories">
گزارش ویژه</p></td>
    </tr>
    <tr>
        <td width="50%">
            <p class="Name"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></p>
            <p><$MTEntryExcerpt$></p>
        </td>
        <td width="100%"><p class="Categories">
رسانه</p></td>
    </tr>
    <tr>
        <td width="50%">
            <p class="Name"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></p>
            <p><$MTEntryExcerpt$></p>
        </td>
        <td width="100%"><p class="Categories">
اینترنت</p></td>
    </tr>
    <tr>
        <td width="50%">
            <p class="Name"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></p>
            <p><$MTEntryExcerpt$></p>
        </td>
        <td width="100%"><p class="Categories">
کامپیوتر</p></td>
    </tr>
    <tr>
        <td colspan="2" height="50"><p id="Footer">Powered By: Movable Type</p></td>
    </tr>
</table>
</div>

</body>

</html>

تا به اینجای کار، تقریبا نصف کار انجام شده است. حال نوبت به آن می رسد که مشخص کنیم که در کجای صفحه، چه نوع مقاله ای نمایش داده شود. همان طور که گفته شد، برای این کار از تگ <MTEntries> استفاده می کنیم... خاصیتی تحت عنوان category وجود دارد که نوع گروه را مشخص می کند. همچنین از آنجا که ما در هر شماره مجله، تنها یک مقاله در هر گروه داریم، از خاصیت lastn برای نمایش تنها یک مقاله استفاده می نماییم. مثلا کد مربوط به گروه کامپیوتر، چیزی شبیه به کد زیر می باشد:

<MTEntries category="Computer" lastn="1">

</MTEntries>

این تگ را می بایست در بین ردیف کامپیوتر موجود در جدول، قرار دهید. یعنی در نهایت، کد شما می بایست چیزی شبیه به کد زیر باشد:

<MTEntries category="Computer" lastn="1">
    <tr>
        <td width="50%">
            <p class="Name"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></p>
            <p><$MTEntryExcerpt$></p>
        </td>
        <td width="100%"><p class="Categories">
کامپیوتر</p></td>
    </tr>
</MTEntries>

برای دیگر بخشهای مجله نیز، همین کار را انجام دهید. فقط به یاد داشته باشید که مقدار خاصیت category را، متناسب با نوع مقاله، تغییر دهید.

تا به اینجای کار، صفحه اصلی (Main Index) ما کامل شده است... برای همچین مجله الکترونیکی، یک صفحه دیگر نیز مورد نیاز می باشد. البته به دلخواه خود می توانید صفحات دیگری را نیز درست نمایید. اما ما در این مقاله، فقط به بررسی صفحاتی می پردازیم که برای یک مجله الکترونیکی مورد نیاز می باشند. آن صفحه، Individual Entry Archive نام دارد. کد مربوط به این صفحه را در زیر مشاهده می کنید:

<div align="center">
    <table border="0" width="750" cellspacing="0" cellpadding="0">
        <tr>
            <td height="50"><p id="header">
مجله الکترونیکی</p></td>
        </tr>
        <tr>
            <td height="50">
                <p class="Name"><$MTEntryTitle$></p><br>
                <div class="Body"><$MTEntryBody$></div>
            </td>
        </tr>
        <tr>
            <td height="50"><p id="Footer">Powered By: Movable Type</p></td>
        </tr>
    </table>
</div>

در این قطعه کد، از تگ <$MTEntryBody$> استفاده شده است. این کد، سبب نمایش مقاله شما می شود. این کد را می بایست در بین تگهای </body> و <body> قرار دهید. همچنین کد زیر را درون تگهای </style> و <style type="text/css">، کپی نمایید:

div.Body {
    line-height: 1.5;
    font-family: tahoma;
    font-size: 10pt;
    color: #cccccc;
    text-align: justify;
    direction: rtl;
}

تبریک! هر دو صفحه وب شما به طور کامل درست شد. حال به MT رفته و بر روی گزینه Templates کلیک نمایید. با این کار، لیستی از قالبهای وبلاگ (و یا در حقیقت، مجله الکترونیکی) خود را مشاهده می کنید. بر روی گزینه Main Index کلیک کرده و کدهای صفحه ای را که در بالا آن را ایجاد نمودید، درون جعبه متن Template Body کپی و در نهایت بر روی دکمه SAVE کلیک نمایید. سپس دوباره به قسمت Templates رفته و این بار، بر روی گزینه Individual Entry Archive کلیک کرده و کدهای مربوط به این صفحه را نیز، درون جعبه متن Template Body کپی و صفحه را SAVE نمایید. با انجام این کارها، قالبهای پیش فرض MT، به قالبهای مورد نظر شما، تبدیل می شوند. در نهایت بر روی گزینه Rebuild Site (قسمت سمت چپ، یک گزینه مانده به آخر) کلیک کرده تا صفحه ای نمایان شود. از منوی موجود درون صفحه، گزینه Rebuild All Files را انتخاب کرده و بر روی دکمه REBUILD کلیک نمایید.
پس از ساخت قالبهای مجله، نوبت به انتشار اولین شماره می رسد. بر روی گزینه
New Entry کلیک کنید تا صفحه ای نمایان شود.در قسمت Title، عنوان مقاله خود را بنویسید. این عبارت، به جای عبارت <$MTEntryTitle$> نمایان خواهد شد.در قسمت Primary Category، گروه مقاله خود را مشخص کنید. در این منو، شما می بایست چهار گروه Special, Media, Internet و Computer را داشته باشید.در قسمت Entry Body، متن کامل مقاله را وارد نمایید. این متن، به جای عبارت <$MTEntryBody$> نمایان خواهد شد.در قسمت Excerpt هم، توضیح و یا بخش کوتاهی از مقاله را وارد کنید... این متن، به جای عبارت <$MTEntryExceprt$> نمایان خواهد شد.پس از تکمیل کادرهای فوق، بر روی دکمه SAVE کلیک نمایید تا مقاله شما، انتشار یابد. برای 3 مقاله دیگر هم، همین کار را تکرار کنید...
تبریک! اولین شماره مجله الکترونیکی شما، با موفقیت، منتشر شد... همان طور که می بینید، برای شماره های بعدی، دیگر هیچ گونه مشکلی نخواهید داشت و تنها با یک کلیک، مجلات شما، منتشر خواهند شد. فقط به یاد داشته باشید که مجله خود را، به طور منظم منتشر کنید :-)

چگونه فایلهای PDF بسازیم؟

همان طور که می دانید، فایلهای PDF برای مقاله ها و کتابهای الکترونیکی به کار می رود و علت آن هم حجم بسیار کم آن می باشد. برای مشاهده فایلهای PDF، نیازمند نرم افزاری به نام Acrobat Reader هستیم. حال اگر بخواهیم که فایلهای PDF را خود تولید نماییم، چه کار می بایست کرد؟
برای درست کردن فایلهای
PDF، به نرم افزار Adobe Acrobat احتیاج داریم. دقت داشته باشید که فرق نرم افزار Acrobat Reader و Adobe Acrobat در آن است که به وسیله Acrobat Reader، شما تنها قادر به خواندن فایلهای PDF هستید، اما با استفاده از Adobe Acrobat، می توانید آنها را بخوانید، ویرایش کنید و یا آنها را ایجاد نمایید...برای ایجاد فایلهای PDF، از نرم افزار Acrobat Distiller که به همراه Adobe Acrobat نصب می شود استفاده می کنیم. روش کار به این صورت است که بعد از نصب Adobe Acrobat، پرینتری (Printer) تحت عنوان Acrobat Distiller (و یا نامی شبیه به آن) به طور اتوماتیک نصب می شود. سپس شما می توانید فایل متنی خود را به وسیله این پرینتر، پرینت کنید و به صورت یک فایل PDF در آورید. اما مشکلی که در اینجا وجود دارد، آن است که در 95% سیستم ها، این کار سبب ایجاد یک پیغام خطا می شود و شما قادر به ساخت فایلهای PDF با این روش نیستید!
برای حل این مشکل، می بایست مراحل زیر را دنبال کنید:1- به
Control Panel رفته و اپلت Printers and Faxes (این نام در ویندوز XP به کار می رود، ممکن است در ویندوزهای دیگر، این نام چیزی شبیه به Printers یا ... باشد) را باز کنید.2- سپس در پنل سمت چپ، بر روی گزینه Add a printer کلیک نمایید تا ویزارد Add Printer Wizard نمایان شود.
3- بر روی دکمه
Next کلیک کنید و در صفحه بعدی، گزینه Local printer... را انتخاب کرده و علامت Automatically... را بردارید.4- در صفحه بعدی که می بایست در آن Port پرینتر را مشخص کنید، گزینه LPT1 را انتخاب نمایید.5- در این صفحه می بایست نام یک پرینتر را انتخاب کنید. بهترین انتخاب، پرینترهای Agfa می باشد (من خودم مدل AGFA-AccuSet v52.3 را نصب کرده ام و کیفیت آن هم، بسیار عالی می باشد). البته دقت داشته باشید که پرینتری را که نصب می کنید، اگر سیاه و سفید باشد، فایل PDF شما نیز، به صورت سیاه و سفید در خواهد آمد. پرینتر Canon مدل Canon ColorPASS-Z5000، پرینتر رنگی با کیفیت فوق العاده عالی می باشد.
6- بقیه صفحات را هم همین طور پشت سر بگذارید (در این صفحات گزینه
No را انتخاب کنید).
با انجام مراحل بالا، پرینتر انتخابی شما نصب خواهد شد. حال فایل متنی مورد نظر خود را باز کنید (برای این کار می توانید از نرم افزار
Microsoft Word و یا نرم افزاری شبیه به آن استفاده کنید). دو کلید Ctrl+P را فشار دهید و یا گزینه File -> Print را انتخاب کنید تا پنجره Print نمایان شود.
در کادر بالای صفحه، پرینتر خود را انتخاب کنید (منظور همان پرینتری است که چند لحظه پیش آن را نصب نمودید). سپس مطمئن شوید که گزینه
Print to file حتما تیک خورده است (انتخاب شده است). در نهایت بر روی دکمه OK کلیک کنید تا پنجره ای نمایان شود.
در این پنجره، جایی را که می خواهید فایل مورد نظر ذخیره شود، انتخاب نمایید. این فایل دارای پسوند
prn خواهد بود و به صورت Default، ویندوز قادر به باز کردن آن نخواهد بود (منظور آن است که ویندوز نمی داند که آن را به وسیله چه نرم افزاری باز نماید). به همین دلیل هنگامی که می خواهید آن را باز کنید، پنجره Open With نمایان می شود.
در این پنجره، بر روی دکمه
Browse کلیک کنید و به جایی که Adobe Acrobat را در آن نصب کرده اید بروید. سپس به درون پوشه Distillr رفته و فایل acrodist را انتخاب کنید (این مشخصات برای Adobe Acrobat 5.0 می باشد. ممکن است نامها در ورژنهای دیگر نرم افزار متفاوت باشد).
بعد از انجام این کار، فایل پرینت شما (که با پسوند
prn می باشد)، توسط نرم افزار Acrobat Distiller باز شده و یکسری عملیات توسط نرم افزار انجام می شود. سپس در همان جایی که این فایل ذخیره شده، دو فایل ایجاد می شود. یکی با پسوند txt و دیگری با پسوند pdf. فایل با پسوند pdf همان فایل PDF مورد نظر شما می باشد. فایل با پسوند txt هم، عملیات نرم افزار در آن ذخیره شده است (به این فایل احتیاجی نیست، می توانید آن را پاک نمایید).+ با انجام کارهای گفته شده، دیگر نباید مشکلی در درست کردن فایلهای PDF داشته باشید

نسخه جدید Athlon 64

منبع: هفته نامه عصر ارتباط، شنبه 6 دی 1382، صفحه 29مترجم: دکتر بهارک اسدی
کمپانی
AMD در تلاش برای کسب سهم بیشتری از بازار کامپیوترهای رومیزی متوسط، هفته گذشته دست به عرضه نسخه جدیدی از پردازنده های Athlon 64 خود زد.
این پردازنده جدید که
Athlon 64 3000+ نام دارد با فرکانس دو گیگاهرتز کار می کند. یعنی همان فرکانس کار نسخه اولین Athlon 3200+ که در ماه سپتامبر وارد بازار شده بود. با این وجود Athlon 64 3000+ دارای حافظ کش 512 کیلوبایت است که باعث کاهش قابل توجه قیمت آن شده است.Athlon 64 3200+ دارای یک مگابایت حافظه کش بود.
AMD امیدوار است با این کار بتواند Athlon را در بازار پردازنده های ارزان قیمت جا بیاندازد.
این دقیقا شبیه همان کاری است که اینتل روی پردازنده های سری
Celeron خود انجام می دهد. پردازنده Celeron در واقع همان Pentium 4 است که نیمی از کش آن غیر فعال شده است. کارشناسان معتقدند که به احتمال زیاد AMD هم از همین روش برای ساخت Athlon 64 3000+ استفاده کرده است.بهای این پردازنده برای فروش عمده 218 دلار تعیین شده است. قیمت Athlon 64 3200+ برای فروش در همین مقیاس 417 دلار است که آن را به صورت گزینه ای دور از دسترس برای بسیاری از افرادی درآورده است.سریع ترین پردازنده خانواده 64 بیتی Athlon در حال حاضر Athlon FX-51 است که حدود 730 دلار قیمت دارد.پردازنده های Athlon 64 از مزایای متعددی از جمله امکان اجرای برنامه های کاربردی 32 و 64 بیتی برخوردارند، که البته تمام اینها منوط به وجود سیستم 64 بیتی است.تاکنون نسخه هایی از سیستم عامل لینوکس که قادر به پشتیبانی از پلتفرم 64 بیتی AMD هستند عرضه شده است اما عرضه نسخه 64 بیتی ویندوز XP به سال 2004 موکول شده است. پیش بینی می شود با عرضه این نسخه از ویندوز که ویژه پلتفرم AMD 64 طراحی شده، فروش پردازنده های 64 بیتی به یکباره اوج بگیرد.از سوی دیگر با اعلام برنامه محصول "roadmap" در سال 2004 از سوی AMD، پیش بینی های جدیدی در مورد این رده از پردازنده ها در حال شکل گیری است. در این برنامه دو هسته جدید 130 نانومتری Newcastle و 90 نانومتری Winchester به عنوان سری جدید پردازنده های Athlon معرفی شده است. طبق برنامه قرار است Newcastle روی سوکت استاندارد Athlon یعنی Socket 754 و همچنین سوکت ویژه سری Athlon FX یعنی Socket 939 عرضه شود، در حالی که Winchester فقط با Socket 939 عرضه خواهد شد.قرار دادن هسته Athlon روی Socket 939 که ویژه Athlon FX است به احتمال زیاد به معنای پشتیبانی Athlonهای جدید از حافظه دو کاناله DDR یا Dual Channel DDR است، یعنی همان امری که وجه تمایز اصلی Athlon FX نسبت به Athlonهای معمولی است.این مساله می تواند دلیل دیگری برای کم کردن حافظ کش پردازنده های Athlon باشد که هفته گذشته از سوی AMD به مورد اجرا گذاشته شد، چون در غیر این صورت توجیهی برای اختلاف قیمت زیاد میان Athlon 64 معمولی و سری FX باقی نخواهد ماند.

 

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد