PDA

View Full Version : تغییر مکان کنترل ها توسط Admin سایت !!!



mehrdad_t
سه شنبه 26 تیر 1386, 20:35 عصر
سلام دوستان

برای طراحی یک سایت به این مشکل برخوردم که ارباب رجوع از من خواسته این قابلیت را داشته باشه که مکان تبلیغ رو عوض کنه :متعجب: !

چنین کاری امکان پذیر هست ؟ :اشتباه:

nazaninam
سه شنبه 26 تیر 1386, 22:19 عصر
راه های زیادی وجود داره
چیز هایی که الان به ذهنم میرسه اینه که
چند جای صفحه PlaceHolder قرار بده و تبلیغ را به صورت یک UserControl درست کن
سپس مکانی که باید داخلش قرار بگیره را هم در Db ذخیره کن و نسبت به اون داخل یکی از این PlaceHolder ها Add کن !

RezaKia
چهارشنبه 27 تیر 1386, 00:03 صبح
سلام،
میشه. خیلی هم ساده تر از اونی که فکر کنی میشه. :لبخندساده:
من خودم تو تمام سایتهایی که تبلیغ هم دارند این امکان رو گذاشتم.

فقط کافیه یکی از دو راه زیر رو انتخاب کنی:
1. استفاده از یک Template و قراردادن آن در تمام بخشهایی که باید تبلیغ باشد. سپس با حذف یا اضافه کردن این اجزا در زمان اجراء محل تبلیغ معین میشود.
2. استفاده از چند PlaceHolder که بسته به انتخاب کاربر پر یا خالی میشوند.

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


ِ

Dim objTemplae as New MyTemplate

With MyTemplate
کد های لازم برای تنظیم Template
End With

ME.Page.Controls.AddAt(0, MyTemplate)


آدرس Index کنترل رو به جای صفر بذارید.


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

اگر کمی توضیح بیشتر در مورد اجزای کلی موجود در ضفحات خود بدهید، قطعاً راه حل اصلی که مدل سوم است را توضیح خواهم داد. :چشمک:

hamed_bostan
چهارشنبه 27 تیر 1386, 09:56 صبح
ببخشید من یه دفعه پریدم وسظ اما میشه بابت Template بیشتر توضیح بدین

mehrdad_t
چهارشنبه 27 تیر 1386, 11:17 صبح
فکر کنم منظورشون UserControl باشه .

از دوستان متشکرم :قلب:

با استفاده از UserControl و PlaceHolder کار انجام شد :چشمک:

RezaKia
چهارشنبه 27 تیر 1386, 23:19 عصر
ببخشید من یه دفعه پریدم وسظ اما میشه بابت Template بیشتر توضیح بدین


فکر کنم منظورشون UserControl باشه .

خیر Template هیچ رابطه ای با User Control نداره.
User Control در زماناجرا باید پروسس بشه (حداقل برای یک بار اگه Cach فعال باشه) اما Template در زمان ساخت تبدیل به کدهای مورد نیاز شده و فقط در زمان اجرا مثل یک فایل XML به آن نگاه کرده و اطلاعات نودهای آن را تصحیح میکنیم تا به هدف دلخواه برسیم.

تو این مثال هر دو درست کار میکنند، ولی تو جایی مثل سایتهای Yahoo ،MSN ،Google فقط از Template استفاده میکنند.

فراموش نشه کسی Template رو مینویسه که XML و SOAP و زبان برنامه نویسی مورد نظر رو خورده باشه :قهقهه:

Behrouz_Rad
جمعه 29 تیر 1386, 22:04 عصر
فراموش نشه کسی Template رو مینویسه که XML و SOAP و زبان برنامه نویسی مورد نظر رو خورده باشه
Template چه ارتباطی با XML و SOAP داره؟
مگه قرار هست با Web Service ها کار کنیم؟

bashiry
جمعه 29 تیر 1386, 22:33 عصر
به نظر منم راحت ترین راه همون PlaceHolder هست.

RezaKia
جمعه 29 تیر 1386, 23:30 عصر
Template چه ارتباطی با XML و SOAP داره؟
مگه قرار هست با Web Service ها کار کنیم؟

سلام،
هم آره هم نه :متعجب:

یعنی اینکه خود اصل Template یک Web Service هست که تمام حالتها را تو خودش داره. اونم بصورت از قبل طراحی شده که در نهایت با اولین اجرای Service به حافظه منتقل و به اصطلاح Cache میشن.

بعد یک کلاس تو برنامه داریم که این Template ها رو که فقط کدهای XML هستند میخونه و تبدیل به چیزی که ما می خواهیم می کنه.

حالا نکته اینجاست که این Template باید:
1. تمام حالات ممکنه رو داشته باشه
2. تمام اطلاعات بصورت کدی برای ساخت نه نتیجه نهایی باشند
3. تا حد ممکن این اطلاعات مختصر و کم حجم باشند، چون کاملاً درون Ram قرار میگیرند.
4. فالب ها باید امکان تغییر در سمت تقاضا دهنده رو بدون ارتباط با سرویس داشته باشند.
5. اصلی ترین اینکه این قالب باید بتونه همزمان چند الگو رو بر حسب نیاز کاربر ترکیب و برای اون بفرسته.

با این شرایط، کلاس توی برنامه این اطلاعات رو میخونه و توسط الگوریتم مربوط به اون کد؛ اونهارو تبدیل به اشیا و کنترلهای مربوطه در دات نت میکنه.

XML و SOAP هم برای نقل و انتقال داده ها و همچنین تشخیص الگوریتم و داده ها بکار می روند.

لابد این سئوال پیش می آید که چرا این همه دردسر اونم با Web Service؟
ظاهر مسئله میگه میشه اینکارو تو یک کلاس از برنامه انجام داد.

اما،

مشکل این جاست که Template باید دستوراتی رو به عنوان الگو بسازه که مجوز اجرای اون ها در دات نت فقط به Type کلاس داده میشه و این کلاسها هم باید از نوع Web Service باشند.

هر چند میشه با اضافه کردن Reference مربوطه به پروژه این کار رو انجام داد. ولی موقع اجرا همچنین سیستم کند و خنگ میشه که در بعضی شرایط به بعضی از رخدادها واکنش نمیده و یا برای اونها پیغام Server Application Error و یا Server Busy, Application switched رو ارسال میکنه. :عصبانی++:

اما تو Web Service وقتی اولین اجرا بعد از کمپایل انجام میشه یک فایل باینری ساخته میشه که با یکسری تنظیمات من بعد تمام تقاضاها رو از روی اون انجام میده.


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

این تکنیک چون وابسته به Web Service هست تو هر زبونی حتی PHP و ASP هم جواب میده. :قلب: