当前位置: 首页>>代码示例>>PHP>>正文


PHP JHtmlSidebar类代码示例

本文整理汇总了PHP中JHtmlSidebar的典型用法代码示例。如果您正苦于以下问题:PHP JHtmlSidebar类的具体用法?PHP JHtmlSidebar怎么用?PHP JHtmlSidebar使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了JHtmlSidebar类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: addToolbar

 /**
  * Method to configure the toolbar for this view.
  *
  * @return  void
  *
  * @since   2.5
  */
 protected function addToolbar()
 {
     $canDo = JHelperContent::getActions('com_finder');
     JToolbarHelper::title(JText::_('COM_FINDER_MAPS_TOOLBAR_TITLE'), 'zoom-in finder');
     $toolbar = JToolbar::getInstance('toolbar');
     if ($canDo->get('core.edit.state')) {
         JToolbarHelper::publishList('maps.publish');
         JToolbarHelper::unpublishList('maps.unpublish');
         JToolbarHelper::divider();
     }
     if ($canDo->get('core.admin') || $canDo->get('core.options')) {
         JToolbarHelper::preferences('com_finder');
     }
     JToolbarHelper::divider();
     $toolbar->appendButton('Popup', 'bars', 'COM_FINDER_STATISTICS', 'index.php?option=com_finder&view=statistics&tmpl=component', 550, 350);
     JToolbarHelper::divider();
     JToolbarHelper::help('JHELP_COMPONENTS_FINDER_MANAGE_CONTENT_MAPS');
     if ($canDo->get('core.delete')) {
         JToolbarHelper::deleteList('', 'maps.delete');
         JToolbarHelper::divider();
     }
     JHtmlSidebar::setAction('index.php?option=com_finder&view=maps');
     JHtmlSidebar::addFilter('', 'filter_branch', JHtml::_('select.options', JHtml::_('finder.mapslist'), 'value', 'text', $this->state->get('filter.branch')), true);
     JHtmlSidebar::addFilter(JText::_('COM_FINDER_INDEX_FILTER_BY_STATE'), 'filter_state', JHtml::_('select.options', JHtml::_('finder.statelist'), 'value', 'text', $this->state->get('filter.state')));
 }
开发者ID:educakanchay,项目名称:educared,代码行数:32,代码来源:view.html.php

示例2: addToolBar

 /**
  * Setting the toolbar
  */
 protected function addToolBar()
 {
     $state = $this->get('State');
     $user = JFactory::getUser();
     //$canDo	= TSJsHelper::getActions('com_tsj', 'category', $state->get('filter.category_id'));
     if (version_compare(JPlatform::RELEASE, '12', '<')) {
     } else {
         $categoryId = $this->state->get('filter.category_id');
     }
     JToolBarHelper::title(JText::_('COM_TSJ_MANAGER_TARIF'));
     //Выводим кнопку настройки
     /*if (JFactory::getUser()->authorise('core.admin', 'com_tsj')) {
     		JToolBarHelper::preferences('com_tsj');
     		JToolBarHelper::divider();
     		}*/
     $toolbar = JToolBar::getInstance('toolbar');
     $toolbar->addButtonPath(JPATH_COMPONENT . DS . 'buttons');
     JToolBarHelper::addNew('tarif.add');
     JToolBarHelper::editList('tarif.edit');
     JToolBarHelper::deleteList('Вы действительно хотите удалить выбранные записи ?', 'tarif.remove');
     JToolBarHelper::help('com_tsj', true);
     if (version_compare(JPlatform::RELEASE, '12', '>=')) {
         JHtmlSidebar::setAction('index.php?option=com_tsj&view=default');
     }
 }
开发者ID:rsam,项目名称:com_tsj,代码行数:28,代码来源:view.html.php

