Boplo.ir
rss

من در Facebook


جستجو


آخرین مطالب

مطالب همینجوری

بر و بچ

MyView TakhteShasi Tween

دوستشون دارم

بیلبورد

دامین برای فروش: CleanCode.ir
FastFeed.ir
Fonvi.com

تماس


انواع و اقسام سفارشات طراحی و برنامه نویسی سایت پذیرفته میشه. از سایت حمایت از خرگوشهای صورتی گرفته تا سایت قاچاق اعضای بدن!
تماس

 

از بيماران سرطاني حمايت كنيم

A new begining
AHHP presents

 

آدرس کوتاه: http://Boplo.ir/:49

فریم ورک و سیستم مدیریت محتوای مادایکس
۲۲ اسفند ۱۳۸۷ ساعت ۱۰:۴۴

مادایکس
بررسی و معرفی MODx Evolution

مادایکس یک سیستم مدیریت محتوا و فریم ورک (Framework) تمام آژاکس به زبان PHP و بصورت Open Source است که هر دو قابلیت سیستم مدیریت محتوا (CMS , Content Management System) و فریم ورک مدیریت محتوا (CMF , Content Management Framework) را در خودش جمع کرده.

توسط خاصیت CMS مادایکس می تونید یک وب سایت کامل از هر نوع را در چند دقیقه راه اندازی و مطالب اون رو مدیریت کنید و توسط خاصیت CMF می تونید محدودیتهای موجود در CMS ها را از میان بردارید.

مادایکس

 

فریم ورک و محدودیتهای سیستم های مدیریت محتوا

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

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

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

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

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

در کل هر امکانی، در زمان توسعه سیستم فقط در مواجهه با برنامه نویسه و وقتی از این بخش خارج میشه و به مصرف می رسه کاملا عامی و به اصطلاح Plug & Play میشه. به اضافه اینکه بخش برنامه نویسی هم به سادگی استفاده از API های سیستم هست و نیازی به دستکاری هسته سیستم یا درک نحوه عملکرد سیستم نیست.

 

CMS تمام آژاکس

این سیستم بصورت تمام آژاکس طراحی شده. اگر با CMS ها کار کرده باشید، می دونید که برای استفاده از آژاکس در فضای CMS ها، محدودیتهایی وجود داره. از جمله:

 

  • دسترسی راحت و امن به پایگاه داده یا دیتابیس سایت:
    در این سیستم یک فایل از قبل ایجاد شده که به فایل تنظیمات یا config سیستم دسترسی داره و مشکل دسترسی به پایگاه داده رو برطرف کرده. (اطلاعات دیتابیس و سایر اطلاعات پیکربندی در فایل config ذخیره شده). بجای ارسال درخواست آژاکس به اسکریپت مربوطه، ابتدا این فایل call میشه و اسکریپت مورد نظر در این فایل include میشه.

  • اضافه کردن و استفاده بی دردسر از فایلهای جاوا اسکریپت و JS library ها:
    در مادایکس هیچگونه محدودیتی در ایجاد قالب یا skin یا template وجود نداره! هر ترکیب از کدهای HTML (فقط HTML بدون هیچ کد PHP) که موردنظرتون هست رو برای قالب سایت مشخص کنید. در مادایکس طراحی قالب به سادگی ساختن یک صفحه HTML انجام میشه. نمونه یک قالب ساده مادایکس رو در زیر ببینید:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    	<title>[(site_name)] | [*pagetitle*]</title>
    	<meta name="description" content="This is site description." />
    	<meta name="keyword" content="keyword1 , keyword2 , keyword3" />
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    	<link rel="stylesheet" type="text/css" href="styles/styles.css" media="screen"/>
    	<link rel="stylesheet" type="text/css" href="styles/print.css" media="print"/>
    	<script type="javascript" src="js/jquery.js"></script>
    </head>
    
    <body>
    	<div id="container">
    		
    		<div id="header">
    			<div id="logo"><img src="images.logo.jpg" /></div>
    			<div id="menu">[[Wayfinder? &startId=`0`]]</div><!-- creates dynamic menus -->
    		</div>
    		
    		<div id="sidebar">
    			<div id="lastNews">[[Ditto? &startID=`4` .....]]</div><!-- creates dynamic blog summary and last blog posts and ...  -->
    			<div id="login">[[WebLoginPE]]</div><!-- creates user management features -->
    		</div>
    		
    		<div id="content">
    			[*content*] <!-- prints main content of document -->
    		</div>
    
    		<div id="footer">
    			{{copyright}} <!-- prints some HTML codes -->
    			<p>{{counter-codes}}</p> <!-- prints counter-codes which you have created -->
    		</div>
    		
    	</div>
    </body>
    
    </html>
    این امکان باز و گسترده در ساخت قالب، تاکید بر استفاده از CSS بصورت Tableless (بدون جدول) و استاندارد و XHTML بودن قالبها رو به همراه داره.

  • استفاده از API های سیستم و برخی منابع تولید شده موقتی مثل session ها که با اجرای سایت ایجاد، حذف و تغییر می کنند:
    چنانچه با آژاکس کار کرده باشید، می دونید که برای پردازش اطلاعات باید یک فایل پردازشی مثل PHP رو اجرا کنید (ارسال درخواست آژاکس و دریافت پاسخ). این فایل صرفا یک فایل مجزا و در واقع اسکریپت هست. طبیعا برای مبادله اطلاعات با یک سیستم داینامیک نیاز به برقراری ارتباط با پایگاه داده دارید و همچنین از API های سیستم هم محرومید چون این فایل در حقیقت obsolete هست و از تغییر و تحولات داینامیک با خبر نمیشه. در مادایکس قادرید تا این اسکریپت شخصی رو وارد سیستم کنید، از API ها استفاده کنید، به متغیرهای سیستمی دسترسی داشته باشید و از اتصالات دائمی و امن سیستم با پایگاه داده بهره ببرید.

    علاوه بر اینها بخش مدیریت هم بصورت تمام آژاکس توسط مرجع یا کتابخانهMootools طراحی شده و در نسخه آینده هم ExtJS جایگزین Mootools شده. (یه توضیح مختصر درباره Ext JS)

 

