Donyar Web
صفحه اصلی / وبلاگ /

جوملا یا وردپرس، کدام یک بهتر است؟

سیستم های مدیریت محتوای منبع باز (CMS)، خانواده بزرگی از نرم افزارهای تحت وب هستند. ولی اگر به دنبال دوام، کارایی و نیازهای تکنیکی متوسط هستید، گزینه های

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

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

تفکرات پشت پرده

وردپرس و جوملا، از محبوب ترین CMS های منبع باز هستند. این CMS ها، جامعه پشتیبان بزرگ و فعالی دارند و راهنماهای آن ها به وفور در اینترنت یافت می شود. وردپرس، به خاطر طراحی زیبای محیط و رنج وسیع قالب های فوق العاده و در دسترس، معمولا اولین گزینه اجتماع توسعه دهندگان برای انتخاب است. اما جوملا، به خاطر بدنامی ای که برای کارایی پایین و خروجی هایی که که گاهی اوقات اشتباه هستند (که البته این را از مامبو به ارث برده است)، رنج آور است. البته در نسخه 1.5، هسته جوملا، به وسیله توسعه پذیری های پیشرفته و خروجی HTML بهتر، بازنویسی شد.

یکی از تفاوت های وردپرس و جوملا، در مدل تم های آنهاست. یک برنامه نویس که از جوملا به سمت وردپرس می رود ممکن است این احساس را داشته باشد که وردپرس نیازهای بیشتری از او را برطرف می کند و در حالت عکس، کسی که به سمت جوملا می رود، ممکن است احساس کند جوملا، انعطاف پذیری و تغییر پذیری کمتری دارد. دلیل این امر، مدل های مختلفی است که در تم های این CMS ها قرار داده شده است.

مدل قالب وردپرس

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

مدل قالب جوملا

جوملا (Joomla)، از شیوه متفاوتی برای قالب های خود استفاده می کند. قالب های جوملا، روی یک ساختار معمول که در فایل index.php تعریف شده است، ساخته شده اند. این فایل، هم شامل محتوای ایستا و هم شامل تگ های قالب است که مانند نگهدارنده محتوا عمل می کند و در فاز رندر شدن صفحه، با خروجی HTML جایگزین می شود. تگ های قالب، در نوع محتوایی که فراهم می کنند تفاوت دارند. مثل اجزا، پیغام، ماژول، سرصفحه و غیره.

اصل این ساختار، این مساله را نشان می دهد که هر دید در خروجی CMS، یک صفحه کامل نیست ولی چیزهایی که باید را نشان می دهد. در اولین نگاه، برنامه نویسی که از مدل تم گذاری وردپرس استفاده می کند، شاید فکر کند که هیچ راهی برای تغییر دادن یک محتوا وجود نداشته باشد. درواقع جوملا، بر الگوی معماری MVC تکیه کرده است. به این معنی که در آن استخراج و نمایش داده جدا شده است.
Model–View–Controller (MVC)

Model–View–Controller (MVC)
تغییرات قالب ها

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

آن سوی هسته

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

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

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

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

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

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

برای درک بهتر مدل ذهنی ….

که پشت سیستم ابزارک وردپرس است، آن را با مراحل پخت یک کیک مقایسه می کنیم!

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

منوهای کناری و ویجت ها

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

اضافه کردن قابلیت

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

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

برخلاف انواع پست ها، تنها راه ممکن برای اضافه کردن قابلیت های پیچیده، استفاده از صفحه های موجود به عنوان در بر گیرنده و قرار دادن کدهایی به نام shortcode در بدنه آن است که بعدا با خروجی مناسب پر می شود. پلاگین هایی چون Buddypress یا WP e-Commerce از این روش برای گسترش افزونه استفاده می کنند.

توسعه جوملا

یک جنبه جوملا که اغلب مورد توجه است، این است که روی بستر نرم افزاری MVC یکپارچه ساخته شده است. به همین دلیل توسعه هسته جوملا، بسیار شبیه محصولاتی مثل Zend و CodeIgniter است که از طریق واسط پشت آن می توان هر نوع سفارشی سازی را انجام داد.

مسائل سازش پذیر

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

جوملای فارسی

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

شاید بزرگترین مشکلات نسخه های پیشین جوملای فارسی، کامل پشتیبانی نکردن از PHP نسخه های پیش از 5.2 و همچنین بروز مشکلات در بخش مدیریت نرم افزار بود که نسخه 1.5.17 جوملای فارسی، توانست این مشکلات نسخه های قبل از خود را بر طرف کند. در این نسخه از جوملا، کامپوننت ها، قالب ها و افزونه های زیادی قرار داده شده است که با دانلود آنها می توانید سایتی به مراتب فارسی تر، که در جستجوی گوگل رتبه بالاتری دارد، داشته باشید!

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

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

 

لینک کوتاه :
https://donyarweb.ir/?p=1893

مطالب آموزشی روزهای گذشته