Ejemplo n.º 1
0
 /**
  * Include files to document
  * @param array $files
  * @param       $type
  */
 protected function _include(array $files, $type)
 {
     static $includedFiles;
     if (!isset($includedFiles)) {
         $includedFiles = array();
     }
     if (count($files) && !$this->app->jbrequest->isAjax()) {
         foreach ($files as $file) {
             $isExternal = strpos($file, 'http') !== false;
             $filePath = $file;
             if (!$isExternal) {
                 $fullPath = $this->app->path->path($file);
                 $filePath = $this->app->path->url($file);
             }
             if ($filePath) {
                 if (!$isExternal) {
                     $filePath = $filePath . '?ver=' . date("Ymd", filemtime($fullPath));
                     $filePath = $this->_getRoot() . $this->app->path->relative($filePath);
                 }
                 if ($type == 'css') {
                     $this->_document->addStylesheet($filePath);
                 } elseif ($type == 'js') {
                     $this->_document->addScript($filePath);
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Register asset files for the template admin
  *
  * @return void
  */
 public function registerAssets()
 {
     // Load required asset files for Joomla 2.5
     if (version_compare($this->version->getShortVersion(), '3.0', '<')) {
         $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery/jquery-1.8.2.js');
         $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/bootstrap/css/bootstrap.min.css');
         $this->doc->addScript($this->baseAssetUrl . '/3rd-party/bootstrap/js/bootstrap.min.js');
     } elseif (version_compare($this->version->getShortVersion(), '3.2', '>=')) {
         $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery/jquery-1.8.2.js');
         $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/bootstrap/css/bootstrap.min.css');
         $this->doc->addScript($this->baseAssetUrl . '/3rd-party/bootstrap/js/bootstrap.min.js');
     }
     //$this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-ui/css/ui-bootstrap/jquery-ui-1.9.0.custom.css');
     //$this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-ui/js/jquery-ui-1.9.1.custom.min.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-ui/css/ui-bootstrap-1.10.0/jquery-ui-1.10.0.custom.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-ui/js/jquery-ui-1.10.4.custom.min.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-dynatree/skin/ui.dynatree.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-dynatree/jquery.dynatree.min.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-tipsy/tipsy.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-tipsy/jquery.tipsy.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/chosen/chosen.min.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/chosen/chosen.jquery.min.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/bxslider/jquery.bxslider.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/bxslider/jquery.bxslider.min.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/colorbox/colorbox.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/colorbox/jquery.colorbox-min.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/font-icomoon/css/icomoon.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-layout/jquery.layout.min.js');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-ck/jquery.ck.js');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-gui.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-admin.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-fonticomoon.css');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/media.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/sample-data.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/update.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/upgrade.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/quickstart.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/core.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/font.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/layout.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/maintenance.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/social-integration.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/validate.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/width-type.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/modal.js');
     $templateEdition = JSNTplHelper::getTemplateEdition($this->data->template);
     $jversion = new JVersion();
     if (version_compare($jversion->getShortVersion(), "3.0", ">=")) {
         $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-megamenu-backend.css');
         $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/megamenu/handle-settings.js');
         $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/megamenu/handle.js');
         $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/megamenu/layout.js');
         $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/megamenu/megamenu.js');
         $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/megamenu/placeholder.js');
     }
     $templateName = JText::_($this->data->template);
     $this->doc->addScriptDeclaration("!function (\$) {\n\t\t\t\t\"use strict\";\n\n\t\t\t\t\$(function () {\n\t\t\t\t\tnew \$.JSNTPLFrameworkCore({\n\t\t\t\t\t\ttemplate: '{$this->data->template}',\n\t\t\t\t\t\ttemplateName: '{$templateName}',\n\t\t\t\t\t\tedition: '{$templateEdition}',\n\t\t\t\t\t\tstyleId : '{$this->data->id}'\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}(jQuery);");
 }
Ejemplo n.º 3
0
 /**
  * Merging all css or js files (that already have been included via Joomla API)
  *     USE IT ON YOUR OWN RISK!!!
  * @param string $type
  * @param bool $isCompress
  * @return $this
  */
 public function merge($type = 'css', $isCompress = false)
 {
     $mergeFiles = array();
     $dataKey = $type == 'css' ? 'styleSheets' : 'scripts';
     if (method_exists($this->doc, 'getHeadData')) {
         $docData = $this->doc->getHeadData();
     }
     if (isset($docData) && !empty($docData[$dataKey])) {
         foreach ($docData[$dataKey] as $pathOrig => $attrs) {
             // don't get external files
             $path = str_replace($this->baseurl, '', $pathOrig);
             $path = preg_replace('#(\\?.*)$#', '', $path);
             if ($this->_isExternal($path)) {
                 continue;
             }
             if ($attrs['mime'] == 'text/css' && (!isset($attrs['media']) || strtolower($attrs['media']) == 'all') || $attrs['mime'] == 'text/javascript') {
                 $fullPath = JPath::clean(JPATH_ROOT . '/' . $path);
                 $fullPathFolder = JPath::clean($_SERVER['DOCUMENT_ROOT'] . '/' . $path);
                 $resPath = false;
                 if (JFile::exists($fullPath)) {
                     $resPath = $fullPath;
                 } else {
                     if (JFile::exists($fullPathFolder)) {
                         $resPath = $fullPathFolder;
                     }
                 }
                 if ($resPath) {
                     $mergeFiles[] = $resPath;
                     unset($docData[$dataKey][$pathOrig]);
                 }
             }
         }
     }
     if (count($mergeFiles)) {
         $processor = JBlankMinify::getProcessor($type, $this);
         if ($path = $processor->minify($mergeFiles, $isCompress)) {
             $this->setHeadData($dataKey, $docData);
             if ('css' == $type) {
                 $this->doc->addStylesheet($path, 'text/css');
             } else {
                 if ('js' == $type) {
                     $this->doc->addScript($path, "text/javascript", false, false);
                 }
             }
         }
     }
     return $this;
 }
Ejemplo n.º 4
0
 /**
  * @param $filename
  * @param string $prefix
  * @param bool $defer
  * @param bool $async
  * @return $this
  */
 public function js($filename, $prefix = '', $defer = false, $async = false)
 {
     if (is_array($filename)) {
         foreach ($filename as $file) {
             $this->js($file, $prefix, $defer, $async);
         }
     } else {
         if ($filename) {
             $prefix = !empty($prefix) ? $prefix . '_' : '';
             $path = JPath::clean($this->jsFull . '/' . $prefix . $filename);
             if ($mtime = $this->_checkFile($path)) {
                 $filePath = $this->js . '/' . $prefix . $filename . '?' . $mtime;
                 $this->doc->addScript($filePath, "text/javascript", $defer, $async);
             }
         }
     }
     return $this;
 }
 /**
  * Attach css, javascript files to document
  * @return void
  */
 private function _addAssets()
 {
     $this->_getDefaultStyles();
     $file = dirname(__FILE__) . '/assets/js/supports/' . $this->_defaultStyles['admin']->template . '.js';
     if (!is_file($file)) {
         return;
     }
     require_once JPATH_ADMINISTRATOR . '/components/com_poweradmin/helpers/poweradmin.php';
     $currentVersion = PoweradminHelper::getVersion();
     $config = $this->_getJSConfiguration();
     $language = $this->_getJSLanguage();
     $uri = JUri::root(true);
     $template = $this->_defaultStyles['admin']->template;
     $this->_document->addStyleSheet(JSN_FRAMEWORK_ASSETS . '/joomlashine/css/jsn-bootstrap.css');
     $this->_document->addStylesheet($uri . '/plugins/system/jsnpoweradmin/assets/css/adminbar.css?v=' . $currentVersion);
     $this->_document->addStylesheet($uri . '/plugins/system/jsnpoweradmin/assets/css/window.css?v=' . $currentVersion);
     $this->_document->addStylesheet($uri . '/plugins/system/jsnpoweradmin/assets/css/print.css?v=' . $currentVersion, 'text/css', 'print');
     if (in_array($template, array('minima', 'aplite'))) {
         $this->_document->addStylesheet($uri . '/plugins/system/jsnpoweradmin/assets/css/adminbar.menu.css?v=' . $currentVersion);
     }
     if ($template == 'hathor') {
         $this->_document->addStylesheet($uri . '/plugins/system/jsnpoweradmin/assets/css/adminbar.hathor.css?v=' . $currentVersion);
     }
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/jquery.noconflict.js?v=' . $currentVersion);
     if (file_exists('../media/system/js/mootools-core.js')) {
         $this->_document->addScript($uri . '/media/system/js/mootools-core.js');
         $this->_document->addScript($uri . '/media/system/js/core.js');
         $this->_document->addScript($uri . '/media/system/js/mootools-more.js');
         $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/mootool.conflict.js?v=' . $currentVersion);
     } else {
         JHtml::_('behavior.framework', true);
         $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/mootool.conflict.js?v=' . $currentVersion);
     }
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/mootools/mooml.js?v=' . $currentVersion);
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/scrollbar.js?v=' . $currentVersion);
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/window.js?v=' . $currentVersion);
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/supports/' . $template . '.js?v=' . $currentVersion);
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/adminbar.js?v=' . $currentVersion);
     $this->_document->addScript($uri . '/plugins/system/jsnpoweradmin/assets/js/history.js?v=' . $currentVersion);
     $this->_document->addScriptDeclaration("\n\t\t\tif (JoomlaShine === undefined) { var JoomlaShine = {}; }\n\t\t\tif (typeof(jQuery) !== 'undefined') { jQuery.noConflict(); }\n\n\t\t\tJoomlaShine.language = {$language};\n\t\t\twindow.addEvent('domready', function () {\n\t\t\t\tif(!document.getElementById('jsn-adminbar-wrapper')){\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\tnew JSNAdminBar({$config});\n\t\t\t\t\t\t\tnew JSNHistory();\n\t\t\t\t\t\t}, 500);\t\t\t\t\n\t\t\t\t\t}\n\t\t\t});\n\t\t");
 }
Ejemplo n.º 6
0
 /**
  * Register asset files for the template admin
  *
  * @return void
  */
 public function registerAssets()
 {
     // Specified asset files for joomla 2.5
     if (version_compare($this->version->getShortVersion(), '3.0', '<')) {
         $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/bootstrap/css/bootstrap.min.css');
         $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery/jquery-1.8.2.js');
         $this->doc->addScript($this->baseAssetUrl . '/3rd-party/bootstrap/js/bootstrap.min.js');
     }
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-ui/css/ui-bootstrap/jquery-ui-1.9.0.custom.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-dynatree/skin/ui.dynatree.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/jquery-tipsy/tipsy.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/font-icomoon/css/icomoon.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/3rd-party/chosen/chosen.min.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-gui.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-admin.css');
     $this->doc->addStyleSheet($this->baseAssetUrl . '/joomlashine/css/jsn-fonticomoon.css');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-ui/js/jquery-ui-1.9.1.custom.min.js');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-dynatree/jquery.dynatree.min.js');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-layout/jquery.layout.min.js');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-ck/jquery.ck.js');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/jquery-tipsy/jquery.tipsy.js');
     $this->doc->addScript($this->baseAssetUrl . '/3rd-party/chosen/chosen.jquery.min.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/media.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/sample-data.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/update.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/upgrade.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/quickstart.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/core.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/font.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/layout.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/maintenance.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/social-integration.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/validate.js');
     $this->doc->addScript($this->baseAssetUrl . '/joomlashine/js/width-type.js');
     $templateEdition = JSNTplHelper::getTemplateEdition($this->data->template);
     $templateName = JText::_($this->data->template);
     $this->doc->addScriptDeclaration("\n\t\t\t!function (\$) {\n\t\t\t\t\"use strict\";\n\n\t\t\t\t\$(function () {\n\t\t\t\t\tnew \$.JSNTPLFrameworkCore({\n\t\t\t\t\t\ttemplate: '{$this->data->template}',\n\t\t\t\t\t\ttemplateName: '{$templateName}',\n\t\t\t\t\t\tedition: '{$templateEdition}',\n\t\t\t\t\t\tstyleId : '{$this->data->id}'\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}(jQuery);\n\t\t");
 }
Ejemplo n.º 7
0
 /**
  * @param string $file
  *
  * @return void
  */
 public function addScript($file = '')
 {
     if (is_array($file)) {
         $this->addScripts($file);
         return;
     }
     $type = 'js';
     $query_string = '';
     if ($this->isAdmin()) {
         if (strpos(GANTRY_VERSION, 'project.version') === false) {
             $query_string = '?gantry_version=' . GANTRY_VERSION;
         }
     }
     // check to see if this is a full path file
     $dir = dirname($file);
     if ($dir != ".") {
         // For remote url just add the url
         if ($this->isUriExternal($file)) {
             $this->document->addScript($file);
             return;
         }
         // For local url path get the local path based on checks
         $url_path = $dir;
         $file_path = $this->convertToPath($file);
         $url_file_checks = $this->platform->getJSChecks($file_path, true);
         foreach ($url_file_checks as $url_file) {
             $full_path = realpath($url_file);
             if ($full_path !== false && file_exists($full_path)) {
                 $check_url_path = $url_path . '/' . basename($url_file);
                 if (!defined('GANTRY_FINALIZED')) {
                     $this->_scripts[$full_path] = $check_url_path . $query_string;
                 } else {
                     $this->document->addScript($check_url_path . $query_string);
                 }
                 break;
             }
         }
         return;
     }
     $out_files = array();
     //set up the check for template with plartform based dirs
     $template_check_p = $this->platform->getPlatformChecks($this->templatePath . '/js');
     $template_check_u = $this->platform->getPlatformChecks($this->templateUrl . '/js');
     $template_search_paths = array();
     for ($i = 0; $i < count($template_check_p); $i++) {
         $template_search_paths[$template_check_u[$i]] = $template_check_p[$i];
     }
     $paths = array($this->gantryUrl . '/' . $type => $this->gantryPath . '/' . $type);
     $paths = array_merge($template_search_paths, $paths);
     $checks = $this->platform->getJSChecks($file);
     foreach ($paths as $baseurl => $path) {
         $baseurl = rtrim($baseurl, '/');
         $path = rtrim($path, '/\\');
         if (file_exists($path) && is_dir($path)) {
             foreach ($checks as $check) {
                 $check_path = preg_replace("/\\?(.*)/", '', $path . '/' . $check);
                 $check_url_path = $baseurl . "/" . $check;
                 if (file_exists($check_path) && is_readable($check_path)) {
                     if (!defined('GANTRY_FINALIZED')) {
                         $this->_scripts[$check_path] = $check_url_path . $query_string;
                     } else {
                         $this->document->addScript($check_url_path . $query_string);
                     }
                     break 2;
                 }
             }
         }
     }
 }
Ejemplo n.º 8
0
 /**
  * {@inheritdoc}
  */
 public function jsFile($file)
 {
     $this->_doc->addScript($file);
 }