نکاتی برای نوشتن نرمافزار های مدیریت محتوا

MSJS

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

»» نکاتی در مورد افزودن بخشی جدید به سایت ( مانند پلاگین ها در برخی نرافزار ها )
»» نکاتی در مورد محتوای پویا ( مدیریت افزودن اخبا , پست ها , صفحات جدید )
»» نکاتی در مورد متورهای تمپلیت ( مانند Smarty )
»» و تمام نکاتی در مورد نوشتن نرم افزار های مدیریتی ( مانند mambo , joomla , phpnuke , wordpress , mt , & .. )

منتظر مشارکت همه شما هستیم !
 

farik

Well-Known Member
با سلام
واقعا كار خوبي كردين من كمبود يك همچين چيزي رو حس ميكردم...خوب ما كه هنوز تموم نكرديم ولي به همه كسايي كه php كار ميكنم ميگم حتي اگه شده براي تمرين هم كه هست يك CMS بنويسيد خيلي چيزها ياد ميگيريد و ميفهميد خيلي چيزها رو ياد نداريد...
با تشكر منتظر دوستان هستم..
 

MSJS

New Member
با سلام
واقعا كار خوبي كردين من كمبود يك همچين چيزي رو حس ميكردم...خوب ما كه هنوز تموم نكرديم ولي به همه كسايي كه php كار ميكنم ميگم حتي اگه شده براي تمرين هم كه هست يك CMS بنويسيد خيلي چيزها ياد ميگيريد و ميفهميد خيلي چيزها رو ياد نداريد...
با تشكر منتظر دوستان هستم..

مستاسفانه هیچ کس همکاری نمیکنه .. من یه تاپی رو دیدم که یه CMS رو به نام Nasim blog معرفی میکرد که اسکریپت نویسش
هم تو همین انجمن هست ما فقط میخایم یه سری نکات مخصوصا در مورد بخش مدیریت و پست جدید که تو همه سی ام اس ها
هست توضیح بدن و حتما هم موارده دیگه ...
 

MSJS

New Member
الگرینتم محتوای پویا یک Cms

خوب حالا که کسی همکاری نمیکنه من یه تئوری در مورد محتوای پویا در CMS ها رو دارم .. ( این تئوری هست یعنی فقط الگریتم )
خوب برای اینکه یه صفحه جدید ( پست جدید , خبر جدید و .. ) ایجاد کنم باید از یک ادیتور html استفاده کنیم که فت و فراونه این
ادیتور ها در واقع یک کد html رو ایجاد میکنند میونیم این کد رو در یک متغییر به نام $newnews ذخیره کنم و محتویات اون رو در یک
دیتابیس ذخیره کنیم , میتونیم تو جدولی به نام newstbl این کار رو بکنیم این جدول میتونه دارای فیلد های
[ news , date , cat , titel , newsid ] باشه محتویات ادیتور که در متغییر newnews$ هست در فیلد news ذخیره میشه زمان دقیق
رو به وسیله تابع date تو PHP میگیریم و در فیلد date ذخیره میکنیم cat هم بخشی هست که اخبار تو اون نمایش داده میشه مثلا
cat = 02 اخبار سیاسی و cat = 01 اخبار it رو نمایش میده در titel هم عنوان خبر ذخیره میشه و در newsid هم به وسیله MySQL
یا PHP یک عدد منحصر به فرد ایجاد میکنیم .. خوب حالا اخبار ما به سایت اضافه شد
حالا برای نمایش اخبار این سناریو پیشبینی میشه !!

ادرس در مرورگر »» http://yourdomin.com/news.php?cat=01 ( این ادرس تمام اخبار بخش ای تی رو نوشن میده )

ادرس در مرورگر »» http://yourdomain/news.php?cat=02&newsid=01 ( این ادرس اخبار شماره 01 رو در بخش اخبار سیاسی
نمایش میده .

خوب الان اینا چه جوری کار میکنن ..
در فایل news.php ..

یک متغییر از نوع get وجود داره به نام cat وقتی مقدار اون 01 باشه تمام رکرورد جدول newstbl که فیلد cat اونها برابر 01 باشه رو نوشن میده ( بر میگردونه تو متغییر )

