۰۹۳۷۴۶۵۵۳۸۵
دسته بندی : وبلاگ انتشار : ۱۴ آذر ۱۳۹۴ بازدید 674 بار دیدگاه ۸ عدد

whmcs

در نسخه ۶ نرم افزار whmcs تغییرات زیادی ایجاد شده که یکی از آنها تغییر نوع مدیریت منوها در قالب های پیشفرض این سیستم است. در نسخه های ۵ و ماقبل منوهای ناحیه کاربری از طریق ویرایش فایل های قالب مثل header.php و … امکانپذیر بود اما در نسخه ۶ منوهای whmcs باید از طریق Hook ها مدیریت شوند.

منوهای navigation بالای سایت و همچنین منوهای کناری Sidebar همه بوسیله Hook باید مدیریت، ویرایش و حذف و اضافه شوند و این به معنای این است که شما باید دستی در برنامه نویسی داشته باشید. در این مطلب سعی می کنیم تا حدودی شما را با چگونگی انجام اینکار آشنا کنیم.

البته در این مطلب به منوهای Navigation می پردازیم و در فرصتی دیگر و در صورت نیاز مطلبی در مورد منوهای کناری خواهیم نوشت. اما روش کار در کل یکسان است.

جهت حذف یا ویرایش هر منو ابتدا باید نام منوی مورد نظر را پیدا کنید. هر منویی یک نام منحصر بفرد باید داشته باشد. نام هر منو را با بررسی سورس html صفحه ناحیه کاربری می توانید پیدا کنید.  گزینه inspect elements در مرورگر ها هم می تواند کمک کند. به عنوان مثال در تصویر زیر مقدار menuitemname برای منوی اخبار یا Announcements را مشاهده می کنید.

Menu-inspect-element

ساختار منوها بصورت درختی می باشد یعنی همانطور که در تصویر مشاهده می کنید منوی Announcements زیر مجموعه ای از منوی Support است. بنابراین لازم است شما برای هر منویی که قصد ویرایش دارید نام مجموعه بالایی آن را هم پیدا کنید.

تغییر عنوان منو

عنوان هر منو به راحتی از فایل زبان مورد استفاده قابل تغییر است، مثلا شما در فایل زبان فارسی به راحتی می توانید عنوان منوی “اخبار” را به کلمه “اطلاعیه ها” تغییر دهید. اما می توانید همین کار را هم از طریق Hook انجام دهید که بخاطر سادگی آن را مثال می زنیم تا با کارکرد هوک ها کمی آشنا شوید.

ابتدا یک فایل بنام custom-menus.php بسازید و کد زیر را داخل آن قرار دهید:

    <?php
     
    use WHMCS\View\Menu\Item as MenuItem;
     
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        $navItem = $primaryNavbar->getChild('Support');
        if (is_null($navItem)) {
            return;
        }
     
        $navItem = $navItem->getChild('Announcements');
        if (is_null($navItem)) {
            return;
        }
     
        $navItem->setLabel('عبارت دلخواه شما');
     
    });

همانطور که مشاهده می کنید این کد ابتدا وارد منوی Support را و سپس وارد منوی Announcements که یک child از آن است می شود و در نهایت label منو را به عبارت دلخواه تغییر می دهد. حال کافیست این فایل را در آدرس /includes/hooks پوشه whmcs خود کپی کنید تا اثر آن را مشاهده نمایید.

تغییر صفحه هدف یک منو

