LIBrary::SYS سكربت مكتبة برامج وكتب إحترافي .. عرض تقديمي

محب الله ورسوله

مشــرف عــام
طاقم الإدارة
السلام عليكم ورحمة الله وبركاته

قمت بتقديم برمجيتي الأولي بلغة PHP هنا منذ فترة
http://university.arabsbook.com/forum12/thread38504.html

بعدها أكملت تعلم اللغة ل 3 أيام ثم أنشغلت في مشروع التخرج بالكلية
ثم بدأت برمجة ثاني برمجياتي محاولاً الوصول للإحتراف ( بإذن الله سيكون في الإصدارات القادمة وليس من أول مرة )

السكربت LIBrary::SYS V1.0.0 في عرض تقديمي له قبل إكمال الإصدار الأول وإنزاله

العرض الأول​

إضافة تصنيف

كم تعبت في السكربات قديما حينما كنت تحاول إضافة تصنيف
وكلما أضفت تصنيف تنتقل لصفحة ثم تضغط للعودة
وإذا أخطأت يمسح كل شيئ !!

ولكن مع LIBrary::SYS لن تنتقل لصفحة أخري حينما تضيف تصنيف
كما أنك إن أخطأ ستتحدث الصفحة وتخبرك بخطأ ولم تمسح البيانات

صور العرض لإضافة تصنيف


add_cat.gif

adcat2.jpg

adcat3.jpg

adcat4.jpg

adcat5.jpg

العرض القادم

تحرير/حذف التصنيفات

سؤال العرض القادم ( هل السكربت آمن ؟ )
 


مـــــا شاء الله .... مجهود راائع اخي محب و سكربت اكيد سيكون شأنه كبير
هل قمة انت بتسمية السكربت LIBrary:: SYS V1.0.0 اذا كان نعم من اين جائتك فكرة الاسم :)
ربي يوفقك اخي و لا يحرمنـــا من اعمالك الرااائعة
 


سؤال العرض السابق
( هل السكربت آمن ؟ )

لم يتم مطلقاً إستخدام $_GET أو $_POST علي أي مدخل ولكن تم إستخدام $SAFE والتي تجلب من دالة تقوم أولا بتنقيح المدخل وهذه هي الدالة

PHP:
        function makesafe()
        {
            if( !empty($_GET) )
            {
                foreach( $_GET as $key=>$value )
                {        
                    if( is_array($_GET[$key]) )
                    {
                        foreach( $_GET[$i] as $key2=>$value2 )
                        {
                            $safevar[$key][$value2] = htmlspecialchars(addslashes(trim($value2)));
                        }
                    }
                    else
                    $safevar[$key] = htmlspecialchars(addslashes(trim($value)));
                }
            }
            
            if( !empty($_POST) )
            {
                foreach( $_POST as $key=>$value )
                {        
                    if( is_array($_POST[$key]) )
                    {
                        foreach( $_POST[$i] as $key2=>$value2 )
                        {
                            $safevar[$key][$value2] = htmlspecialchars(addslashes(trim($value2)));
                        }
                    }
                    else
                    $safevar[$key] = htmlspecialchars(addslashes(trim($value)));
                }
            }

            return $safevar;
        }

لهذا فالإسكربت آمن بإذن الله من XSS و ال SQL INJECTION

العرض الثاني

ad_cat1.jpg

ad_cat2.jpg

ad_cat3.jpg


العرض القادم ( إضافة برنامج )
سؤال العرض القادم ( هل إضافة البرنامج تحتوي علي ال mirror ؟ )
 


شكرا ...... وللمزيد من التقدم....

جعلها الله في ميزان حسناتك.
 


سؤال العرض السابق
( هل إضافة البرنامج تحتوي علي ال mirror ؟ )

قمت ببرمجة دالة مستخدماً ال regular exprisson أسميتها ( الدالة العجيبة :D ) وهي دالة لم تجدها في أي مكتبة برامج من قبل ستريحك تماما من مشكلة الروابط

السكربات كانت تتيح لك حقل واحد للرابط وكنت تضطر لإضافة البقية في الوصف
أو تسمح لك بعدد محدد من الميرور ولكن معنا أنت تضع ما تريد من الروابط


العرض الثالث

أنظر لصورة صفحة إضافة الملف

ad_file1.jpg

يوجد حقلين
الأول تضع فيه الروابط بأي طريقة كانت
سواء أكان كل رابط في سطر
او تضع نص كبير فيه الروابط في الوسط

الحقل الثاني تضع فيه الوصف لكل رابط في سطر لوحده

