آناتومی سیستم‌های مدیریت محتوا


ساختار مفهومی

ساختار منطقی تمامی سایت‌سازها حداقل مشتمل بر ۴ بخش هسته، داده‌ها، پلاگین‌ها و قالب‌ها است. یعنی تمامی سایت‌سازها حداقل این چهار بخش اصلی را دارند و برخی‌شان بیشتر دارند:

 

هسته مرکزی هر سایت‌سازی مشتمل بر بخش‌های گوناگونی است که به طور کلی شامل چرخه حیات محتوا، چرخه فعالیت کاربران، گزارش‌گیری از تمامی رویدادهایی که برای وب‌سایت رخ می‌دهد، مهیا کردن تسهیلات فنی برای توسعه امکانات و قابلیت‌ها و نیز مدیریت امکانات پایه و چند مورد دیگر است. تفاوت اکثر سیستم‌های سایت‌ساز در همین بخش‌ها است. این اصطلاح “چرخه حیات” را خیلی دوست دارم که معادل فارسی اصطلاح Lifecycle است. چرخه حیات محتوا مشتمل بر فرایند ورود، ویرایش، انتشار، بازنگری، اصطلاح و آرشیو کردن محتواست. چرخه حیات محتوا به نوع محتوا نیز وابسته است. هر محتوا بالاخره روزی زاده می‌شود و روزی هم باید بازنشسته شود.

 

اصطلاح مهم دیگری که در رابطه با سایت‌سازها مطرح می‌شود معماری است.

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

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

پیروان رویکرد اول عنوان می‌کنند که هیچ‌یک از سایت‌سازهای محصول رویکرد دوم را حتی اگر هزار پلاگین درست و درمان هم داشته باشند نمی‌توان در زمره سایت‌سازهای قابل اعتماد و ماندگار تلقی کرد. بین خودمان بماند که وردپرس خلاف این مدعا را اثبات کرده است. بیشتر وبلاگ‌سازان، عاشق سبکی و چابکی ذاتی وردپرس هستند. به همین اکتفا می‌کنم که پیروی از رویکرد اول یا دوم دلالت بر برتری ندارد. در این‌باره به وقتش سخن خواهیم گفت!

 

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

گفتیم که داده‌ها در بطن دیتابیس نگهداری می‌شوند. بیشتر سیستم‌های سایت‌ساز متن‌باز و رایگان به طور پیش‌فرض از دیتابیس MySQL پشتیبانی می‌کنند و سایت‌سازهای پیشرفته‌تر علاوه بر MySQL از دیتابیس‌های دیگری چون PostgreSQL، Oracle، SQL Server و حتی DB2 پشتیبانی می‌کنند که جای تقدیر و تشکر دارد.

از میان دیتابیس‌های بالا فقط MySQL و PostgreSQL رایگان و متن‌باز هستند که اولی زیر نظر شرکت Oracle اداره می‌شود و دومی از نظر فنی امکاناتی مشابه دیتابیس فوق‌حرفه‌ای Oracle دارد. فرض‌تان این باشد که تمامی سیستم‌های سایت‌ساز از دیتابیس MySQL استفاده می‌کنند، مگر اینکه خلافش ثابت شود!

بیشتر هاست‌ها حتی اگر ویندوزی هم باشند آخرین نسخه دیتابیس MySQL را نصب می‌کنند و اگر سیستم سایت‌سازتان با سیستم‌عامل ویندوز مشکلی نداشته باشد، آنها هم با شما مشکلی نخواهند داشت!

 

پلاگین را برخی افزونه ترجمه کرده‌اند که الحق و الانصاف ترجمه سلیس و دقیقی است، اما پلاگین در سیستم‌های سایت‌ساز معانی گوناگونی دارد. منظور ما از پلاگین، اشاره به اجزائی دارد که برای ایجاد تسهیلات، افزودن قابلیت یا توسعه امکانات به هسته سایت‌ساز الصاق می‌شوند.