ادرس دوم دو متقییر برای news.php نوشته news.php?cat=02&newsid=01
در این ادرس دو متقییر و جود داره .. cat که برابر 02 هست و newsid که بربر 01 هست .. کار این هم به اسونی بالای هست PHP
این دو مقدار رو گرفته و سپس با MySQL یا دیتابیس دیگه ارتباط برقرار میکنه و رکوردی در جدول newstbl که cat اون برابر 02
و newsid اونها برابر 01 باشه .. رو نوشن میده ( برمیگردونه تو متغییر )

بعد که کد ها استخراج شدن میتونید با اون ها هر کاری بکنید .. مثلا با تابع echo میتونید کد های html رو اکو کنید و نمایش بدهید
و یا به وسیله یک تمپلیت انجینگ ( که تو CMS ها بیشتر اینجوره ) اونها رو نمایش بدهید

از دوستانی که پرو هستند خواهش میکنیم که عملی اون رو انجام بدون ( با اموزش )
شاید هم خودم اینکار رو کردم ولی چون تاحالا تجربه نداشتم نمیتونم تمام نکات مهم رو در مورد این جور کد های پویا رعایت کنم

به حر حال این الگریتمی بود که به نظر من اومد .
منتظر همکاری شما هستیم !
 

nioton

Member
سلام به همه ،

خوب به نظرم کسی که روی یه cms کار کنه دیگه وقت نمی کنه که بیاد اینجا توضیح کامل بده.
منم خودم روی یه cms کار میکنم که هنوز نتونستم تمومش کنم چون همش کارای جور وا جور پیش میاد و دست تنهام :sad:
 

sajadmaz

Member
منم درگیر یه cms هستم اگه بتونم کمک کنم دریغ نمیکنم بعدشم cms خیلی دنگو فنگ داره اگه بخوایی توضیح بدی که خیلی تولانی میشه من میگم هرکی مشکل داره بپرسه اگه تونستیم جواب بدیم
 
سلام . من یه صفحه سفارشات دارم که سفارشات کاربران رو از دیتابیس می خونه و نمایش می ده . اما همه سفارشات رو توو یه صفحه نشون می ده . می خوام طوری باشه که مثلا اگه به 10 تا رسید بره توو صفحه دوم و 10 تای بعد رو از اونجا نشون بده و . . .
مثل همه Cms هایی که اخبار رو توو صفحه اولشون میذارند و وقتی به 10 یا 15 تا رسید زیر صفحه اول می نویسه : "صفحه 2 ، صفحه 3" و واسه 10 تا خبر بعدی باید به اوون صفحات رفت . ممنون میشم اگه منو راهنمایی کنید .
 

amir01

Well-Known Member
سرخ پوستی ترین روشش اینه که شروع رو بهش بدی مثلا اینجوری :
کد:
<?php

if (isset($_GET['start']))
{
	$Start = $_GET['start'];
}
else
{
	$Start = 0;
}

$Query = "SELECT * FROM `newsTBL` LIMIT $Start, 10";
.
.
.
echo '<a href ="?start='.$Start+10'">Next Page</a>';

?>
 

www.nero.ir

Member
دوست عزیز msjs در باره نوشته شمامی خوام بگم که یک cms خوب از این نوع لینک ها استفاده نمیکنه بلکه مثلا برای هر خبر یک فیلد keyword تعریف میکنه و لیک خبر رو با استفاده از keyword ها و .htaccess یک لینک SEO درست میکنه چون یک از موضوعات مهم درباره هر وب سایت و یا cms موضوع سرچ انجین هاست البته موارد خیلی زیادی رو میشه در همین قسمت به نظر ساده اخبار در نظر گرفت که باعث گسترده شدن cms میشه
 

mahdi-vb

Member
دوست عزیز msjs در باره نوشته شمامی خوام بگم که یک cms خوب از این نوع لینک ها استفاده نمیکنه بلکه مثلا برای هر خبر یک فیلد keyword تعریف میکنه و لیک خبر رو با استفاده از keyword ها و .htaccess یک لینک SEO درست میکنه چون یک از موضوعات مهم درباره هر وب سایت و یا cms موضوع سرچ انجین هاست البته موارد خیلی زیادی رو میشه در همین قسمت به نظر ساده اخبار در نظر گرفت که باعث گسترده شدن cms میشه

یکم بیشتر توضیح نمیدین !
 

mahdi-vb

Member
من این مدل رو در مورد ID دادن به یک پست در سیستم های وبلاگ با دیگر سیستم ها ترجیح میدم ..