الدالة العجيبة تجلب الحقل الأول وترمي كل ما فيه فيما عدا الروابط المندسة في الوسط
فمثلا لو وضع نص كبير به عدة روابط
الدالة العجيبة تجلب كل الروابط الصحيحة منها وتترك باقي الكلام

ثم تجلب من الحقل الثاني كل نصف في سطر وتجعله هو الجملة التي تشير للرابط

مثال

ad_file2.jpg

كما تري هناك نص طويل ولكن الدالة العجيبة تتجاهل الكل وتجلب الروابط فقط
وكما تري هناك 7 روابط و 6 نصوص فقط فماذا سيحدث للرابط السابع يا تري ؟
هل سيختفي لا أنظر للخرج

ad_file3.gif

كما تري كل نص وضعته أخذ رابط
ما عا الروابط التي لا يكون لها وصف يتم وضع وصف آلي لها وهو ( رابط أخر ) وهذا الوصف مسموح لك بتعديله من ملف اللغة
وبالتالي أنت لست مجبر لوضع اوصاف للروابط ولكن يمكنك فقط وضعها وهي ستأخذ لها وصف آلي تحدده أنت

أليست رائعة:)

=======

أيضا يمكنك إضافة وصف للملف وإسم من أضاف الملف
يتم قص أول 255 حرف من وصف الملف لإستخدامها في الميتا ديسكربشن
ويتم أخذ حفل الكلمات المفتاحية ووضع ما فيه في الميتا كيوردس

يمكنك رفع 3 صور لكل ملف وإذا أردت إضافة المزيد بعد إضافة الملف إذهب لتحريره وأرفع المزيد والأمر مفتوح لك

يتم تصغير الصور المختارة وحفظ الصورة مع مصغرتها في مجلد الصور

العرض القادم ( باقي لوحة تحكم المشرف العام )
سؤال العرض القادم ( هل السكربت قابل للتصميم بسهولة ؟ )
 


أعتذر علي التأخير
أشرفت علي إنهاء برمجة الإصدار الأول

أضفت نظام الجروبات
مع 3 مجموعات أساسية غير متاح حذفها ويتم الإعتماد عليها
ويمكنك إضافة مجموعات أخري لا نهائية مع إعطاء صلاحيات لها

عرض صوري للمجموعات

11.gif

12.jpg

13.jpg

أيضا يمكنك إضافة أعضاء للمكتبة بنفسك من لوحة التحكم

14.gif

15.jpg

16.gif

17.jpg

18.jpg
 


أخواني للاسف للمرة الثانية سيتم أجيل إصدار النسخة الأولي لسفري المتكرر

أخذت معي الحاسوب في السفر وبدأت في نقل الخيارات للوحة التحكم بدلاً من ملف الكونفج
أنظر لملف الكونفج كيف كان

PHP:
<?php

// language folder name
$CONFIG['langpref'] = 'arabic';

//mail that all message send from script arrive to it
$CONFIG['technicalemail'] = 'example@example.com';

// home page name LIBrary:SYS
$CONFIG['home_page'] = 'مكتبة البرامج';

// home path & url
$CONFIG['home_path'] = 'C:/AppServ/www/prog1b1';
$CONFIG['home_url'] = 'http://localhost/prog1b1';

//image $ thumbnail path
$CONFIG['img_url'] = 'http://localhost/prog/image';
$CONFIG['thumb_url'] = 'http://localhost/prog';

// style sheet path
$CONFIG['style_sheet_path'] = 'templates/blue/style.css';

// database connection
$CONFIG['sql_host'] = 'localhost';
$CONFIG['sql_database_name'] = 'progv1b1';
$CONFIG['sql_database_password'] = 'lpfhggi';
$CONFIG['sql_database_username'] = 'root';


//open or close your site ( yes || no )
$CONFIG['script_is_open'] = 'yes';

//===== register setting =====
//maximum character in username
$CONFIG['username_length'] = '15';
//set it to yes if you want to allow register ( yes || no )
$CONFIG['allow_register'] = 'yes';
//Verify Email address before register ( yes || no )
$CONFIG['verify_email'] = 'yes';



// you can change it to any charset like 'utf8' or 'iso1252'
$CONFIG['sql_database_charset'] = 'cp1256';

//information of sending mail ( if you want to usint smtp make it 1 and fill other smtp option )
$CONFIG["usingsmtp"] = '0';
$CONFIG['host'] = 'mail.example.com';
$CONFIG['port'] = '25';
$CONFIG['auth'] = 'true';
$CONFIG['username'] = 'smtp_username';
$CONFIG['password'] = 'smtp_password';