در دنیای وردپرس هر بخشی که چنین ویژگی را داشته باشد پلاگین خطاب می‌شود. در دنیای دروپال به این موجودات ماژول گفته می‌شود و از عنوان پلاگین استفاده نمی‌شود. در سیستم سایت‌ساز جوملا سه گونه افزودنی وجود دارد که ماژول و پلاگین و کامپوننت خوانده می‌شوند. البته نسخه‌های قبلی جوملا چیز دیگری داشتند که مامبوت خوانده می‌شد که از سایت‌ساز مرحوم مامبو به ارث رسیده بود و از قرار معلوم در نسخه ۲٫۵ جوملا از سیستم حذف شده یا در حال حذف است. در دنیای انجمن‌ساز MyBB علاوه بر پلاگین از چیزی با عنوان مود (Mods) برای توسعه امکانات استفاده می‌شود و همین‌طور الی آخر.

 

پلاگین‌ها نقشی حیاتی در تداوم حیات وب‌سایت‌ها دارند. با ۲۰ پلاگین مناسب می‌توان بلاگ‌ساز وردپرس را به یکی از بهترین سیستم‌های سایت‌ساز تبدیل کرد. دروپال را با چند پلاگین خاص مانند View و Panel می‌توان دست‌نیافتنی کرد.

مدیریت برخی از این پلاگین‌ها گاه پیچیده‌تر از مدیریت سایت‌ساز اصلی است. به طور مثال؛ جوم‌سوشیال که امکانات شبکه انسانی را به جوملا اضافه می‌کند فوق‌العاده کامل و پیچیده است. از این‌رو؛ دانستن درباره پلاگین‌های هر سایت‌ساز از اوجب واجبات است و حتی یکی از پارامترهای بسیار مهم در مقایسه کمی و کیفی سیستم‌های سایت‌ساز همین پلاگین‌ها هستند که هم تعدادشان مهم است و هم کیفیت کارکردشان برای متخصصان اهمیت دارد. پلاگین‌ها برای انجام سه کار مشخص تهیه می‌کنند:

 

گونه اول؛ پلاگین‌هائی هستند که تسهیلاتی برای استفاده از امکانات و قابلیت‌هائی که در هسته اصلی سایت‌ساز تعبیه شده، اما به طور پیش‌فرض عرضه نشده فراهم می‌کند. این‌ها کارکردی همچون API دارند. به بیان ساده‌تر؛ این‌گونه پلاگین‌ها باب جدیدی از قابلیت‌های هسته سایت‌ساز را برای دیگر پلاگین‌ها باز می‌کنند. این‌قبیل پلاگین‌ها به طور معمول خروجی قابل نمایش ندارند و گاه حتی، قابل تنظیم هم نیستند. مثالی می‌زنم؛ هر موجودیت در سیستم وردپرس اعم از برگه، نوشته، دسته، لینک، کاربر و غیره دارای کدی یکتاست که ID خوانده می‌شود. در حالت پیش‌فرض این کد را نمی‌توان مشاهده کرد، اما پس از نصب و فعال کردن پلاگین‌هائی چون Show ID یا Reveal ID ستونی به فهرست اطلاعات قبلی افزوده می‌شود و شناسه یکتای موجودیت را نمایش می‌دهد که بی‌نهایت کاربردی است.

 

گونه دوم؛ پلاگین‌هائی هستند که امکانات سایت‌ساز را توسعه می‌دهند. پلاگین‌های انجمن‌ساز، فروشگاه الکترونیکی، ویکی، مدیریت دیتابیس، ارسال ای‌میل، مدیریت گالری‌ها و امثالهم از این دست هستند. این‌قبیل پلاگین‌ها کارکرد هسته را توسعه می‌دهند و گاه می‌توانند دسته‌بندی سیستم را نیز تحت‌الشعاع قرار دهند. دروپال را به کمک مجموعه‌ای از پلاگین‌ها می‌توان به یکی از بهترین سیستم‌های شبکه انسانی تبدیل کرد، یا جوملا را می‌توان با افزودن پلاگین JoomlaLMS تبدیل به سرسخت‌ترین رقیب سیستم‌های آموزش الکترونیکی تراز اول دنیا کرد.

 

