Difference between revisions of "How to customize user tabs in member's area"

From aMember Pro Documentation
Jump to: navigation, search
Line 3: Line 3:
 
Add this code to [[site.php file]]:
 
Add this code to [[site.php file]]:
  
===Add single tab
+
== Add single tab ==
 
<source>
 
<source>
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
Line 18: Line 18:
 
</source>
 
</source>
  
===Add a tab with subitems
+
== Add a tab with subitems ==
 
<source>
 
<source>
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
Line 46: Line 46:
 
</source>
 
</source>
  
===Remove a tab
+
== Remove a tab ==
 
<source>
 
<source>
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
Line 58: Line 58:
 
</source>
 
</source>
  
===Add sub item to exiting tab
+
== Add sub item to exiting tab ==
 
<source>
 
<source>
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
Line 75: Line 75:
 
</source>
 
</source>
  
===Add a tab based on user access, if user has active subscription to product with # 1
+
== Add a tab based on user access, if user has active subscription to product with #1 ==
 
<source>
 
<source>
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
 
Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {

Revision as of 11:11, 11 May 2016

Let's say you want to add a tab to the member's area and remove the Add/Renew tab.

Add this code to site.php file:

Contents

Add single tab

Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
    $user = $event->getUser();
    $menu = $event->getMenu();
 
    $menu->addPage(array(
        'id' => 'mypage',
        'label' => ___('Do The Thing'),
        'uri' => '/the.thing',
        'order' => 2,
    ));
});

Add a tab with subitems

Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
    $user = $event->getUser();
    $menu = $event->getMenu();
 
    $menu->addPage(
        array(
            'id' => 'with-subitem',
            'label' => 'With Subitems',
            'uri' => '#',
            'pages' => array(
                array(
                    'id' => 'subitem1',
                    'label' => 'Subitem 1',
                    'uri' => '/subitem-2'
                ),
                array(
                    'id' => 'subitem2',
                    'label' => 'Subitem 2',
                    'uri' => '/subitem-2'
                )
            )
        )
    );
});

Remove a tab

Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
    $user = $event->getUser();
    $menu = $event->getMenu();
 
    if ($page = $menu->findOneById('add-renew')) {
        $menu->removePage($page)
    }
});

Add sub item to exiting tab

Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
      $user = $event->getUser();
      $menu = $event->getMenu();
 
      $page = $menu->findOneById('aff'); // get affiliate page 
      $page->addPage(array(
          'id' => 'my-subitem',
          'label' => ___('Subitem'),
          'uri' => '/sub.item',
          'target' => '_blank', // you can set target attribute if necessary
          'order' => 10,
      ));
});

Add a tab based on user access, if user has active subscription to product with #1

Am_Di::getInstance()->hook->add(Am_Event::USER_MENU, function (Am_Event $event) {
    $user = $event->getUser();
    $menu = $event->getMenu();
 
    /* @var $user User */
    $user = $event->getUser();
    if (in_array(1, $user->getActiveProductIds())) {
        $menu->addPage(array(
            'id' => 'mypage',
            'label' => ___('Do The Thing'),
            'uri' => '/the.thing',
            'order' => 2,
        ));
    }
});