예제 #1
0
 /**
  * Function to get the list of Script models to be included
  * @param Vtiger_Request $request
  * @return <Array> - List of Vtiger_JsScript_Model instances
  */
 function getHeaderScripts(Vtiger_Request $request)
 {
     $headerScriptInstances = parent::getHeaderScripts($request);
     $headerScripts = Vtiger_Link_Model::getAllByType(Vtiger_Link::IGNORE_MODULE, array('HEADERSCRIPT'));
     foreach ($headerScripts as $headerType => $headerScripts) {
         foreach ($headerScripts as $headerScript) {
             if ($this->checkFileUriInRelocatedMouldesFolder($headerScript->linkurl)) {
                 $headerScriptInstances[] = Vtiger_JsScript_Model::getInstanceFromLinkObject($headerScript);
             }
         }
     }
     return $headerScriptInstances;
 }
예제 #2
0
 function checkAndConvertJsScripts($jsFileNames)
 {
     $fileExtension = 'js';
     $jsScriptInstances = [];
     foreach ($jsFileNames as $jsFileName) {
         $jsScript = new Vtiger_JsScript_Model();
         // external javascript source file handling
         if (strpos($jsFileName, 'http://') === 0 || strpos($jsFileName, 'https://') === 0) {
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $jsFileName);
             continue;
         }
         $completeFilePath = Vtiger_Loader::resolveNameToPath($jsFileName, $fileExtension);
         if (is_file($completeFilePath)) {
             if (strpos($jsFileName, '~') === 0) {
                 $filePath = ltrim(ltrim($jsFileName, '~'), '/');
             } else {
                 $filePath = str_replace('.', '/', $jsFileName) . '.' . $fileExtension;
             }
             $minFilePath = str_replace('.js', '.min.js', $filePath);
             if (Vtiger_Functions::getMinimizationOptions($fileExtension) && is_file(Vtiger_Loader::resolveNameToPath('~' . $minFilePath, $fileExtension))) {
                 $filePath = $minFilePath;
             }
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $filePath);
             continue;
         } else {
             $preLayoutPath = '';
             if (strpos($jsFileName, '~') === 0) {
                 $jsFile = ltrim(ltrim($jsFileName, '~'), '/');
                 $preLayoutPath = '~';
             } else {
                 $jsFile = $jsFileName;
             }
             // Checking if file exists in selected layout
             $layoutPath = 'layouts' . '/' . Yeti_Layout::getActiveLayout();
             $fallBackFilePath = Vtiger_Loader::resolveNameToPath($preLayoutPath . $layoutPath . '/' . $jsFile, $fileExtension);
             if (is_file($fallBackFilePath)) {
                 $filePath = $jsFile;
                 if (empty($preLayoutPath)) {
                     $filePath = str_replace('.', '/', $filePath) . '.js';
                 }
                 $minFilePath = str_replace('.js', '.min.js', $filePath);
                 if (Vtiger_Functions::getMinimizationOptions($fileExtension) && is_file(Vtiger_Loader::resolveNameToPath('~' . $layoutPath . '/' . $minFilePath, $fileExtension))) {
                     $filePath = $minFilePath;
                 }
                 $jsScriptInstances[$jsFileName] = $jsScript->set('src', $layoutPath . '/' . $filePath);
                 continue;
             }
             // Checking if file exists in default layout
             $layoutPath = 'layouts' . '/' . Vtiger_Viewer::getDefaultLayoutName();
             $fallBackFilePath = Vtiger_Loader::resolveNameToPath($preLayoutPath . $layoutPath . '/' . $jsFile, $fileExtension);
             if (is_file($fallBackFilePath)) {
                 $filePath = $jsFile;
                 if (empty($preLayoutPath)) {
                     $filePath = str_replace('.', '/', $jsFile) . '.js';
                 }
                 $minFilePath = str_replace('.js', '.min.js', $filePath);
                 if (Vtiger_Functions::getMinimizationOptions($fileExtension) && is_file(Vtiger_Loader::resolveNameToPath('~' . $layoutPath . '/' . $minFilePath, $fileExtension))) {
                     $filePath = $minFilePath;
                 }
                 $jsScriptInstances[$jsFileName] = $jsScript->set('src', $layoutPath . '/' . $filePath);
                 continue;
             }
         }
     }
     return $jsScriptInstances;
 }