// max size of image to upload by megabit
$CONFIG['max_image_size'] = '1';
// max dimension of image
$CONFIG['max_image_width'] = '1000';
$CONFIG['max_image_height'] = '1000';
//size of category image thumbnail dimension
$CONFIG["thumb_width"] = '300';
$CONFIG["thumb_height"] = '300';


//home dir ( ltr || rtl )
$CONFIG['page_dir'] = 'rtl';

//number of image per line
$CONFIG['num_image'] = "2";

//type of user database
$CONFIG['dbuser_type'] = "lib";

//time to log out admin per minute
$CONFIG['acp_logout'] = "360";

//what is the index page ( category || latest_program )
$CONFIG['index_page'] = "category";

// template folder
$CONFIG['template_folder'] = 'blue';

//=====template skins=====
//attriputes of tables
$CONFIG['tables_cellspacing'] = '1';
$CONFIG['tables_cellpadding'] = '5';
$CONFIG['tables_border'] = '0';
//per % or without
$CONFIG['tables_width'] = '90%';

//category table colspan
$CONFIG['category_colspan'] = '4';
//category table width
$CONFIG['cat_width_thumb'] = '';
$CONFIG['cat_width_name'] = '60%';
$CONFIG['cat_width_num_files'] = '10%';
$CONFIG['cat_width_latest_file'] = '30%';

//files table colspan
$CONFIG['files_colspan'] = '5';
//files table width
$CONFIG['files_width_name'] = '50%';
$CONFIG['files_width_author'] = '10%';
$CONFIG['files_width_date'] = '20%';
$CONFIG['files_num_downloads'] = '10%';
$CONFIG['files_num_views'] = '10%';

//number of sub category every line
$CONFIG['num_sub_cat'] = '2';


//=====htaccess====
//category name in link
$CONFIG['category_link_name'] = 'category.php?cat=';
$CONFIG['file_link_name'] = 'file.php?fileid=';
$CONFIG['file_link_down'] = '&act=download';
$CONFIG['description'] = 'dfdfdfdfd';
$CONFIG['keywords'] = 'dfdf, dfdf, dfdf';




?>

صور للوحة التحكم مع أول خيار وهو فتح وغلق المكتبة

1.jpg

2.jpg

الخيارات ليست صفحات مبرمجة ولكنها في قاعدة البيانات
أي تحديث يظهر في قاعدة البيانات يظهر في لوحة التحكم آلي
لطشت الفكرة من الفي بي حينما دخلت قواعد البيانات لديهم ورأيت جدول setting علمت انها أفضل طريقة بدلا من كتابة كود لكل خيار علي حدي
ولكن كل البرمجة مني ولم أخذ منهم أي كود برمجي فقط فهمت الفكرة من جدولهم في قاعدة البيانات
 


ال Search Engine Optimization

يمكنك من خيارات المكتبة تحديد الميتا وصف وكلمات لرئيسية المكتبة
كل تصنيف يضع في الميتا وصف وصفه ويضع في الميتا كلمات كلمات تضعها أنت حينما تضيف تصنيف ( جديد وليس موجود في الصور التي وضعتها في الأعلي فقد تم تحديثه )

كل برنامج يمتلك أيضا ميتا وصف وهو أول 255 حرف من وصف البرنامج
وميتا الكلمات تضعها أنت حينما تضيف برنامج

كل صفحة لها تايتل وهو أسم التصنيف او أسم البرنامج ولو فتحت صفحة الميرور يكون ( تحميل + إسم البرنامج )

الروابط كلها معدلة لتكون html وأنت من تحدد ماذا تكون من الخيارات فبشكل إفتراضي التصنيف يكون رابطه

http://localhost/cat1
http://localhost/cat2
http://localhost/cat3

ولكن يمكنك جعلها أي شيئ تريده بتغير الخيارات + ملف htaccess وليكن ( category أو اي شيئ )

أيضا كل ملف سيكون
http://localhost/file1
http://localhost/file2

يمكنك أن تجعلها أي شيئ تريده بالتعديل من الخيارات ومن ملف htaccess
ويمكنك إضافة اللاحقة .html أيضا أو إزالتها ليكون الرابط

http://localhost/file1.html

أيضا سأقوم ببرمجة سايت ماب لجوجل + ملف لجل الخلاصة rss ولكن لم أقم به بعد ( ربما في إصدارة قادمة )

لو تأخرت في السفر لرمضان سأقوم بالتطوير أكثر وسأطلعكم علي كل جديد عن طريق مقهي إنترنت وفلاش ميموري أنقل لكم الصور بإذن الله

دعواتكم
 
السلام عليكم ورحمة الله

بارك اله فيك وجزاك خيرا

وافاد بك امة
لا اله الا الله محمد رسول الله
 
عودة
أعلى