گونه سوم؛ پلاگین‌هائی مهجور و مظلومی هستند که چگونگی نمایش اطلاعات را به شیوه‌ای پویا مدیریت می‌کنند. پلاگین View امکان تنظیم نوع نمایش دلخواه اطلاعات را برای دروپال فراهم می‌کند. پلاگین Dynamic Widget چگونگی نمایش ابزارک‌های وردپرس را بر اساس کاربر، برگه، نوشته، مرورگر، تاریخ و پارامترهای دیگر فراهم می‌کند. قاطبه این پلاگین‌ها وابسته هستند، یعنی باید پلاگین‌هائی از گونه اول و دوم نصب و فعال شوند که امکان عرض اندام برای پلاگین‌های گونه سوم مهیا شود.

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

 

پابلو نرودا قطعه شعر فوق‌العاده‌ای دارد که عنوانش است: هوا را از من بگیر، خنده‌ات را نه!

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

نمایش مناسب و متناسب محتوا، مهم‌ترین و اصلی‌ترین وظیفه سیستم‌های سایت‌ساز است و قالب‌ها؛ چنین امکانی را فراهم می‌کنند. اگر سایت‌سازی چنین امکانی را فراهم نمی‌کند یا سخت‌گیری می‌کند، توصیه می‌کنم بی‌خیالش شوید. همراهی با این‌قبیل سایت‌سازها اتلاف بی‌دلیل عمر است.

قالب‌ها به بیان ساده؛ چیدمان انواع و اقسام محتوا را در مرورگرهای اصلی تعیین می‌کنند. قالب‌ها همان رابط‌های گرافیکی کاربری (GUI) هستند که اگر نباشند، تمامی جذابیت و کارکرد مثبت وب‌سایت‌ها به فنا می‌رود. در طراحی مکانیزم مدیریت قالب‌ها دو رویکرد اصلی وجود دارد:

 

رویکرد اول؛ به تفکیک بخش‌های مدیریت از بخش نمایش اطلاعات اصرار دارد، یعنی مدیریت اطلاعات اعم از ورود، انجام تنظیمات، تعریف کاربران، مدیریت پلاگین‌ها و غیره در بخش جداگانه‌ای و با ظاهری دیگر انجام می‌شود. جوملا، وردپرس و اکثر سیستم‌های انجمن‌ساز از این رویکرد تبعیت می‌کنند.

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

راستش در عمل تفاوت چندانی در کارائی سیستم وجود ندارد و شک نکنید که زودتر از آنچه فکر می‌کند به این رویکردها عادت می‌کنید.

تا چهار پنج سال پیش تمامی طراحان قالب از تگ جدول html برای ایجاد قالب و چیدمان اجزا گرافیکی استفاده می‌کردند. چند سالی می‌شود که تکنیک طراحی بدون جدول (Tableless) باب شده و دوستان طراح از تگ Div همراه با سلکتورهای css استفاده می‌کنند که مزیت‌های فوق‌العاده‌ای دارد. درباره‌اش به وقتش صحبت خواهیم کرد.

قالب گرافیکی تمامی سایت‌ساز شامل مجموعه‌ای از تگ‌های html و css است. برای نمایش اطلاعات لازم است تا کدهای واسطی در قالب تعبیه شوند تا به هسته سایت‌ساز بفهمانند که کدام محتوا را، چگونه، برای چه مخاطبی و در کدام موقعیت نمایش دهد. سیستم‌های سایت‌ساز بر اساس ساختار فنی‌شان شامل دو دسته ساده و پیچیده هستند. سایت‌سازهای ساده مانند وردپرس، تعدادی کد php واسط دارند که در بطن قالب تعبیه می‌شوند و چگونگی نمایش محتوا را به هسته یا موتور وب‌سایت تفهیم می‌کنند. سایت‌سازهای پیچیده مانند دروپال از کد واسط php استفاده نمی‌کنند و در واقع جزء دیگری دارند که موتور گرافیکی خطاب می‌شود و برای نمایش محتوا از کدهای قابل فهم برای موتور گرافیکی استفاده می‌کنند. استفاده از موتور گرافیکی نیازمند تغییر در معماری سایت‌ساز است و نمی‌شود همین‌طوری یک موتور گرافیکی به هسته سایت‌ساز افزود. حساب و کتاب دارد برادر من. این موضوع را در بخش معماری سایت‌ساز دنبال می‌کنیم.

 