دیدن تو بلاگفا هر پستی چنین ادرسی داره Post-50.aspx ... من همیشه تو برنامه هایم که همشون جنبه تست کردن داشته
تاحالا از یک متغیر GET استفاده میکردم مثلا www.demo.com/?post=$id و من برای مقدار دهی ID$ که به صورت منحصر به
فرد باشه بر خالاف رسم معمولی از یک شمارنده استفاده نمیکردم چون برای این کار باید باید مقدار اخرین ID یک پست رو
بازیافت کرد و بعد اگر مثلا 50 بود برای پست بعدی عدد 51 رو ذخیره کنه ... حوصله نداشتم بابا ! من از یک کار راحت استفاده
میکردم که کارم رو با دیتابیس کمتر میکرد من برای مقدار دهی از تابع () time استفاده میکنم که یک عدد 10 رقمی رو به من
برمیگردونه که هیچ وقت تکرار هم نمیشه چون زمان رو نشون میده به این شکل »»

PHP:
<?php
$postid = time() ;
?>


اما من همیشه دوست دارم کارم یکم منحصر به فرد باشه و به جای مقدار دهی ID یک پست از اعداد دوست دارم از حروف استفاده کنم برای همین باز هم با استفاده از تابع () time یه عدد 10 رقمی رو برمیگردوندم و اون عدد رو تو یه متغیر ذخیره میکنم و با استفاده از تابع () str_replace محتویات متغییر رو به حروف تبدیل میکنم این جوری »»

PHP:
<?php
$postid = time() ;
$postid = str_replace( "0", "g" , $postid );
$postid = str_replace( "1", "f" , $postid );
$postid = str_replace( "2", "i" , $postid );
$postid = str_replace( "3", "e" , $postid );
$postid = str_replace( "4", "p" , $postid );
$postid = str_replace( "5", "s" , $postid );
$postid = str_replace( "6", "n" , $postid );
$postid = str_replace( "7", "h" , $postid );
$postid = str_replace( "8", "x" , $postid );
$postid = str_replace( "9", "u" , $postid );
?>

من اینجوری حال میکردم شما اونجوری که حال میکنید رو هم بگین
البته روش بهتر رو همیشه باید به حال کردن خودتون ترجیح بدین
پس لطفا روش های بهتر رو هم بگین !
 
آخرین ویرایش:

saidshp

Member
سلام
برای یه id دادن به یه پست که دیگه نمی خواد این همه لقمه رو دور سرمون بچرخونیم یه فیلد auto_increment همه این کارها رو انجام میده
حالا چه فرقی داره که postid این باشه post-300 یا مثلا این 300

موفق باشید
 

mahdi-vb

Member
سلام
برای یه id دادن به یه پست که دیگه نمی خواد این همه لقمه رو دور سرمون بچرخونیم یه فیلد auto_increment همه این کارها رو انجام میده
حالا چه فرقی داره که postid این باشه post-300 یا مثلا این 300

تاید میشه ..
اخه شما غذا خوردن من رو ندیدید من همیشه دوست دارم لغمه رو از دور سرم تاب بدم بعد میل بفرمایم !!!
 

mahdi-vb

Member
دوستان اصلا به فورم حال نمیدین ها !!

یه چیز دیگه ..
تو یه CMS یه مواردی هست که خیلی مهمه یکی از اونها تمپلیت انجین هست که اکثرا انجینش هر CMS مخصوص خودش و خود برنامه نویس یه انجین مخصوص برای خودش ساخته اما تمپلیت انجین ها معروف و خوبی مثل Smarty هست پس اموزش این مسئله ( ساختن تمپلیت انجین ) در درجه دوم هست اما یه چیز دیگه که خیلی مهمه ... استفاده از پلاگین ها هست .. مثل سیستم مدیریت وبلاگ Wordpress و یا Mambo و اکثر سیستم های دیگه که به کار برانشون اجازه میدن یه سری پلاگین بسازند و به وسیله محیط اون سیستم نصب کنن سوال من اینه که چه جوری میشه برای سیستم مدیریتی خودمون یه بخش پلاگین خور بسازیم که کار بر خودش بتونه پلاگین بسازه و نصب کنه ..
 
آخرین ویرایش:

va2va2

Member
سلام به همه ،