بدون نیاز به برنامه نویسی

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

برای نمونه فرض کنید اسنیپتی (اسکریپتی) ساخته شده که متغیری با نام action$ داره و اگر مثلا مقدار این متغیر register بود، فرمی برای ثبت اطلاعات رو نشون بده و اگر display بود اطلاعات ثبت شده رو نمایش بده. همچنین فرض کنید نام TestSnippet برای این اسنیپت یا اسکریپت انتخاب شده. حالا کاربر در بخش مدیریت با قرار دادن کد زیر در هر جای صفحه یا قالب خودش می تونه اسکریپت رو در سایت فعال کنه:

[[TestSnippet? &action=`display`]]

در تگ بالا، مقدار display بصورت خودکار وارد متغیر action$ میشه و بازدیدکننده خروجی متناسب با مقدار display رو مشاهده می کنه. برای چنین کار ساده ای به هیچ وجه نیازی به دانش برنامه نویسی نیست. البته مسلما دست برنامه نویس ها خیلی بازه چون اونها می تونن خودشون اسکریپت بنویسن و اسکریپتهای نوشته شده رو مطابق نیازشون تغییر بدن.

 

مادایکس، یک سیستم خاص

  • متغیر قالب
  • این سیستم یک قابلیت کاملا منحصر به فرد رو به جامعه CMS ها معرفی کرده به نام Template Variable یا متغیر قالب.
    همه CMS ها تعدادی فیلد پیش فرض برای وارد کردن اطلاعات هر صفحه مثل عنوان و خلاصه و محتوا و alias و ... دارند.
    در مادایکس شما قادرید هر نوع فیلد ورودی به هر تعداد رو مشخص کنید تا به فیلدهای پیش فرض اضافه بشه. مثلا هر صفحه یک عکس خاص نیاز داره. شما یک متغیر قالب یا همون فیلد از نوع عکس میسازید و با کمک اون به بخش تصاویر و آپلود میرید. عکس مورد نظر درست جایی از قالب قرار میگیره که تگ این متغیرقالب رو قرار دادید. این قابلیت بی نهایت جای فکر داره و دست سایت رو در ایجاد سایت داینامیک باز میذاره.....

  • مدیریت کلمات کلیدی
    مادایکس امکان مدیریت کلمات کلیدی رو به سادگی فراهم می کنه و می تونید برای هر صفحه از هر کلمات متناسب با محتوای اون صفحه استفاده کنید.

  • مدیریت قالبها یا Template ها
    همونطور که گفتم امکان تعیین و تغییر قالب برای هر صفحه به سادگی انتخاب اون قالب از یک منو است. این منو در بخشی که فیلدهای اطلاعات صفحه از قبیل عنوان و خلاصه و alias و غیره قرار دارند قرار گرفته

  • SEO
    مادایکس مانند سایر سیستم ها امکان استفاده از Friendly URLs مانند
    http://site-name.com/parent1/parent2/child.html
    به جای
    http://site-name.com/index.php?id=38
    رو به کاربر میده و برای موتورهای جستجو کاملا بهینه شده است (SEO). همچنین تعامل فوق العاده ای با موتورهای جستجو از جمله گوگل داره (من در این باره یک تجربه شخصی جالب دارم).

  • دسترسی به همه نوع اطلاعات
    در مادایکس تمامی اطلاعات از دیتابیس به سادگی در دسترس هستند و برای مثال توسط افزونه جستجوی معروف این سیستم (AjaxSearch) می تونید هر اطلاعاتی از قبیل نام صفحه، محتوای صفحه، محتوای متغیرهای قالب، برچسب ها و همه فیلدهای مخصوص یک صفحه رو در جستجو وارد کنید.

  • استفاده از Event ها
    پلاگین ها در مادایکس کدهای PHP هستند که بصورت خودکار در زمان یک رخداد یا Event اجرا میشن. مثلا کدی درست قبل از ورود یا Login کاربر (درست قبل از ایجاد session ها) اجرا بشه و مثلا یک session اضافی رو بسازه و یا کدی درست قبل از نمایش اطلاعات صفحه اجرا بشه و بیاد محتوای صفحه رو ف ی ل ت ر کنه.
    مثلا Eventای برای زمان ورود یا لاگین کاربران وجود داره که من می تونم با استفاده از این Event، با استفاده از نام کاربری و رمز وارد شده، کاربر رو در یک محیط دیگه مثل فروم هم لاگین کنم یا لاگ اوت کنم و. ....

