예제 #1
0
 /**
  * streaming a big JS file with small js files
  *
  * @author Fernando Ontiveros Lira <*****@*****.**>
  * @access public
  * @param string $file
  * @return string
  */
 public function streamCSSBigFile($filename)
 {
     header('Content-Type: text/css');
     //First get Skin info
     $filenameParts = explode("-", $filename);
     $skinName = $filenameParts[0];
     $skinVariant = "skin";
     if (isset($filenameParts[1])) {
         $skinVariant = strtolower($filenameParts[1]);
     }
     $configurationFile = '';
     if ($skinName == "jscolors") {
         $skinName = "classic";
     }
     if ($skinName == "xmlcolors") {
         $skinName = "classic";
     }
     if ($skinName == "classic") {
         $configurationFile = G::ExpandPath("skinEngine") . 'base' . PATH_SEP . 'config.xml';
     } else {
         $configurationFile = PATH_CUSTOM_SKINS . $skinName . PATH_SEP . 'config.xml';
         if (!is_file($configurationFile)) {
             $configurationFile = G::ExpandPath("skinEngine") . $skinName . PATH_SEP . 'config.xml';
         }
     }
     //Read Configuration File
     $xmlConfiguration = file_get_contents($configurationFile);
     $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
     $baseSkinDirectory = dirname($configurationFile);
     $directorySize = G::getDirectorySize($baseSkinDirectory);
     $mtime = $directorySize['maxmtime'];
     $outputHeader = "/* Autogenerated CSS file by gulliver framework \n";
     $outputHeader .= "   Skin: {$filename}\n";
     $outputHeader .= "   Configuration: {$configurationFile}\n";
     $mtimeNow = date('U');
     $gmt_mtimeNow = gmdate("D, d M Y H:i:s", $mtimeNow) . " GMT";
     $outputHeader .= "   Date: {$gmt_mtimeNow}*/\n";
     $output = "";
     //Base files
     switch (strtolower($skinVariant)) {
         case "extjs":
             //Base
             $baseCSSPath = PATH_SKIN_ENGINE . "base" . PATH_SEP . "baseCss" . PATH_SEP;
             $output .= file_get_contents($baseCSSPath . 'ext-all-notheme.css');
             //Classic Skin
             $extJsSkin = 'xtheme-gray';
             break;
         default:
             break;
     }
     //Get Browser Info
     $infoBrowser = G::browser_detection('full_assoc');
     $browserName = $infoBrowser['browser_working'];
     if (isset($infoBrowser[$browserName . '_data'])) {
         if ($infoBrowser[$browserName . '_data'][0] != "") {
             $browserName = $infoBrowser[$browserName . '_data'][0];
         }
     }
     //Read Configuration File
     $xmlConfiguration = file_get_contents($configurationFile);
     $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
     $skinFilesArray = $xmlConfigurationObj->result['skinConfiguration']['__CONTENT__']['cssFiles']['__CONTENT__'][$skinVariant]['__CONTENT__']['cssFile'];
     foreach ($skinFilesArray as $keyFile => $cssFileInfo) {
         $enabledBrowsers = explode(",", $cssFileInfo['__ATTRIBUTES__']['enabledBrowsers']);
         $disabledBrowsers = explode(",", $cssFileInfo['__ATTRIBUTES__']['disabledBrowsers']);
         if ((in_array($browserName, $enabledBrowsers) || in_array('ALL', $enabledBrowsers)) && !in_array($browserName, $disabledBrowsers)) {
             if ($cssFileInfo['__ATTRIBUTES__']['file'] == 'rtl.css') {
                 G::LoadClass('serverConfiguration');
                 $oServerConf =& serverConf::getSingleton();
                 if (!defined('SYS_LANG')) {
                     if (isset($_SERVER['HTTP_REFERER'])) {
                         $syss = explode('://', $_SERVER['HTTP_REFERER']);
                         $sysObjets = explode('/', $syss['1']);
                         $sysLang = $sysObjets['2'];
                     } else {
                         $sysLang = 'en';
                     }
                 } else {
                     $sysLang = SYS_LANG;
                 }
                 if ($oServerConf->isRtl($sysLang)) {
                     $output .= file_get_contents($baseSkinDirectory . PATH_SEP . 'css' . PATH_SEP . $cssFileInfo['__ATTRIBUTES__']['file']);
                 }
             } else {
                 $output .= file_get_contents($baseSkinDirectory . PATH_SEP . 'css' . PATH_SEP . $cssFileInfo['__ATTRIBUTES__']['file']);
             }
         }
     }
     //Remove comments..
     $regex = array("`^([\t\\s]+)`ism" => '', "`^\\/\\*(.+?)\\*\\/`ism" => "", "`([\n\\A;]+)\\/\\*(.+?)\\*\\/`ism" => "\$1", "`([\n\\A;\\s]+)//(.+?)[\n\r]`ism" => "\$1\n", "`(^[\r\n]*|[\r\n]+)[\\s\t]*[\r\n]+`ism" => "\n");
     $output = preg_replace(array_keys($regex), $regex, $output);
     $output = $outputHeader . $output;
     return $output;
 }
