示例#1
0
 /**
  * Function returns the css files
  * @param <Array> $cssFileNames
  * @param <String> $fileExtension
  * @return <Array of Vtiger_CssScript_Model>
  *
  * First check if $cssFileName exists
  * if not, check under layout folder $cssFileName eg:layouts/basic/$cssFileName
  */
 function checkAndConvertCssStyles($cssFileNames, $fileExtension = 'css')
 {
     $cssStyleInstances = [];
     foreach ($cssFileNames as $cssFileName) {
         $cssScriptModel = new Vtiger_CssScript_Model();
         if (strpos($cssFileName, 'http://') === 0 || strpos($cssFileName, 'https://') === 0) {
             $cssStyleInstances[] = $cssScriptModel->set('href', $cssFileName);
             continue;
         }
         $completeFilePath = Vtiger_Loader::resolveNameToPath($cssFileName, $fileExtension);
         if (file_exists($completeFilePath)) {
             if (strpos($cssFileName, '~') === 0) {
                 $filePath = ltrim(ltrim($cssFileName, '~'), '/');
             } else {
                 $filePath = str_replace('.', '/', $cssFileName) . '.' . $fileExtension;
             }
             $minFilePath = str_replace('.css', '.min.css', $filePath);
             if (Vtiger_Functions::getMinimizationOptions($fileExtension) && is_file(Vtiger_Loader::resolveNameToPath('~' . $minFilePath, $fileExtension))) {
                 $filePath = $minFilePath;
             }
             $cssStyleInstances[$cssFileName] = $cssScriptModel->set('href', $filePath);
             continue;
         } else {
             $preLayoutPath = '';
             if (strpos($cssFileName, '~') === 0) {
                 $cssFile = ltrim(ltrim($cssFileName, '~'), '/');
                 $preLayoutPath = '~';
             } else {
                 $cssFile = $cssFileName;
             }
             // Checking if file exists in selected layout
             $layoutPath = 'layouts' . '/' . Yeti_Layout::getActiveLayout();
             $fallBackFilePath = Vtiger_Loader::resolveNameToPath($preLayoutPath . $layoutPath . '/' . $cssFile, $fileExtension);
             if (is_file($fallBackFilePath)) {
                 if (empty($preLayoutPath)) {
                     $filePath = str_replace('.', '/', $cssFile) . '.css';
                 }
                 $minFilePath = str_replace('.css', '.min.css', $filePath);
                 if (Vtiger_Functions::getMinimizationOptions($fileExtension) && is_file(Vtiger_Loader::resolveNameToPath('~' . $layoutPath . '/' . $minFilePath, $fileExtension))) {
                     $filePath = $minFilePath;
                 }
                 $cssStyleInstances[$cssFileName] = $cssScriptModel->set('href', $layoutPath . '/' . $filePath);
                 continue;
             }
             // Checking if file exists in default layout
             $layoutPath = 'layouts' . '/' . Vtiger_Viewer::getDefaultLayoutName();
             $fallBackFilePath = Vtiger_Loader::resolveNameToPath($preLayoutPath . $layoutPath . '/' . $cssFile, $fileExtension);
             if (is_file($fallBackFilePath)) {
                 if (empty($preLayoutPath)) {
                     $filePath = str_replace('.', '/', $cssFile) . '.css';
                 }
                 $minFilePath = str_replace('.css', '.min.css', $filePath);
                 if (Vtiger_Functions::getMinimizationOptions($fileExtension) && is_file(Vtiger_Loader::resolveNameToPath('~' . $layoutPath . '/' . $minFilePath, $fileExtension))) {
                     $filePath = $minFilePath;
                 }
                 $cssStyleInstances[$cssFileName] = $cssScriptModel->set('href', $layoutPath . '/' . $filePath);
                 continue;
             }
         }
     }
     return $cssStyleInstances;
 }
示例#2
0
 /**
  * Function returns the css files
  * @param <Array> $cssFileNames
  * @param <String> $fileExtension
  * @return <Array of Vtiger_CssScript_Model>
  *
  * First check if $cssFileName exists
  * if not, check under layout folder $cssFileName eg:layouts/vlayout/$cssFileName
  */
 function checkAndConvertCssStyles($cssFileNames, $fileExtension = 'css')
 {
     $cssStyleInstances = array();
     foreach ($cssFileNames as $cssFileName) {
         $cssScriptModel = new Vtiger_CssScript_Model();
         if (strpos($cssFileName, 'http://') === 0 || strpos($cssFileName, 'https://') === 0) {
             $cssStyleInstances[] = $cssScriptModel->set('href', $cssFileName);
             continue;
         }
         $completeFilePath = Vtiger_Loader::resolveNameToPath($cssFileName, $fileExtension);
         $filePath = NULL;
         $minFilePath = str_replace('.css', '.min.css', $completeFilePath);
         if (Vtiger_Functions::getMinimizationOptions($fileExtension) && file_exists($minFilePath)) {
             if (strpos($cssFileName, '~') === 0) {
                 $minFilePath = str_replace('.css', '.min.css', $cssFileName);
                 $filePath = ltrim(ltrim($minFilePath, '~'), '/');
                 // if ~~ (reference is outside vtiger6 folder)
                 if (substr_count($minFilePath, "~") == 2) {
                     $filePath = "../" . $filePath;
                 }
             } else {
                 $filePath = str_replace('.', '/', $cssFileName) . '.min.' . $fileExtension;
                 $filePath = Vtiger_Theme::getStylePath($filePath);
             }
             $cssStyleInstances[] = $cssScriptModel->set('href', $filePath);
         } else {
             if (file_exists($completeFilePath)) {
                 if (strpos($cssFileName, '~') === 0) {
                     $filePath = ltrim(ltrim($cssFileName, '~'), '/');
                     // if ~~ (reference is outside vtiger6 folder)
                     if (substr_count($cssFileName, "~") == 2) {
                         $filePath = "../" . $filePath;
                     }
                 } else {
                     $filePath = str_replace('.', '/', $cssFileName) . '.' . $fileExtension;
                     $filePath = Vtiger_Theme::getStylePath($filePath);
                 }
                 $cssStyleInstances[] = $cssScriptModel->set('href', $filePath);
             }
         }
     }
     return $cssStyleInstances;
 }