PDA

View Full Version : مقاله: استفاده از تگ ها در سرویس های وبلاگ دهی



raziee
شنبه 07 آذر 1388, 21:01 عصر
"با توجه به محدودیت آپلود در سایت میتوانید پاور پوینت مربوطه را دانلود کنید تا از تمامی تصاویر استفاده کنید."
"نمونه سورس برای دانلود در فایل های ضمیمه آورده شده است."

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

مواردی که هدف این مقاله نیست!
این مقاله برای آموزش برنامه نویسی و یا طراحی وب سایت نیست.
این مقاله برای ایجاد و به کار گیری بانک های اطلاعاتی نیست.


مقدمه
در سیستم های وبلاگ دهی تگ هایی وجود دارد که از تگ های تعریف شده HTML و یا DHTML نیست. همچون سرویس بلاگفا که دارای تگ <BLOGFA> است .
همچنین دارای شبهه تگ هایی نظیر :
<-blogtitle->
[-blogtitle-]
<%blogtitle%>
هستند که در این مقاله با چگونگی ایجاد و به کارگیری آن آشنا خواهید شد.

آشنایی با تگ ها:
تگ ها در یک صفحه ی HTML ، به مرورگر میفهماند که قرار است کار خاصی انجام شود.
به طور مثال:
<div style=“color:green;”>سلام</div>
زمانی که مرورگر به این تگ رسید ، متن ”سلام“ را با رنگ سبز نمایش میدهد.
تگ ها از قوائد خاصی پیروی میکنند. مثلا هر تگ که شروع میشود باید پایانی داشته باشد. که این پایان یا در همان تگ شروع است: <br/> و یا خود تگ پایانیست: </div> .


تگ های سرویس های وبلاگ:
این تگ ها کاملا شبیه به تگ های HTML هستند اما جزء تگ های معین برای HTML نیستند و فقط کد هایی به منظور مشخص کردن قسمتی برای انجام عملیات جایگذاری(replace) توسط سرور هستند.
از این رو از این بعد ار این مقاله به جای ”تگ“ به آن ها ” کدهای مشخصه ” میگوییم.
برای درک بهتر در ادامه به ساخت یک سرویس دهنده که قابلیت ”ویرایش قالب“ را داشته باشد میپردازم و با آن توضیح میدهم.
در تصویر بعدی که مشاهده خواهید کرد ، تصویر صفحه ای است که کاربران یک سرویس در آن قالب وبلاگ خود را ویرایش میکنند.
به قسمت هایی که مشخص شدند توجه کنید.


ویرایش قالب وبلاگ
کد های مشخصه را کاربر در کادر متن مربوطه (ویرایش قالب) وارد میکند.
هر کدام از این کدهای مشخصه وظیفه ی خاصی دارند که از طرف سرویس ارائه دهنده مشخص می شود.
در این مثال وظایف آنها را اینگونه بیان کردیم:
<-BlogTitle-> : مشخص کننده ی نام وبلاگ.
<-BlogDescription-> : مشخص کننده توضیحات وبلاگ.
<BLOGPOST></BLOGPOST> : ارائه ی بلاک مربوط به پست ها. کدهای مربوط به پست باید داخل این بلاک قرار بگیرد.
<-PostTitle-> : مشخص کننده عنوان پست.
<-PostContent-> : مشخص کننده متن پست.

تصویر بعد خروجی یک وبلاگ توسط کاربر (کلاینت) در یک مرورگر را نمایش خواهد داد.
40445
تصویر زیر سورس صفحه است که توسط سرویس دهنده تولید شده:
40447
مشاهده کردید که سورس آن به چه صورت است و خبری از آن کدهای مشخصه در سورس صفحه نیست.
دوباره به ویرایش قالب میرویم و قالب خود را اینگونه تغییر میدهیم.


