PDA

View Full Version : چند ساب دومین و داشتن یک مدیریت سایت



maktab
شنبه 28 بهمن 1391, 12:58 عصر
سلام. من میخوام سایتی با چند ساب دومین بنویسم. ولی نمیخوام مدیریت هر کدام از ساب دومین ها جدا باشه، به این شکل:
اگر یک دامنه داشته باشیم حالا من برای این سایت 8 تا ساب دومین درست میکنم و طرح هر سایت (پنل) را در ساب دومین متناظر میذارم. ولی برای قسمت مدیریت نمیخوام هرکدام جدا باشه. بلکه وقتی وارد قسمت مدیریت میشه تمام اطلاعات ساب دومین ها باشه و بشه براشون مطلب ارسال کرد و... به هر حال بانک که بین همه مشترک هست فکر نکنم برای این کار مشکلی پیش بیاد.

دوستانی که با ساب دومین کار کردند، ایا چنین کاری مشکلی نداره؟

اوبالیت به بو
شنبه 28 بهمن 1391, 13:14 عصر
درود بر شما

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

شما باید یک جدول داشته باشید به نام Branches که اسم ساب دامین ها رو قرار میدید و در هر جدول دیگه از بانک اطلاعاتی مثل Users, News و غیره یک کلید خارجی از جدول Branches داشته باشید. مثلا Branch_ID. حال وقتی که می خواید محتوا رو ثبت کنید باید یک DropDOwnlist داشته باشید تا کاربری که داره محتوا رو ثبت می کنه ساب دامین خودش رو انتخاب کنه.

mohsen_f_b
شنبه 28 بهمن 1391, 14:48 عصر
سلام

برای 3 پروژه به شکل کامل پیاده سازی کرده و تست کامل شده و مشکلی نیست. به این نحوه کار کردم که مثلا یک جدول دارم برای کاربران و برای هر ساب دامین کاربر تعریف کردم و یک فیلد به نام SiteID گذاشتم؛ این SiteID برای این استفاده میشود که دقیقا مشخص شود که اطلاعات کدام کاربر باید نمایش داده شود. حالا مثلا شما یک ماژول News دارید زمان ثبت اطلاعات توسط کاربر از پنل SiteID کاربر هم ثبت میکنید و زمان نمایش شما براسا همین SiteID همه چیز را هندل میکنید.
کاربرها فقط یک پنل دارن ولی با SiteID ها متفاوت که آنهم زمان لاگین در یک Session نگه داری میکنید.

موفق باشید

اوبالیت به بو
شنبه 28 بهمن 1391, 14:55 عصر
سلام

برای 3 پروژه به شکل کامل پیاده سازی کرده و تست کامل شده و مشکلی نیست. به این نحوه کار کردم که مثلا یک جدول دارم برای کاربران و برای هر ساب دامین کاربر تعریف کردم و یک فیلد به نام SiteID گذاشتم؛ این SiteID برای این استفاده میشود که دقیقا مشخص شود که اطلاعات کدام کاربر باید نمایش داده شود. حالا مثلا شما یک ماژول News دارید زمان ثبت اطلاعات توسط کاربر از پنل SiteID کاربر هم ثبت میکنید و زمان نمایش شما براسا همین SiteID همه چیز را هندل میکنید.
کاربرها فقط یک پنل دارن ولی با SiteID ها متفاوت که آنهم زمان لاگین در یک Session نگه داری میکنید.

موفق باشید

وقتی کاربر x که برای ساب دامین A تعریف شده است در سیستم لاگین کرد، سیستم اتوماتیک مثلا خبری رو که درج می کنه رو در SiteID مربوط به اون کاربر لاگین کرده ثبت می کند؟

mohsen_f_b
شنبه 28 بهمن 1391, 14:59 عصر
وقتی کاربر x که برای ساب دامین A تعریف شده است در سیستم لاگین کرد، سیستم اتوماتیک مثلا خبری رو که درج می کنه رو در SiteID مربوط به اون کاربر لاگین کرده ثبت می کند؟

