سلام ، آیا این بازدید اول شماست ؟ یا
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 15

موضوع: [آموزش] نحوه نوشتن یک کامپوننت

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    [آموزش] نحوه نوشتن یک کامپوننت

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

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  2. # ADS
    تبلیغات در جوملا فارسی
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

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

    - Frontend files :
    توضیح: فایلهای این گروه برای بازدیدکنندگان سایت نمایش داده خواهند شد. این بدان معنی است که اگر شما در یکی از منوها آیتمی اضافه نمائید که به این کامپوننت لینک داشته باشد، فایل های این گروه برای بازدیدکنندگان این کامپوننت در سایت نمایش داده خواهد شد (کلیه لینک های شما برای این کامپوننت از این قاعده پیروی می کنند).
    فایل ها:
    - newcomp.php

    - Administration files (فایل های مدیریت) :
    توضیح : فایلهای این گروه برای نمایش کامپوننت در بخش مدیریت وب سایت استفاده می شوند. این بدان معنی است که این فایلهای صفحات بخش مدیریت کامپوننت را برای نمایش مشخص می کنند.
    فایل ها:
    - admin.newcomp.php
    - toolbar.newcomp.php

    - Installation files (فایل های نصب) :
    توضیح: فایل های این گروه نیز عکملیات نصب از جمله ایجاد بانک اطلاعاتی، لینک در منوی کامپوننت و ... را انجام می دهند.
    فایل ها:
    - newcomp.xml

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  4. #3

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    بررسی فایلهای گروه اول (Frontend files) :

    کلیه فایلهای موجود در این گروه (Frontend files) باید خط کد زیر را داشته باشند تا مستقیما در سایت لود نشده و در مرورگر نمایش داده نشوند.
    کد:
    <?php
    	/** ensure this file is being included by a parent file */
    	defined('_VALID_MOS') or die('Direct Access to this location is not allowed.');
    ?>
    بررسی فایل newcomp.php :

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

    مثال (نمونه کد) :
    کد:
       <?php
       switch($task) {
         case 'show_form':
           // Display a form
           break;
         case 'save':
           // Save data from the submitted form
           break;
         default:
           // Perhaps display some data, etc
           break;
       }
       ?>

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  5. #4

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    خوب دوستان امروز يك نمونه فايل قابل اجرا و خيلي ساده و در عين حال قوي رو براتون مي زارم كه استفاده كنين:
    اين فايل در گروه Frontend files قرار داره و محتويات كامل جدولي رو كه براش مشخص كردين توي يك جدول نشون مي ده:
    کد:
    <?php
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.');
    
    global $database;
    $query = "SELECT * FROM Table_name";
    $database->setQuery( $query );
    $rows = $database->loadObjectList();
    
    echo("<table width='100%' border='0'>");
    for($i=0; $i < count( $rows ); $i++) {
    $row = $rows[$i];
    		
    echo('<tr><td>');
    echo $row->text;
    echo('</tr></td>');
    }
    echo('</table>');
    ?>
    توضيح كدها از قرار زير است:
    کد:
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.');
    اين خط اطمينان مي دهد كه فايل بوسيله پورتال فراخواني شده و در صورت بارگذاري مستقيم بوسيله كاربران پيغام Direct Access to this location is not allowed را نمايش خواهد داد. اين امر براي امنيت برنامه بسيار مهم و حياتي است.
    کد:
    global $database;
    تنظيم $database بصورت يك متغيير سراسري كه مي توانيد از آن با تابع هاي خود استفاده هاي لازم را ببريد.
    کد:
    $query = "SELECT * FROM Table_name ";
    تعيين دستور SQL براي انتخاب ركوردهاي ثبت شده در جدول mos_hello_world از بانك اطلاعاتي و قرار دادن اين دستور در متغيير $query براي استقاده در ساير خطوط.
    البته شما مي توانيد به جاي Table_name نام جدول خود را قرار دهيد.
    کد:
    $database->setQuery( $query );
    اجراي كد SQL موجود در متغيير $query به كلاس $database .
    کد:
    $rows = $database->loadObjectList();
    ايجاد متغييري به نام $rows كه كليه اطلاعات درون جدول بانك اطلاعاتي را در خود نگهداري مي كند.
    کد:
    echo("<table width='100%' border='0'>");
    درج تگ جدول در صفحه براي قرار دادن ركوردهاي بانك اطلاعاتي در سطر هاي آن.
    کد:
    for($i=0; $i < count( $rows ); $i++) {
    ايجاد حلقه For براي خواندن يك به يك ركوردهاي جدول. شمارنده حلقه متغيير $i است كه تا اتمام تعداد ركوردها شمارش مي شود.
    کد:
    $row = $rows[$i];
    قراردادن اطلاعات ركورد شماره $i از بانگ اطلاعاتي در متغيير $row قرار مي گيرد.
    کد:
    echo('<tr><td>');
    درج سطر و ستون براي قراردادن محتويات بانك اطلاعاتي در جدول موجود در صفحه.
    کد:
    echo $row->text;
    درج اطلاعات درون فيلد text از جدول فراخواني شده بانك اطلاعاتي در صفحه.
    کد:
    echo('</tr></td>');
    بستن تگ مربوط به سطر و ستون جدول موجود در صفحه.
    کد:
    }
    انتهاي حلقه For .
    کد:
    echo('</table>');
    بستن تگ جدول موجود در صفحه.

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  6. #5

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    راستي يادم رفت بگم كه براي استفاده و آزمايش فايل بالا چكار بكنين :
    در شاخه componenet در مامبو (تو بخش مديريت نباشه) يك فولدر به نام com_mycmp بسازين سپس كدهاي زير رو تو اون كپي كنين:
    اين كدها همون هاي پست قبلي هستن با اين تفاوت كه به جاي Table_name نام جدول كامپوننت ها يعني components رو گذاشتم و به جاي فيلد text ، نام فيلدي از جدول كامپوننت به نام name رو گذاشتم.
    کد:
    defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.');
    
    global $database;
    $query = "SELECT * FROM #__components";
    $database->setQuery( $query );
    $rows = $database->loadObjectList();
    
    echo("<table width='100%' border='0'>");
    for($i=0; $i < count( $rows ); $i++) {
    $row = $rows[$i];
    		
    echo('<tr><td>');
    echo $row->name;
    echo('</tr></td>');
    }
    echo('</table>');
    ?>
    خوب حالا فايل رو ذخيره كنين و توي آدرس وب سايتتون بعد از index.php عبارت
    کد:
    ?option=com_mycmp
    رو تايپ كرده اينتر رو بزنين.
    نتيجه رو بررسي كنين.....

    يا حق

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  7. #6

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    اصلاح مي كنم:
    كدهاي بالا رو تو فايلي به نام mycmp.php كپي كرده و ذخيره كنين.
    --------------------------------------------------------------------------
    از مديراي محترم خواهش مي كنم ارسال قبليم رو ويرايش كرده و اين قسمت رو بهش اضافه كنن و اين پست رو حذف كنن.
    مرسي

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  8. #7

    تاریخ عضویت
    Jan 2007
    محل سکونت
    تهران
    نوشته ها
    2,363
    تشکر
    1
    تشکر شده 10 بار در 9 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    َسلام
    خسته نباشي برادر
    يه مطلب رو خواستم بگم
    تو پست #3 لازم نيست از عبارت echo براي خروجي دادن جداول و ... استفاده كنيم
    به نظر خودم بهتره با يه <? كد php رو ببنديم، بعد جداولمون رو درست كنيم؛ بعد اگر جايي ميونش احتياج به php شد دوباره <? code ?> ميزنيم
    اينجوري تو dreamweaver و ... ميتونيم بفهميم شكل كلي جداولمون به چه صورت هست، و درك كلي ازش بهتر خواهد شد
    در هر صورت اين تلاش شما رو قدر مينهيم (تريپ ادبي ) موفق باشي
    يا علي

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  9. #8

    تاریخ عضویت
    Feb 2007
    نوشته ها
    288
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

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

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  10. #9

    تاریخ عضویت
    Jan 2007
    محل سکونت
    تهران
    نوشته ها
    2,363
    تشکر
    1
    تشکر شده 10 بار در 9 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    خوب يه مورد هم همون php و mysql و از همه مهم تر برنامه نويس بودن هست
    تهش همه نميتونند همه ي نياز هاي خودشون رو برآورده كنند، ولي در هر صورت حركت جالبيه
    موفق باشند

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


  11. #10

    تاریخ عضویت
    Nov 2006
    نوشته ها
    54
    تشکر
    0
    تشکر شده 0 بار در 0 ارسال

    پاسخ : [آموزش] نحوه نوشتن یک کامپوننت

    سلام به همه دوستان گرانقدر

    من بالاخره نوشتن كامپوننت رو ياد گرفتم (البته هنوز حرفه اي نشدم 8) ولي ميشم )
    بزودي بقيه آموزش ها رو هم مي زارم كه دوستاني كه نياز دارن بررسي كنن
    ------------------------------------------------------------------------------------------------
    البته چند تا سوال داشتم كه از دوستان عزيز خواهش مي كنم من رو راهنمايي كنن:
    كامپوننت هايي كه منن مي سازم يك صفحه مديريتي داره و يك صفحه نمايش در سايت.
    - اگه بخوام مثلا اطلاعاتم رو بخش بندي كنم (چيزي شبيه com_weblink ) چطور مي تونم صفحه دوم و سوم رو به بخش مديريت كامپوننت اضافه كنم؟
    - اگه بخوام خروجي رو كه در سايت نمايش داده مي شه رو به انتخاب كاربر محدود كنم چكار كنم؟ (براي مثال در سايت ليست كل كتابهاي ثبت شده نشون داده مي شه و كاربر بتونه انتخاب كنه كه مثلا ليست كتابهاي يك نويسنده خاص نمايش داده بشه).
    - و اينكه در ليستي كه در سايت براي بينندگان نمايش داده مي شه كاربر بتونه يك عبارت رو سرج كنه، چطوريه؟

    -------------------------------------------------------------------------------------------
    دوستان گرامي از كمكاهتون ممنونم.
    از اينكه اين سوالات رو اينجا مطرح كردم من رو ببخشيد. تاپيك رو با عنوان آموزش نوشتن كامپوننت زدم و فكر كنم اين مسايل هم اينجا باشه بهتره

    ممنون از همگي


    يا حق

    جهت مشاهده لینک ها باید ثبت نام کنید یا لاگین کنید.


صفحه 1 از 2 12 آخرینآخرین

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •