PDA

View Full Version : الگورتیم ایجاد امکان ویرایش قالب مانند پرشین بلاگ



peymannaji
یک شنبه 13 اردیبهشت 1388, 15:44 عصر
با سلام

اگر در پرشین بلاگ ثبت نام کرده باشید دیدید که یک قسمت ویرایش قالب داره ... میخوام بدونم کلا قسمت قالب ها و همینطور این قسمت چگونه کار میکنه؟؟؟

و اگر کد قالبی مانند این لینک (http://www.persianweblog.ir/bf/temp/nasim/bf.htm) را نگاه کنید تگ هایی رو به عنوان مثال <-BlogAbout-> (http://www.persianweblog.ir/bf/temp/nasim/%3C-PostLink-%3E) میبینید . چگونه مقدار مربوطه با تگ <-BlogAbout-> (http://www.persianweblog.ir/bf/temp/nasim/%3C-PostLink-%3E) جایگزین میشه ؟

milade
چهارشنبه 16 اردیبهشت 1388, 17:02 عصر
سلام دوست عزیز
یه جستجو بزنید چرا که قبلا" پاسخ این موضوع رو دادم ...
اما خلاصه بگم که این متن ( قالب ) در Db ذخیره شده و قبل از دادن خروجی با Replace با مقادیری که از بانک یا هر چیز و جای دیگه کشیده شده بیرون جایگزین میشه

موفق باشید

peymannaji
چهارشنبه 16 اردیبهشت 1388, 19:34 عصر
ممنون میلاد جان ,والا من سرچ کردم اما نتونستم مطلب شما رو هم پیدا کنم چون کیوورد دقیقا رو نمیدونم .

یک سوالی که پیش میاد اینه که این کدهای قالب چگونه بارگزاری میشود ( نحوه نمایش آن ) ؟ آیا صفحه وبلاگ یک صفحه خالی است و فقط یک literal درون آن قرار دارد ,و در فرم لود کدهای html را از db گرفته و آن را در literal میریزیم ؟

milade
چهارشنبه 16 اردیبهشت 1388, 20:23 عصر
سلام استاد
بله !
وبلاگ چیزی نیست جز Replace ها !
حتی در قسمتهایی که یه grid هستش اونم از طریق کد هست و وجود خارجی نداره !


,والا من سرچ کردم اما نتونستم مطلب شما رو هم پیدا کنم چون کیوورد دقیقا رو نمیدونم .
والا از موقعی که FTS رو غیر فعال کردن جستجو سخت تر شده اما اون تاپیک هم چیزی شبیه به همین بود و شما یه سرچ با "Replace" توی پستهای من بزن
هر چند اونجا هم خیلی فنی بحث نشسد و در حد همین توضیحات اما با بسط داده شد
در هر صورت هر شوالی بود من در خدمتتون هستم ;)

با ارزوی بهترینها

raziee
پنج شنبه 17 اردیبهشت 1388, 13:06 عصر
سلام.
این موضوع رو بنده هم دنبال میکنم. برای پروژه فارغالتحصیلی همچین موضوعی رو انتخاب کرده ام.
با مشورت هایی که با چند تن از دوستان داشتم به تبدیل کد های XML به HTML اشاره کردند. و اینکه در بانک میبایست از XMl کمک گرفت و البته از یک تکنولوژی دیگه هم اسم بردند که در خاطرم نیست.
قرار بود نمونه سورس و کتاب هایی رو برام ایمیل کنند که هنوز نکردند اگر بنده به نتیجه ای رسیدم بچه های برنامه نویس رو هم در جریان میگذارم . خواهشن اگر شما هم به نتیجه رسیدید در همین پست اعلام کنید