خوب به نظرم کسی که روی یه cms کار کنه دیگه وقت نمی کنه که بیاد اینجا توضیح کامل بده.
منم خودم روی یه cms کار میکنم که هنوز نتونستم تمومش کنم چون همش کارای جور وا جور پیش میاد و دست تنهام :sad:
بیام کمک جدی میگم من سی ام اس دوست دارم:D
 

mahdi-vb

Member
درسته واقعا خیلی خود خواهی اگر کسای که CMS نویس هستن نیان اینجا و کمک کنن ! خوب همین اقایون هم روزی بلد نبودن CMS
بنویسن و مسلما مثل ما PHP رو از یک سری کتاب یاد گرفتن و در این جور انجمن های پیشرفت کردن و CMS نویس شدن ! تازه CMS
نویسی فقط یه ترفند و یک سری نکات داری که میتونیم برنامه های که تا حالا با PHP ساختیم رو پویا کنید .. من به این نکات و ترفند
ها نیاز دارم -- 4 تا هستن که من هم تو این تایپ مشکلم رو گفتم !

http://www.forum.majidonline.com/showthread.php?p=662991#post662991
 

amir01

Well-Known Member
به نظر من اگه مشکلات رو بپرسید خیلی بهتر باشه...
من به شخصه نمیدونم چی باید بگم؟ ترفند سی ام اس نویسی نمیدونم یعنی چی. آخه اصلا نمیشه بهش ترفند گفت... یه برنامه نویسیه مثل بقیه برنامه نویسی ها الکی بره خودتون بزرگش نکنید. شما مثلا یه کد آمار بازدید مینویسی، یه کد خبرنامه و... بعد اینارو به هم وصل میکنی میشه یه سی ام اس... نمیدونم منظورتون از ترفند چیه؟ من که فکر نمیکنم ترفند بشه گذاشت اسمش رو.
 
آخرین ویرایش:

Sociant7

Member
من سی ام اس های e107 و jaws و typolight رو یه خورده بررسی کردم! که بررسیشون خیلی بهم ایده داده از طرفیم چون به شی گرایی علاقه زیادی دارم یه ایبوک برنامه نویسی شی گرا در پی اچ پی رو تقریبا تا آخر خوندم . یه نکته خیلی خوب و مهمی که داخلش نوشته در مورد MVC یا همون MODEL , View , Controller هست که ازش بعنوان یه پایه خوب یا بهتر بگم یه اسکلت عالی واسه برنامه های پی اچ پی اسم برده! اینکه دوستمون گفتن ترفندی نداره من موافق نیستم اگرچه میشه همینجوری الکی شروع به کار کرد و هر قسمتی رو درست کرد و چسبوند به هم ولی مطمئنا در آینده موقعی که بخواید اونو اشکال زدایی کنین یا گسترش بدین به مشکل میخورین یا حد اقل وقت زیادی ازتون میگیره ، حتی اگه یه مدتی ولش کنین و بعد برین سراغش کلی باید وقت صرف کنین تا بفهمین چه کار کرده بودین! با شی گرایی میشه کنترل خیلی خوبی روی برنامه و روند گسترشش داشت . من خودم دنبالشم این mvc رو خوب بفهمم و بعد برم سراغ سی ام اس نویسی یا هر چیزه دیگه
 

www.nero.ir

Member
سلام
اون چیزی رو که تو پست قبای نوشته بودم رو با .htaccess درست میشه اصلا لازم نیست از توابع php استفاده کنید همه کار رو ود .htaccess انجام میده فکر میکنم که آموزشش هم تو سایت هست یک تاپیک داره
درست کردن یک cms اصلان این طوری نیست که شما 4 قسمت براش بنویسی و به هم وصل کنی یکی از چیز هایی که خیلی تهمیت داره چگونگی ارتغاع cms هست یعنی اضافه کردن modules های مختلف نحوه نصب کردنش.
template engine هم مهم هستش cms باید از template engine استفاده کنه که template درست کردن براش ساده باشه و طرحش رو راحتر بشه عوض کرد که smarty عالی و ساده هستش. کلا موارد خیلی زیادی هستش که اگه روز اول بهشون فکر نکنیم و راح حلی براشون پیدا نکنیم یک روزی به مشکل می خوریم که تغییر دادنش خیلی سخت شده
 

جدیدترین ارسال ها

بالا