예제 #3
0
 function checkAndConvertJsScripts($jsFileNames)
 {
     $fileExtension = 'js';
     $jsScriptInstances = array();
     foreach ($jsFileNames as $jsFileName) {
         // TODO Handle absolute inclusions (~/...) like in checkAndConvertCssStyles
         $jsScript = new Vtiger_JsScript_Model();
         // external javascript source file handling
         if (strpos($jsFileName, 'http://') === 0 || strpos($jsFileName, 'https://') === 0) {
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $jsFileName);
             continue;
         }
         $completeFilePath = Vtiger_Loader::resolveNameToPath($jsFileName, $fileExtension);
         if (file_exists($completeFilePath)) {
             if (strpos($jsFileName, '~') === 0) {
                 $filePath = ltrim(ltrim($jsFileName, '~'), '/');
                 // if ~~ (reference is outside vtiger6 folder)
                 if (substr_count($jsFileName, "~") == 2) {
                     $filePath = "../" . $filePath;
                 }
             } else {
                 $filePath = str_replace('.', '/', $jsFileName) . '.' . $fileExtension;
             }
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $filePath);
         } else {
             $fallBackFilePath = Vtiger_Loader::resolveNameToPath(Vtiger_JavaScript::getBaseJavaScriptPath() . '/' . $jsFileName, 'js');
             if (file_exists($fallBackFilePath)) {
                 $filePath = str_replace('.', '/', $jsFileName) . '.js';
                 $jsScriptInstances[$jsFileName] = $jsScript->set('src', Vtiger_JavaScript::getFilePath($filePath));
             }
         }
     }
     return $jsScriptInstances;
 }
예제 #4
0
 function checkAndConvertJsScripts($jsFileNames)
 {
     $fileExtension = 'js';
     $jsScriptInstances = array();
     foreach ($jsFileNames as $jsFileName) {
         // TODO Handle absolute inclusions (...) like in checkAndConvertCssStyles
         $jsScript = new Vtiger_JsScript_Model();
         // external javascript source file handling
         if (strpos($jsFileName, 'http://') === 0 || strpos($jsFileName, 'https://') === 0) {
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $jsFileName);
             continue;
         }
         $completeFilePath = Vtiger_Loader::resolveNameToPath($jsFileName, $fileExtension);
         $minFilePath = str_replace('.js', '.min.js', $completeFilePath);
         if (Vtiger_Functions::getMinimizationOptions($fileExtension) && file_exists($minFilePath)) {
             $minjsFileName = str_replace('.js', '.min.js', $jsFileName);
             if (strpos($minjsFileName, '~') === 0) {
                 $minjsFileName = ltrim(ltrim($minjsFileName, '~'), '/');
             } else {
                 $minjsFileName = str_replace('.', '/', $jsFileName) . '.' . $fileExtension;
             }
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $minjsFileName);
         } else {
             if (file_exists($completeFilePath)) {
                 if (strpos($jsFileName, '~') === 0) {
                     $filePath = ltrim(ltrim($jsFileName, '~'), '/');
                 } else {
                     $filePath = str_replace('.', '/', $jsFileName) . '.' . $fileExtension;
                 }
                 $jsScriptInstances[$jsFileName] = $jsScript->set('src', $filePath);
             } else {
                 if (Vtiger_Functions::getMinimizationOptions($fileExtension)) {
                     $fallBackFilePath = Vtiger_Loader::resolveNameToPath(Vtiger_JavaScript::getBaseJavaScriptPath() . '/' . $jsFileName . $min, 'js');
                     if (file_exists($fallBackFilePath)) {
                         $filePath = str_replace('.', '/', $jsFileName) . $min . '.js';
                         $jsScriptInstances[$jsFileName] = $jsScript->set('src', Vtiger_JavaScript::getFilePath($filePath));
                     }
                 }
                 $fallBackFilePath = Vtiger_Loader::resolveNameToPath(Vtiger_JavaScript::getBaseJavaScriptPath() . '/' . $jsFileName, 'js');
                 if (file_exists($fallBackFilePath)) {
                     $filePath = str_replace('.', '/', $jsFileName) . '.js';
                     $jsScriptInstances[$jsFileName] = $jsScript->set('src', Vtiger_JavaScript::getFilePath($filePath));
                 }
             }
         }
     }
     return $jsScriptInstances;
 }
예제 #5
0
 function checkAndConvertJsScripts($jsFileNames)
 {
     $fileExtension = 'js';
     $jsScriptInstances = array();
     foreach ($jsFileNames as $jsFileName) {
         $jsScript = new Vtiger_JsScript_Model();
         // external javascript source file handling
         if (strpos($jsFileName, 'http://') === 0 || strpos($jsFileName, 'https://') === 0) {
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $jsFileName);
             continue;
         }
         $completeFilePath = Vtiger_Loader::resolveNameToPath($jsFileName, $fileExtension);
         if (file_exists($completeFilePath)) {
             if (strpos($jsFileName, '~') === 0) {
                 $filePath = ltrim(ltrim($jsFileName, '~'), '/');
             } else {
                 $filePath = str_replace('.', '/', $jsFileName) . '.' . $fileExtension;
             }
             $jsScriptInstances[$jsFileName] = $jsScript->set('src', $filePath);
         } else {
             $fallBackFilePath = Vtiger_Loader::resolveNameToPath(Vtiger_JavaScript::getBaseJavaScriptPath() . '/' . $jsFileName, 'js');
             if (file_exists($fallBackFilePath)) {
                 $filePath = str_replace('.', '/', $jsFileName) . '.js';
                 $jsScriptInstances[$jsFileName] = $jsScript->set('src', Vtiger_JavaScript::getFilePath($filePath));
             }
         }
     }
     return $jsScriptInstances;
 }