دو رویکرد اصلی در طراحی معماری سیستم‌های سایت‌ساز مورد توجه است:

رویکرد اول؛ استفاده از معماری چند لایه و رویکرد دوم؛ استفاده از معماری رویه‌ای است.

این دو رویکرد در واقع دو رویکرد برنامه‌نویسی هستند که برخی از شما با آن آشنا هستید. رویکرد دوم اگر نماینده پرقدرت و زنده‌ای همچون وردپرس را نداشت، شاید زودتر از این‌ها صحنه را ترک کرده بود، اما وردپرس هست و البته بعید هم نیست که در نسل‌های آتی خود تغییر رویه دهد. وردپرس بر سادگی و کاربردپذیری سیستمش تأکید دارد و فکر نمی‌کنم به این زودی‌ها تغییر رویه دهد.

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

در واقع در معماری سه لایه واقعی، موتورهای هر لایه با هم صحبت می‌کنند. برای چیدمان محتوا در لایه نمایش از همان قالب‌های استاندارد استفاده می‌شود، اما به جای درج مستقیم کدهای php از کدهای قابل‌فهم برای موتور گرافیکی سیستم استفاده می‌شود. لایه نمایش از طریق موتور گرافیکی با موتور وب‌سایت ارتباط برقرار می‌کند و به لایه کنترلی می‌فهماند که چه می‌خواهد. اگر نیاز به دریافت اطلاعات از دیتابیس باشد، موتور اصلی وب‌سایت به موتور داده می‌فهماند که چه نوع اطلاعاتی را نیاز دارد. موتور داده از دستورات ویژه‌ای استفاده می‌کند که Stored Procedure یا به اختصار SP خوانده می‌شود. با قدری اغماض می‌توان موتور داده را همان موتور دیتابیس فرض کرد. به همین علت است که برقراری امنیت در سایت‌سازهای سه لایه واقعی، آسان‌تر و مطمئن‌تر از سیستم‌های ساده است. از اصطلاح‌های گوناگونی برای معماری سه لایه استفاده می‌شود. حتم دارم با اصطلاح‌های MVC و PAC و PMVC امثالهم را شنیده‌اید. این‌ها به طور مستقیم به معماری چند لایه اشاره می‌کنند. جوملا از معماری MVC تبعیت می‌کند و دروپال کنونی تابع معماری PAC است، اما از نسخه هشتم قرار است تابع معماری MVC شود.

سایت‌سازهایی که با زبان php نوشته می‌شوند اغلب از موتور گرافیکی smarty یا چیزی مشابه‌اش استفاده می‌کنند. البته اجباری در این‌باره وجود ندارد و متولیان سایت‌ساز می‌توانند موتور گرافیکی دلخواه‌شان را بنویسند و قواعدش را منتشر کنند. این را هم بگویم و این بخش را تمام کنم که بیشتر سایت‌سازهای جدید از تکنیک شئ‌گرائی در برنامه‌نویسی سایت‌سازشان بهره می‌برند. استفاده از تکنیک شئ‌گرائی برای پیروان رویکرد معماری سه لایه اجباری است، اما سایت‌سازهای ساده هم می‌توانند از این تکنیک بهره ببرند که بی‌شک موجب افزایش کارائی سیستم خواهد شد. می‌توانید این‌گونه فرض کنید که تمامی سیستم‌های سایت‌ساز درست و درمان از این تکنیک استفاده می‌کنند.

 

سیستم‌های سایت‌ساز را می‌توان با هر زبان دلخواهی که بر روی وب‌سرورها اجرا شده و خروجی html تولید کند نوشت، اما محدودیت‌هائی در این‌باره حاکم است و همین است که بیشتر از پنج شش زبان و تکنولوژی برنامه‌نویسی PHP، ASP.NET، C#، Python، Perl، Ruby و Java برای پیاده‌سازی سیستم‌های سایت‌ساز استفاده می‌شود. البته زبان‌های مورد استفاده محدود به این‌ها نیستند و برخی سیستم‌های سایت‌ساز را با JavaScript و ActionScript و حتی زبان برنامه‌نویسی غریبی چون Smalltalk ایجاد می‌کنند، اما بیشتر سیستم‌های سایت‌ساز از همان زبان‌هایی که در ذکرشان رفت بهره می‌برند.

بیشتر سایت‌ساز تجاری را با جاوا و دات‌نت و سی‌شارپ ایجاد می‌کنند. سیستم‌های مدیریت محتوای متن‌باز و رایگان معدودی هستند که از تکنولوژی‌های شرکت مایکروسافت استفاده می‌کنند که گل سرسبدشان سایت‌ساز دات‌نت‌نیوک است. سایت‌ساز Rainbow هم هست که در ایران مهجور است و البته پشتیبانی درستی هم ندارد. دات‌نت‌نیوک در ایران بی‌شمار طرفدار دارد و در بنای وب‌سایت‌های مهمی چون پورتال شهرداری تهران و پورتال حوزه هنری استفاده شده است.

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

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

زبان روبی و فریم‌ورک فاخر Ruby on Rails هم طرفدار چندانی در ایران ندارد و طبیعی است که سیستم‌های مبتنی بر این تکنولوژی‌ها هم ناشناخته مانده‌اند. سیستم‌های مدیریت محتوای مبتنی بر روبی هنوز به دوران بلوغ‌شان نرسیده‌اند و برای استفاده توصیه نمی‌شوند.

شرایط زبان پایتون قدری از دیگر زبان‌ها و تکنولوژی‌ها متفاوت است. هفت هشت سالی می‌شود که پایتون به زبان برنامه‌نویسی محبوب وب تبدیل شده و حتی شرکت‌های بزرگی چون گوگل و یاهو را مجنون کرده است. صفر تا صد سرویس ای‌میل یاهو و جی‌میل با پایتون طراحی شده است. گوگل از زبان جدیدی با نام GO استفاده می‌کنند که بر پایه پایتون تولید شده است. برخی به درست یا غلط زبان پایتون را اصلی‌ترین رقیب تکنولوژی‌های مایکروسافت عنوان می‌کنند. که راستش ربط چندانی به ما ندارد. به همین اکتفا می‌کنم که سیستم سایت‌ساز فوق‌العاده Plone که چیزی از امثال دروپال و جوملا کم ندارد با پایتون نوشته شده است.

اما اصلی‌ترین گزینه برای دوستانی که سررشته چندانی از برنامه‌نویسی ندارند، استفاده از سایت‌سازهایی است که با php تولید شده‌اند. راه‌اندازی وب‌سایت، وبلاگ و پورتال با این‌قبیل سایت‌سازها بسیار سهل است و آن قدر انجمن و گروه با موضوع php و سایت‌سازهای معروف وجود دارد که هیچ‌گاه احساس تنهایی نخواهید کرد. به طور کلی php را نمی‌توان کامل‌ترین زبان برای ایجاد سایت‌ساز قلمداد کرد، اما شک نکنید که بهترین گزینه برای کاربران ایرانی‌ است و بی‌علت نیست که در تولید چهارصد سیستم از مجموع ششصد سیستم مدیریت محتوای متن‌باز و رایگان از php استفاده شده است. اگر صرفا قصد تجربه دارید که هیچ، اما برای راه‌اندازی جدی وب‌سایت با سیستم‌های سایت‌ساز توصیه می‌کنم که بر تگ‌های html و css مسلط شوید و در اولین فرصت زبان‌های php و JavaScript را فراگیرید و با دستورات MySQL هم آشنا شوید.

 

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

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

 