سلام

بله؛ با همان SiteID ثبت میکنه. اینطوری همه چیز با جداول اولیه کنترل میشه و نیاز نیست چندین جدول برای هر ساب دامین داشته باشیم.
زمان فراخوانی مثلا mohsen.YourSite.ir ، چک میشه که mohsen کدام SiteID هستش و اطلاعات واکشی میشه.

موفق باشید

اوبالیت به بو
شنبه 28 بهمن 1391, 15:05 عصر
سلام

بله؛ با همان SiteID ثبت میکنه. اینطوری همه چیز با جداول اولیه کنترل میشه و نیاز نیست چندین جدول برای هر ساب دامین داشته باشیم.
زمان فراخوانی مثلا mohsen.YourSite.ir ، چک میشه که mohsen کدام SiteID هستش و اطلاعات واکشی میشه.

موفق باشید

این روش شما یک خوبی که نسبت به روشی که من در پست 2 گفتم داره اینه که دیگه نمی خواد برای هر بار که می خواد خبر، گالری یا هر چیز دیگه ای که کاربر می خواد در سیستم ثبت کنه، از یک DropDownList اسم ساب دامین ها رو انتخاب کنه. ایده خیلی خوبی بود. ممنون

mohsen_f_b
شنبه 28 بهمن 1391, 15:08 عصر
این روش شما یک خوبی که نسبت به روشی که من در پست 2 گفتم داره اینه که دیگه نمی خواد برای هر بار که می خواد خبر، گالری یا هر چیز دیگه ای که کاربر می خواد در سیستم ثبت کنه، از یک DropDownList اسم ساب دامین ها رو انتخاب کنه. ایده خیلی خوبی بود. ممنون

اینکه هردفعه بخو اهی از DropDown انتخاب کنی یکم مشکل سازه؛ اونطوری باید Admin یک نفر باشه. روشی که گفتم شما می توانید n تا مدیر برای n تا ساب دامین داشته باشید. بدون اختلال و بدون مشکل در کار هم دیگه.
اگه بازم سوال دراین باره بود خوشحال میشم کمک کنم.

موفق باشید

maktab
سه شنبه 22 اسفند 1391, 20:14 عصر
سوال دیگم در این زمینه:
خب حالا مدیریت اصلی در ساب دومین زیر قرار داده شده:
mysite.com و دوتا ساب دومین دیگه هم داشته باشیم:
sub1.mysite.com
sub2.mysite.com
حالا وقتی در قسمت مدیریت سایت وارد بشیم و مثلا تصویر برای یک خبر را با استفاده از خواندن ریشه سایت + پوشه مورد نظر، اپلود کنیم در چنین قسمتی قرار میگیره

Server.MapPath("~/img/")
که میشه

mysite.com/img/1.png
حالا اگر بخوام در ساب دومین های دیگه از فایل ها و تصاویر و... دومین اصلی استفاده کنم باید چکار کنم؟ مثلا وقتی در sub1 باشم و از این کد استفاده کنم:

Server.MapPath("~/img/")
استفاده کنم دیگه به دومین اصلی اشاره نمیکنه بلکه به ریشه ساب دومین sub1 اشاره میکنه که ممکنه اصلا وجود نداشته باشه!

در کل چه راه حلی پیشنهاد میکنید تا یک منبع فایل مشترک داشته باشیم که در تمام ساب دومین ها بشه از آنها استفاده کرد؟ یا چه روشی بهتر برای رفع چنین مشکل پیشنهاد میکنید؟