예제 #2
0
function importSkin()
{
    try {
        if (!isset($_FILES['uploadedFile'])) {
            throw new Exception(G::LoadTranslation('ID_SKIN_FILE_REQUIRED'));
        }
        $uploadedInstances = count($_FILES['uploadedFile']['name']);
        $sw_error = false;
        $sw_error_exists = isset($_FILES['uploadedFile']['error']);
        $emptyInstances = 0;
        $quequeUpload = array();
        // upload files & check for errors
        $tmp = $_FILES['uploadedFile']['tmp_name'];
        $items = stripslashes($_FILES['uploadedFile']['name']);
        if ($sw_error_exists) {
            $up_err = $_FILES['uploadedFile']['error'];
        } else {
            $up_err = file_exists($tmp) ? 0 : 4;
        }
        if ($items == "" || $up_err == 4) {
            throw new Exception(G::LoadTranslation('ID_SKIN_FILE_REQUIRED'));
        }
        if ($up_err == 1 || $up_err == 2) {
            throw new Exception(G::LoadTranslation('ID_FILE_TOO_BIG'));
            //$errors[$i]='miscfilesize';
        }
        if ($up_err == 3) {
            throw new Exception(G::LoadTranslation('ID_ERROR_UPLOAD_FILE_CONTACT_ADMINISTRATOR'));
            //$errors[$i]='miscfilepart';
        }
        if (!@is_uploaded_file($tmp)) {
            throw new Exception(G::LoadTranslation('ID_ERROR_UPLOAD_FILE_CONTACT_ADMINISTRATOR'));
            //$errors[$i]='uploadfile';
        }
        $fileInfo = pathinfo($items);
        $validType = array('tar', 'gz');
        if (!in_array($fileInfo['extension'], $validType)) {
            throw new Exception(G::LoadTranslation('ID_FILE_UPLOAD_INCORRECT_EXTENSION'));
            //$errors[$i]='wrongtype';
        }
        $filename = $items;
        $tempPath = PATH_CUSTOM_SKINS . '.tmp' . PATH_SEP;
        G::verifyPath($tempPath, true);
        $tempName = $tmp;
        G::uploadFile($tempName, $tempPath, $filename);
        G::LoadThirdParty('pear/Archive', 'Tar');
        $tar = new Archive_Tar($tempPath . $filename);
        $aFiles = $tar->listContent();
        $swConfigFile = false;
        foreach ($aFiles as $key => $val) {
            if (basename($val['filename']) == 'config.xml') {
                $skinName = dirname($val['filename']);
                $skinArray = explode("/", $skinName);
                if (count($skinArray) == 1) {
                    $swConfigFile = true;
                }
            }
        }
        if (!$swConfigFile) {
            @unlink(PATH_CUSTOM_SKINS . '.tmp' . PATH_SEP . $filename);
            throw new Exception(G::LoadTranslation('ID_SKIN_CONFIGURATION_MISSING'));
        }
        if (is_dir(PATH_CUSTOM_SKINS . $skinName)) {
            if (isset($_REQUEST['overwrite_files']) && $_REQUEST['overwrite_files'] == 'on') {
                G::rm_dir(PATH_CUSTOM_SKINS . $skinName, false);
            } else {
                throw new Exception(G::LoadTranslation('ID_SKIN_ALREADY_EXISTS'));
            }
        }
        $res = $tar->extract(PATH_CUSTOM_SKINS);
        if (!$res) {
            throw new Exception(G::LoadTranslation('ID_SKIN_ERROR_EXTRACTING'));
        }
        $configFileOriginal = PATH_CUSTOM_SKINS . $skinName . PATH_SEP . 'config.xml';
        $configFileFinal = PATH_CUSTOM_SKINS . $skinName . PATH_SEP . 'config.xml';
        $xmlConfiguration = file_get_contents($configFileOriginal);
        $workspace = $_REQUEST['workspace'] == 'global' ? '' : SYS_SYS;
        $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
        $skinInformationArray = $xmlConfigurationObj->result["skinConfiguration"]["__CONTENT__"]["information"]["__CONTENT__"];
        if (isset($skinInformationArray["workspace"]["__VALUE__"])) {
            $workspace = $workspace != "" && !empty($skinInformationArray["workspace"]["__VALUE__"]) ? $skinInformationArray["workspace"]["__VALUE__"] . "|" . $workspace : $workspace;
            $xmlConfiguration = preg_replace("/(<workspace>)(.*)(<\\/workspace>)/i", "<workspace>" . $workspace . "</workspace><!-- \$2 -->", $xmlConfiguration);
        } else {
            $xmlConfiguration = preg_replace("/(<name>)(.*)(<\\/name>)/i", "<name>" . $skinName . "</name><!-- \$2 -->\n<workspace>" . $workspace . "</workspace>", $xmlConfiguration);
        }
        file_put_contents($configFileFinal, $xmlConfiguration);
        //Delete Temporal
        @unlink(PATH_CUSTOM_SKINS . '.tmp' . PATH_SEP . $filename);
        $response['success'] = true;
        $response['message'] = G::LoadTranslation('ID_SKIN_SUCCESSFUL_IMPORTED');
        G::auditLog("ImportSkin", "Skin Name: " . $skinName);
        print_r(G::json_encode($response));
    } catch (Exception $e) {
        $response['success'] = false;
        $response['message'] = $e->getMessage();
        $response['error'] = $e->getMessage();
        print_r(G::json_encode($response));
    }
}
예제 #3
0
 public function getSkingList()
 {
     //Create Skins custom folder if it doesn't exists
     if (!is_dir(PATH_CUSTOM_SKINS)) {
         G::verifyPath(PATH_CUSTOM_SKINS, true);
     }
     //Get Skin Config files
     $skinListArray = array();
     $customSkins = glob(PATH_CUSTOM_SKINS . "*/config.xml");
     if (!is_array($customSkins)) {
         $customSkins = array();
     }
     // getting al base skins
     $baseSkins = glob(G::ExpandPath("skinEngine") . '*/config.xml');
     // filtering no public skins (uxs, simplified)
     foreach ($baseSkins as $i => $skinName) {
         if (strpos($skinName, 'simplified') !== false || strpos($skinName, 'uxs') !== false || strpos($skinName, 'uxmodern') !== false) {
             unset($baseSkins[$i]);
         }
     }
     $customSkins = array_merge($baseSkins, $customSkins);
     $global = G::LoadTranslation('ID_GLOBAL');
     //Read and parse each Configuration File
     foreach ($customSkins as $key => $configInformation) {
         $folderId = basename(dirname($configInformation));
         if ($folderId == 'base') {
             $folderId = 'classic';
         }
         $partnerFlag = defined('PARTNER_FLAG') ? PARTNER_FLAG : false;
         if ($partnerFlag && $folderId == 'classic') {
             continue;
         }
         $xmlConfiguration = file_get_contents($configInformation);
         $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
         if (isset($xmlConfigurationObj->result['skinConfiguration'])) {
             $skinInformationArray = $skinFilesArray = $xmlConfigurationObj->result['skinConfiguration']['__CONTENT__']['information']['__CONTENT__'];
             $res = array();
             $res['SKIN_FOLDER_ID'] = strtolower($folderId);
             foreach ($skinInformationArray as $keyInfo => $infoValue) {
                 $res['SKIN_' . strtoupper($keyInfo)] = isset($infoValue['__VALUE__']) ? $infoValue['__VALUE__'] : '';
             }
             $res['SKIN_CREATEDATE'] = isset($res['SKIN_CREATEDATE']) ? $res['SKIN_CREATEDATE'] : '';
             $res['SKIN_MODIFIEDDATE'] = isset($res['SKIN_MODIFIEDDATE']) ? $res['SKIN_MODIFIEDDATE'] : '';
             $res['SKIN_WORKSPACE'] = isset($res['SKIN_WORKSPACE']) ? $res['SKIN_WORKSPACE'] != '' ? $res['SKIN_WORKSPACE'] : $global : $global;
             $swWS = true;
             if ($res['SKIN_WORKSPACE'] != $global) {
                 $workspace = explode("|", $res['SKIN_WORKSPACE']);
                 $swWS = false;
                 foreach ($workspace as $key => $value) {
                     if ($value == SYS_SYS) {
                         $swWS = true;
                         break;
                     }
                 }
             }
             if ($swWS) {
                 $skinListArray['skins'][] = $res;
             }
         }
     }
     $skinListArray['currentSkin'] = SYS_SKIN;
     return $skinListArray;
 }
