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


PHP JVersion::isCompatible方法代码示例

本文整理汇总了PHP中JVersion::isCompatible方法的典型用法代码示例。如果您正苦于以下问题:PHP JVersion::isCompatible方法的具体用法?PHP JVersion::isCompatible怎么用?PHP JVersion::isCompatible使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JVersion的用法示例。


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

示例1: delete

 public function delete()
 {
     // Check for request forgeries
     JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
     // Get items to remove from the request.
     $cid = JFactory::getApplication()->input->get('cid', array(), 'array');
     if (!is_array($cid) || count($cid) < 1) {
         JLog::add(JText::_($this->text_prefix . '_NO_ITEM_SELECTED'), JLog::WARNING, 'jerror');
     } else {
         // Get the model.
         $model = $this->getModel();
         // Make sure the item ids are integers
         jimport('joomla.utilities.arrayhelper');
         JArrayHelper::toInteger($cid);
         // Remove the items.
         if ($model->delete($cid)) {
             $this->setMessage(JText::plural($this->text_prefix . '_N_ITEMS_DELETED', count($cid)));
         } else {
             $this->setMessage($model->getError());
         }
     }
     $version = new JVersion();
     if ($version->isCompatible('3.0')) {
         // Invoke the postDelete method to allow for the child class to access the model.
         $this->postDeleteHook($model, $cid);
     }
     $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list, false));
 }
开发者ID:AndreKoepke,项目名称:Einsatzkomponente,代码行数:28,代码来源:alarmierungsarten.php