mohsen_f_b
چهارشنبه 23 اسفند 1391, 07:09 صبح
سلام
شخص بنده برای این کار یک فولدر واحد در نظر گرفته ام که در Root اصلی سایت قرار داره و اطلاعات به همان فولدر ریخته میشود و همه SubDomain ها به آن دسترسی دارند. منظور از اینکه ما از SubDomain اینچنین استفاده می کنیم این نیست که دیتاها در جاهای مختلف ذخیره بشوند وقتی شما از همان آدرس دهی که در بالا اشاره کردید استفاده نماید دقیقا همه فایل ها به صورت متمرکز در یک جا قرار گرفته میشود. ولی من در we.config یک مسیر را مشخص نمودم و هرزمان آپلودی صورت می گیرد مسیر را از آن می خوانم که خیلی راحتر و کم دردسرتر میباشد.

موفق باشید

maktab
چهارشنبه 23 اسفند 1391, 10:26 صبح
ممنون ولی اگر میشه یکم توضیح بدید من متوجه این قضیه نشدم :متفکر:
چون منم دقیقا میخوام چنین کاری را بکنم که گفتید. یک فولدر فایل در دومین اصلی دارم. و مثلا یک فایل را به این شکل ذخیره میکنم
Server.MapPath("~/img/") خب حالا وقتب داخل ساب دومین باشم که نمیتونم برای خوندن آن از
Server.MapPath("~/img/") استفاده کنم. چون به دومین اصلی دسترسی نداره بلکه داره به ریشه ساب دومین اشاره میکنه. اگر میشه راه ای که انجام دادید را بیشتر توضیح بدید.

maktab
چهارشنبه 23 اسفند 1391, 12:20 عصر
مثلا الان که چک کردم، داخل ادیتورها را در نظر بگیرید. اگر نخوایم از آدرس کامل استفاده کنیم و از چنین آدرسی استفاده کنیم:

src="../../Pic/pic_1.png"
این آدرس برای دامنه اصلی است. حالا در ساب دومین قابل دسترسی است؟

اگر میشه در مورد تنظیمات we.config که گفتید توضیح بدید. فکر کنم شما کاری کردید که همه ساب دومین ها و دامنه اصلی به یک جا اشاره کنند. همچنین بگید چطور میشه اینها را در لوکال تست کرد؟ یعنی برای تست یک سایت با چند ساب دومین شما چکار میکنید؟

saman6384
چهارشنبه 23 اسفند 1391, 12:29 عصر
اینکه هردفعه بخو اهی از DropDown انتخاب کنی یکم مشکل سازه؛ اونطوری باید Admin یک نفر باشه. روشی که گفتم شما می توانید n تا مدیر برای n تا ساب دامین داشته باشید. بدون اختلال و بدون مشکل در کار هم دیگه.
اگه بازم سوال دراین باره بود خوشحال میشم کمک کنم.

موفق باشید

خوب تو این روش که نمیشه یک نفر مدیر چند ساب دامین باشه!؟
مثلا من مدیر دوتا از ساب دامین ها باشم و آقای ایکس مدیر همه سایت ها باشه! و آقای ایگرگ .........

mohsen_f_b
پنج شنبه 24 اسفند 1391, 09:57 صبح
خوب تو این روش که نمیشه یک نفر مدیر چند ساب دامین باشه!؟
مثلا من مدیر دوتا از ساب دامین ها باشم و آقای ایکس مدیر همه سایت ها باشه! و آقای ایگرگ .........

سلام
کار نشد ندارد! :لبخند:
یکم ایده قاطی برنامه کنید میتوانید این کار را انجام دهید...! بنظر شما چطوری می شه این کار را انجام داد؟

موفق باشید

mohsen_f_b
پنج شنبه 24 اسفند 1391, 10:04 صبح
اگر میشه در مورد تنظیمات we.config که گفتید توضیح بدید. فکر کنم شما کاری کردید که همه ساب دومین ها و دامنه اصلی به یک جا اشاره کنند.

سلام
بطور کامل بخواهم بگم راهکار من به این صورت بوده که:
در Web.Config