示例3: display

 /**
  * Template types display method
  *
  * @copyright
  * @author 		RolandD
  * @todo
  * @see
  * @access 		public
  * @param
  * @return
  * @since 		4.0
  */
 public function display($tpl = null)
 {
     // Load the template types
     $this->templatetypes = $this->get('Items');
     // Get the pagination
     $this->pagination = $this->get('Pagination');
     // Load the user state
     $this->state = $this->get('State');
     // Render the submenu
     if (version_compare(JVERSION, '3.0', '>=')) {
         CsviHelper::addSubmenu('templatetypes');
         $this->sidebar = JHtmlSidebar::render();
     } else {
         // Get the panel
         $this->loadHelper('panel');
         $this->sidebar = '';
     }
     // Show the toolbar
     JToolBarHelper::title(JText::_('COM_CSVI_TEMPLATETYPES'), 'csvi_templates_48');
     JToolBarHelper::custom('templatetypes.reset', 'csvi_reset_32', 'csvi_reset_32', JText::_('COM_CSVI_RESET_SETTINGS'), false);
     JToolBarHelper::divider();
     JToolBarHelper::custom('templatetype.add', 'csvi_add_32', 'csvi_add_32', 'JTOOLBAR_NEW', false);
     JToolBarHelper::custom('templatetype.edit', 'csvi_edit_32', 'csvi_edit_32', 'JTOOLBAR_EDIT', true);
     JToolBarHelper::divider();
     JToolBarHelper::custom('templatetypes.publish', 'csvi_publish_32', 'csvi_publish_32', JText::_('JTOOLBAR_PUBLISH'), true);
     JToolBarHelper::custom('templatetypes.unpublish', 'csvi_unpublish_32', 'csvi_unpublish_32', JText::_('JTOOLBAR_UNPUBLISH'), true);
     //JToolBarHelper::help('about.html', true);
     // Display it all
     parent::display($tpl);
 }
开发者ID:alesconti,项目名称:FF_2015,代码行数:42,代码来源:view.html.php