بسیاری از افراد از سیستم های مدیریت محتوا مانند وردپرس برای سایت خود در کنار whmcs استفاده می کنند و اخبار و اطلاعیه های خود را توسط آن منتشر می کنند و به عنوان مثال می خواهند منوی “اخبار” یا Announcements آنها به صفحه ای خاص از سایت وردپرسی آنها لینک شود. برای این کار باید از کد setUri در هوک استفاده کنند. در کد زیر طریقه استفاده از این کد در فایل هوک ذکر شده است:

    <?php
     
    use WHMCS\View\Menu\Item as MenuItem;
     
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        $navItem = $primaryNavbar->getChild('Support');
        if (is_null($navItem)) {
            return;
        }
     
        $navItem = $navItem->getChild('Announcements');
        if (is_null($navItem)) {
            return;
        }

    $navItem->setLabel('عبارت دلخواه شما');

    $navItem->setUri('https://www.example.com/3rdpartyblogsystem');   });

همانطور که مشاهده می کنید همه کد مانند کد قبلی می باشد و فقط قسمت setUri به آن اضافه شده است. البته می توانید خط مربوط به setLabel را حذف کنید و از آن استفاده نکنید.

تغییر چیدمان منو ها

حال که با ساختار کدهای هوک در مورد منو ها آشنا شدید احتمالا به راحتی بتوانید از کد زیر برای ترتیب دادن به منوها استفاده کنید:

    <?php
     
    use WHMCS\View\Menu\Item as MenuItem;
     
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        $navItem = $primaryNavbar->getChild('Support');
        if (is_null($navItem)) {
            return;
        }
     
        $navItem = $navItem->getChild('Announcements');
        if (is_null($navItem)) {
            return;
        }
     
        $navItem->setOrder(1);
     
    });

این کد منوی اخبار را می گیرد و به آن رتبه ۱ را اختصاص می دهد که بالاترین منو در قسمت پشتیبانی می شود. کدهای کمکی زیر هم می توانید استفاده کنید:

    // Moves a menu item up one position
    $primaryNavbar->getChild('Support')->getChild('Announcements')->moveUp();
    // Moves a menu item down one position
    $primaryNavbar->getChild('Support')->getChild('Announcements')->moveDown();
    // Moves a menu item to the first position
    $primaryNavbar->getChild('Support')->getChild('Announcements')->moveToFront();
    // Moves a menu item to the last position
    $primaryNavbar->getChild('Support')->getChild('Announcements')->moveToBack();

ایجاد منوی جدید

جهت اضافه کردن یک منوی جدید به منوی اصلی می توانید از کد زیر در هوک استفاده کنید:

    <?php
    #adding Menu Item to primaryNavbar
    use WHMCS\View\Menu\Item as MenuItem;
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        $primaryNavbar->addChild('Menu Name')
            ->setUri('https://www.example.com/')
            ->setOrder(70);
    });

ایجاد زیر منوی جدید

مثلا اگر بخواهید یک منوی تماس اضطراری به منوی پشتیبانی اضافه کنید که به صفحه emergency.php لینک شده باشد کد زیر به شما کمک می کند:

    <?php
     
    use WHMCS\View\Menu\Item as MenuItem;
     
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        if (!is_null($primaryNavbar->getChild('Support'))) {
            $primaryNavbar->getChild('Support')
                ->addChild('Emergency Contacts', array(
                    'label' => 'Emergency Contacts',
                    'uri' => 'emergency.php',
                    'order' => '100',
                ));
        }
    });

حذف یک منو

جهت حذف یک منو مثلا منوی “وضعیت شبکه” از کد زیر استفاده کنید.

    <?php
    use WHMCS\View\Menu\Item as MenuItem;
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        if (!is_null($primaryNavbar->getChild('Network Status'))) {
            $primaryNavbar->removeChild('Network Status');
        }
    });

و یا برای حذف یک زیر منو از قسمت پشتیبانی بنام اخبار کد زیر به شما کمک می کند:

    <?php
     
    use WHMCS\View\Menu\Item as MenuItem;
     
    add_hook('ClientAreaPrimaryNavbar', 1, function (MenuItem $primaryNavbar)
    {
        if (!is_null($primaryNavbar->getChild('Support'))) {
            $primaryNavbar->getChild('Support')->removeChild('Announcements');
        }
    });

ویرایش دیگر منو ها