بیشتر سیستم‌های سایت‌ساز مبتنی بر php فقط روی سرورهای لینوکسی نصب می‌شدند، اما سرسخت‌ترین‌شان که جوملا بود پا پس کشیده و خود را با سرورهای ویندوزی نیز سازگار کرد. کمتر سیستمی یافت می‌شود که با سرورهای ویندوزی مشکل داشته باشد. زبان php و دیتابیس MySQL روی بیشتر سرورهای ویندوزی هم نصب می‌شوند، اما از من می‌شنوید از ویندوزی‌ها بپرهیزید. کارائی سیستم‌های مبتنی بر php و MySQL روی سرورهای لینوکسی به طور محسوسی بالاتر است. همین!

 

پیش‌تر گفته شد که سیستم‌های کنونی علاوه بر MySQL از دیتابیس‌های دیگر هم پشتیبانی می‌کنند. تغییراتی در ماه‌های اخیر در بطن بیشتر سیستم‌های سایت‌ساز ایجاد شده است و بیشتر آن‌ها پشتیبانی از نسل چهارم دیتابیس MySQL را متوقف کرده یا عن‌قریب است که متوقف کند. همین موضوع برای نسل پنجم زبان php هم حادث شده است و پشتیبانی از php4 تا پایان سال ۲۰۱۲ میلادی متوقف خواهد شد.

دیگر آنکه اگر از سایت‌سازهای درست و درمان php استفاده می‌کنید بدانید بد نیست که محدودیتی که سرورها برای حجم دیتابیس قائل می‌شوند نباید از ۵۰ مگابایت برای وب‌سایت معمولی کمتر باشد که اگر باشد، پس از مدتی فعالیت گرفتارتان می‌کند. تمامی سایت‌سازها از پلاگین‌هائی برای مدیریت و پاک‌سازی دیتابیس از داده‌های زائد بهره می‌برند. حواس‌تان به این پلاگین‌ها باشد که بی‌نهایت کارآمد هستند. پدران نویسندگان این‌قبیل پلاگین‌ها را خداوند متعال؛  رحمت کند!

 

در این‌باره بحث و جدل فراوان است، چرا که دولت ما، توافق‌نامه‌های جهانی کپی‌رایت را امضا نکرده و به آن پایبند نیست. صرف‌نظر از سیستم‌های تجاری، بیشتر سیستم‌های سایت‌ساز متن‌باز تابع چند مجوز اصلی مانند GPL، GPLv2، MIT، Apache، BSD، LGPL یا مجوزهای اختصاصی‌تر هستند. در حالت کلی؛ این مجوزها بسیار شبیه‌اند، اما در موارد خاص تفاوت‌های بارزی با هم دارند. مجوزها، محدوده تغییرات قابل انجام در هسته سیستم را مشخص می‌کنند. سال‌ها پیش؛ هنگامی که برخی دوستان در ایران  لطف کردند و هسته جوملا را تغییر داده و آن را به نام میترا یا سیستم مدیریت محتوای ملی منتشر کردند، معترضانی که حال و حوصله داشتند بانگ برآوردند که چرا چنین می‌کنید؟ درستی یا نادرستی چنین کاری را بنده و شما مشخص نمی‌کنیم، بلکه باید دید که آیا چنین فعلی در محدوده مجوز جوملا مجاز است یا خیر. اگر بود که هیچ، و اگر نبود آنگاه می‌توان اینان را کلاهبرداران وطنی خطاب کرد.

برخی مجوزها این امکان را به کاربران می‌دهند تا هر تغییری که دل‌شان می‌خواهد در ساختار و کدهای سیستم اعمال کنند و سیستم تغییریافته را با هر نامی که دوست دارند منتشر کنند.  

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

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

 

توصیه می‌کنم این بخش را خوب بخوانید!