<appSettings>
<add key="FileUpload" value="C:\inetpub\wwwroot\S-Project\FileUpload" />
</appSettings>



حالا زمانیکه می خواهم فایلی را Upload کنم بجای اینکه از Server.MapPath استفاده کنم از آدرسی که در appSettings برای آدرس فایل ها SET کردم استفاده می کنم.
حالا شما براساس نیازتان می توانید راهکارهای متفاوتی را پیاده سازی کنید. این یک مثال بود و من در برنامه ها به این صورت کار می کنم.

موفق باشید

saman6384
پنج شنبه 24 اسفند 1391, 11:39 صبح
سلام
کار نشد ندارد! :لبخند:
یکم ایده قاطی برنامه کنید میتوانید این کار را انجام دهید...! بنظر شما چطوری می شه این کار را انجام داد؟

موفق باشید

به نظر من بدون دراپ دان لیست نمیشه! بلاخره باید یک جایی انتخاب کرد که میخواد وارد کدوم مدیریت بشه!
فقط میشه شرط گذاشت اگه فقط یه مدیریت داشت دیگه دراپدان رو نشون نده؟!

یا هم اینکه هر ساب دامین ورودی خودشو داشته باشه!(که عاقلانه نیس!)

mohsen_f_b
جمعه 25 اسفند 1391, 02:32 صبح
به نظر من بدون دراپ دان لیست نمیشه! بلاخره باید یک جایی انتخاب کرد که میخواد وارد کدوم مدیریت بشه!
فقط میشه شرط گذاشت اگه فقط یه مدیریت داشت دیگه دراپدان رو نشون نده؟!

یا هم اینکه هر ساب دامین ورودی خودشو داشته باشه!(که عاقلانه نیس!)

سلام
راه کار های بهتری از Drop وجود داره. شما می توانید همزمان با یک نام کاربری لاگین کنید و برای هر سایتی که خواستید اطلاعات وارد کنید. همزمان می تواند مدیریت چند ساب دامین را داشته باشید.

موفق باشید

maktab
شنبه 26 اسفند 1391, 11:31 صبح
سلام
بطور کامل بخواهم بگم راهکار من به این صورت بوده که:
در Web.Config

<appSettings>
<add key="FileUpload" value="C:\inetpub\wwwroot\S-Project\FileUpload" />
</appSettings>



حالا زمانیکه می خواهم فایلی را Upload کنم بجای اینکه از Server.MapPath استفاده کنم از آدرسی که در appSettings برای آدرس فایل ها SET کردم استفاده می کنم.
حالا شما براساس نیازتان می توانید راهکارهای متفاوتی را پیاده سازی کنید. این یک مثال بود و من در برنامه ها به این صورت کار می کنم.

موفق باشید

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

mohsen_f_b
شنبه 26 اسفند 1391, 11:39 صبح
سلام
هاست کاری بغیر از این انجام نمیده. دقیقا تمام فایلها و فولدر شما در یک مسیر قرار میگیره مه مسیر روی سرور برای شما قابل دسترسی هستش. مسیر را در web.config قرار بدهید مابقی مسائل حله.

موفق باشید

maktab
شنبه 26 اسفند 1391, 12:02 عصر
سلام. ممنون که پیگیر موضوع هستید.

منظور من value که باید بر روی هاست ست کنم چیه؟

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

/File/1.png
در ادیتورها استفاده کنه. چون در ساب دومین جواب نمیده.

maktab
شنبه 26 اسفند 1391, 12:37 عصر
راستی نقش این کد چیه؟ فقط داره به یک محل اشاره میکنه. همین. درسته؟ یعنی میشه به جای اون، تو یه کلاس یک پروپرتی ایستا داشته باشیم که آدرس را بر گردونه. درسته؟

maktab
سه شنبه 29 اسفند 1391, 14:37 عصر
اگر دوستان اطلاعاتی در این باره دارن. لطفا راهنمایی کنند. ممنون