تبلیغات

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

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

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

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

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

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

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

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

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

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

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

تغييرات قالب‌ها

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

آن سوي هسته

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

– نگهداري بهتر. توسعه‌دهندگان نيازي به اصلاح هسته براي اضافه کردن يا تغيير قابليت ندارد.

– سبک‌تر و امن‌تر. قابليت‌هايي که مورد نياز هستند، در آن قرار داده‌شده ‌است. اين‌عمل، مصرف کمتر حافظه، حجم کمتر و آسيب‌پذيري کمتر را نتيجه مي‌دهد.

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

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

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

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

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

وردپرس نيز به‌همين طريق صفحه‌هاي خود را مي‌پزد.

منوهاي کناري و ويجت‌ها

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

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

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

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

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

توسعه جوملا

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

مسائل سازش‌پذير

صرف‌نظر از تلاش‌هايي که براي توليد يک API محکم و قابل اطمينان در جوملاي‌ 1/5 انجام شده است، چيزي که هر توسعه‌دهنده بايد به آن توجه داشته باشد، عدم پشتيباني از افزونه‌هاي قديمي است که براي نگارش‌? جوملا ساخته شده است. اين افزونه‌ها که با معماري MVC همخواني ندارد، گاهي اوقات جاي خالي‌شان بسيار احساس مي‌شود. پروژه‌هاي نگارش ? و ?/? در دايرکتوري جوملا به‌وفور يافت مي‌شوند. اما مساله اينجاست که سيستم سه‌لايه جوملا را مي‌توان دور زد و از همان کد کلاسيک استفاده کرد. بسياري از توسعه‌دهندگان از همين حقه استفاده مي‌کنند و حتي در ميان پروژه‌هاي بزرگي چون Virtuemart نيز از همين روش استفاده شده است.

جوملاي فارسي

جوملا، چند سالي است که فارسي را پشتيباني مي‌کند. اخيرا نيز نسخه17/5/1 جوملاي فارسي منتشر شد. اين نسخه، که هشتمين نسخه حرفه‌اي فارسي جوملا است، از دايره افزونه‌ها و امکانات بيشتري نسبت به نسخه‌هاي قبلي برخوردار است.

شايد بزرگترين مشکلات نسخه‌هاي پيشين جوملاي فارسي، کامل پشتيباني نکردن از PHP نسخه‌هاي پيش از 2/5 و همچنين بروز مشکلات در بخش مديريت نرم‌افزار بود که نسخه17/5/1 جوملاي فارسي، توانست اين مشکلات نسخه‌هاي قبل از خود را برطرف کند. در اين نسخه از جوملا، کامپوننت‌ها، قالب‌ها و افزونه‌هاي زيادي قرار داده شده است که با دانلود آنها مي‌توانيد سايتي به‌مراتب فارسي‌تر، که در جستجوي گوگل رتبه بالاتري دارد، داشته باشيد!

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

www.joomla.ir

وردپرس فارسي

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

www.wp-persian.com

2 دیدگاه ها

  1. ممنون از این که وقت گذاشتید و این مقاله رو نوشتید ، اما به نظر جانب دارانه میاد ! کسی ندونه فکر میکنه شما با جوملا خصومت شخصی دارید !

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

نظر خود را بنویسید

لطفا نظر خود را بنویسید
لطفا نام خود را وارد کنید