diff --git a/plugin/TopMenu/HTMLMenuLeft.php b/plugin/TopMenu/HTMLMenuLeft.php index 6ba1e52ba6..df405d2839 100644 --- a/plugin/TopMenu/HTMLMenuLeft.php +++ b/plugin/TopMenu/HTMLMenuLeft.php @@ -5,8 +5,9 @@ require_once $configFile; require_once $global['systemRootPath'] . 'plugin/TopMenu/Objects/Menu.php'; require_once $global['systemRootPath'] . 'plugin/TopMenu/Objects/MenuItem.php'; -$menu = Menu::getAllActive(2); +$menu = Menu::getAllActive(Menu::$typeLeftMenu); ?> + $value) { ?> @@ -42,5 +43,5 @@ foreach ($menu as $key => $value) { - +?> + diff --git a/plugin/TopMenu/HTMLMenuRight.php b/plugin/TopMenu/HTMLMenuRight.php index ee2f37f92a..bc17158e8d 100644 --- a/plugin/TopMenu/HTMLMenuRight.php +++ b/plugin/TopMenu/HTMLMenuRight.php @@ -6,8 +6,9 @@ require_once $configFile; require_once $global['systemRootPath'] . 'plugin/TopMenu/Objects/Menu.php'; require_once $global['systemRootPath'] . 'plugin/TopMenu/Objects/MenuItem.php'; -$menu = Menu::getAllActive(1); +$menu = Menu::getAllActive(Menu::$typeTopMenu); ?> + $value) { ?> @@ -52,4 +53,4 @@ foreach ($menu as $key => $value) { - + diff --git a/plugin/TopMenu/Objects/Menu.php b/plugin/TopMenu/Objects/Menu.php index b62049baae..ae59d98c90 100644 --- a/plugin/TopMenu/Objects/Menu.php +++ b/plugin/TopMenu/Objects/Menu.php @@ -5,6 +5,17 @@ require_once dirname(__FILE__) . '/../../../objects/bootGrid.php'; require_once dirname(__FILE__) . '/../../../objects/user.php'; class Menu extends ObjectYPT { + + static $typeLeftMenu = 1; + static $typeTopMenu = 2; + static $typeActionMenu = 3; + static $typeActionMenuCustomURL = 4; + + static $typeName = array( + 1=>'Left', + 2=>'Top', + 3=>'Action', + 4=>'Action Custom URL Per Video'); protected $id, $menuName, $categories_id, $users_groups_id, $menu_order, $status, $position, $type, $icon, $menuSeoUrl; diff --git a/plugin/TopMenu/TopMenu.php b/plugin/TopMenu/TopMenu.php index 14e7326d0b..45cf425d86 100644 --- a/plugin/TopMenu/TopMenu.php +++ b/plugin/TopMenu/TopMenu.php @@ -2,6 +2,8 @@ global $global; require_once $global['systemRootPath'] . 'plugin/Plugin.abstract.php'; +require_once $global['systemRootPath'] . 'plugin/TopMenu/Objects/Menu.php'; +require_once $global['systemRootPath'] . 'plugin/TopMenu/Objects/MenuItem.php'; use Pecee\SimpleRouter\SimpleRouter; //required if we want to define routes on our plugin. @@ -96,4 +98,70 @@ class TopMenu extends PluginAbstract { static function canAdminTopMenu(){ return Permissions::hasPermission(TopMenu::PERMISSION_CAN_EDIT,'TopMenu'); } + + public function getGalleryActionButton($videos_id) { + global $global; + $obj = $this->getDataObject(); + include $global['systemRootPath'] . 'plugin/TopMenu/actionButtonGallery.php'; + } + + public function getNetflixActionButton($videos_id) { + global $global; + $obj = $this->getDataObject(); + include $global['systemRootPath'] . 'plugin/TopMenu/actionButtonNetflix.php'; + } + + public function getWatchActionButton($videos_id) { + global $global, $video; + $obj = $this->getDataObject(); + include $global['systemRootPath'] . 'plugin/TopMenu/actionButtonNetflix.php'; + } + + static function getExternalOptionName($menu_item_id){ + return "menu_url_{$menu_item_id}"; + } + + + static function setVideoMenuURL($videos_id, $menu_item_id, $url) { + $video = new Video('', '', $videos_id); + $externalOptions = _json_decode($video->getExternalOptions()); + $parameterName = self::getExternalOptionName($menu_item_id); + $externalOptions->$parameterName = $url; + $video->setExternalOptions(json_encode($externalOptions)); + return $video->save(); + } + + static function getVideoMenuURL($videos_id, $menu_item_id) { + global $_getVideoMenuURL; + if(!isset($_getVideoMenuURL)){ + $_getVideoMenuURL = array(); + } + if(!empty($_getVideoMenuURL[$videos_id])){ + return $_getVideoMenuURL[$videos_id]; + } + $video = new Video('', '', $videos_id); + + $parameterName = self::getExternalOptionName($menu_item_id); + $externalOptions = _json_decode($video->getExternalOptions()); + $_getVideoMenuURL[$videos_id] = $externalOptions->$parameterName; + return $_getVideoMenuURL[$videos_id]; + } + + public function getVideosManagerListButton() { + if (!User::canUpload()) { + return ""; + } + $menu = Menu::getAllActive(Menu::$typeActionMenuCustomURL); + if(empty($menu)){ + return ''; + } + + $obj = $this->getDataObject(); + $btn = ''; + + $btn .= ''; + + return $btn; + } + } diff --git a/plugin/TopMenu/actionButtonGallery.php b/plugin/TopMenu/actionButtonGallery.php new file mode 100644 index 0000000000..d3b080a96c --- /dev/null +++ b/plugin/TopMenu/actionButtonGallery.php @@ -0,0 +1,61 @@ + + + $value) { + $menuItems = MenuItem::getAllFromMenu($value['id'], true); + foreach ($menuItems as $key2 => $value2) { + ?> +
+ class="text-primary"> + + + + + +
+ $value) { + $menuItems = MenuItem::getAllFromMenu($value['id'], true); + foreach ($menuItems as $key2 => $value2) { + $url = TopMenu::getVideoMenuURL($videos_id, $value2['id']); + if (empty($url)) { + continue; + } + ?> +
+ class="text-primary"> + + + + + +
+ + \ No newline at end of file diff --git a/plugin/TopMenu/actionButtonNetflix.php b/plugin/TopMenu/actionButtonNetflix.php new file mode 100644 index 0000000000..d743cc8978 --- /dev/null +++ b/plugin/TopMenu/actionButtonNetflix.php @@ -0,0 +1,58 @@ + + + $value) { + $menuItems = MenuItem::getAllFromMenu($value['id'], true); + foreach ($menuItems as $key2 => $value2) { + ?> + class="btn btn-default"> + + + + + + $value) { + $menuItems = MenuItem::getAllFromMenu($value['id'], true); + foreach ($menuItems as $key2 => $value2) { + $url = TopMenu::getVideoMenuURL($videos_id, $value2['id']); + if(empty($url)){ + continue; + } + ?> + class="btn btn-default"> + + + + + + + diff --git a/plugin/TopMenu/addVideoInfo.php b/plugin/TopMenu/addVideoInfo.php new file mode 100644 index 0000000000..e48f429cd8 --- /dev/null +++ b/plugin/TopMenu/addVideoInfo.php @@ -0,0 +1,95 @@ + + + + + <?php echo $config->getWebSiteTitle(); ?> :: Set Info + + + + + + $value) { + $menuItems = MenuItem::getAllFromMenu($value['id'], true); + foreach ($menuItems as $key2 => $value2) { + ?> +
+
+

+ + + + +

+
+
+ +
+ +
+ + + + + + + diff --git a/plugin/TopMenu/addVideoInfoSave.json.php b/plugin/TopMenu/addVideoInfoSave.json.php new file mode 100644 index 0000000000..cdcef02f65 --- /dev/null +++ b/plugin/TopMenu/addVideoInfoSave.json.php @@ -0,0 +1,38 @@ +error = true; +$obj->msg = ""; +$obj->videos_id = 0; + +$obj->videos_id = intval($_REQUEST['videos_id']); +if (empty($obj->videos_id)) { + $obj->msg = 'You cannot edit videos_id ' . $obj->videos_id; + die(json_encode($obj)); +} + +$obj->menu_item_id = intval($_REQUEST['menu_item_id']); +if (empty($obj->menu_item_id)) { + $obj->msg = 'menu_item_id is empty'; + die(json_encode($obj)); +} + +$obj->url = $_REQUEST['url']; +if (!IsValidURL($obj->url)) { + $obj->msg = 'url is invalid '.$obj->url; + die(json_encode($obj)); +} + +if (!Video::canEdit($obj->videos_id )) { + $obj->msg = 'You cannot edit videos_id ' . $obj->videos_id; + die(json_encode($obj)); +} + +$id = TopMenu::setVideoMenuURL($obj->videos_id, $obj->menu_item_id, $obj->url); + +$obj->error = empty($id); + +echo json_encode($obj); diff --git a/plugin/TopMenu/page/editor.php b/plugin/TopMenu/page/editor.php index f53552b225..131e01d9b6 100644 --- a/plugin/TopMenu/page/editor.php +++ b/plugin/TopMenu/page/editor.php @@ -98,8 +98,11 @@ $groups = UserGroups::getAllUsersGroups();
@@ -410,7 +413,7 @@ $groups = UserGroups::getAllUsersGroups(); $('#item_order').val(item.item_order); $('#item_status').val(item.status); $('#text').val(item.text); - $('#menuSeoUrlItem').val(item.menuSeoUrlItem); + $('#menuSeoUrlItem').val(item.menuSeoUrlItem); $("#menuItemIcon").val(item.icon); $("#menuItemIcon").trigger('change'); $('iframe').contents().find('.wysihtml5-editor').html(item.text);