برقراری امنیت حاصل معماری و ساختار امن سیستم و نیز رفتار کم‌مخاطره کاربران است. تعریف امنیت ساده نیست، اما می‌توان از اصطلاح واقعی‌تر مخاطره یا ریسک استفاده کرد. سیستم‌های امن به سیستم‌هایی اطلاق می‌شود که با حداقل مخاطره یا ریسک مواجه هستند، یعنی سیستم با ریسک پایین فعالیت می‌کند. ریسک یا مخاطره حاصل دو پارامتر مهم آسیب‌پذیری (Vulnerability) و تهدید (Threat) است. بنزین قابلیت اشتعال دارد، پس یک پمپ بنزین، آسیب‌پذیر قلمداد می‌شود. آتش، کبریت یا جرقه الکتریکی حکم تهدید را دارد. هم‌نشینی تهدید با آسیب‌پذیری می‌شود ریسک!

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

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

 

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

 

اعتراف می‌کنم که سال‌های سال با جوملا کار می‌کردم و  هیچ مشکلی با آن نداشته، اما نسخه‌های ۰٫۹ تا ۱٫۵ سایت‌ساز جوملا دو مشکل اصلی داشتند. اول اینکه؛ در تعریف دسته و زیردسته محدودیت‌هایی وجود داشت و کاربران نمی‌توانستند به تعداد دلخواه زیردسته تعریف کنند و مهم‌تر اینکه؛ امکان تعریف گروه‌های کاربری و تعریف نقش‌های جدید ممکن نبود. چنین ضعف‌های بزرگی مایه شرم‌ساری متولیان جوملا بود و همین شد که نسخه ۱٫۶ جوملا با پوشش این دو نقطه ضعف عرضه شد.

وردپرس را اگر سیستمی بلاگ‌ساز بدانیم در این‌باره فراتر از انتظار است، اما به‌عنوان سیستم سایت‌ساز کاستی‌هایی در مدیریت سطوح دسترسی دارد. شانس با وردپرسیان همراه بوده و دو سه پلاگین عجیب و غریب مانند Role Scoper و Advanced Access Manager و Dynamic Widget به دادشان رسیده است.

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

سیستم‌های بلاگ‌ساز به طور کلی در این‌باره ضعیف هستند، چرا که از اساس نیازی به چنین ویژگی مهمی ندارند. اما مدیریت وب‌سایت‌هایی که با گروه‌های کاربری گوناگون سر و کار دارند و افراد بسیاری در پس ماجرا به تولید و انتشار محتوا مشغول هستند بدون تعیین سطح دسترسی قابل انجام نیست. خوب فکر کنید که تعیین دسترسی‌ها را در چه سطحی نیاز دارید و اگر مشکل‌تان با ویژگی‌های پایه سایت‌سازها  رفع می‌شود، لجاجت به خرج ندهید و بیش‌ترش را درخواست نکنید. اما این گفته بدان معنا نیست که کوتاه بیایید. مدیریت سطوح دسترسی را اگر با دقت انتخاب و تنظیم نکنید بعدها گرفتارتان می‌کند.

 

 

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

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

 

به تصورم مضحک‌ترین پرسشی که می‌توان مطرح کرد همین است که بهترین سیستم سایت‌ساز هستی کدام است؟ خب بدیهی است که وردپرس!

شوخی کردم. پاسخ به این پرسش اصلا و ابدا آسان نیست. راستش ارایه پاسخ به این پرسش نیازمند طرح پرسش‌های متعددی است:

برای چه کاربردی؟

چه تعداد مخاطب؟

مخاطب هدف کیست؟

نوع محتوائی که منتشر می‌شود چیست؟

بیشتر مخاطبان در ایران هستند یا خارج؟

آیا قرار است که مخاطبان در فعالیت‌های وب‌سایت مشارکت کنند؟

آیا سیستم‌های جانبی همچون انجمن، فروشگاه و امثالهم راه‌اندازی خواهند شد؟

 

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

 

و اما در این سلسله مقالات، ما وردپرس چابک را به‌عنوان سیستم سایت‌ساز انتخاب کرده‌ایم و از شماره‌های آتی درباره نصب، تنظیمات و حواشی‌اش خواهیم نوشت.

 



منبع: ماهنامه رايانه خبر