<html>
<head>
<title><-BlogTitle-></title>
<style>
Body{background-color:Green;color:#ffffff;font-family:tahoma;}
.Post{padding:5px;background-color:#000000; border:solid 2px C#‎‎‎‎‎‎ccccc;text-align:right;}
.PostTitle{padding:5px;background-color:#ffffff; color:blue;font-weight:bold;}
.PostContent{padding:15px;font-size:9pt;}
</style>
</head>
<body dir="rtl">
<center>
<div style="width:800px;">
<h2><-BlogTitle-></h2>
<h5><-BlogDescription-></h5>
<BLOGPOST>
<div class="Post">
<div class="PostTitle"><-PostTitle-></div>
<div class="PostContent"><-PostContent-></div>
</div></br>
</BLOGPOST>
</br>
</div>
</center>
</body>
</html>


روش کار
برای پیاده سازی این روش می بایست در بانک اطلاعاتی جدولی را ایجاد کرد تا قالب های ایجاد شده توسط کار بر را ذخیره کرد.
جدول دیگری را برای نگهداری پست ها(مطالب) در بانک ایجاد میکنیم.


ساخت سورس وبلاگ
بعد از درخواست یک کاربر (کلاینت) برای نمایش یک وبلاگ به سرور ، سرور شروع به تراکنش هایی با بانک اطلاعاتی کرده و اطلاعات این دو جدول (و جداول دیگر مورد نیاز (مثلا لینکستان، آرشیو وبلاگ و ...)) را خوانده و پردازش های مورد نیاز را انجام داده و سورس HTML آن را تولید کرده و به کاربر درخواست کننده (کلاینت) می فرستند.

ایجاد کلاس و نوشتن کد
کلاسی با نام CreateSource برای ساخت سورس ایجاد کرده و در آن دو متغیر سراسری ایجاد میکنیم.
string template;
string tempPost;
نحوه کار به این صورت است که ابتدا قالب وبلاگ از بانک اطلاعاتی گرفته شده و سپس اطلاعات وبلاگ به جای کدهای مشخصه جایگذاری شود و در نهایت به سمت کاربر درخواست کننده(کلاینت) فرستاده شود.
در ادامه کدهای مربوط به متد RetrieveTemplate که به منظور گرفتن قالب وبلاگ است را مشاهده میکنید.

private void RetrieveTemplate()
{
try
{
DataTable myDataTable = new DataTable();
WeblogServise.myClass.Connection myConnection = new WeblogServise.myClass.Connection();
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandText = "sp_RetrieveTemplate";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.AddWithValue("@UserID", "1");
myDataTable = myConnection.Retrieve(sqlCommand);
template = myDataTable.Rows[0]["Template"].ToString();
myDataTable = null;
myConnection = null;
sqlCommand = null;
}
catch { }
}


متد ReplaceOtherTag :

private void ReplaceOtherTag()
{
template = template.Replace("<-BlogURL->", "me.BlogServise.com");
template = template.Replace("<-BlogDescription->", "این بلاگ برای آموزش کد های سروریس دهندگان وبلاگ میباشد.");
template = template.Replace("<-BlogTitle->", "وبلاگ شخصی من....");
}
در این متد کدهای مشخصه ای که مربوط به وبلاگ میباشد جایگزین میشوند.

کدهای کامل کلاس:

using System;
using System.Data;
using System.Data.SqlClient;

namespace WeblogServise.myClass
{
public class CreateSource
{
string template;
string tempPost;
public string RetrieveSource()
{
RetrieveTemplate();
ReplaceOtherTag();
GetPostSource();
return template;
}

private void RetrieveTemplate()
{
try
{
DataTable myDataTable = new DataTable();
WeblogServise.myClass.Connection myConnection = new WeblogServise.myClass.Connection();
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandText = "sp_RetrieveTemplate";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.AddWithValue("@UserID", "1");

myDataTable = myConnection.Retrieve(sqlCommand);
template = myDataTable.Rows[0]["Template"].ToString();
myDataTable = null;
myConnection = null;
sqlCommand = null;
}
catch { }
}
private void GetPostSource()
{
int startTag;
int finishTag;
int len;

startTag = int.Parse(this.template.IndexOf("<BLOGPOST>").ToString());
startTag += 10;
finishTag = int.Parse(this.template.IndexOf("</BLOGPOST>").ToString());

if (finishTag > startTag)
{
len = finishTag - startTag;

tempPost = this.template.Substring(startTag, len).Trim();
this.template = this.template.Remove(startTag, len);
}

template = template.Replace("<BLOGPOST></BLOGPOST>", ReplacePost());
}
private string ReplacePost()
{
string title;
string content;

string temp1 = "";
string temp2 = "";

try
{
DataTable myDataTable = new DataTable();
WeblogServise.myClass.Connection myConnection = new WeblogServise.myClass.Connection();
SqlCommand sqlCommand = new SqlCommand();
sqlCommand.CommandText = "sp_RetrievePost";
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.AddWithValue("@UserID", "1");

myDataTable = myConnection.Retrieve(sqlCommand);

for (int Counter = 0; Counter <= myDataTable.Rows.Count -1; Counter++)
{
temp1 = tempPost;
title = myDataTable.Rows[Counter]["Title"].ToString();
content = myDataTable.Rows[Counter]["Content"].ToString();

temp1 = temp1.Replace("<-PostTitle->", title);
temp1 = temp1.Replace("<-PostContent->", content);

temp2 += temp1;
}


myDataTable = null;
myConnection = null;
sqlCommand = null;
}
catch { }
return temp2;
}

private void ReplaceOtherTag()
{
template = template.Replace("<-BlogURL->", "me.BlogServise.com");
template = template.Replace("<-BlogDescription->", "این بلاگ برای آموزش کد های سروریس دهندگان وبلاگ میباشد.");
template = template.Replace("<-BlogTitle->", "وبلاگ شخصی من....");
}
}
}


نتیجه :
کدهایی نظیر: <Blogfa> ، <-BlogTitle-> ، <%BlogTitle%> و .... کد هایی برای مشخص کردن نقاطی برای پردازش خاصی توسط سرور است که ما آن ها را ”کدهای مشخصه“ نامیدیم.
مقادیر مربوطه را به جای کدهای مشخصه جایگزین کرده و به کاربر نمایش میدهیم.

vb_bmw
یک شنبه 08 آذر 1388, 00:09 صبح
سلام.مقاله خوبی بود.

ولی روش اصلی این نیست.از روش هایی که بر اساس Template Engine ها هست کمک میگیرن که 90% همینه.

با این روشی که شما فرمودید در صورت درخواست زیاد به سرور کلی فشار با سرور میاد برای Replace و ... !

raziee
یک شنبه 08 آذر 1388, 11:37 صبح
ولی روش اصلی این نیست.از روش هایی که بر اساس Template Engine ها هست کمک میگیرن که 90% همینه.

ما قبلا در رابطه با چگونگی تغییر قالب در سروسی دهنده های بلاگ در همین سایت بحث کردیم.
به نتیجه ای جز چیزی که در بالا عرض کردم نرسیدیم.
در مورد روشی که فرمودید لطفا نمونه یا مقاله .... درست کنید. با این کار مطمئنا هم به من و هم بقیه کمک زیادی خواهید کرد.
ممنون میشم اگه نمونه بگذارید.

vb_bmw
یک شنبه 08 آذر 1388, 22:56 عصر
چیزی که من بیشتر از شما می دونم اینه که توی این سیستم هابعد از چند با اجرا شدن قالب رو تبدیل به HTML می کنن و از اون به بعد فقط از اون قالب استفاده می کنن.این جوری مقدار زیادی از replace ها حذف میشه.همین.

دقیقا یادم نیست به چه اسمی دیدم ، یک پترن خاصی برای این موضوع طراحی شده که بیشتر سیستم ها از اون استفاده میکنن.

update:
راستی روش دیگه هم من جایی دیدم که روش بحث شده بود ، اونم این بود بخش هایی مثل هدر و فوتر و غیره رو که تغییری ندارند رو توی بخش های مختلف نگه داری میکنن و قسمت تکرار شونده رو جدا می سازن و بعد این سه قسمت رو جوین میکنن.
شاید دلیل اینکه شما توی وبلاگ های Blogfa ، چیزی مثل viewstate نمی بینید همینه.چون از قبل آماده شده و فقط جایگزینی اعمال شده.
.البته من کا مقاله رو متوجه نشدم چون فرانسوی بود و گوگل هم درست ترجمه نکرد.ولی از روی کد ها این طور میشد فهمید.

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

گفتم 90% همین روش شماست فقط تکنیک های خاصی استفاده میشه.

به نظرم ارزشش رو داره به عنوان یه پروژه اپن سورس روش کار بشه.

raziee
سه شنبه 10 آذر 1388, 09:35 صبح
راستش نمیدونم چی بگم.
از صحبت برداشت کاملی نداشتم. اما:
این سیستم هابعد از چند با اجرا شدن قالب رو تبدیل به HTML می کنن
تو فکر بودم که بجایی که در هر بار درخواست برای نمایش وبلاگ سرور بیاد و این سورس رو بگیره و ریپلیس کنه ، در هر بار که وبلاگ آپدیت میشه بیاد و این کار (ساخت سورس) رو انجام بده و ذخیره کنه و در هر بار درخواست همون سورس ساخته شده رو نمایش بده.
چون معمولا تعداد درخواست یک وبلاگ برای نمایش خیلی بیشتر از تعداد ویرایش هاست.
مثلا ممکنه که یک وبلاگ در روز مثلا 200 بار بازدید داشته باشه ولی در هر روز فقط یک بار آپدیت بشه. بنابراین تعداد انجام روش ریپلیس از 200 بار به 1 بار میرسه و فقط گرفتن از بانک و نمایش اون هست.
در کل اگر قرار بر این باشه که سرویس وبلاگ پیاده سازی بشه(روی هاست) باید دنبال راهکارها برای کاهش کار سرور باشیم.(که با روشی که قبل تر ذکر کردم فکر میکنم دیگه یکبار ریپلیس کردن برای سرور کار زیادی نباشه حالا شما بگین در اون سرویس 10000 وبلاگ روزانه آپدیت میشن دیگه پردازش زیادی نیست) اما با توجه به اینکه این پروژه(سیستم مدیریت وبلاگ) یک پروژه درسی برای من بود خیلی روی کاهش فعالیت سرور کار نکردم.

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

با همون روشی که در بالا گفتم(ایجاد سورس در زمان آپدیت شدن) دیگه این روشی که شما فرمودید شاید کارایی نداشته باشه.

به نظرم ارزشش رو داره به عنوان یه پروژه اپن سورس روش کار بشه
کدوم پروژه منظور پروژه سرویس بلاگ هست یا منظورتون تنها ویرایش قالب؟
من قصد داشتم پروژه دانشگاهیم رو برای دانلود بگذارم اما به قصد کردم که کامل ترش کنم و بعد اوپن سورس بگذارم.

raziee
چهارشنبه 11 آذر 1388, 22:10 عصر
کاربران دیگه نظری در این باره ندارند؟
دوستانی که دانلود کردند؟
روشی؟ حرفی ؟ سخنی؟ گفتگویی؟ در رابطه با پست 5 و پست 6 کسی نظری نداره؟

hobab-theme
جمعه 11 دی 1388, 00:10 صبح
ممنون دوست عزیز
منم فکر می کنم که وقتی یه قالب از پنل مدیریت ارسال می کنیم توی بانک ذخیره نمیشه و از اون یه پیج اچ تی ام ال ایجاد می کنن ؟!
دقیق نمی دونم فقط یه نظر بود
بازم ممنون از کار خوبت اگر هم روش 100% درست نباشه ولی بازم به کسب تجربه و آگاهی بسیار کمک میکنه
موفق باشید

raziee
جمعه 11 دی 1388, 10:25 صبح
منم فکر می کنم که وقتی یه قالب از پنل مدیریت ارسال می کنیم توی بانک ذخیره نمیشه و از اون یه پیج اچ تی ام ال ایجاد می کنن ؟!

خیر !
بنده که همچین نظری ندارم.
دلیل:
1 : پسوند خود صفحات رو ببینید.
2 : در این صورت یه سروریس دهنده که 50.000 عضو داره که هر وبلاگ چند صفحه ی html باید در سرور داشته باشه؟
توجه کنید که در قسمت آرشیو وبلاگ شما میتونید پست های گذشته رو هر کدوم رو در یک صفحه ببینید. یعنی برای تمام این ها یک صفحه ی html ساخته شده؟
مثلا هر وبلاگ نویس فقط و فقط 20 پست داشته باشیه ، اون وقت 50.000 * 20!!!!!!!!!!!!!
تازه حالا اگه قالب رو تغییر داد چی؟
چه اتفاقی میافته؟

hobab-theme
جمعه 11 دی 1388, 12:08 عصر
شما به هر حال واسه پروژتون رو این موضوع تحقیق کردید ولی این دو تا دلیلی که مطرح کردید قابل قبول نیست!!!

پسوند خود صفحات رو ببینید
بله پسوند صفحات بلاگها یا .aspx هست یا php . منظور من این هست که محتوا رو از فایل اچ تی ام ال با streamReader میگرن و Replace می کنن

در این صورت یه سروریس دهنده که 50.000 عضو داره که هر وبلاگ چند صفحه ی html باید در سرور داشته باشه؟
توجه کنید که در قسمت آرشیو وبلاگ شما میتونید پست های گذشته رو هر کدوم رو در یک صفحه ببینید. یعنی برای تمام این ها یک صفحه ی html ساخته شده؟
مثلا هر وبلاگ نویس فقط و فقط 20 پست داشته باشیه ، اون وقت 50.000 * 20!!!!!!!!!!!!!

100% مخالفم
چون شما برای هر صفحه از وبلاگتون که یه قالب جدا نمیذارید ؟
یه قالب میذارید واسه کل صفحات . حالا جدیدآ هم که تو بعضی از سرویس دهنده ها امکان ایجاد صفحات جدا به وجود اومده که نهایتاً شما دو تا قالب رو می خواید آپلود کنید . یعنی هر کس فقط دو تا صفحه اچ تی ام ال داره

تازه حالا اگه قالب رو تغییر داد چی؟
خوب مثل اینه که قالب رو از بانک ویرایش کنید . هیچ فرقی نمی کنه
-----------------------------------------
موفق باشید

raziee
جمعه 11 دی 1388, 12:44 عصر
یعنی هر کس فقط دو تا صفحه اچ تی ام ال داره

فکر کنم الان متوجه شدم شما منظور شما چی بود.
منظورتون اینه که اون قالب ها رو در فایل های html بنویسیم.
من فکر کردم میگید صفحات وبلاگ رو تو html بنویسیم که مطلب قبلی رو نوشتم.

حالا با این موضوعی که شما می فرمایید چه سودی نصیب ما میشه از این کار؟
به غیر از این که :
1: حجم هست افزایش پیدا میکنه.»»» بک آپ گیری و تغییر سرور سخت میشه.
2: دیگه نمیتونیم یه قسمت از پردازش رو به پایگاه داده بدیم.(میتونیم برای کم کردن کار ریپلیس قسمتی رو به بانک بدیم که در روشی که شما فرمودید همچین امکانی نیست)

Alireza_Salehi
جمعه 11 دی 1388, 21:30 عصر
روشی که برای تولید یک سرویس مدیریت بلاگ استفاده میشه باید حداقل استفاده از منابعی مانند پردازنده و حافظه موقت رو داشته باشه، چون مشغول بودن این دو به معنی معطل شدن کاربران و پایین آمدن بازدهی است.
در واقع اگر قرار باشه منابع سرور اولویت بندی بشه با توجه به هزینه توسعه و نگهداری اول پردازنده و رم، بعد پهنای باند و بعد فضای دیسک در نظر گرفته می شود.

حالا برای یک سیستم مدیریت بلاگ تفاوتی که در اولین نظر جلب توجه میکند (نسبت به یک سایت خبری معمولی) مسئله نحوه مدیریت و تولید محتوا بر اساس Template ها است.

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

مسئله ای که هست اینه که چطوری با حداکثر کارائی اطلاعات پایگاه داده با قالب بلاگ ادغام بشن و به کاربر نمایش داده بشن، باید دید چه روش هایی برای این کار هست، در ضمن باید دید قالب فقط در مرحله تولید صفحات مسئله ساز میشه یا جای دیگری هم باید بهش فکر بشه؟

از دید مدیر سیستم:
باید بتواند قالب های جدید و قالب هایی که کاربر در آنها تغییراتی می دهد را در کمترین زمان و بیشترین دقت ممکن اعتبارسنجی کند (از لحاظ صحت کدهای HTML و کدهای مخصوص سیستم بلاگ و استانداردهای مورد نظر مدیر یا وب) .

از دید صاحب بلاگ:
باید بتواند در سریع ترین زمان ممکن و با کمترین دانش تغییرات مورد نظر را در وبلاگ خود و در قالب انتخابیش اعمال نماید.

حالا روشی که هم سریع باشه هم کمترین منابع رو مصرف کنه و هم قابلیت اعتبارسنجی قالب را داشته باشد چیست؟
1. روشی که با استفاده از متد Replace کار را انجام میدهد کاری به اعتبارسنجی ندارد.
2. XSL و XSLT این قابلیت را دارد که یک قالب را با جایگذاری اطلاعات به فرمتی دلخواه تبدیل کند و در عین حال اعتبار قالب را در مقابل قانونی از پیش تعریف شده تصدیق کند.

من خودم کارائی این دو روش را درمقابل هم تست نکرده ام، ولی به نظرم XSL کارائی چنان بالائی نخواهد داشت. ولی اگر به نوشتن فایل های XSL مسلط بشید مرحله تصدیق اعتبار قالب و جایگذاری متغییر های قالب با مقادیر مورد نظر 2 تا 3 خط کد بیشتر لازم نخواهد داشت!

در نهایت ما به یک شبه کامپایلر نیاز داریم چون یک کد با یک سری متغییر داریم که باید جایگزین شوند و درعین حال این کد باید صحیح هم باشد.
البته افزایش سرعت و کاهش منابع مهمترین مسئله است.

hashemi85sep
چهارشنبه 19 اسفند 1388, 08:28 صبح
با سلام خدمت اساتید محترم
میخواستم بدونم میشه که هدر وبلاگ رو تغییر داد ؟
اگه این امکان وجود داره باید چه تگ هایی رو تغییر داد؟
با تشکر

jingiliboyz
چهارشنبه 19 اسفند 1388, 08:46 صبح
<html>
<head>
<title><-BlogTitle-></title>
<style>
Body{background-color:Green;color:#ffffff;font-family:tahoma;}
.Post{padding:5px;background-color:#000000; border:solid 2px C#‎‎‎‎‎‎‎ccccc;text-align:right;}
.PostTitle{padding:5px;background-color:#ffffff; color:blue;font-weight:bold;}
.PostContent{padding:15px;font-size:9pt;}
</style>
</head>
<body dir="rtl">
<center>
<div style="width:800px;">
<h2><-BlogTitle-></h2>
<h5><-BlogDescription-></h5>
<BLOGPOST>
<div class="Post">
<div class="PostTitle"><-PostTitle-></div>
<div class="PostContent"><-PostContent-></div>
</div></br>
</BLOGPOST>
</br>
</div>
</center>
</body>
</html>


دوست عزيز سوالم اينه كه كد ها رو چطور به اين صورت زيبا در اينجا قرار دادي چون من خيلي سر اين مسئله مشكل دارم و كد هارو نميتونم به اين راحتي در اينجا قرار بدم وقتي قرار ميدم بهم ميريزه

micron
دوشنبه 27 دی 1389, 20:05 عصر
سلام به دوستان
من هم مدتي هست كه دارم روي سيستم هاي وبلاگ و شيوه كارشون مطالعه ميكنم.
بهترين شيوه اي كه به ذهن ناقص من ميرسه اينه كه :
ابتدا كه كاربر قالب مورد نظر خودشو ثبت ميكنه. سايت در يك فيلد بياد قالب رو ذخيره كنه و در فيلد ديگه كد كمپايل شده صفحه رو
(منظور از كد كمپايل شده يعني جايگزيني اطلاعات با كدهاي مشخصه ) بعد هر بار كه درخواستي براي نمايش وبلاگ داده ميشه اون كد كمپايل شده عينا به كاربر نمايش داده بشه.
البته اين كد بايد در زمان هاي به روز رساني و ارسال پست تغيير كنه (به روز بشه )
البته اينو دوستان هم گفته بودند.

البته در يه جايي هم به چشمم خورده بود كه فردي گفته بود ميشه از User Control براي سيستم وبلاگ استفاده كرد كه توضيحات چنداني نداده بودند.
دوستان اگه كسي هم در مورد اين موضوع چيزي ميدونه ما رو راهنمايي كنند
ممنون

micron
پنج شنبه 30 دی 1389, 06:41 صبح
دوستان مجددا سلام
يه سوالي داشتم
اگه بخواييم با روش فوق براي وبلاگمون يه هدر درست كنيم كه سمت سرور اجرا بشه چيكار بايد بكنيم.
بطور مثال براي همين وبلاگي كه دوستمون زحمت كشيدند و گذاشتند ميخواهيم يه هدر مانند سايت پرشين بلاگ يا ورد پرس درست كنيم. من هر هدري طراحي ميكنم و به كد هاي صفحه اضافه ميكنم، در زمان اجراي وبلاگ تمامي اشيا محيط دات نت رو نشون نميده. اونطوري كه من فهميدم فقط بايد از دستورات Html استفاده كنم.
ايا راهي هست كه از اجاكس و اشيا دات نت استفاده كرد و اجرا هم بشه؟

raziee
پنج شنبه 30 دی 1389, 10:40 صبح
اگه بخواييم با روش فوق براي وبلاگمون يه هدر درست كنيم كه سمت سرور اجرا بشه چيكار بايد بكنيم.
منظورتون از هدر چیه؟
الگوریتم ساخت محتویات وبلاگ به گونه ای هست که اجزای اجرای کنترل های سمت سرور رو نمیده. مثلا اگه شما یکی از کنترل های ASP.NET رو بنویسید این کنترل رندر نخواهد شد و عینا در خروجی نوشته خواهد شد.
حالا اگه میخواهید به کاربرانتون امکاناتی بدهی که تنظیماتی رو در سمت سرور داشته باشه میبایست به وسیله ی همین کدهای قالب این کار را انجام دهید.
به عنوان مثال کاربر مشخص کند که چه تعداد از لینک ها نمایش داده شود.

بطور مثال براي همين وبلاگي كه دوستمون زحمت كشيدند و گذاشتند ميخواهيم يه هدر مانند سايت پرشين بلاگ يا ورد پرس درست كنيم. من هر هدري طراحي ميكنم و به كد هاي صفحه اضافه ميكنم، در زمان اجراي وبلاگ تمامي اشيا محيط دات نت رو نشون نميده. اونطوري كه من فهميدم فقط بايد از دستورات Html استفاده كنم.
ايا راهي هست كه از اجاكس و اشيا دات نت استفاده كرد و اجرا هم بشه؟
اگه منظورتون از هدر "قسمت وبلاگی دیگر،ایجاد وبلاگ،گزارش تخلف" در پرشین بلاگ هست!! هیچ چیز خاصی نیست و یک کد HTML هست که به خروجی تزریق میشه.

fakhravari
شنبه 19 آذر 1390, 00:04 صبح
با سلام
درمورد dll فایل WeblogServise کمی توضیح میدهید.:لبخند:

raziee
شنبه 19 آذر 1390, 09:27 صبح
با سلام
درمورد dll فایل WeblogServise کمی توضیح میدهید.:لبخند:
توضیح در مورد کدوم قسمتش؟ سورس برنامه رو هم باید گذاشته باشم اون رو بررسی کنید خیلی سادست اگه موضوعی بود در خدمتم.

hamed2592
سه شنبه 16 اسفند 1390, 00:14 صبح
با سلام

به نظر من همون روشی که شما فرمودین درسته .

بعضی قسمت ها رو باید هر سری که سایت بالا میاد ایجاد کرد ، مثل افراد آنلاین !!! یا بازدید امروز و دیروز !

نمیشه بعد از Update وبلاگ ... بیخیال این قسمت ها بشیم .

البته ممکنه بلاگفا از روش شما استفاده کنه ! و صفحه اول رو بسازه چون چیزی به نام آمار بازدید نداره . اما مجددا این بحث پیش میاد که تعداد صفحات رو چیکار میکنه !

یعنی وقتی کسی میره صفحه 2 وبلاگ ، یعنی باز یه صفحه ی HTML ساخته شده و اونو load میکنه ! که بعید میدونم .

اصولا سرورهایی واسه این نوع سرویس دهنده ها اختصاص داده میشن که توانایی انجام همچین درخواست ها رو داشته باشن .

به نظر این حقیر اطلاعات قالب به بانک میره و از اوجا لود میشه .

البته من چند یه پیشنهاد دارم :

بر اساس تگ های داده شده ، source قالب رو به قسمت های مختلف میشکنن و در فیلد های جدا گانه ذخیره میکنن .

اینطوری از IndexOf هم نمیخواد استفاده کرد .

یعنی کل تگ پست رو جدا کنیم . توی یه فیلد میذارم . و به جای tag پست یه تگ خاص مثلا {POST} میذارم .

صفحه که load شد از دیتابیس تگ post رو میخونیم و با یه replace ساده اون رو سر جای خودش قرار میدیم یعنی جایگذین تگ {POST} میکنم .