منوی درختی صفحات سایت هم نکته مفید و جالب مادایکس هست که امکان مشاهده و مدیریت همه صفحات رو یکجا به کاربر میده. مادایکس قابلیتهای بسیار مفید و خاصی از جمله سیستمهای خاص مدیریت دسترسی کاربران و قابلیتهای RTL و غیره ارائه داده که توضیح و معرفی اون خیلی طولانی میشه.

همه این قابلیتها به اضافه قابلیتها و امکانات کلی و عمومی سایر CMS هاست!

 

مادایکس فارسی

این سیستم به فارسی ترجمه شده و سایت پشتیبانی فارسی به همراه انجمن داره. بخش راهنما یا Documentation هم فعلا توسط خودم در حال تکمیل و ترجمه هست که اگر مایل به همکاری هستید می تونید همکاری کنید و تو یه کار open source سهیم شید.

 

نسخه های مادایکس

آخرین نسخه مادایکس نسخه Evolution 1.0.5 هست که و کامل شده. علاوه بر انجمن و کاربران بسیار فعال سایت (سایت اصلی)، طراحان سیستم کاملا دارن رو توسعه اش کار می کنند.

نسخه جدید مادایکس با نام Revolution 2.0، واقعا Revolution (هست (واقعا) قابلیتهایی بهش اضافه میشه که اولا منحصر به فرده و ثانیا فوق العاده جالبه! این نسخه بصورت عمومی در دسترس هست)
از قابلیتهای منحصر به فرد فعلا همین رو بگم که قابلیت ریموت اولین بار توسط یکی از برنامه نویسان اصلی سیستم داره اجرا میشه و این امکان رو میده تا مثلا هسته مادایکس رو روی یک سرور، فایلهای شخصی سایت (مثل تصاویر و غیره) رو یک سرور و دیتابیس رو روی یک سرور دیگه قرار بدید و سایت رو اجرا کنید. ! امنیت از این توپ تر؟
از امکانات فوق العاده هم میشه به قابلیت توسعه یا Develop سطح بالای اون اشاره کرد که این سیستم با همین هدف بصورت کاملا Object Oriented بازنویسی شده. همچنین بسیاری از افزونه‌های سودمند نسخه‌ی Evolution در Revolution بصورت Built-in قرار گرفته از جمله ManagerManager (با عنوان Form Customization) و PHx.

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

 

