آبجی
21st April 2010, 04:03 AM
ارسال به دوستان از طريق 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اي باشد. يک قالب ساده متني ممکن است چيزي شبيه به کد زير باشد:
Code:
<MTMailFrom> has sent you a link!
<MTMailMessage>
Title: <MTEntryTitle>
Link: <MTEntryPermalink>
<MTEntryBody remove_html="1">
قالب mail_entry_html مي بايست يک سند HTML معتبر همانند Individual Entry Archive باشد. اين قالب ممکن است چيزي شبيه به کد زير باشد:
Code:
<!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 <<MTMailFrom remove_html="1" encode_html="1">></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>) قرار دهيد:
Code:
<script type="text/javascript" language="javascript">
<!--
function OpenEmail (c) {
window.open(c,
'email',
'width=480,height=480,scrollbars=yes,status=yes');
}
//-->
</script>
و کد لينک را به صورت زير تغيير دهيد:
Code:
<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) خالي در صورتي که هيچ گونه خطايي به وجود نيايد.
قالب فرم ايميل
اين قالب به صورت پيش فرض، چيزي شبيه به کد زير مي باشد:
Code:
<!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 <<MTMailTo encode_html="1">>.
</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 شدن مي باشد.
همان طور که مي دانيد، 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اي باشد. يک قالب ساده متني ممکن است چيزي شبيه به کد زير باشد:
Code:
<MTMailFrom> has sent you a link!
<MTMailMessage>
Title: <MTEntryTitle>
Link: <MTEntryPermalink>
<MTEntryBody remove_html="1">
قالب mail_entry_html مي بايست يک سند HTML معتبر همانند Individual Entry Archive باشد. اين قالب ممکن است چيزي شبيه به کد زير باشد:
Code:
<!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 <<MTMailFrom remove_html="1" encode_html="1">></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>) قرار دهيد:
Code:
<script type="text/javascript" language="javascript">
<!--
function OpenEmail (c) {
window.open(c,
'email',
'width=480,height=480,scrollbars=yes,status=yes');
}
//-->
</script>
و کد لينک را به صورت زير تغيير دهيد:
Code:
<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) خالي در صورتي که هيچ گونه خطايي به وجود نيايد.
قالب فرم ايميل
اين قالب به صورت پيش فرض، چيزي شبيه به کد زير مي باشد:
Code:
<!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 <<MTMailTo encode_html="1">>.
</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 شدن مي باشد.