در قالب Six بطور پیشفرض ۴ منو وجود دارد که در مثال های بالای فقط با منوی اصلی یعنی PrimaryNavbar کارهایی انجام شد. دیگر منوی های موجود مطابق تصویر زیر می باشند:

whmcs-menus

با کمی خلاقیت و بوسیله همین کدهای ارائه شده می توانید نسبت به ویرایش منوهای دیگر نیز اقدام کنید.

باتشکر از شیوا هاست عزیز بابت تهییه این آموزش کامل

منبع : تغییر منوهای whmcs

ویرایش منوهای whmcs نسخه ۶ به بالا : قیمت

نکته : پس از سفارش و پرداخت محصول به صورت اتوماتیک قابل دانلود خواهد بود

سیستم مدیریت :

پشتیبانی : پشتیبانی تنها با حفظ کپی رایت از طریق بخش تیکتینگ انجام خواهد شد

نصب قالب : در صورتی که قالب محصولی نیاز به نصب خاصی داشته باشد فایل راهنما ارائه می شود . آموزش نصب قالب whmcs , آموزش نصب whmcs, آموزش تصویری نصب قالب مدیریت WHMCS

سفارش و خرید پیش نمایش فارسی پیش نمایش خارجی دانلود پیش نمایش چیزی نیست فعلا ! دریافت رایگان
مطالب مشابه و پیشنهادی

ارسال دیدگاه

۸ دیدگاه برای ویرایش منوهای whmcs نسخه ۶ به بالا ثبت شده است

1 | مهدی رئیسی

اردیبهشت ۲۷ام, ۱۳۹۵ at ۶:۳۶ ب.ظ

سلام
خسته نباشید
ممنونم از مطالب خوبتون خیلی استفاده کردم بدرد بخور بود
من یه کد می خوام که صفحه ای که به نام قوانین ساختم سایدبارش هم بالا بیاد همچین امکانی هستش ؟

2 | وهاب

اردیبهشت ۳۰ام, ۱۳۹۵ at ۳:۰۷ ب.ظ

فایل سایدبار را در قالب فراخوانی کنید
با استفاده از innclude
در قالب های whmcs در صفحات مختلف میتونید این کد رو دریافت کنید

3 | مهدی رئیسی

خرداد ۲ام, ۱۳۹۵ at ۸:۳۴ ق.ظ

سلام
ممنونم جناب وهاب عزیز
یه راهنمایی کوچیک می شه بفرمایید ؟
توی کدوم یک از کدها و به جای کدام کد و در کدام خط
ممنونم

4 | وهاب

خرداد ۲ام, ۱۳۹۵ at ۴:۳۸ ب.ظ

متوجه منظورتون نشدم بزرگوار
بیشتر توضیح بدید بزرگوار

5 | مهدی رئیسی

خرداد ۳ام, ۱۳۹۵ at ۴:۲۸ ب.ظ

سلام
جناب وهاب ممنونم از همکاریتون خیلی خوشحال هستم که مشتاق هستید حل مشکل رو کمک کنید
منظورم اینه که از کدهای بالا باید کدوم کد رو بذارم و داخل کد چه قسمتی رو تغییر بدم

6 | وهاب

خرداد ۳ام, ۱۳۹۵ at ۶:۱۴ ب.ظ

شما دقیقا بفرمایید میخواید چی رو حذف کنید تا راهنمایی کامل کنم خدمتتون

7 | پویا شفاعی

مهر ۱۵ام, ۱۳۹۵ at ۶:۲۹ ب.ظ

با سلام و درود

وهاب جان من میخوام کاری کنم منو ها راست چین بشن در نسخه فارسی دقیقا باید چه کدی رو بزنم ؟

با تشکر

8 | وهاب

مهر ۱۹ام, ۱۳۹۵ at ۱۱:۵۵ ق.ظ

از طریق سی اس اس ها به راحتی میتونید انجام بدید