示例2: __construct

 public function __construct(&$subject, $config = array())
 {
     parent::__construct($subject, $config);
     $jversion = new JVersion();
     if ($jversion->isCompatible('2.5') && !$jversion->isCompatible('3.0')) {
         $this->loadLanguage();
     }
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:8,代码来源:rsfprecaptchav2.php

示例3: install

 public function install($adapter)
 {
     $version = new JVersion();
     $db = JFactory::getDbo();
     $module = JTable::getInstance('module');
     if ($module->load(array('module' => 'mod_cblogin', 'position' => '')) || !$module->load(array('module' => 'mod_cblogin'))) {
         $module->set('title', 'CB Login');
         $module->set('ordering', '1');
         $module->set('position', 'position-7');
         $module->set('published', '1');
         $module->set('module', 'mod_cblogin');
         $module->set('access', '1');
         $module->set('showtitle', '1');
         if ($version->isCompatible('3.0')) {
             $module->set('params', '{"show_buttons_icons":"0","https_post":"0","cb_plugins":"1","pretext":"","posttext":"","login":"","name_label":"5","name_length":"14","pass_label":"5","pass_length":"14","key_label":"5","key_length":"14","remember_enabled":"1","show_lostpass":"1","show_newaccount":"1","login_message":"0","logoutpretext":"","logoutposttext":"","logout":"index.php","greeting":"1","show_avatar":"1","text_show_profile":"","icon_show_profile":"0","text_edit_profile":"","icon_edit_profile":"0","show_pms":"0","show_pms_icon":"0","show_connection_notifications":"0","show_connection_notifications_icon":"0","logout_message":"0","layout":"_:bootstrap","moduleclass_sfx":"","cache":"0","module_tag":"div","bootstrap_size":"0","header_tag":"h3","header_class":"","style":"0"}');
         } else {
             $module->set('params', '{"show_buttons_icons":"0","https_post":"0","cb_plugins":"1","pretext":"","posttext":"","login":"","name_label":"1","name_length":"14","pass_label":"1","pass_length":"14","key_label":"1","key_length":"14","remember_enabled":"1","show_lostpass":"1","show_newaccount":"1","login_message":"0","logoutpretext":"","logoutposttext":"","logout":"index.php","greeting":"1","show_avatar":"1","text_show_profile":"","icon_show_profile":"0","text_edit_profile":"","icon_edit_profile":"0","show_pms":"0","show_pms_icon":"0","show_connection_notifications":"0","show_connection_notifications_icon":"0","logout_message":"0","layout":"_:default","moduleclass_sfx":"","cache":"0"}');
         }
         $module->set('client_id', '0');
         $module->set('language', '*');
         if ($module->store()) {
             $moduleId = $module->get('id');
             if ($moduleId) {
                 $db->setQuery('INSERT IGNORE INTO `#__modules_menu` ( `moduleid`, `menuid` ) VALUES ( ' . (int) $moduleId . ', 0 )');
                 try {
                     $db->execute();
                 } catch (RuntimeException $e) {
                 }
             }
         }
     }
 }
开发者ID:bobozhangshao,项目名称:HeartCare,代码行数:32,代码来源:script.mod_cblogin.php

示例4: preflight

 public function preflight($type, $parent)
 {
     if ($type != 'uninstall') {
         $app = JFactory::getApplication();
         if (!file_exists(JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/rsform.php')) {
             $app->enqueueMessage('Please install the RSForm! Pro component before continuing.', 'error');
             return false;
         }
         if (!file_exists(JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/version.php')) {
             $app->enqueueMessage('Please upgrade RSForm! Pro to at least R45 before continuing!', 'error');
             return false;
         }
         $jversion = new JVersion();
         if (!$jversion->isCompatible('2.5.5')) {
             $app->enqueueMessage('Please upgrade to at least Joomla! 2.5.5 before continuing!', 'error');
             return false;
         }
         if (file_exists(JPATH_SITE . '/plugins/system/rsfppaypal/rsfppaypal.xml')) {
             $xml = file_get_contents(JPATH_SITE . '/plugins/system/rsfppaypal/rsfppaypal.xml');
             if (strpos($xml, '<extension') === false) {
                 $this->migrate = true;
             }
         }
     }
     return true;
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:26,代码来源:script.php

示例5: display

 /**
  * Display the view
  */
 public function display($tpl = null)
 {
     require_once JPATH_SITE . '/administrator/components/com_einsatzkomponente/helpers/einsatzkomponente.php';
     // Helper-class laden
     $this->state = $this->get('State');
     $this->item = $this->get('Item');
     $this->form = $this->get('Form');
     $this->gmap_config = EinsatzkomponenteHelper::load_gmap_config();
     // GMap-Config aus helper laden
     $document = JFactory::getDocument();
     // Import Jquery
     $version = new JVersion();
     if ($version->isCompatible('3.0')) {
     } else {
         $document->addScript('../components/com_einsatzkomponente/assets/jquery/jquery1.9.1.js');
     }
     // prüfen ob jquery geladen wurde
     echo "<script type=\"text/javascript\">\n\t\tif(typeof jQuery == \"function\")\n\t\telse\n\t\t  alert(\"jQuery nicht geladen\");\n\t\t</script>";
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         throw new Exception(implode("\n", $errors));
     }
     // Load JQuery Framework
     //JHtml::_('jquery.framework');   // added_130207
     $this->addToolbar();
     parent::display($tpl);
 }
开发者ID:boecki91,项目名称:Einsatzkomponente,代码行数:30,代码来源:view.html.php

示例6: getCategoryData

 /**
  * get all events_categories to use category color
  * @return  object
  */
 function getCategoryData()
 {
     static $cats;
     if (!isset($cats)) {
         $db =& JFactory::getDBO();
         if (JVersion::isCompatible("1.6.0")) {
             $sql = "SELECT c.* FROM #__categories as c WHERE extension='" . JEV_COM_COMPONENT . "' order by c.lft asc";
             $db->setQuery($sql);
             $cats = $db->loadObjectList('id');
             foreach ($cats as &$cat) {
                 $cat->name = $cat->title;
                 $params = new JParameter($cat->params);
                 $cat->color = $params->get("catcolour", "");
                 $cat->overlaps = $params->get("overlaps", 0);
             }
             unset($cat);
         } else {
             $sql = "SELECT c.*, e.color FROM #__jevents_categories AS e LEFT JOIN #__categories as c ON c.id=e.id";
             $db->setQuery($sql);
             $cats = $db->loadObjectList('id');
         }
         $dispatcher =& JDispatcher::getInstance();
         $dispatcher->trigger('onGetCategoryData', array(&$cats));
     }
     $dispatcher =& JDispatcher::getInstance();
     $dispatcher->trigger('onGetAccessibleCategories', array(&$cats));
     return $cats;
 }
开发者ID:madseller,项目名称:coperio,代码行数:32,代码来源:commonfunctions.php

示例7: fetchElement

 function fetchElement($name, $value, &$node, $control_name)
 {
     // Must load admin language files
     $lang =& JFactory::getLanguage();
     $lang->load("com_jevents", JPATH_ADMINISTRATOR);
     // TODO 1.6 ACL VERSION OF THIS
     if (JVersion::isCompatible("1.6.0")) {
         return "";
     }
     $acl =& JFactory::getACL();
     $gtree = $acl->get_group_children_tree(null, 'USERS', false);
     foreach ($gtree as &$item) {
         if ($item->value > 25) {
             $item->disable = true;
         }
     }
     unset($item);
     $ctrl = $control_name . '[' . $name . ']';
     $attribs = ' ';
     if ($v = $node->attributes('size')) {
         $attribs .= 'size="' . $v . '"';
     }
     if ($v = $node->attributes('class')) {
         $attribs .= 'class="' . $v . '"';
     } else {
         $attribs .= 'class="inputbox"';
     }
     if ($m = $node->attributes('multiple')) {
         $attribs .= 'multiple="multiple"';
         $ctrl .= '[]';
         //$value		= implode( '|', )
     }
     //array_unshift( $editors, JHTML::_('select.option',  '', '- '. JText::_( 'SELECT_EDITOR' ) .' -' ) );
     return JHTML::_('select.genericlist', $gtree, $ctrl, $attribs, 'value', 'text', $value, $control_name . $name);
 }
开发者ID:andreassetiawanhartanto,项目名称:PDKKI,代码行数:35,代码来源:jevusergroup.php

示例8: load

 public static function load()
 {
     if (self::$loaded) {
         return;
     }
     self::$loaded = true;
     include_once JPATH_ROOT . '/administrator/components/com_eventgallery/version.php';
     $document = JFactory::getDocument();
     //JHtml::_('behavior.framework', true);
     JHtml::_('behavior.formvalidation');
     $params = JComponentHelper::getParams('com_eventgallery');
     $doDebug = $params->get('debug', 0) == 1;
     $doManualDebug = JRequest::getString('debug', '') == 'true';
     $CSSs = array();
     $JSs = array();
     if (version_compare(JVERSION, '3.0', 'gt')) {
         JHtml::_('jquery.framework');
     } else {
         $JSs[] = 'common/js/jquery/jquery.min.js';
         $JSs[] = 'common/js/jquery/jquery-migrate-1.2.1.min.js';
     }
     $JSs[] = 'common/js/jquery/namespace.js';
     // load script and styles in debug mode or compressed
     if ($doDebug || $doManualDebug) {
         $CSSs[] = 'frontend/css/eventgallery.css';
         $CSSs[] = 'frontend/css/colorbox.css';
         $joomlaVersion = new JVersion();
         if (!$joomlaVersion->isCompatible('3.0')) {
             $CSSs[] = 'frontend/css/legacy.css';
         }
         $JSs = array_merge($JSs, array('frontend/js/EventgalleryTools.js', 'frontend/js/EventgalleryTouch.js', 'frontend/js/jquery.colorbox.js', 'frontend/js/jquery.colorbox.init.js', 'frontend/js/EventgallerySizeCalculator.js', 'frontend/js/EventgalleryImage.js', 'frontend/js/EventgalleryRow.js', 'frontend/js/EventgalleryImageList.js', 'frontend/js/EventgalleryEventsList.js', 'frontend/js/EventgalleryEventsTiles.js', 'frontend/js/EventgalleryGridCollection.js', 'frontend/js/EventgalleryTilesCollection.js', 'frontend/js/EventgalleryCart.js', 'frontend/js/EventgallerySocialShareButton.js', 'frontend/js/EventgalleryJSGallery2.js', 'frontend/js/EventgalleryLazyload.js', 'frontend/js/EventgalleryBehavior.js'));
     } else {
         $joomlaVersion = new JVersion();
         if (!$joomlaVersion->isCompatible('3.0')) {
             $CSSs[] = 'frontend/css/eg-l-compressed.css';
         } else {
             $CSSs[] = 'frontend/css/eg-compressed.css';
         }
         $JSs[] = 'frontend/js/eg-compressed.js';
     }
     foreach ($CSSs as $css) {
         $script = JUri::root(true) . '/media/com_eventgallery/' . $css . '?v=' . EVENTGALLERY_VERSION;
         $document->addStyleSheet($script);
     }
     foreach ($JSs as $js) {
         $script = JUri::root(true) . '/media/com_eventgallery/' . $js . '?v=' . EVENTGALLERY_VERSION;
         $document->addScript($script);
     }
     /*
      * Let's add a global configuration object for the color box slideshow.
      */
     $slideshowConfiguration = array();
     $slideshowConfiguration['slideshow'] = $params->get('use_lightbox_slideshow', 0) == 1 ? true : false;
     $slideshowConfiguration['slideshowAuto'] = $params->get('use_lightbox_slideshow_autoplay', 0) == 1 ? true : false;
     $slideshowConfiguration['slideshowSpeed'] = $params->get('lightbox_slideshow_speed', 3000);
     $slideshowConfiguration['slideshowStart'] = JText::_('COM_EVENTGALLERY_LIGHTBOX_SLIDESHOW_START');
     $slideshowConfiguration['slideshowStop'] = JText::_('COM_EVENTGALLERY_LIGHTBOX_SLIDESHOW_STOP');
     $slideshowConfiguration['slideshowRightClickProtection'] = $params->get('lightbox_prevent_right_click', 0) == 1 ? true : false;
     $document->addScriptDeclaration("EventGallerySlideShowConfiguration=" . json_encode($slideshowConfiguration) . ";");
 }
开发者ID:sansandeep143,项目名称:av,代码行数:60,代码来源:medialoader.php

示例9: preflight

 /**
  * Function called before module installation/update/removal procedure commences
  *
  * @param   string                   $type    The type of change (install, update or discover_install
  *                                            , not uninstall)
  * @param   JInstallerAdapterModule  $parent  The class calling this method
  *
  * @return  void
  *
  * @since  1.3.3
  */
 public function preflight($type, $parent)
 {
     $version = new JVersion();
     if (!$version->isCompatible('3.2.0')) {
         JFactory::getApplication()->enqueueMessage(JText::_('JJ_SOCIAL_SLIDER_JOOMLA_VERSION_OUTDATED'));
         return false;
     }
     // Module manifest file version
     $this->release = $parent->get("manifest")->version;
     // Abort if the module being installed is not newer than the currently installed version
     if ($type == 'Update') {
         $manifest = $this->getItemArray('manifest_cache', '#__extensions', 'element', JFactory::getDbo()->quote($this->extension));
         $oldRelease = $manifest['version'];
         if (version_compare($oldRelease, $this->release, '<')) {
             // Update to reflect colour form field change in 1.3.2
             if (version_compare($oldRelease, '1.3.2', '<=')) {
                 $this->update132();
             }
             // Update to reflect move from assets subfolder to media folder
             if (version_compare($oldRelease, '1.4.0', '<=')) {
                 $this->update140();
             }
         }
     }
 }
开发者ID:vstorm83,项目名称:propertease,代码行数:36,代码来源:script.php

示例10: load

 public static function load()
 {
     if (self::$loaded) {
         return;
     }
     self::$loaded = true;
     include_once JPATH_ROOT . '/administrator/components/com_eventgallery/version.php';
     $document = JFactory::getDocument();
     JHtml::_('behavior.formvalidation');
     $CSSs = array();
     $JSs = array();
     if (version_compare(JVERSION, '3.0', 'gt')) {
         JHtml::_('jquery.framework');
     } else {
         $JSs[] = 'common/js/jquery/jquery.min.js';
         $JSs[] = 'common/js/jquery/jquery-migrate-1.2.1.min.js';
     }
     $JSs[] = 'common/js/jquery/namespace.js';
     $CSSs[] = 'backend/css/eventgallery.css';
     $joomlaVersion = new JVersion();
     if (!$joomlaVersion->isCompatible('3.0')) {
         $CSSs[] = 'backend/css/legacy.css';
     }
     $JSs = array_merge($JSs, array());
     foreach ($CSSs as $css) {
         $script = JURI::root() . 'media/com_eventgallery/' . $css . '?v=' . EVENTGALLERY_VERSION;
         $document->addStyleSheet($script);
     }
     foreach ($JSs as $js) {
         $script = JURI::root() . 'media/com_eventgallery/' . $js . '?v=' . EVENTGALLERY_VERSION;
         $document->addScript($script);
     }
 }
开发者ID:sansandeep143,项目名称:av,代码行数:33,代码来源:backendmedialoader.php

示例11: DefaultViewHelperFooter

function DefaultViewHelperFooter($view)
{
    if (JVersion::isCompatible("1.6.0")) {
        return $view->_footer16();
    }
    if (JRequest::getInt('pop', 0)) {
        ?>
	<div class="ev_noprint"><p align="center">
	<a href="#close" onclick="if (window.parent==window){self.close();} else try {window.parent.SqueezeBox.close(); return false;} catch(e) {self.close();return false;}" title="<?php 
        echo JText::_('JEV_CLOSE');
        ?>
"><?php 
        echo JText::_('JEV_CLOSE');
        ?>
</a>
	</p></div>
<?php 
    }
    $view->loadHelper("JevViewCopyright");
    JevViewCopyright();
    ?>
	</td>
	</tr>
</table>

<?php 
    $dispatcher =& JDispatcher::getInstance();
    $dispatcher->trigger('onJEventsFooter');
    $task = JRequest::getString("jevtask");
    $view->loadModules("jevpostjevents");
    $view->loadModules("jevpostjevents_" . $task);
}
开发者ID:madseller,项目名称:coperio,代码行数:32,代码来源:defaultviewhelperfooter.php

示例12: install

 public function install($adapter)
 {
     $version = new JVersion();
     $db = JFactory::getDbo();
     $module = JTable::getInstance('module');
     if ($module->load(array('module' => 'mod_comprofileronline', 'position' => '')) || !$module->load(array('module' => 'mod_comprofileronline'))) {
         $module->set('title', 'CB Online');
         $module->set('ordering', '3');
         $module->set('position', 'position-7');
         $module->set('published', '1');
         $module->set('module', 'mod_comprofileronline');
         $module->set('access', '1');
         $module->set('showtitle', '1');
         if ($version->isCompatible('3.0')) {
             $module->set('params', '{"pretext":"","posttext":"","cb_plugins":"0","layout":"_:default","moduleclass_sfx":"","cache":"0","module_tag":"div","bootstrap_size":"0","header_tag":"h3","header_class":"","style":"0"}');
         } else {
             $module->set('params', '{"pretext":"","posttext":"","cb_plugins":"0","layout":"_:default","moduleclass_sfx":"","cache":"0"}');
         }
         $module->set('client_id', '0');
         $module->set('language', '*');
         if ($module->store()) {
             $moduleId = $module->get('id');
             if ($moduleId) {
                 $db->setQuery('INSERT IGNORE INTO `#__modules_menu` ( `moduleid`, `menuid` ) VALUES ( ' . (int) $moduleId . ', 0 )');
                 try {
                     $db->execute();
                 } catch (RuntimeException $e) {
                 }
             }
         }
     }
 }
开发者ID:bobozhangshao,项目名称:HeartCare,代码行数:32,代码来源:script.mod_comprofileronline.php

示例13: preflight

 public function preflight($type, $parent)
 {
     if ($type == 'uninstall') {
         return true;
     }
     try {
         $source = $parent->getParent()->getPath('source');
         $jversion = new JVersion();
         if (!$jversion->isCompatible('2.5.5')) {
             throw new Exception('Please upgrade to at least Joomla! 2.5.5 before continuing!');
         }
         if (!file_exists(JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/rsform.php')) {
             throw new Exception('Please install the RSForm! Pro component before continuing.');
         }
         if (!file_exists(JPATH_ADMINISTRATOR . '/components/com_rsform/helpers/version.php')) {
             throw new Exception('Please upgrade RSForm! Pro to at least R45 before continuing!');
         }
         // Copy needed files
         $this->copyFiles($source);
         // Update? Run our SQL file
         if ($type == 'update') {
             $this->runSQL($source, 'install');
         }
     } catch (Exception $e) {
         JFactory::getApplication()->enqueueMessage($e->getMessage(), 'error');
         return false;
     }
     return true;
 }
开发者ID:knigherrant,项目名称:decopatio,代码行数:29,代码来源:script.php

示例14: onGetIcons

 public function onGetIcons($context)
 {
     @(include_once JPATH_ADMINISTRATOR . '/components/com_jce/models/model.php');
     // check for class to prevent fatal errors
     if (!class_exists('WFModel')) {
         return;
     }
     if ($context != $this->params->get('context', 'mod_quickicon') || WFModel::authorize('browser') === false) {
         return;
     }
     $document = JFactory::getDocument();
     $language = JFactory::getLanguage();
     $language->load('com_jce', JPATH_ADMINISTRATOR);
     $width = $this->params->get('width', 800);
     $height = $this->params->get('height', 600);
     $filter = $this->params->get('filter', '');
     JHtml::_('behavior.modal');
     $document->addScriptDeclaration("\n\t\twindow.addEvent('domready', function() {\n\t\t\tSqueezeBox.assign(\$\$('#plg_quickicon_jcefilebrowser a'), {\n\t\t\t\thandler: 'iframe', size: {x: " . $width . ", y: " . $height . "}\n\t\t\t});\n\t\t});");
     require_once JPATH_ADMINISTRATOR . '/components/com_jce/helpers/browser.php';
     $version = new JVersion();
     $icon = $version->isCompatible('3.0') ? 'pictures' : 'header/icon-48-media.png';
     $link = WFBrowserHelper::getBrowserLink('', $filter);
     if ($link) {
         return array(array('link' => $link, 'image' => $icon, 'icon' => 'pictures', 'access' => array('jce.browser', 'com_jce'), 'text' => JText::_('WF_QUICKICON_BROWSER'), 'id' => 'plg_quickicon_jcefilebrowser'));
     }
     return array();
 }
开发者ID:lyrasoft,项目名称:lyrasoft.github.io,代码行数:27,代码来源:jcefilebrowser.php

示例15: getInput

 /**
  * Method to get the field input markup for a generic list.
  * Use the multiple attribute to enable multiselect.
  *
  * @return  string  The field input markup.
  *
  * @since   11.1
  */
 protected function getInput()
 {
     $document = JFactory::getDocument();
     $jsPath = JURI::root(true) . '/modules/mod_currentdatetime/js';
     $joomlaVersion = new JVersion();
     if ($joomlaVersion->isCompatible('3')) {
         JHtml::_('jquery.ui', array('core', 'sortable'));
     } else {
         $document->addStyleSheet($jsPath . '/25/css/chosen.min.css');
         $document->addScript($jsPath . '/25/jquery.min.js');
         $document->addScript($jsPath . '/25/jquery-noconflict.js');
         $document->addScript($jsPath . '/25/chosen.jquery.min.js');
         $document->addScript($jsPath . '/25/jquery.ui.core.min.js');
         $document->addScript($jsPath . '/25/jquery.ui.widget.min.js');
         $document->addScript($jsPath . '/25/jquery.ui.mouse.min.js');
         $document->addScript($jsPath . '/25/jquery.ui.sortable.min.js');
     }
     $document->addScript($jsPath . '/jquery-chosen-sortable.min.js');
     $script = 'jQuery(function(){jQuery(".chzn-sortable").chosen().chosenSortable();});';
     $document->addScriptDeclaration($script);
     if (!is_array($this->value)) {
         $this->value = explode(',', $this->value);
     }
     $html = parent::getInput();
     return $html;
 }
开发者ID:abdullah929,项目名称:bulletin,代码行数:34,代码来源:items.php


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