示例4: addToolbar

 protected function addToolbar()
 {
     $bar = JToolBar::getInstance('toolbar');
     $canDo = JCKHelper::getActions();
     JToolBarHelper::title(JText::_('COM_JCKMAN_SUBMENU_PLUGIN_NAME'), 'plugin.png');
     if ($canDo->get('core.edit')) {
         JToolBarHelper::editList('list.edit');
     }
     //end if
     if ($canDo->get('core.edit.state')) {
         JToolBarHelper::publishList('list.publish');
         JToolBarHelper::unpublishList('list.unpublish');
         JToolbarHelper::checkin('list.checkin');
     }
     //end if
     // Add a Link button for Control Panel
     $bar->appendButton('Link', 'cpanel', JText::_('COM_JCKMAN_SUBMENU_CPANEL_NAME'), 'index.php?option=com_jckman&view=cpanel');
     JToolBarHelper::help($this->app->input->get('view'), false, 'http://www.joomlackeditor.com/installation-guide?start=14#plugin_man_help');
     JCKHelper::addSubmenu($this->app->input->get('view'));
     JHtmlSidebar::setAction('index.php?option=com_jckman&view=list');
     // FILTERS
     JHtmlSidebar::addFilter(JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_state', JHtml::_('select.options', JCKHelper::getStateOptions(), 'value', 'text', $this->state->get('filter.state')));
     JHtmlSidebar::addFilter(JText::_('- Select Core Type -'), 'filter_iscore', JHtml::_('select.options', array(JHtml::_('select.option', '1', 'Core Plugins'), JHtml::_('select.option', '0', 'Not Core Plugins')), 'value', 'text', $this->state->get('filter.iscore')));
     $this->sidebar = JHtmlSidebar::render();
 }
开发者ID:scarsroga,项目名称:blog-soa,代码行数:25,代码来源:view.html.php

示例5: addToolbar

 /**
  * Add the page title and toolbar.
  *
  * @since	1.6
  */
 protected function addToolbar()
 {
     require_once JPATH_COMPONENT . '/helpers/sibdiet.php';
     $state = $this->get('State');
     $canDo = SibdietHelper::getActions();
     // Get the toolbar object instance
     $bar = JToolBar::getInstance('toolbar');
     JToolBarHelper::title(JText::_('COM_SIBDIET_MANAGER_ACTIVITIES'), 'database activities');
     if ($canDo->get('core.create')) {
         JToolBarHelper::addNew('activity.add');
     }
     if ($canDo->get('core.edit') && isset($this->items[0])) {
         JToolBarHelper::editList('activity.edit');
     }
     if ($canDo->get('core.edit.state')) {
         JToolbarHelper::checkin('activities.checkin');
     }
     if ($state->get('filter.state') == -2 && $canDo->get('core.delete')) {
         JToolbarHelper::publish('activities.publish', 'JTOOLBAR_PUBLISH', true);
         JToolbarHelper::deleteList('', 'activities.delete', 'JTOOLBAR_EMPTY_TRASH');
     } elseif ($canDo->get('core.edit.state')) {
         JToolbarHelper::trash('activities.trash');
     }
     if ($canDo->get('core.admin')) {
         JToolBarHelper::preferences('com_sibdiet');
     }
     JHtmlSidebar::setAction('index.php?option=com_sibdiet&view=activities');
 }
开发者ID:smhnaji,项目名称:sdnet,代码行数:33,代码来源:view.html.php

示例6: addSidebar

 /**
  * Add a menu on the sidebar of page
  */
 protected function addSidebar()
 {
     JHtmlSidebar::setAction('index.php?option=' . $this->option . '&view=' . $this->getName());
     $statesOptions = array(JHtml::_("select.option", 0, JText::_("COM_IDENTITYPROOF_NOT_VERIFIED")), JHtml::_("select.option", 1, JText::_("COM_IDENTITYPROOF_VERIFIED")));
     JHtmlSidebar::addFilter(JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_state', JHtml::_('select.options', $statesOptions, 'value', 'text', $this->state->get('filter.state'), true));
     $this->sidebar = JHtmlSidebar::render();
 }
开发者ID:xop32,项目名称:Proof-of-Identity,代码行数:10,代码来源:view.html.php

示例7: getDanhsach

 public function getDanhsach()
 {
     $data = $this->inputData();
     $vName = JRequest::getString('view');
     AdminTochucHelper::addSubmenu($vName);
     AdminTochucHelper::addButton($vName);
     $this->mainframe = JFactory::getApplication();
     $this->option = JRequest::getWord('option');
     $uri = JFactory::getURI();
     $status = $this->mainframe->getUserStateFromRequest($this->option . 'status', 'status', '', 'string');
     $filter_order = $this->mainframe->getUserStateFromRequest($this->option . 'filter_order', 'filter_order', 'name', 'cmd');
     $filter_order_Dir = $this->mainframe->getUserStateFromRequest($this->option . 'filter_order_Dir', 'filter_order_Dir', '', 'word');
     $search = $this->mainframe->getUserStateFromRequest($this->option . 'search', 'search', '', 'string');
     if (strpos($search, '"') !== false) {
         $search = str_replace(array('=', '<'), '', $search);
     }
     $search = JString::strtolower($search);
     if (!in_array(strtoupper($filter_order_Dir), array('ASC', 'DESC'))) {
         $filter_order_Dir = '';
     }
     $javascript = 'onchange="document.adminForm.submit()"';
     $lists['status'] = JHTML::_('select.genericlist', array(array('value' => '', 'text' => '--Trạng thái--'), array('value' => '1', 'text' => 'Sử dụng'), array('value' => '0', 'text' => 'Không sử dụng')), 'status', $javascript . ' class="inputbox" size="1"', 'value', 'text', $status);
     $model = JModelLegacy::getInstance('tochucdang', 'TochucModel');
     $items = $model->listDanhsach($data['table']);
     $totals = $model->getTotal($data['table']);
     $pagination = $model->getPagination($data['table']);
     $lists['order_Dir'] = $filter_order_Dir;
     $lists['order'] = $filter_order;
     $lists['search'] = $search;
     $this->sidebar = JHtmlSidebar::render();
     $this->assignRef('data', $data);
     $this->assignRef('lists', $lists);
     $this->assignRef('items', $items);
     $this->assignRef('pagination', $pagination);
 }
开发者ID:phucdnict,项目名称:cbcc_05062015,代码行数:35,代码来源:view.html.php

示例8: addToolbar

 /**
  * Add the page title and toolbar.
  *
  * @since  1.6
  */
 protected function addToolbar()
 {
     require_once JPATH_COMPONENT . '/helpers/languages.php';
     JFactory::getApplication()->input->set('hidemainmenu', 1);
     $isNew = empty($this->item->lang_id);
     $canDo = $this->canDo;
     JToolbarHelper::title(JText::_($isNew ? 'COM_LANGUAGES_VIEW_LANGUAGE_EDIT_NEW_TITLE' : 'COM_LANGUAGES_VIEW_LANGUAGE_EDIT_EDIT_TITLE'), 'comments-2 langmanager');
     // If a new item, can save.
     if ($isNew && $canDo->get('core.create')) {
         JToolbarHelper::save('language.save');
     }
     //If an existing item, allow to Apply and Save.
     if (!$isNew && $canDo->get('core.edit')) {
         JToolbarHelper::apply('language.apply');
         JToolbarHelper::save('language.save');
     }
     // If an existing item, can save to a copy only if we have create rights.
     if ($canDo->get('core.create')) {
         JToolbarHelper::save2new('language.save2new');
     }
     if ($isNew) {
         JToolbarHelper::cancel('language.cancel');
     } else {
         JToolbarHelper::cancel('language.cancel', 'JTOOLBAR_CLOSE');
     }
     JToolbarHelper::divider();
     JToolbarHelper::help('JHELP_EXTENSIONS_LANGUAGE_MANAGER_EDIT');
     $this->sidebar = JHtmlSidebar::render();
 }
开发者ID:joomlatools,项目名称:joomla-platform,代码行数:34,代码来源:view.html.php

示例9: addToolbar

 /**
  * Add the page title and toolbar.
  *
  * @return  void
  *
  * @since   1.6
  */
 protected function addToolbar()
 {
     $canDo = JHelperContent::getActions('com_languages');
     JToolbarHelper::title(JText::_('COM_LANGUAGES_VIEW_LANGUAGES_TITLE'), 'comments-2 langmanager');
     if ($canDo->get('core.create')) {
         JToolbarHelper::addNew('language.add');
     }
     if ($canDo->get('core.edit')) {
         JToolbarHelper::editList('language.edit');
         JToolbarHelper::divider();
     }
     if ($canDo->get('core.edit.state')) {
         if ($this->state->get('filter.published') != 2) {
             JToolbarHelper::publishList('languages.publish');
             JToolbarHelper::unpublishList('languages.unpublish');
         }
     }
     if ($this->state->get('filter.published') == -2 && $canDo->get('core.delete')) {
         JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'languages.delete', 'JTOOLBAR_EMPTY_TRASH');
         JToolbarHelper::divider();
     } elseif ($canDo->get('core.edit.state')) {
         JToolbarHelper::trash('languages.trash');
         JToolbarHelper::divider();
     }
     if ($canDo->get('core.admin')) {
         // Add install languages link to the lang installer component.
         $bar = JToolbar::getInstance('toolbar');
         $bar->appendButton('Link', 'upload', 'COM_LANGUAGES_INSTALL', 'index.php?option=com_installer&view=languages');
         JToolbarHelper::divider();
         JToolbarHelper::preferences('com_languages');
         JToolbarHelper::divider();
     }
     JToolbarHelper::help('JHELP_EXTENSIONS_LANGUAGE_MANAGER_CONTENT');
     JHtmlSidebar::setAction('index.php?option=com_languages&view=languages');
 }
开发者ID:adjaika,项目名称:J3Base,代码行数:42,代码来源:view.html.php

示例10: addSubmenu

 /**
  * Configure the Linkbar.
  *
  * @param   string  $vName  The name of the active view.
  *
  * @return  void
  *
  * @since   1.6
  */
 public static function addSubmenu($vName)
 {
     JHtmlSidebar::addEntry(JText::_('COM_BANNERS_SUBMENU_BANNERS'), 'index.php?option=com_banners&view=banners', $vName == 'banners');
     JHtmlSidebar::addEntry(JText::_('COM_BANNERS_SUBMENU_CATEGORIES'), 'index.php?option=com_categories&extension=com_banners', $vName == 'categories');
     JHtmlSidebar::addEntry(JText::_('COM_BANNERS_SUBMENU_CLIENTS'), 'index.php?option=com_banners&view=clients', $vName == 'clients');
     JHtmlSidebar::addEntry(JText::_('COM_BANNERS_SUBMENU_TRACKS'), 'index.php?option=com_banners&view=tracks', $vName == 'tracks');
 }
开发者ID:grlf,项目名称:eyedock,代码行数:16,代码来源:banners.php

示例11: display

 function display($tpl = null)
 {
     $this->categories = $this->get('Categories');
     $this->state = $this->get('State');
     $this->items = $this->get('Items');
     $this->countItems = $this->get('CountItems');
     $this->pagination = $this->get('Pagination');
     /*
     		jimport('joomla.html.pagination');		
     		$limit = JRequest::getVar('limit', '25', '', 'int');
     		$limitstart = JRequest::getVar('limitstart', '0', '', 'int');		
     		$pagination = new JPagination($this->countItems, $limitstart, $limit);
     		$this->pagination  = $pagination;*/
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     $this->addToolbar();
     $version = new JVersion();
     if (version_compare($version->getShortVersion(), '3.0.0', '<')) {
         $tpl = 'legacy';
     } else {
         /*JHtmlSidebar::addFilter(
         			JText::_('JOPTION_SELECT_CATEGORY'),
         			'filter_category',
         			JHtml::_('select.options', DJClassifiedsCategory::getCatSelect(), 'value', 'text', $this->state->get('filter.category'), true)
         		);*/
         JHtmlSidebar::addFilter(JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_published', JHtml::_('select.options', array(JHtml::_('select.option', '1', 'JPUBLISHED'), JHtml::_('select.option', '0', 'JUNPUBLISHED')), 'value', 'text', $this->state->get('filter.published'), true));
         JHtmlSidebar::addFilter(JText::_('COM_DJCLASSIFIEDS_SELECT_ACTIVE'), 'filter_active', JHtml::_('select.options', array(JHtml::_('select.option', '1', 'COM_DJCLASSIFIEDS_ACTIVE'), JHtml::_('select.option', '0', 'COM_DJCLASSIFIEDS_HIDE')), 'value', 'text', $this->state->get('filter.active'), true));
         $this->sidebar = JHtmlSidebar::render();
     }
     parent::display($tpl);
 }
开发者ID:kidaa30,项目名称:lojinha,代码行数:34,代码来源:view.html.php

示例12: display

 /**
  * Display the Message templates view
  *
  * @param   string  $tpl  The name of the template file to parse; automatically searches through the template paths.
  *
  * @return  void
  */
 function display($tpl = null)
 {
     // Get data from the model
     $this->items = $this->get('Items');
     $this->pagination = $this->get('Pagination');
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode('<br />', $errors));
         return false;
     }
     // Add menu helper file
     require_once JPATH_COMPONENT . '/helpers/menu.php';
     // Add sidebar
     MenuHelper::addSubmenu('messagetemplates');
     // Load message type model
     $model = JModelLegacy::getInstance('messagetype', 'IssnregistryModel');
     // Load message types
     $types = $model->getMessageTypesHash();
     // Pass $types to the layout
     $this->assignRef('types', $types);
     // Set the toolbar
     $this->addToolBar();
     // Render the sidebar
     $this->sidebar = JHtmlSidebar::render();
     // Display the template
     parent::display($tpl);
 }
