Sfoglia il codice sorgente

Ticket #4558 - Build-in API support: Courses.

AntonLV 1 anno fa
parent
commit
0a00bdc7f8

+ 2 - 0
modules/boonex/courses/classes/BxCoursesConfig.php

@@ -245,6 +245,8 @@ class BxCoursesConfig extends BxBaseModGroupsConfig
                 'menu_item_title_unfriend_reject_request' => '_bx_courses_menu_item_title_unfriend_reject_request',
                 'menu_item_title_befriend' => '_bx_courses_menu_item_title_befriend',
                 'menu_item_title_unfriend' => '_bx_courses_menu_item_title_unfriend',
+                'menu_item_title_hide' => '_bx_courses_menu_item_title_hide_profile',
+                'menu_item_title_unhide' => '_bx_courses_menu_item_title_unhide_profile',
                 'grid_action_err_delete' => '_bx_courses_grid_action_err_delete',
                 'grid_txt_account_manager' => '_bx_courses_grid_txt_account_manager',
                 'filter_item_active' => '_bx_courses_grid_filter_item_title_adm_active',

+ 25 - 0
modules/boonex/courses/classes/BxCoursesMenuViewActions.php

@@ -24,6 +24,31 @@ class BxCoursesMenuViewActions extends BxBaseModGroupsMenuViewActions
             'js_object' => $this->_oModule->_oConfig->getJsObject('entry')
         ));
     }
+
+    protected function _getMenuItem ($a)
+    {
+        $CNF = &$this->_oModule->_oConfig->CNF;
+
+        $aResult = parent::_getMenuItem($a);
+        if(!$aResult)
+            return $aResult;
+
+        if($this->_bIsApi && (($bHide = $a['name'] == 'hide-course-profile') || $a['name'] == 'unhide-course-profile')) {
+            $aResult = array_merge($aResult, [
+                'display_type' => 'callback',
+                'data' => [
+                    'request_url' => $this->MODULE . '/' . ($bHide ? 'hide' : 'publish') . '/&params[]=' . $this->_iContentId, 
+                    'on_callback' => 'change',
+                    'on_callback_param' => [
+                        'title' => _t($CNF['T']['menu_item_title_' . ($bHide ? 'un' : '') . 'hide']),
+                        'request_url' => $this->MODULE . '/' . ($bHide ? 'publish' : 'hide') . '/&params[]=' . $this->_iContentId, 
+                    ]
+                ]
+            ]);
+        }
+        
+        return $aResult;
+    }
 }
 
 /** @} */

+ 8 - 3
modules/boonex/courses/classes/BxCoursesTemplate.php

@@ -130,8 +130,9 @@ class BxCoursesTemplate extends BxBaseModGroupsTemplate
         if(!isset($aParams['level']))
             return '';
 
-        $iContentId = (int)$aContentInfo[$CNF['FIELD_ID']];
         $iProfileId = bx_get_logged_profile_id();
+        $iContentId = (int)$aContentInfo[$CNF['FIELD_ID']];
+        $bEditable = $this->_oModule->checkAllowedEdit($aContentInfo) === CHECK_ACTION_RESULT_ALLOWED;
 
         $oPermalink = BxDolPermalinks::getInstance();
 
@@ -150,7 +151,11 @@ class BxCoursesTemplate extends BxBaseModGroupsTemplate
         ]);
 
         if(empty($aNodes) || !is_array($aNodes))
-            return '';
+            return $this->_bIsApi ? [
+                'items' => [], 
+                'isEditable' => $bEditable, 
+                'entry_id' => $iContentId
+            ] : '';
 
         $iLevelMax = $this->_oConfig->getContentLevelMax();
         $aLevelToNode = $this->_oConfig->getContentLevel2Node(false);
@@ -201,7 +206,7 @@ class BxCoursesTemplate extends BxBaseModGroupsTemplate
         if($this->_bIsApi)
             return [
                 'items' => $aTmplVarsNodes, 
-                'isEditable' => $this->_oModule->checkAllowedEdit($aContentInfo) === CHECK_ACTION_RESULT_ALLOWED, 
+                'isEditable' => $bEditable, 
                 'entry_id' => $iContentId
             ];