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; }
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; }
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; }
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; }