开发者ID:petkivim,项目名称:id-registry,代码行数:34,代码来源:view.html.php

示例13: addToolbar

 protected function addToolbar()
 {
     $state = $this->get('State');
     JToolBarHelper::title(JText::_('COM_XMAP_SITEMAPS_TITLE'), 'list');
     $canDo = JHelperContent::getActions('com_xmap', 'sitemap');
     JToolBarHelper::addNew('sitemap.add');
     JToolbarHelper::editList('sitemap.edit');
     if ($canDo->get('core.edit.state')) {
         JToolbarHelper::publish('sitemaps.publish', 'JTOOLBAR_PUBLISH', true);
         JToolbarHelper::unpublish('sitemaps.unpublish', 'JTOOLBAR_UNPUBLISH', true);
     }
     if ($state->get('filter.state') == -2 && $canDo->get('core.delete')) {
         JToolbarHelper::deleteList('', 'sitemaps.delete', 'JTOOLBAR_EMPTY_TRASH');
     } elseif ($canDo->get('core.edit.state')) {
         JToolbarHelper::trash('sitemaps.trash');
     }
     if ($canDo->get('core.manage')) {
         JToolbarHelper::custom('sitemaps.ping', 'heart', 'heart', JText::_('COM_XMAP_TOOLBAR_PING'));
     }
     if (JFactory::getUser()->authorise('core.admin')) {
         JToolbarHelper::preferences('com_xmap');
     }
     if (JHelperContent::getActions('com_plugins')->get('core.edit.state')) {
         JToolbarHelper::custom('sitemaps.plugins', 'power-cord', 'power-cord', JText::_('COM_XMAP_TOOLBAR_PLUGINS'), false);
     }
     JHtmlSidebar::setAction('index.php?option=com_xmap&view=sitemaps');
     JHtmlSidebar::addFilter(JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_state', JHtml::_('select.options', XmapHelper::getStateOptions(), 'value', 'text', $this->state->get('filter.state')));
     JHtmlSidebar::addFilter(JText::_('JOPTION_SELECT_ACCESS'), 'filter_access', JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')));
     $this->sidebar = JHtmlSidebar::render();
 }
开发者ID:b2un0,项目名称:joomla-component-mapx,代码行数:30,代码来源:view.html.php

示例14: display

 function display($cachable = false, $urlparams = false)
 {
     $jshopConfig = JSFactory::getConfig();
     $mainframe = JFactory::getApplication();
     $context = "jshoping.list.admin.currencies";
     $filter_order = $mainframe->getUserStateFromRequest($context . 'filter_order', 'filter_order', "currency_ordering", 'cmd');
     $filter_order_Dir = $mainframe->getUserStateFromRequest($context . 'filter_order_Dir', 'filter_order_Dir', "asc", 'cmd');
     $current_currency = JSFactory::getTable('currency', 'jshop');
     $current_currency->load($jshopConfig->mainCurrency);
     if ($current_currency->currency_value != 1) {
         JError::raiseWarning("", _JSHOP_ERROR_MAIN_CURRENCY_VALUE);
     }
     $currencies = JSFactory::getModel("currencies");
     $rows = $currencies->getAllCurrencies(0, $filter_order, $filter_order_Dir);
     $view = $this->getView("currencies", 'html');
     $view->setLayout("list");
     $view->assign('rows', $rows);
     $view->assign('config', $jshopConfig);
     $view->assign('filter_order', $filter_order);
     $view->assign('filter_order_Dir', $filter_order_Dir);
     $view->sidebar = JHtmlSidebar::render();
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeDisplayCourencies', array(&$view));
     $view->displayList();
 }
开发者ID:JexyRu,项目名称:jshop-updates,代码行数:25,代码来源:currencies.php

示例15: addSidebar

 /**
  * Add a menu on the sidebar of page
  */
 protected function addSidebar()
 {
     JHtmlSidebar::setAction('index.php?option=' . $this->option . '&view=' . $this->getName());
     $txnStatesOptions = array(JHtml::_("select.option", 1, JText::_("COM_CROWDFUNDINGDATA_COMPLETED")), JHtml::_("select.option", 0, JText::_("COM_CROWDFUNDINGDATA_NOT_COMPLETED")));
     JHtmlSidebar::addFilter(JText::_('JOPTION_SELECT_PUBLISHED'), 'filter_transaction_state', JHtml::_('select.options', $txnStatesOptions, 'value', 'text', $this->state->get('filter.transaction_state'), true));
     $this->sidebar = JHtmlSidebar::render();
 }
开发者ID:pashakiz,项目名称:crowdf,代码行数:10,代码来源:view.html.php


注:本文中的JHtmlSidebar类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。