raziee
پنج شنبه 17 اردیبهشت 1388, 13:34 عصر
دوباره سلام.
جناب میلاد عزیز من پست مطلبی رو که قبلا نوشته بودید در این رابطه رو پیدا کردم البته اگه همین پست (http://barnamenevis.org/forum/showthread.php?t=149348) باشه.

فکر نمیکنم که این موضوع باشه. دلیلم اینه که اگه بنا بر این کار یعنی پیدا کردن و ریپلیس کردن اطلاعات باشه - با توجه به بازدید های زیاد(مثلا بلاگفا با چند هزار بازدید در روز) چه بار پردازشی رو به سرور میدید.

milade
پنج شنبه 17 اردیبهشت 1388, 13:55 عصر
فکر نمیکنم که این موضوع باشه. دلیلم اینه که اگه بنا بر این کار یعنی پیدا کردن و ریپلیس کردن اطلاعات باشه - با توجه به بازدید های زیاد(مثلا بلاگفا با چند هزار بازدید در روز) چه بار پردازشی رو به سرور میدید.
سلام دوست عزیز
بنده نظرم اینه !
شاید شما نظری متفاوت داشته باشید که قابل بررسی و احترامه
در ضمن فکر نمیکنم یه Replace سربار باشه !!!
لطفا" شما هم نظرتون رو بگید چرا که من تا حالا این ایده به ذهنم رسیده و ممکنه ایدههایی نوین تر هم باشه !

با ارزوی توفیق

peymannaji
پنج شنبه 17 اردیبهشت 1388, 16:28 عصر
میلاد جان من میخوام برای نمایش محتوا از یک repeater استفاده کنم . شما میگید که کدهای جنریت شده مربوط به repeater رو هم در دیتابیس ذخیره کنم و موقع لود شدن فرم آن کدها رو مثلا با کیوورد <content> جا بجا کنم آیا درست متوجه شدم ؟

اگر اینگونه باشه . پس ابتدا باید کدهای قالب بلاگ لود بشه و بعد از آن کدهای مربوط به repeater و ... بهترین رویداد برای این کار رو چه توصیه میکنید ؟

با تشکر میلاد جان

milade
پنج شنبه 17 اردیبهشت 1388, 16:47 عصر
سلام استاد
منظورتون رو از محتوا متوجه نشدم
اما اگه منظورتون پستهای کاربران هست میتونید از یه Grid که با کد نویسی ساخته شده ، مقدار دهی شده استفاده کنید و در اخر هم یه جایی بار بشه

اما اگه منظورتون این نبود لطفا" بیشتر توضیح بدید که منظورتون از " محتوی " چیه

با تشکر و ارزوی پیروزی

raziee
پنج شنبه 17 اردیبهشت 1388, 18:15 عصر
لطفا" شما هم نظرتون رو بگید چرا که من تا حالا این ایده به ذهنم رسیده و ممکنه ایدههایی نوین تر هم باشه

همونطور که گفتم من این موضوع رو برای پروژه فارغ التحصیلی برداشتم که باید تا آخر تابستون تحویل بدم. حتما روند پشرفت رو به اطلاع دوستان خواهم رساند.
و اگر هم شد و خود پروژه رو میگذارم.

peymannaji
پنج شنبه 17 اردیبهشت 1388, 20:42 عصر
میلاد جان برای قالب وبلاگ و آیتم های ثابت تو وبلاگ مانند نام و درباره من که یک فیلد بیشتر ندارند کار خیلی ساده هست . با replace قابل حل هست البته دوستمون جناب رضایی ظاهرا راهکاری سراغ دارند . حالا از همه این موارد بگزریم . میرسیم به نشان دادن پستها - لینک های دوستان و ... مواردی که بیش از یک رکورد دارند . که اصل قضیه هم همینجا هست . با توجه به قالبی از پرشین بلاگ که اینجا قرار دادم یک مقدار قضیه پیچیده میشه و فکر نمیکنم با کد نویسی ران تایم این مسئله به راحتی و تنها صورت بگیره ... با این حال حسابی دارم روش کار میکنم ...:عصبانی++:

raziee
پنج شنبه 17 اردیبهشت 1388, 21:59 عصر
البته دوستمون جناب رضایی ظاهرا راهکاری سراغ دارند
اگر منظورتون بنده هستم فامیلیم رضیئی هست.
ببینید تا اینجا که بنده تا الان پیگیر بودم و متوجه شدم این کد ها واقعا کد های XML هستند و نه کد هایی که فقط برای تعیین باشند تا به ریپلیس بیانجامند.
به همین خاطر حتی به جایی رسیده بودم که قرار بود اطلاعات رو مستقیما در XML بنویسم که خوشبختانه دوستی راهنماییم کردند.
طبق راهنمایی همان دوست اطلاعات به صورت XML در بانک اطلاعاتی ذخیره میشوند. و سپس این تگ های XMl هستند که درون قالب قرار میگیرند. اما نه به همین صورت بلکه میبایست برروی همین تگ های XML نیز پردازشاتی صورت گیرد. که هنوز بی اطلاعم.
حالا اطلاعات دیگر رو هفته ی آتی مینویسم علت تاخیر یک هفته ای هم این است که شنبه از تهران خارج میشوم و چهار شنبه دوباره برمیگردم. در این زمان با چند تن از دوستان در دانشگاه به گفتگو خواهیم نشست.

raziee
پنج شنبه 24 اردیبهشت 1388, 11:40 صبح
سلام.
این کتاب رو بگیرید:

Professional ASP.NET 2.0 XML

Published by

Wiley Publishing, Inc.

10475 Crosspoint Boulevard
Indianapolis, IN 46256

www.wiley.com

Copyright © 2006 by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN-13: 978-0-7645-9677-3
ISBN-10: 0-7645-9677-2
Manufactured in the United States of America

فصول شش و هفت به درد ما میخوره.
همون طور که قبلا گفته بودم این کد ها XML هست. که بوسیله یک تکنولوژی دیگه به نام
XSLT میشه تبدیلشون کرد و .... .

این کتاب رو از دوستی گرفتم که خودش در این زمینه XML فعالیت کرده و وقتی بهشون گفتم که همچین کدی رو میخوام (مثل <BLOGFA>) بهم این کتاب رو پیشنهاد کرد و گفت که به این وسیله میشه.
حالا باید بشینم و این کتاب رو بخونم.
امیدوارم به نتیجه برسید.

peymannaji
جمعه 25 اردیبهشت 1388, 00:46 صبح
ممنون دوست عزیز لطف میکنید لینک صفحه مربوطه اون کتاب رو بزارید . من هر چی سرچ میکنم میره تو انتشارات wrox رو برام میاره . البته تو انتشارات wrox رو دیدم دقیقا همین فصل هایی که گفتید مطابقت میکنه ....

raziee
شنبه 26 اردیبهشت 1388, 00:23 صبح
ممنون دوست عزیز لطف میکنید لینک صفحه مربوطه اون کتاب رو بزارید
من لینک دانلود رو از دوستی گرفتم . نمیدونم که این اجازه رو به من میده که لینک رو به دیگران بدم یا نه.
به ایشون ایمیل زدم و پرسیدم اگر اجازه دادند حتما در اختیارتون قرار میدم.

peymannaji
شنبه 26 اردیبهشت 1388, 00:49 صبح
من لینک دانلود رو از دوستی گرفتم . نمیدونم که این اجازه رو به من میده که لینک رو به دیگران بدم یا نه.
به ایشون ایمیل زدم و پرسیدم اگر اجازه دادند حتما در اختیارتون قرار میدم.



دوست عزیز . شما در ابتدا به هدف کمک کردن امدید . کلی هم منتظر شما بودیم . الان میگید اگر اجازه بده دوستتون !!! نام انتشارات و مشخصات هم درست نیست .
اول از همه خدمت شما عرض کنم اون کتاب مال انتشارات wrox هست که شما دارید . در ضمن اون چیزی که اونجا گفته با نحوه پیاده سازی این سیستم در سیستم های بلاگ دهی مانند پرشین بلاگ متفاوت هست . و در ضمن من لینک دانلود رو نخواستم لینک صفحه مربوطه به اون کتاب رو خواستم ...


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

raziee
شنبه 26 اردیبهشت 1388, 00:51 صبح
من از دوستم درخواست کردم که راینبحث شرکت کنند. اگر وقت داشته باشن و بیاد فکر میکنمکه بتونیم از راهنمایی هاشون استفاده ی فراوان داشته باشیم.

راستی این لینک (http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0764596772.html) کتاب در خود انتشارات هست.
---------
یه سوال.
به نظرتون اگه از برنامه نویسان خود این سایت های ارائه دهنده ی وبلاگ دعوت کنیم که در بحث ما شرکت کنند، میپذیرند؟

raziee
شنبه 26 اردیبهشت 1388, 01:05 صبح
شما در ابتدا به هدف کمک کردن امدید
بنده الان هم هدفی جز این ندارم.

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

الان میگید اگر اجازه بده دوستتون !!!
بله . چون از کسی گرفتم ادب حکم میکنه که اجازه بگیرم.

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

در ضمن اون چیزی که اونجا گفته با نحوه پیاده سازی این سیستم در سیستم های بلاگ دهی متفاوت هست
بنده هم نگفتم که حتما این هست. این نتیجه گیری های بنده بوده . من فقط نظرم رو گفتم. قبلا هم گفته بودم.

و در ضمن من لینک دانلود رو نخواستم لینک صفحه مربوطه به اون کتاب رو خواستم ...
این لینک در خود انتشارات (http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0764596772.html)

peymannaji
شنبه 26 اردیبهشت 1388, 01:17 صبح
شما گفتید این کتاب مربوط به انتشارات Wiley Publishing, Inc است .
بگزریم ... من در حال مطالعه این کتاب بودم البته تا فصل 6 جلو رفتم ... در هر صورت مشکل اصلی اینه که اگر فرض رو بزاریم بر اینکه از روش اول یعنی آنچه که در ابتدا گفته شد جلو بریم ( خواند کدهای قالب از دیتابیس و نمایش در لیترال ) چگونه یک رپیتر رو با تمپلیت میشه در میان این کدهای خوانده شده از دیتابیس پیاده سازی کرد ... البته با توجه به کدهای قالبی که گذاشتم بودن و اینکه در این کدها چیزی به نام run@server وجود ندارد که کنترل رو بصورت ران تایم اضافه کنیم .
در اون کتاب هم به موارد بسیار خوب و کلیدی اشاره کرده . اما مسئله بعدی اینکه کاربر پرشین بلاگ بدون اینکه کدهای تمپلیت رو در xml قرار بده در واقع قالب وبلاگش رو تغییر میده ...

raziee
شنبه 26 اردیبهشت 1388, 01:34 صبح
شما گفتید این کتاب مربوط به انتشارات Wiley Publishing, Inc است .
بنده برای اینکه اطلاعات کتاب رو کامل بدم متن رو از خود کتاب کپی کردم. نمیدونستم باعث سوء تفاهماتی میشه.

در مورد مسائل دیگه که فرمودید بنده در حال کار کردن روی این موضوع هستم. البته فکر نمیکنم سرعتم به شما برسه.
علت :
1: انگلیسیم قوی نیست و با ترجمه مشکل دارم.
2: ترم آخر هستم و کلی پروژه درسی دیگه هم دارم.
-------

اما بنده پیشنهادی داشتم که انگار توجهی بهش ندارین.
دعوت از برنامه نویسان سایت های سرویس دهنده.
من از جناب آقای علیرضا شیرازی مدیر و برنامه نویس سایت بلاگفا دعوت کردم که به این بحث بیاند.(امیدوارم که قبول کنند.)
از بقیه اعضا هم میخوام که از ایشون و یا برنامه نویسان دیگری که میشناسند دعوت کنند.
وبلاگ آقای شیرازی (http://www.shirazi.blogfa.com/)
ایمیل آقای شیرازی (shirazi@gmail.com)

peymannaji
شنبه 26 اردیبهشت 1388, 01:38 صبح
دوست عزیز ممنون از لطفتون ... من 3 بار از برنامه نویس پرشین بلاگ درخواست کمک کردم که ظاهرا مایل نیستند راهنمایی کنن ...

raziee
شنبه 26 اردیبهشت 1388, 01:44 صبح
این کم لطفیشون رو میرسونه.
به قول یکی از دوستان "همه ی این برنامه نویسای کله گنده که Close Source نیستند شاید یکیشون کمکتون کرد."

میدونم که این تنها یه احساس هست اما احساس من نسبت به آقای شیرازی اینه که اگه بتونن کمکمون میکنن.
امیدوارم احساسم مثل همیشه درست باشه.

raziee
شنبه 26 اردیبهشت 1388, 10:52 صبح
سلام.
من فکر میکنم باید در بعضی موارد صحبت کنم.
نمیدونم چرا بقیه دوستان (از اعضاء سایت) در بحث شرکت نمیکنند.
شاید دلیلشان عنوان تاپیک هست.
"الگورتیم ایجاد امکان ویرایش قالب مانند پرشین بلاگ"
حتما به خودشون میگند: ما که نمیخواهیم وبلاگ درست کنیم یا سایتی که این خدمات رو بده و بی تفاوت ازش رد میشند.

من میخوام این رو بگم که این موضوع فقط به درد وبلاگ نمیخوره.
جناب آقای راد در این لینک (http://barnamenevis.org/forum/showthread.php?t=53187) به این موضوع اشاره کردند:

پس از ارائه ی دومین نسخه از تکنولوژی ASP.NET و پیدا شدن مفهوم جدیدی با نام SKIN، بسیاری از دوستانی که حداقل بنده می شناسم، از این مفهوم جدید با فراق باز استقبال کردند و اون رو به عنوان یک اصل کم دردسر(!) در برنامه های خود به کار بردند! غافل از اینکه در پشت این چهره ی مظلوم و ساده ی SKIN ها، کابوسی وحشتناک وجود داره!
برای دیدن این کابوس وحشتناک، پس از استفاده از SKIN ها، خروجی صفحه ی رندر شده رو ملاحظه کنید.
آنچه که خواهید دید، اضافه شدن خاصیت STYLE همراه با مقادیر تعریف شده در فایل SKIN برای کنترل مربوطه است!

به جای استفاده از SKIN ها میتونیم بوسیله تگ هایی که در این تاپیک مورد بحث هست استفاده کنیم.

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

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

آقایان راد ، مداح ، کرامتی و دیگر دوستان هیچ کدوم در این رابطه نظری ندارند؟

Chabok
شنبه 26 اردیبهشت 1388, 11:38 صبح
با سلام

میرسیم به نشان دادن پستها - لینک های دوستان و ... مواردی که بیش از یک رکورد دارند
با شبه کد زیر مشکل حل نمیشه ؟
http://barnamenevis.org/forum/showpost.php?p=669260&postcount=8

naeeme
یک شنبه 07 تیر 1388, 09:38 صبح
کسی از دوستان دیگه پیگیر این مطلب نیست؟ این چندمین تاپیک در این باره است که به نتیجه نمیرسه.

peymannaji
یک شنبه 07 تیر 1388, 13:40 عصر
دوست عزیز والا من هنوز هم در حال سعی و تلاشم . به نتیجه نمیرسم . و از اونجایی که به چشم رقیب نگاه میکنن کسی اگر هم بدونه کمک نمیکنه ... من کوچکترین چیزی دستگیرم بشه همینجا میزارم ...

raziee
یک شنبه 07 تیر 1388, 15:56 عصر
من هم هنوز دارم روش کار میکنم و بی خیالش نشدم.

از اونجایی که به چشم رقیب نگاه میکنن کسی اگر هم بدونه کمک نمیکنه
من هم با شما موافقم

hobab-theme
یک شنبه 07 تیر 1388, 17:03 عصر
نمیدونم چرا بقیه دوستان (از اعضاء سایت) در بحث شرکت نمیکنند.
شاید دلیلشان عنوان تاپیک هست.
فکر نکم دوست خوبم
من خودم از اول تا آخر این تاپیک رو خوندم و پیگیر هستم
منتهی در تخصصم نیست که بخوام پستی اضاف کنم . تنها کاری که میتونم امجام بدم اینه که دنبال یه همچین مطلبی باشم . اگه مفید بود ارائه بدم .
در این زمینه شما عزیزان استاد مایید . ما چی داریم بگیم
مجبوریم ساکت باشیم و یاد بگیریم
در ضمن من خودم شخصاً تو یه همچین تاپیکهایی اشراک میشم . چون خودم هم خیلی دوست دارم یه همچین کاری کنم . تا الان چندنفر از دوستان دیگه هم یه همچین تاپیکهایی با عناوین مختلف ایجاد کردند ولی متاسفانه...:متفکر:

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

milade
یک شنبه 07 تیر 1388, 19:28 عصر
سلام

آقا این تاپیک به نتیجه نرسه بهتر تره ! D:
نمیخواستمم ... بگذریم !

میدونید مشکل شما چیه ؟!
میخواید یه راه حل پیدا کنید ، که اسون نباشه ! چون فکر نمیکنید که این قدر موضوع راحته !

یکی به من PM داد : " خوب حالا شما بیا گرید رو پیاده کن توی متن!"

حرف شما درست ! نمیشه اما خوب همیشه که نباید اماده خور باشیم که !

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




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

در اخر اگه سوالی بود در خدمتم ( هرچند این روزا کمتر سر میزنم به سایت ... )

++++++++++++++++++++++++++++
توی تاپیک صحبتهای شیرینی شد ، هر چند فقط صحبت بود جز پست چابک خان !

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

موفق باشید

hobab-theme
یک شنبه 07 تیر 1388, 19:49 عصر
دوست من شما انگار خیلی اعصابتون داغونه:متعجب:

آقا این تاپیک به نتیجه نرسه بهتر تره ! D:
نمیخواستمم ... بگذریم !

میدونید مشکل شما چیه ؟!
میخواید یه راه حل پیدا کنید ، که اسون نباشه ! چون فکر نمیکنید که این قدر موضوع راحته !

یکی به من PM داد : " خوب حالا شما بیا گرید رو پیاده کن توی متن!"

حرف شما درست ! نمیشه اما خوب همیشه که نباید اماده خور باشیم که !

من اولش که پستتون رو خوندم میخواستم دیسکانکت کنم . ترسیدم
ولی با دیدن اینا گفتم دل پاکی داره:لبخندساده:

یه نمونه سوری کوچولو کزاشتم دانلود کنید ، خیلی جم و جور هست اما هم :

میتونید تگها رو پیاده کنید
هم حالاتی که بیش از یک مقدار دارند رو بنویسید

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

در اخر اگه سوالی بود در خدمتم ( هرچند این روزا کمتر سر میزنم به سایت ... )

ممنون از نمونه ای که گذاشتید

milade
یک شنبه 07 تیر 1388, 20:13 عصر
سلام

آخه میدونی ...

زور داره ببینی یه تاپیک 2 ماه تو هوا باشه در حالی که راه حل جلو چششون داره میچرخه P:

من اولش که پستتون رو خوندم میخواستم دیسکانکت کنم . ترسیدم
ولی با دیدن اینا گفتم دل پاکی داره
:خنده:
نظر لطف شماست ...
حالا چرا ترس ؟ D:

امیدوارم دوستان یه کمی ... کنند و مشکلشون زودتر یا حل بشه ، یا یکی بیاد بگه این کد به کل اشتباس !

راستی توی سورس به خاطره مشغله فعلی حسش نبود از DB استفاده کنم

موفق باشید

hobab-theme
دوشنبه 08 تیر 1388, 10:39 صبح
حالا چرا ترس ؟شوخی کردم عزیز:چشمک:
اولاً ممنون از نمونه ای که گذاشتید
بعد چطور میشه مثل وبلاگها یه قالب HTML واسش طراحی کرد و اون رو با برنامه ست کرد؟
آخه این هم قالب و هم کد مخلوطه

kamrannazari
دوشنبه 08 تیر 1388, 10:59 صبح
شما يك اديتور html مثل fckeditor كه كار باهاش خيلي راحته رو براي دريافت متن html قالب استفاده كنيد.
بعد متن html دريافتي رو در ديتابيس ذخيره كنيد.
به اين صورت كه مثلا يك جدول ايجاد كنيد كه يك فيلد id از نوع int داشته باشه كه كليد هم باشه
و يه فيلد مثلا به نام theme از نوع ntext هم داشته باشه
حالا متن html دريافتي رو توي فيلد theme ذخيره كنيد.
چند تا كد يا تگ هم مخصوص خودتون مي تونيد داشته باشيد مثلا <counter> رو هرجا كه بذارن شمارشگر همونجا قرار مي گيره با همون فونت و رنگ يا حتي مي تونيد مثلا $counter يا @counter رو بذاريد بهرحال بستگي به سليقه داره.
حالا وقتي كه كاربر درخواست مي ده كه مي خواد صفحه رو ببينه.
شما متن html رو مي گيريد و در يك متغيير ذخيره مي كنيد و همونطرو كه دوستان گفتن با استافده از replace مقادير مورد نياز رو جايگزين مي كنيد و متن html جديد رو به كاربر نمايش مي ديد.
بخش طراحي سايت هاي مانند وبلاگ ها ديگه اصلا توي محيط ويژوال انجام نمي شه و فقط توسط كاربر انجام مي شه و برنامه نويس مقادير رو جايگزين مي كنه.
پس در اين پروژه استفاده از كامپوننتها زياد نمي تونه كارآيي داشته باشه (حداقل در مورد كار با محيط طراحي ويژوال) و در صورت نياز بايد كامپوننتها در زمان جايگزيني ايجاد بشن.
البته اينكار توي زبان هاي برنامه نويس مثل php خيلي ساده تر از .net انجام مي شه.
كار خيلي سختي نيست.

kamrannazari
دوشنبه 08 تیر 1388, 11:01 صبح
من دقيقا همين كارهايي كه توضيح دادم رو در اين سايت http://www.shahreketab.ir/forum (http://www.shahreketab.ir/forum/)/ و چند سايت ديگه انجام دادم

milade
دوشنبه 08 تیر 1388, 11:12 صبح
بعد چطور میشه مثل وبلاگها یه قالب HTML واسش طراحی کرد و اون رو با برنامه ست کرد؟
من فرانت پیج یا دریم ویو رو ترجیح میدم چون FCK خیلی هم قدرت نداره ...

البته باید توجه کنید که شما یه سری تگهای اختصاصی هم میخواید که توی راحتتر شدن کار سرور کمکتون کنه ..
میتونید برای مثال همون سورس پرشین رو نگاه کنید ..

موفق باشید

hobab-theme
دوشنبه 08 تیر 1388, 11:17 صبح
شما يك اديتور html مثل fckeditor كه كار باهاش خيلي راحته رو براي دريافت متن html قالب استفاده كنيد

من فرانت پیج یا دریم ویو رو ترجیح میدم چون FCK خیلی هم قدرت نداره ...

برای ایجاد کدهای HTMLش مشکلی یست . اونا رو میشه با NotePad هم نوشت
اصل ترکیب اونا با منطق برنامه است

peymannaji
دوشنبه 08 تیر 1388, 17:08 عصر
. قسمت های لینک دوستان و مشابه اون خیلی راحت پیاده شد که هر کدوم رو تو یک یوزر کنترل قرار دادم . در حال حاضر من تنها مشکلی که دارم با قسمت محتوای وبلاگ هست .

milade
دوشنبه 08 تیر 1388, 17:56 عصر
مشکل کجاست ؟
تا چه مرحله پیش رفتید ... ؟

موفق باشید

mp2009
چهارشنبه 24 تیر 1388, 15:22 عصر
دوستان من هم خیلی دلم میخواد بدونم چطوریه
به این topicهم یه نگاه کنید
http://barnamenevis.org/forum/showthread.php?t=164978

mp2009
جمعه 02 مرداد 1388, 17:11 عصر
چرا این topic به نتیجه درستی نرسیده؟ اونم مطلب به این مهمی
اخه منم میخوام برا cms ی که ساختم این امکان رو بزارم که کاربر خودش قالب بسازه .
اگه میشه یکی درست توضیح بده. مرسی

milade
جمعه 02 مرداد 1388, 17:58 عصر
چرا این topic به نتیجه درستی نرسیده؟ اونم مطلب به این مهمی
اخه منم میخوام برا cms ی که ساختم این امکان رو بزارم که کاربر خودش قالب بسازه .
اگه میشه یکی درست توضیح بده. مرسی
سلام
فکر کنم توضیح داده شده ...
کجا کمک میخوای ؟

iman_ad
جمعه 02 مرداد 1388, 21:46 عصر
همان طور که می دونید xhml خودش یک xml مه نظر من استفاده از xlst و tarsform کردن xml که با فرمت دلخواه نوشته می شه و بعد به html تبدیل بشه منطقی به نظر می رسه به نظر من دوستان cms Umbraco بررسی کنند حتما ازش ایده می گیرن.

reza_moon_mordad
سه شنبه 13 مرداد 1388, 09:02 صبح
فکر میکنم این مقاله به دردتون بخوره من خودم 2 تا کار با این روش انجام دادم

توليد مکانيزه صفحات استاتيک به کمک XML

اکنون روش مورد نظر در اين مقاله را بررسی می‌کنيم. در اين روش به جای اينکه يک صفحه ديناميک از جنس ASP‌ يا ASP.NET بسازيم که محتوای هر خبر يا مقاله را نمايش بدهد، يک صفحه Template از جنس XSL می‌سازيم و محل قرارگرفتن داده‌های فيلدهای هر رکورد را داخل صفحه مشخص می‌کنيم. برای ساختن صفحات Template مذکور بايد ابتدا صفحات وب را به فرمت XHTML تبديل کنيم. سپس با قراردادن فيلدهای موردنظر،‌ صفحه XHTML را به XSL تبديل کنيم.


تبديل HTML‌ به XHTML

ساختن صفحات XHTML بسيار ساده است. کافی است صفحه معمولی خود را بسازيد و محل قرارگرفتن فيلدها را مشخص کنيد (مثلا از طريق تايپ کردن نام هر فيلد) و سپس به کمک يک مبدل HTML به XHTML صفحه وب خود را به فرمت سازگار با XHTML تبديل کنيد. برنامه‌ای مانند Dreamweaver به کمک يک فرمان ساده، اين کار را به راحتی آب خوردن انجام می‌دهد!

تفاوت يک HTML معمولی با يک HTML سازگار با فرمت XHTML چندان زياد نيست. درواقع کنترلی بايد روی صفحه انجام شود تا مطمئن شويم که tagهای صفحه در قياس با قواعد XML اصطلاحا well-form هستند. مثلا در فرمت XML هر tag که شروع می‌شود بايد حتما پايانی داشته باشد. مثل <table></table> اگر بعضی از tag ها قرار است که تنها باشند (مثل <br>) اين tag‌ ها بايد به صورت مثلا </br> اصلاح شوند. چند تغيير جزئی ديگر نيز بايد صورت گيرد تا صفحه کاملا با فرمت XHTML سازگار باشد. حتی اگر يک کاراکتر هم ناسازگار با قواعد XML‌ باشد، امکان استفاده از روش توضيح داده شده در اين مقاله وجود نخواهد داشت. ضمنا، کلاس و شئ XML‌ در دات‌نت بعضی از کاراکترها و ترکيب‌های کاراکتری را نيز نمی‌پذيرد. مثلا ;nbsp& که نمايانگر يک space‌ يا فاصله است، از ديد مفسر XML در دات نت مجاز نيست و به جايش بايد همان کاراکتر space‌ را تايپ کنيد. نگران نباشيد. محدوديت‌هايی که در اين زمينه وجود دارند بسيار اندک هستند و تقربيا صفحه خود را با حدود يکی دو درصد تغيير می‌توانيد به يک XHTML قابل استفاده برای کلاس XML‌ تبديل کنيد.

يادآوری مهم : ضروری است که صفحات فارسی خود را از جنس يونی‌کد و با کاراکترست utf-8 بسازيد. زيرا شئ xml در دات نت تنها در اين صورت می‌تواند اطلاعات فارسی را بدون مشکل پردازش کند.


تبديل XHTML‌ به XSL

اين قسمت از کار مهمترين قسمت ساختن Template مورد نظر است. برای اينکار بايد با استاندارد XSL و تکنيک‌ها و زبان آن آشنا شويد. XSL بحث مفصلی دارد و برای آموختن آن کتاب‌های متعددی چاپ شده است که لازم است حداقل يکی از آنها را به عنوان مرجع دم دست داشته باشيد. من برای سهولت کار، چند تکنيک ساده و پرکاربرد XSL‌ را که در اين مقاله نياز داريم، داخل فايل مثالی که ضميمه مقاله است، پياده کرده‌ام که می‌توانيد از آنها به عنوان الگو استفاده کنيد. XSL‌ به معنی eXtensible Stylesheet Language است. XSL در دنيای فناوری XML مشابه CSS در دنيای HTML است. اگر با CSS ها آشنايی داشته باشيد، درک کاری که XSL‌ انجام می‌دهد چندان برايتان مشکل نخواهد بود. همانطور که از CSS برای فرم دادن به صفحات وب استفاده می‌کنيم، از XSL‌ نيز برای فرم دادن به محتويات فايلهای XML‌ استفاده می‌کنيم.

تکنيک‌هايی که برای پردازش فايل‌های XSL و قراردادن داده‌های XML‌ استفاده می‌شود اصطلاحا XSLT نام دارد (به انتهای عبارت XSL کلمه Transformation‌ را بيفزاييد).

قلب فرآيندی که اتفاق می‌افتد به اين شرح است :

- داده‌های شما، يعنی اطلاعات رکوردهای خبر و مقاله بايد به فرمت XML درآيند.
- کد برنامه، فايل XSL شما را باز می‌کند و آن را برای يافتن tag های مخصوص نمايش فيلدهای اطلاعاتی جستجو می‌کند و به محض پيدا کردن محل فيلد، اطلاعات آن را جايگزين می‌کند.

به عنوان مثال عبارت <"xsl:value-of select="ArticleTitle> معادل گزينه‌ای است که چند پاراگراف بالاتر به عنوان روش نمايش فيلد ArticleTitle در صفحه ASP.NET شرح دادم. به عنوان نمونه ديگر، در زبان XSL با استفاده از syntax زير می‌توانيم يک حلقه بسازيم :


<xsl:for-each select="//Table">
...
</xsl:for-each>



که حلقه روی فيلدهای جدول Table‌ تکرار می‌شود.

کاری که ما در برنامه خود انجام می‌دهيم اينست که ابتدا رکوردهای بانک اطلاعاتی را با استفاده از شئ xml در دات نت به XML‌ تبديل می‌کنيم سپس با استفاده از کلاس xslt يک فايل XSL را بازميکنيم و داده ها را درون آن ميريزيم و حاصل را به صورت يک HTML معمولی ذخيره می‌کنيم. همين!


کد برنامه توليد مکانيزه صفحات وب با استفاده از ASP.NET

کاری که ما بايد انجام دهيد اينست که يک صفحه ASP.NET بسازيم که عمليات توليد صفحه استاتيک را به طور خودکار انجام دهد تا بتوانيم حاصل فرآيند را خيلی ساده روی سايت publish کنيم. البته می‌توانيم ASP.NET‌ را طوری بنويسيم که خودش در محل مشخص شده توسط ما صفحات HTML‌ توليد شده را save کند. در اينصورت بايد ميزبان شما قابليت استفاده از فناوری ASP.NET‌ را در اختيار شما قرار دهد وگرنه مجبوريد صفحات را روی دستگاه خودتان توليد کنيد و بعد حاصل کار را به صورت دستی يا به هر روش ديگر upload کنيد.

و حالا سورس کد :
( من از VB.NET استفاده کرده ام ولی خودتان می‌دانيد که چقدر تبديل آن به #C‌ آسان است)

۱- برای اجرای برنامه لازم است کلاسهای مورد نياز را import کنيم :


Imports System.Text
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports System.IO.Path
Imports System.Xml
Imports System.Xml.Xsl


۲- من فرض را براين می‌گذارم که شما يک datagrid خودتان ساخته‌ايد و می توانيد در اين صفحه ASP.NET رکوردهای اخبار و مقالاتتان را مديريت کنيد. من در اين مقاله روش اينکار را توضيح نمی‌دهم چون روشش خيلی آسان و سرراست است و در همه سايت‌های مربوط به ASP.NET ميتوانيد يک دوجين مقاله درباره روش نمايش رکوردهای بانک اطلاعاتی توسط datagrid پيدا کنيد. شما بايد همچنين در اين datagrid امکان select کردن يک رکورد (جهت انجام پردازشها مورد نياز اين مقاله) را اضافه کنيد. اين کار نيز آسان است و من قصد آموزش آن در اينجا را ندارم.

۳- همه عمليات را يک تابع بسيار ساده و جادويی انجام می‌دهد :-)



Function GenerateOneHTML(ByVal RecordID As Integer) As Boolean

'single node-----------------------
Dim myData As DataSet = GetDataSet()
Dim doc As XmlDataDocument = New XmlDataDocument(myData)
Dim FileName As String
Dim ln As Integer
Dim node As XmlElement = doc.DocumentElement.SelectSingleNode("//Table[ID=" + RecordID.ToString + "]")

If Not node Is Nothing Then
Dim doc2 As XmlDocument = New XmlDocument
doc2.LoadXml(node.OuterXml)

'Generate HTML file name
FileName = RecordID.ToString
Dim HTMLsPath As String = Server.MapPath("\") + "Articles\" + Trim(doc2.SelectSingleNode("//Category").InnerText) + "\"

'Transform
Dim xslt As XslTransform = New XslTransform
xslt.Load(HTMLsPath + "temp.html")
Dim writer As XmlTextWriter = New XmlTextWriter(HTMLsPath + FileName + ".htm", System.Text.Encoding.UTF8)
'writer.Formatting = Formatting.Indented
'writer.Indentation = 2
xslt.Transform(doc2, Nothing, writer, Nothing)

writer.Close()
End If

Return True
End Function


از جزئيات اين تابع نترسيد. خيلی ساده در سه مرحله، يعنی در سه سوت (!) کار را تمام می‌کند.

من اين تابع را بعد از يک ماه تلاش مداوم به اين صورت خلاصه و مفيد نوشتم و خيالتان راحت باشد که صد در صد کار می‌کند. فقط توجه کنيد که نام فيلدهای استفاده شده در اين تابع با توجه به نامگذاری فيلدهای پايگاه داده خودم صورت گرفته است و شما بايد اين جزئيات تابع را مطابق نياز خود تغيير دهيد. مراحل سه گانه فوق به اين شرح هستند :

۱- خواندن xml از روی dataset
۲- توليد نام فايل خروجی
۳- تبديل (Tarnsform)

سومين مرحله که مهترين مرحله است، درواقع همان عمليات XSLT است. در اينجا بايد گفت دست طراحان معماری دات نت درد نکند که با چهار خط کد می‌توان يک فرآيند XSLT‌ را کامل کرد!

مرحله اول :
در اين مرحله از روی dataset يک xml‌ می‌سازيم :



'single node-----------------------
Dim myData As DataSet = GetDataSet()
Dim doc As XmlDataDocument = New XmlDataDocument(myData)
Dim FileName As String
Dim ln As Integer
Dim node As XmlElement = doc.DocumentElement.SelectSingleNode("//Table[ID=" + RecordID.ToString + "]")

توجه کنيد که من روش ساختن dataset‌ را توضيح نداده‌ام ولی شما خودتان می‌توانيد تابع GetDataSet را مطابق نيازتان بنويسيد. اين کار يکی از آسان‌ترين و ابتدايی ترين روشهای کار با رابط برنامه‌نويسی ADO.NET است (لابد می‌دانيد که دو روش عمده برای خواندن اطلاعات از بانک اطلاعاتی وجود دارد، يکی شئ DataReader و ديگری شئ DataSet) و من در اينجا برای اجتناب از طولانی شدن مقاله، از توضيح دادن آن صرف‌نظر کردم.

شئ جادوئی XmlDataDocument کارش تبديل dataset به XML است. خط آخر اين مرحله يک شئ XmlElement از روی همان رکوردی که می‌خواهيم اطلاعاتش را بخوانيم می‌سازد. دقت کنيد که چطوری نام جدول پايگاه داده و id رکورد را که به صورت input وارد تابع کرده‌ام، به اين شئ خورانده می‌شود.

مرحله دوم :
حالا بايد از روی خروجی xml شئ مذکور يعنی node.OuterXml يک شئ XmlDocument بسازيم و dataset را کنار بگذاريم (توجه کنيد که در سورس اصلی تابعی که نوشته‌ام، مرحله دوم و سوم را داخل يک شرط if قرار داده‌ام تا اگر رکورد مورد نظر پوچ بود اين دو مرحله اجرا نشوند):




Dim doc2 As XmlDocument = New XmlDocument
doc2.LoadXml(node.OuterXml)

'Generate HTML file name
FileName = RecordID.ToString
Dim HTMLsPath As String = Server.MapPath("\") + "Articles\" + Trim(doc2.SelectSingleNode("//Category").InnerText) + "\"

در واقع يک XmlDocument در کد برنامه دات نت، معرف يک xml است. و در تمام اين مقاله هرجا گفتم کلاس (يا شئ xml در دات نت) بيشتر مقصودم همين شئ بود. البته کل اشياء بکار رفته در اين مقاله از کلاس مادر System.xml و System.xml.xsl مشتق شده اند.

در ادامه اين مرحله من کمی با اطلاعات فيلد RecordID بازی کرده ام تا يک نام دلخواه و يک path مناسب برای دخيره کردن فايل HTML‌ نهايی جور کنم. همچنين اگر خواستيد روی داده‌های رکورد مورد نظر، پيش از قرارگرفتن در XSL تغييری انجام دهيد، مثلا تاريخ ميلادی را به شمسی تبديل کنيد، جايش همين مرحله است. با استفاده از syntax زير می‌توانيد به محتويات يک فيلد از اين رکورد دسترسی داشته باشيد (قابل خواندن و نوشتن):




doc2.SelectSingleNode("//FieldName").InnerText

مرحله سوم :
در اين مرحله عمليات جادويی تبديل صورت می‌گيرد!
خط اول يک XslTransform معرفی کرده ام. اين شئ يک تابع بدقلق اما فوق‌العاده نيرومند دارد که حدود ده تا تعريف overload دارد. يعنی می‌توان اين تابع را به چندين روش فراخوانی کرد. پيدا کردن حالت مناسب برای اين تابع خودش مکافاتی بود (!) ولی حالا نتيجه کار بسيار ساده از آب درآمده است. من فايل XSL که به روش توضيح داده شده ساختم را به اسم temp.html در همان مسيری (path) که می‌خواهم فايل خروجی را ذخيره کنم قرار دادم. ابتدا با استفاده از تابع load اين فايل را باز می‌کنم. سپس با استفاده از يک شئ جادويی ديگر به نام XmlTextWriter يک مجرای خروجی (يک stream) برای تابع Transform فراهم می‌کنم:




'Transform
Dim xslt As XslTransform = New XslTransform
xslt.Load(HTMLsPath + "temp.html")
Dim writer As XmlTextWriter = New XmlTextWriter(HTMLsPath + FileName + ".htm", System.Text.Encoding.UTF8)
'writer.Formatting = Formatting.Indented
'writer.Indentation = 2
xslt.Transform(doc2, Nothing, writer, Nothing)

writer.Close()

ذکر چند نکته در اينجا ضروری است:

۱- آدرسی که در مرحله دوم ساختم را به XmlTextWriter می‌دهم.
۲- فرمت يونی‌کد را نيز برای XmlTextWriter مشخص می‌کنم.
۳- اگر دلم خواست، از property فرمتينگ نيز استفاده می‌کنم:




writer.Formatting = Formatting.Indented
writer.Indentation = 2

اين property خيلی جالب و در عين حال دردسرساز است. کارش اينست که خروجی HTML شما را برای خواندن سورس آن فرم بدهد. اگر اينکار را نکنيد، XmlTextWriter تمام فايل HTML شما را در يک خط (!) می‌نويسد. هنگام نمايش HTML هيچ اتفاق يا مشکل خاصی پيش نمی‌آيد اما اگر برويد روی مرورگر گزينه view source را بزنيد متوجه می‌شود که خواندن اين فايل واقعا مکافات است!

Property فوق اين مشکل را برطرف می‌کند و خروجی HTML‌ را طوری توليد می‌کند که بشود سورس آن را (مثل آدم‌!) خواند. فقط اشکالش اينست که در برخی Layout‌ ها به دليل انداختن يک سری space اضافه، صفحه را از ريخت می‌اندازد. در مورد سايت من چنين مشکلی پيش آمد و من بيخيال فرمتينگ شدم. Property دوم که Indentation نام دارد ميزان تاثير گذاری فرمتينگ را مشخص می‌کند. عدد 2 نرمال است. اگر بيشتر بدهيد، nesting سورس HTML را بيشتر می‌کند، خودتان امتحان کنيد، متوجه خواهيد شد.

سرانجام فرمان آسمانی Transform انجام می‌شود. همه مقاله را به خاطر اين تابع پرتشريفات نوشتم. می‌خواستم از اول بگويم اين تابع چه تابع خوبی است، توی رودربايستی افتادم و اين مقاله را نوشتم!

فراموش نکنيد که مجرای XmlTextWriter را بايد پس از اتمام کار بست. حالا اگر به پوشه‌ای که می‌خواستيد فايلتان آنجا ذخيره شود مراجعه کنيد می‌بينيد که يک صفحه وب تر و تميز حاوی مقاله يا خبر شما آنجا نشسته و اسم دلخواه شما را نيز به خود گرفته است (در اينجا همان کد id).

بايد datagrid خودتان را طوری بسازيد که بشود از طريق يک checkbox کنار هر رکورد، آنهايی که مايليد صفحه خبر يا مقاله‌اش را بسازيد، مشخص کرد. سپس يکی يکی id اين رکوردها را به تابع مورد بحث می‌دهيد تا به ازای هرکدام از آنها يک صفحه بسازد. توجه کنيد که تکرار اجرای اين فرمان روی يک رکورد موجب overwrite شدن فايل قبلی می‌شود. يعنی می‌توانيد به سادگی فايل را update کنيد.

اگر خواستيد Layout سايت تان را تغيير دهيد، کافی است فايل XSL خود را يکبار دستکاری کنيد. اينکار خيلی ساده است. اگر XSL‌ را با پسوند htm يا html‌ ذخيره کنيد، برنامه‌ای مانند Dreamweaver آن را مانند يک صفحه وب معمولی باز می‌کند تا بتوانيد ويرايشش کنيد. بعد از تغيير XSL، يکبار ديگر فرمان Transformation را روی رکورهای مقالات و اخبار تکرارکنيد تا صفحات جديد را بدست آوريد.



لازم به ذکر است منبع مقاله یادم نیست

ISFAHAN
دوشنبه 24 اسفند 1388, 22:34 عصر
این ها هیچ کدوم راه حل مناسبی نبودند ...

peymannaji
دوشنبه 24 اسفند 1388, 22:53 عصر
فعلا پست 44 بهترین راه حل رو دادن . اگه شما راه بهتری میدونید مطرح کنید .

ISFAHAN
دوشنبه 24 اسفند 1388, 23:40 عصر
بهترین راه خواندن یک فایل html و قرار دادن کدهای وبلاگی مثل <-header-> در آن است که به جای این نوشته باید یک کنترل ascx یا به عبارتی user control بارگذاری گردد ... اما متاسفانه چگونگی این کار را بلد نیستم ...

peymannaji
سه شنبه 25 اسفند 1388, 08:18 صبح
براي لود كردن يوزر كنترل شما ميتونيد با كمك Jquery و وب سرويس اين كار رو انجام بديد و رندرش كنيد به html اما باقيه كارشو منم نميدونم چون تو جزئيات نيستم كه بدونم چه كاري بايد انجام داد .

raziee
سه شنبه 25 اسفند 1388, 14:09 عصر
فعلا پست 44 بهترین راه حل رو دادن . اگه شما راه بهتری میدونید مطرح کنید .

فکر میکنم این مقاله به دردتون بخوره من خودم 2 تا کار با این روش انجام دادم

توليد مکانيزه صفحات استاتيک به کمک XML

با سلام.
peymannaji عزیز تولید صفحات به کمک XML رو من قصد داشتم دنبال کنم.و البته دنبال و پیاده سازی کردم اما با مشکلاتی رو به رو شدم.
من در اولین پستم در این تاپیک به همین موضوع اشاره کرده بودم:

با مشورت هایی که با چند تن از دوستان داشتم به تبدیل کد های XML به HTML اشاره کردند. و اینکه در بانک میبایست از XMl کمک گرفت
مثلا این که در این روش نمیشه قالب های مختلف (قالبی که کاربر می سازه) رو آورد و تنها از اون قالبی که ما براش نوشتیم پیروی میکنه.
حالا برای همین کار هم در وبلاگ ما باید اطلاعات رو به صورت XML در بانک ذخیره کنیم. اگه کاربری(نویسنده ی وبلاگ که شاید دانش و آگاهی لازم رو نداشته باشه) بیاد یه تگی رو باز بزاره یعنی در نوشته هاش تگی باشه که باز باشه اونوقت در سیستم خطا رخ خواهد داد چون همونطور که دوستمون در مقالشون هم گفتند تگ ها باید صحیح باز و بسته شده باشند.

در آخر من با کمک Replace کردن سورس کد رو ساختم. یعنی همون روشی که جناب میلاد فرمودند و البته من در ابتدا باهاش مخالفت کردم.
این روش رو در تگ ها در سرویس های وبلاگ دهی (http://barnamenevis.org/forum/showthread.php?p=857777) توضیح دادم.
شاد باشید

chaalesh
سه شنبه 25 اسفند 1388, 17:35 عصر
با سلام
به نظر شما اگه :
شروع یک ریپیتر و آیتم های آنرا نیز در تمپلت بصورت نماد داشته باشیم و یا در هنگام ویرایش و یا هنگام لود اونو معنی کرده و آیتم های اونرو مقدار دهی کرد چی ؟-درست شبیه رفتاری که خود .net برای پیاده سازی رپیتر توی html ارائه می ده و مباحثی مثل رپیترهای تو در تو و....

و
1- هنگام ویرایش ، صفجه استاتیک تولید کرد و در آدرس مناسب ذخیره کرد
حتی می توان قسمتی از صفحه txsl باشه که مثلا منوها را از روی آنها لود کنه - منویی مثل لیست هایی که زیاد تغییر می کنند-

ویا
2- اینکه هنگام وجود درخواستی برای مشاهده مطلب مورد نظر قالب از دیتابیس لود و پردازش شود


البته هریک مزایایی دارند ولی بنظر من اولی بهتره.

من توی یک پروژه هر دو روش را پیاده کردم
البته بنده با یکی از برنامه نویسان پرشین بلاگ تماسی دارم ایشان هم در جدود همین ایده ها بحث می کردند

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

raziee
سه شنبه 25 اسفند 1388, 22:35 عصر
البته اگر سایت بازدید بالا داشته باشه باید به فکر بار سرور نیز بود و روش مناسب را بر اساس بازدید و رفتار کاربران دارای مطلب در نحوه تغییرات محتوایی سایتشان ، انتخاب کرد
به طور معم.ل تعداد بازدید از تعداد آپدیت وبلاگ بالاتر هست.به نظرمن اگه سورس صفحه ی اصلی رو بعد از هربار به روز رسانی؛ توسط برنامه ایجاد و در بانک ذخیره بشه بهتره. به طور مثال وبلاگی که روزی 20 بازدید داره و هر دو روز آپدیت میشه به جای 40 پردازش برای تولید سورس صفحه تنها یکبار این صفحه ساخته میشه و هر بار همون سورس به عنوان خروجی به کلاینت فرستاده میشه.

chaalesh
چهارشنبه 26 اسفند 1388, 02:54 صبح
خوب اینکه مسلمه
من منظورم این نبود منظورم در بازدید بالا فرق بین روش 1 و 2 بود : ذخیره کردن فایل html در یک آدرس معتبر و یا لود هر دفعه آن از روی دیتا بیس

raziee
پنج شنبه 27 اسفند 1388, 15:10 عصر
ذخیره کردن فایل html در یک آدرس معتبر و یا لود هر دفعه آن از روی دیتا بیسبه نظر بنده درسته که سرعت گرفتن سورس صفحه از بانک کند تر از درخواست خود صفحه html ای هست که بر روی هارد ذخیره شده. خوب این صحیح اما به دردسرش نمی ارزه.
این نظر بنده هست.

حساب کنید برای ده هزار کاربر باید ده هزار صفحه بر روی هارد ذخیره بشه!!
تازه دوباره برای دسترسی به آرشوی باید به بانک مراجعه کرد.