لینکها:

سایت اصلی: MODxCMS.com
انجمن پشتیبانی اصلی: MODxCMS.com/forums

دانشنامه مادایکس: wiki.MODxCMS.com

سایت پشتیبانی فارسی: MODxCMS.ir
انجمن پشتیبانی فارسی: MODxCMS.ir/forums
AHHP تو این انجمن آماده پاسخ به هر سوالی هست :)

 

 

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

Working With a Content Management Framework: MODx

 


پی نوشت 1: من این معرفی رو واسه انجمن تک داونلود.آی آر نوشتم و چندجای دیگه بصورت کپی/پیست و بدون هیچ منبعی مشاهده کردم که تو هم هرجا بدون اسم من (AHHP یا امیرحسین) دیدی، کامنت بذار، بزن تو گوشش که دیگه منبع و نویسنده یادش نره! ;)
پی نوشت 2: برای استفاده نسخه Evolution بصورت فارسی، بخوانید: MODx Evolution کاملا راستچین

 

تو چی فکر می کنی؟


مسلم : خيلي خيلي مفيد بود، قبلا با مامبو، جوملا، ناك، وردپس و ... آشنايي داشتم اما مادايكس رو تازه شناختم، چيز هلوئيه ;)
(2 سال و 10 ماه و 10 روز و 4 ساعت و 31 دقیقه پیش)

محسن مگاهرتز!؟ :) : ناز شصتت جوون!
کامل بود اما یکمی طولانی بود
برا ما پیرمردا سخته دیگه :]
(2 سال و 10 ماه و 8 روز و 13 ساعت و 7 دقیقه پیش)

اسماعيل : سلام
اميرحسين خان
امروز با محسن آشنا شدم. و خوشحالم كه اينجوري با شما هم آشنا مي شم.
ميگم اين مطالب سايتت تو صفحه خيلي پراكنده س. هر تيكه اي يه گوشه مرورگر نمايش داده مي شه. اين از اينه كه وقت نكردي قالبت رو درست طراحي كني يا مشكل مادايكسه؟
(2 سال و 9 ماه و 26 روز و 18 ساعت و 57 دقیقه پیش)

mehdi : Hey guy
Sorry if I do not write in Persian, I read what you wrote here. I am interested in MODx , not very proffessional one but enough interested in. So let me know if you are interested in a project that I am gonna do it with some of my friends . Good luck
(1 سال و 11 ماه و 7 روز و 10 ساعت و 20 دقیقه پیش)

شهره : متشکرم از مطلبی که نوشتی- م تونی یک مقایسه بین این و جوملا و دروپال داشته باشی. از جنبه های مدیریت سایت، توسعه و برنامه نویسی، امنیت، سادگی استفاده، حمایت انجمن های فارسی، مولتی سایت بودن و .....
(1 سال و 10 ماه و 27 روز و 3 ساعت و 57 دقیقه پیش)

امیرحسین : بحثهای زیادی درباره مقایسه مادایکس و جوملا شده و آخر تصمیم گرفتند صلح کنند و بگن "مادایکس و جوملا زمینه هاشون متفاوته و مقایسه اشون درست نیست و اصولا مادایکس رو باید با دورپال قیاس کرد".
تا اونجاییکه جوملا یک سیستم بلاگ محسوب بشه، این حرف درسته ولی وقتی به عنوان یه سیستم جامع بخواد عمل کنه، میتونیم مقایسه داشته باشیم. که در اون حالت جوملا اشکالات (یا ویژگی) ساختاری داره که انعطافش پایینه ولی مادایکس برای انعطاف پذیری طراحی شده. درباره دروپال هم اطلاعاتی ندارم.
(1 سال و 10 ماه و 26 روز و 23 ساعت و 44 دقیقه پیش)

یک دوست : HI
(1 سال و 1 ماه و 17 روز و 17 ساعت و 59 دقیقه پیش)

 

me

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

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

به خونه امیرحسین خوش اومدی...

MODx | Template World