예제 #4
0
?>
<html>
	<head>
		<link type="text/css" href="/js/jquery/css/redmond/jquery-ui-1.7.2.custom.css" rel="stylesheet" />
		<link type="text/css" href="/skins/<?php 
echo SYS_SKIN;
?>
/style.css" rel="stylesheet" />
		<style> body{ background-color: #fff; }</style>
		<script type="text/javascript" src="/js/jquery/jquery-1.3.2.min.js"></script>
		<script type="text/javascript" src="/js/jquery/jquery-ui-1.7.2.custom.min.js"></script>
		<script type="text/javascript" src="/jscore/dynaforms/dynaforms_fieldsHandler.js"></script>
	</head>
<?php 
$content = file_get_contents(PATH_DYNAFORM . $_SESSION['Current_Dynafom']['Parameters']['FILE'] . ".xml");
$oXxml = G::xmlParser($content);
if (!isset($oXxml->result['dynaForm']['__CONTENT__'])) {
    ?>
	<br/>
	<div class="ui-widget-header ui-corner-all" style="height:17px" align="center">
		<?php 
    echo G::loadTranslation('ID_NO_FIELD_FOUND');
    ?>
	</div>
	<script>
        parent.document.getElementById('light').style.display='none';
        parent.document.getElementById('fade').style.display='none';
	</script>
<?php 
    die;
}
예제 #5
0
 function getSkingList()
 {
     //Create Skins custom folder if it doesn't exists
     if (!is_dir(PATH_CUSTOM_SKINS)) {
         G::verifyPath(PATH_CUSTOM_SKINS, true);
     }
     //Get Skin Config files
     $skinListArray = array();
     $customSkins = glob(PATH_CUSTOM_SKINS . "*/config.xml");
     // getting al base skins
     $baseSkins = glob(G::ExpandPath("skinEngine") . '*/config.xml');
     // filtering no public skins (uxs, simplified)
     foreach ($baseSkins as $i => $skinName) {
         if (strpos($skinName, 'simplified') !== false || strpos($skinName, 'uxs') !== false) {
             unset($baseSkins[$i]);
         }
     }
     $customSkins = array_merge($baseSkins, $customSkins);
     //Read and parse each Configuration File
     foreach ($customSkins as $key => $configInformation) {
         $folderId = basename(dirname($configInformation));
         if ($folderId == 'base') {
             $folderId = 'classic';
         }
         $xmlConfiguration = file_get_contents($configInformation);
         $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
         if (isset($xmlConfigurationObj->result['skinConfiguration'])) {
             $skinInformationArray = $skinFilesArray = $xmlConfigurationObj->result['skinConfiguration']['__CONTENT__']['information']['__CONTENT__'];
             $res = array();
             $res['SKIN_FOLDER_ID'] = strtolower($folderId);
             foreach ($skinInformationArray as $keyInfo => $infoValue) {
                 $res['SKIN_' . strtoupper($keyInfo)] = $infoValue['__VALUE__'];
             }
             $skinListArray['skins'][] = $res;
         }
     }
     $skinListArray['currentSkin'] = SYS_SKIN;
     return $skinListArray;
 }
예제 #6
0
 /**
  * streaming a big JS file with small js files
  *
  * @author Fernando Ontiveros Lira <*****@*****.**>
  * @access public
  * @param  string $file
  * @return string
  */
 function streamCSSBigFile($filename)
 {
     header('Content-Type: text/css');
     //First get Skin info
     $filenameParts = explode("-", $filename);
     $skinName = $filenameParts[0];
     $skinVariant = "skin";
     if (isset($filenameParts[1])) {
         $skinVariant = strtolower($filenameParts[1]);
     }
     if ($skinName == "jscolors") {
         $skinName = "classic";
     }
     if ($skinName == "xmlcolors") {
         $skinName = "classic";
     }
     if ($skinName == "classic") {
         $configurationFile = G::ExpandPath("skinEngine") . 'base' . PATH_SEP . 'config.xml';
     } else {
         $configurationFile = PATH_CUSTOM_SKINS . $skinName . PATH_SEP . 'config.xml';
         if (!is_file($configurationFile)) {
             $configurationFile = G::ExpandPath("skinEngine") . $skinName . PATH_SEP . 'config.xml';
         }
     }
     //Read Configuration File
     $xmlConfiguration = file_get_contents($configurationFile);
     $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
     $baseSkinDirectory = dirname($configurationFile);
     $directorySize = G::getDirectorySize($baseSkinDirectory);
     $mtime = $directorySize['maxmtime'];
     //if userAgent (BROWSER) is MSIE we need special headers to avoid MSIE behaivor.
     //$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
     $gmt_mtime = gmdate("D, d M Y H:i:s", $mtime) . " GMT";
     header('Pragma: cache');
     header('ETag: "' . md5($mtime . $filename) . '"');
     header("Last-Modified: " . $gmt_mtime);
     header('Cache-Control: public');
     header("Expires: " . gmdate("D, d M Y H:i:s", time() + 30 * 60 * 60 * 24) . " GMT");
     //1 month
     //header("Expires: " . gmdate("D, d M Y H:i:s", time () + 60*60*24 ) . " GMT"); //1 day - tempor
     if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
         if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $gmt_mtime) {
             header('HTTP/1.1 304 Not Modified');
             exit;
         }
     }
     if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
         if (str_replace('"', '', stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) == md5($mtime . $filename)) {
             header("HTTP/1.1 304 Not Modified");
             exit;
         }
     }
     $outputHeader = "/* Autogenerated CSS file by gulliver framework \n";
     $outputHeader .= "   Skin: {$filename}\n";
     $outputHeader .= "   Configuration: {$configurationFile}\n";
     $mtimeNow = date('U');
     $gmt_mtimeNow = gmdate("D, d M Y H:i:s", $mtimeNow) . " GMT";
     $outputHeader .= "   Date: {$gmt_mtimeNow}*/\n";
     $output = "";
     //Base files
     switch (strtolower($skinVariant)) {
         case "extjs":
             //Base
             $baseCSSPath = PATH_SKIN_ENGINE . "base" . PATH_SEP . "baseCss" . PATH_SEP;
             $output .= file_get_contents($baseCSSPath . 'ext-all-notheme.css');
             //$output .= file_get_contents ( $publicExtPath . 'ext-all.css' );
             //Classic Skin
             $extJsSkin = 'xtheme-gray';
             /*$publicExtPath = PATH_SKIN_ENGINE."base". PATH_SEP."css". PATH_SEP;
               $output .= file_get_contents ( $publicExtPath . $extJsSkin . '.css' );
               $output .= file_get_contents ( $publicExtPath . 'pmos-' . $extJsSkin . '.css' );
               */
             //adding the extend css for extjs-pmos
             //TODO: move this files to pmos-xthem..
             //$cssThemeExtensions = glob(PATH_TPL . "*/css/extjs-extend/{$extJsSkin}.css");
             //foreach($cssThemeExtensions as $cssThemeExtensionFile)
             //$helper->addFile($cssThemeExtensionFile);
             //$output .= file_get_contents ( $cssThemeExtensionFile );
             //                $classicCSSPath=PATH_SKIN_ENGINE."base". PATH_SEP."css". PATH_SEP;
             //                $output .= file_get_contents ( $classicCSSPath . 'sprite.css' );
             //$output .= file_get_contents ( $classicCSSPath . 'sprite_ie.css' );
             break;
         default:
             break;
     }
     //Get Browser Info
     $infoBrowser = G::browser_detection('full_assoc');
     $browserName = $infoBrowser['browser_working'];
     if (isset($infoBrowser[$browserName . '_data'])) {
         if ($infoBrowser[$browserName . '_data'][0] != "") {
             $browserName = $infoBrowser[$browserName . '_data'][0];
         }
     }
     //print "<h1>$browserName</h1>";
     //G::pr($infoBrowser);
     //Read Configuration File
     $xmlConfiguration = file_get_contents($configurationFile);
     $xmlConfigurationObj = G::xmlParser($xmlConfiguration);
     //G::pr($xmlConfigurationObj->result['skinConfiguration']['__CONTENT__']['cssFiles']['__CONTENT__'][$tempSkin]['__CONTENT__']    );
     $skinFilesArray = $xmlConfigurationObj->result['skinConfiguration']['__CONTENT__']['cssFiles']['__CONTENT__'][$skinVariant]['__CONTENT__']['cssFile'];
     //G::pr($skinFilesArray);
     foreach ($skinFilesArray as $keyFile => $cssFileInfo) {
         //G::pr($cssFileInfo);
         //TODO: Also review browser versions for restrictions
         $enabledBrowsers = explode(",", $cssFileInfo['__ATTRIBUTES__']['enabledBrowsers']);
         $disabledBrowsers = explode(",", $cssFileInfo['__ATTRIBUTES__']['disabledBrowsers']);
         if ((in_array($browserName, $enabledBrowsers) || in_array('ALL', $enabledBrowsers)) && !in_array($browserName, $disabledBrowsers)) {
             //G::pr($cssFileInfo['__ATTRIBUTES__']['file']);
             $output .= file_get_contents($baseSkinDirectory . PATH_SEP . 'css' . PATH_SEP . $cssFileInfo['__ATTRIBUTES__']['file']);
         }
     }
     //Remove comments..
     $regex = array("`^([\t\\s]+)`ism" => '', "`^\\/\\*(.+?)\\*\\/`ism" => "", "`([\n\\A;]+)\\/\\*(.+?)\\*\\/`ism" => "\$1", "`([\n\\A;\\s]+)//(.+?)[\n\r]`ism" => "\$1\n", "`(^[\r\n]*|[\r\n]+)[\\s\t]*[\r\n]+`ism" => "\n");
     $output = preg_replace(array_keys($regex), $regex, $output);
     $output = $outputHeader . $output;
     return $output;
 }