مقایسه وردپرس و جوملا، دو سیستم رایگان وبسایتسازی
مقایسه وردپرس و جوملا، دو سیستم رایگان وبسایتسازی
سیستمهای مدیریت محتوای منبعباز (CMS)، خانواده بزرگی از نرمافزارهای تحت وب هستند. ولی اگر بهدنبال دوام، کارایی و نیازهای تکنیکی متوسط هستید، گزینههای محدودی در مقابلتان قرار خواهد گرفت.
در گذشته، انتخاب CMS مناسب، ......
یکی از نیازهای اصلی یک پروژه محسوب میشد، و در ادامه وبسایت را به همان نیازمندیها محدود میکرد و گسترش آن دشوار بود. ولی این موضوع در حال حاضر، درست نیست و این امر بهخاطر قابلیت توسعهپذیری است که در هسته اصلی CMS قرار داده شده و با هر افزونهای قابل توسعه است و هر نیازی را بهصورت مجازی برطرف میکند. بسته به دیدگاه ما از کارکرد نرمافزارهای تحت وب و شیوه برطرفکردن نیاز کاربران و مدیران، انتخاب CMS مناسب میتواند متفاوت باشد.
محمد حسین کردونی، در شماره این هفته مجله بایت، به بررسی این سیستم های رایگان وب سایت سازی پرداخته است.
تفکرات پشت پرده
وردپرس و جوملا، از محبوبترین CMSهای منبعباز هستند. این CMSها، جامعه پشتیبان بزرگ و فعالی دارند و راهنماهای آنها بهوفور در اینترنت یافت میشود. وردپرس، بهخاطر طراحی زیبای محیط و رنج وسیع قالبهای فوقالعاده و در دسترس، معمولا اولین گزینه اجتماع توسعهدهندگان برای انتخاب است. اما جوملا، بهخاطر بدنامیای که برای کارایی پایین و خروجیهایی که که گاهی اوقات اشتباه هستند(که البته این را از مامبو بهارث بردهاست)، رنجآور است. البته در نسخه ۵/۱، هسته جوملا، بهوسیله توسعهپذیریهای پیشرفته و خروجی HTML بهتر، بازنویسی شد.
یکی از تفاوتهای وردپرس و جوملا، در مدل تمهای آنهاست. یک برنامهنویس که از جوملا بهسمت وردپرس میرود ممکن است این احساس را داشته باشد که وردپرس نیازهای بیشتری از او را برطرف میکند و در حالت عکس، کسی که بهسمت جوملا میرود، ممکن است احساس کند جوملا، انعطافپذیری و تغییرپذیری کمتری دارد. دلیل این امر، مدلهای مختلفی است که در تمهای این CMSها قرار داده شدهاست.
مدل قالب وردپرس
مدل قالب وردپرس، برپایه ساختار دید مرحلهای است. بهاین معنی که در هر تم، میتوانید برای فایلهای لیست پستشدهها، یا یک پست خاص و یا صفحههای آرشیو، دید خاصی داشتهباشید. این فایلها، مستقل از یکدیگر هستند و این قابلیت وردپرس، به برنامهنویس اجازه میدهد هر شیوه دیدن را بهطور خاص طراحی کند. ولی اینکار، بخشهای زیادی از کد را تکراری میکند. تنها بخش معمول در قالب، سرنوشته و پانوشته است که میتوانند بهطور مستقیم، در یک دید مستقل و در کد نوشته شوند. مهمترین اشکال این مدل این است که در دیدهای مختلف، معمولا از نمایشهای مختلفی استفاده نمیشود. برای غلبه بر این مشکل، یک تم در ساختار ترتیبی و با دیدهای نوعی بیشتر ساخته شد که در موارد خاص مانند یک سیستم پشتیبان عمل میکند.
مدل قالب جوملا
جوملا (Joomla)، از شیوه متفاوتی برای قالبهای خود استفاده میکند. قالبهای جوملا، روی یک ساختار معمول که در فایل index.php تعریف شدهاست، ساخته شدهاند. این فایل، هم شامل محتوای ایستا و هم شامل تگهای قالب است که مانند نگهدارنده محتوا عمل میکند و در فاز رندر شدن صفحه، با خروجی HTML جایگزین میشود. تگهای قالب، در نوع محتوایی که فراهم میکنند تفاوت دارند. مثل اجزا، پیغام، ماژول، سرصفحه و غیره.
اصل این ساختار، این مساله را نشان میدهد که هر دید در خروجی CMS، یک صفحه کامل نیست ولی چیزهایی که باید را نشان میدهد. در اولین نگاه، برنامهنویسی که از مدل تمگذاری وردپرس استفاده میکند، شاید فکر کند که هیچ راهی برای تغییر دادن یک محتوا وجود نداشته باشد. درواقع جوملا، بر الگوی معماری MVC تکیه کرده است. به این معنی که در آن بیرونکشیدن و نمایش داده جدا شده است.
تغییرات قالبها
جوملا برای تغییر دید پیشفرض، الگویی بهنام ابطال قالب دارد که سیستم، پوشه قالب را برای پیدا کردن یک فایل دید تغییر دادهشده، و برای جایگزینی بهجای دید پیشفرض، جستجو میکند. ابطال قالب که در جوملا وجود دارد، روش خوبی برای سفارشی کردن قالب یک وبسایت، بدون شکستن قفل آن است.
آن سوی هسته
در چند سال گذشته، افزونهها، تحول عظیمی در صنعت نرمافزار بهوجود آوردند. همانطور که اشاره شد، CMSهای مدرن، برپایه گسترشپذیری توسعه یافتند و بههمین دلیل است که میتوانیم از هسته آن بهراحتی استفاده کنیم و قسمتهای ویژهای را در بالاترین سطح آن بسازیم. این طراحی قسمتبندیشده، به چند دلیل یک مدل توسعه موثر است:
- نگهداری بهتر. توسعهدهندگان نیازی به اصلاح هسته برای اضافه کردن یا تغییر قابلیت ندارد.
- سبکتر و امنتر. قابلیتهایی که مورد نیاز هستند، در آن قرار دادهشده است. اینعمل، مصرف کمتر حافظه، حجم کمتر و آسیبپذیری کمتر را نتیجه میدهد.
- چرخههای توسعه جداگانه برای هسته و قابلیتها. توسعهدهندگان میتوانند قابلیتهای جدیدی اضافه کنند درحالی که تیمی که روی هسته کار میکنند، روی کارایی سیستم تمرکز کردهاند. با استفاده از پروژههای منبعباز، آخرین نکته، هم خوب است و هم بد! هم برای توسعههای مشترک مفید است و هم اینکه ما را به سمت روند کاری شلوغتر سوق میدهد. جوملا و وردپرس، سعی بر این داشتهاند که این ضعف را بهوسیله تهیه راهنماهای کدنویسی برطرف کنند.
گذشته از تفاوتهای جوملا و وردپرس در نامگذاریها، مدلهای بسط یافته جوملا و وردپرس در چگونگی تعامل کد و هسته اختلافهایی دارند. کلید درک این مساله این است که درحالی که جوملا، برپایه الگوی MVC است، وردپرس به سیستم رخداد مانند تکیه کرده است.
ساختار و مدل افزونههای وردپرس، بر پایه اجرای مجموعهای از توابع است که به روند سیستم وابستهاند و از اینطریق با سیستم کار میکنند. این ابزارکها شامل فهرستی از توابع هستند که در هر نسخهای از وردپرس قابلیت اجرا دارند. این ابزارکها، بهراحتی اجرا میشوند و دادههای موجود در پایگاهدادهها را بهصورت خروجی نمایش میدهند. همچنین، خودشان، در درون تم و از یک بسته افزونه بهخصوص، دردسترس هستند.
برای درک بهتر مدل ذهنی که پشت سیستم ابزارک وردپرس است، آن را با مراحل پخت یک کیک مقایسه میکنیم!
در آغاز کار، باید ایدهای داشته باشیم که چهنوع کیکی میخواهیم درست کنیم؟ نمیتوانیم، همه اجزا را با هم قاطی کنیم و توی فر بگذاریم. باید براساس فهرستی از فعالیتها عمل کنیم. همچنین میتوانیم دستورالعمل پخت را نیز طبق سلیقه خودمان کمی تغییر دهیم. مثلا کمی شکلات بهعنوان افزودنی اضافه کنیم یا بخشی از آن را کمتر کنیم. نتیجه این عملیات کیکی میشود که حاصل کمی خلاقیت و مخلوط کردن اجزای ازپیشتعیین شده است.
وردپرس نیز بههمین طریق صفحههای خود را میپزد.
منوهای کناری و ویجتها
از آنجا که ابزارکها با اطلاعات سیستم در ارتباط هستند، یک ویجت، نقش نوع ویژهای از افزونه را ایفا میکند که اطلاعات خاصی را در نوار کناری سیستم نمایش میدهد. یکی از مهمترین کاربردهای ویجتها این است که شکلپذیر هستند و حتی کاربران بسیار مبتدی نیز میتوانند با جابهجایی آنها، شکل دلخواهی به آنها بدهند. از نظر توسعه تم، مدل ذهنی منوها، بسیار شبیه تگهای قالب جوملا است و میتواند چیزی را در خود نگه دارد. نکتهای که ممکن است کاربر را به اشتباه بیندازد ایناست که منو لازم نیست حتما در جای واقعی خود یعنی در کنار طرحبندی قرار بگیرد. میتواند در پانوشته، سرنوشته یا هرجای دیگری باشد.
اضافه کردن قابلیت
تا کنون، مشکلی که در API وردپرس وجود داشت این بود که برای پیادهسازی یک عملیات پیچیده، هیچ راه آسانی وجود نداشت. بههمین منظور، افزودن امکاناتی چون قابلیت پرداخت از طریق کارت اعتباری یا اموری مشابه، بهیک کابوس بدل میشد. توسعهدهندگان این مشکل را بهعنوان بزرگترین مشکل وردپرس میدانند و بههمین دلیل این سیستم را بیش از یک بلاگ نمیبینند. امیدواریم این مشکل، با انتشار نسخه وردپرس۰/۳ و سیستم بهخصوصش برای انواع پست، که امکان استفاده از واسطهای پست و صفحه برای انواع مختلف محتوا را فراهم میکند، حل شود.
همانند دیگر CMSهای معروف، تابع انواع پست، نوعی بسته ساخت محتواست که قابلیت افزودن، مدیریت و نمایش متحوای خاصی را به کاربر میدهد.
برخلاف انواع پستها، تنها راه ممکن برای اضافه کردن قابلیتهای پیچیده، استفاده از صفحههای موجود بهعنوان دربرگیرنده و قراردادن کدهایی بهنام shortcode در بدنه آن است که بعدا با خروجی مناسب پر میشود. پلاگینهایی چون Buddypress یا WP e-Commerce از این روش برای گسترش افزونه استفاده میکنند.
توسعه جوملا
یک جنبه جوملا که اغلب مورد توجه است، ایناست که روی بستر نرمافزاری MVC یکپارچه ساخته شده است. بههمین دلیل توسعه هسته جوملا، بسیار شبیه محصولاتی مثل Zend و CodeIgniter است که از طریق واسط پشت آن میتوان هر نوع سفارشیسازی را انجام داد.
مسائل سازشپذیر
صرفنظر از تلاشهایی که برای تولید یک API محکم و قابل اطمینان در جوملای ۱/۵ انجام شده است، چیزی که هر توسعهدهنده باید به آن توجه داشته باشد، عدم پشتیبانی از افزونههای قدیمی است که برای نگارش? جوملا ساخته شده است. این افزونهها که با معماری MVC همخوانی ندارد، گاهی اوقات جای خالیشان بسیار احساس میشود. پروژههای نگارش ? و ?/? در دایرکتوری جوملا بهوفور یافت میشوند. اما مساله اینجاست که سیستم سهلایه جوملا را میتوان دور زد و از همان کد کلاسیک استفاده کرد. بسیاری از توسعهدهندگان از همین حقه استفاده میکنند و حتی در میان پروژههای بزرگی چون Virtuemart نیز از همین روش استفاده شده است.
جوملای فارسی
جوملا، چند سالی است که فارسی را پشتیبانی میکند. اخیرا نیز نسخه۱۷/۵/۱ جوملای فارسی منتشر شد. این نسخه، که هشتمین نسخه حرفهای فارسی جوملا است، از دایره افزونهها و امکانات بیشتری نسبت به نسخههای قبلی برخوردار است.
شاید بزرگترین مشکلات نسخههای پیشین جوملای فارسی، کامل پشتیبانی نکردن از PHP نسخههای پیش از ۲/۵ و همچنین بروز مشکلات در بخش مدیریت نرمافزار بود که نسخه۱۷/۵/۱ جوملای فارسی، توانست این مشکلات نسخههای قبل از خود را برطرف کند. در این نسخه از جوملا، کامپوننتها، قالبها و افزونههای زیادی قرار داده شده است که با دانلود آنها میتوانید سایتی بهمراتب فارسیتر، که در جستجوی گوگل رتبه بالاتری دارد، داشته باشید!
از بین کامپوننتها میتوان به کامپوننتهای دانلودها، نقشه فارسی سایت، چندزبانهسازی جوملا، تهیه پشتیبان فارسی، نظردهی اشاره کرد. قالبهای نوید ایرانیان و راه شیری، از قالبهای جدید، و افزونههای کوچکسازی تصاویر، دریافت گزارش آماریآنالیزور گوگل، خبرنامه و غیره نیز از افزونههای اضافه شده در آخرین نسخه جوملای فارسی است.
www.joomla.ir
وردپرس فارسی
پروژه بومیسازی وردپرس نیز چندین سال پیش، و با ارائه افزونهها و پوستههای فارسی برای وردپرس آغاز و کمکم زبان فارسی وارد متن نرمافزار شد. از آغاز بومیسازی وردپرس پوستهها و افزونههای زیادی برای این نرمافزار نوشته شده است که بهصورت رایگان در اختیار کسانی است که میخواهند سایتی فارسی طراحی کنند. همچنین کتابخانه قالب این وبسایت نیز تعداد قابل توجهی قالب فارسی شده برای سلیقههای مختلف را در خود دارد.
برگرفته از سایت : برسام