%PDF- %PDF-
| Direktori : /home/lightco1/luminero.com.au/plugins/system/jsnmobilize/libraries/joomlashine/compress/ |
| Current File : /home/lightco1/luminero.com.au/plugins/system/jsnmobilize/libraries/joomlashine/compress/helper.php |
<?php
/**
* @version $Id$
* @package JSNExtension
* @subpackage TPLFramework
* @author JoomlaShine Team <support@joomlashine.com>
* @copyright Copyright (C) 2012 JoomlaShine.com. All Rights Reserved.
* @license GNU/GPL v2 or later http://www.gnu.org/licenses/gpl-2.0.html
*
* Websites: http://www.joomlashine.com
* Technical Support: Feedback - http://www.joomlashine.com/contact-us/get-support.html
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// Import necessary Joomla libraries
jimport('joomla.filesystem.folder');
jimport('joomla.filesystem.file');
/**
* CSS Compression engine
*
* @package TPLFramework
* @subpackage Plugin
* @since 1.0.0
*/
abstract class JSNMobilizeCompressHelper
{
/**
* Retrieve path to file in hard disk based from file URL
*
* @param string $file URL to the file
* @return string
*/
public static function getFilePath ($file)
{
// Located file from root
if (strpos($file, '/') === 0)
{
if (file_exists($tmp = realpath(str_replace(JUri::root(true), JPATH_ROOT, $file))))
{
return $tmp;
}
elseif (file_exists($tmp = realpath($_SERVER['DOCUMENT_ROOT'] . '/' . $file)))
{
return $tmp;
}
elseif (file_exists($tmp = realpath(JPATH_ROOT . '/' . $file)))
{
return $tmp;
}
}
if (strpos($file, '://') !== false && JURI::isInternal($file))
{
$path = parse_url($file, PHP_URL_PATH);
if (file_exists($tmp = realpath($_SERVER['DOCUMENT_ROOT'] . '/' . $path)))
{
return $tmp;
}
elseif (file_exists($tmp = realpath(JPATH_ROOT . '/' . $path)))
{
return $tmp;
}
}
$rootURL = JUri::root();
$currentURL = JUri::current();
$currentPath = JPATH_ROOT . '/' . substr($currentURL, strlen($rootURL));
$currentPath = str_replace(DIRECTORY_SEPARATOR, '/', $currentPath);
$currentPath = dirname($currentPath);
return JPath::clean($currentPath . '/' . $file);
}
/**
* Retrieve absolute path from the current path
*
* @param string $currentPath Current path
* @param string $filePath File path
* @return string
*/
public static function getRelativeFilePath ($currentPath, $filePath)
{
// Prepare file path
if (strpos($filePath, '?') !== false)
{
list($filePath, $queryString) = explode('?', $filePath, 2);
}
$currentPath = str_replace('\\', '/', $currentPath);
$realPath = realpath($currentPath . '/' . $filePath);
$rootPath = realpath(str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']));
return substr($realPath, strlen($rootPath)) . (isset($queryString) ? "?{$queryString}" : '');
}
/**
* Parse attributes from the html tag
*
* @param string $markup HTML Markup of the tag
* @return array
*/
public static function parseAttributes ($markup)
{
$attributes = array();
// Parse attributes by using regular expression
if (preg_match_all('/\s*([a-z]+)\s*=(["|\']([^"|\']+)["|\'])/i', $markup, $matches))
$attributes = array_combine(
array_map('strtolower',
array_map('trim',
$matches[1]
)
), $matches[3]);
// Return the parsed attibutes
return $attributes;
}
/**
* Method to prepend content to the beginning of a file
*
* @param string $string Content will be prepended
* @param resource $filename File to prepend
*
* @return boolean
*/
public static function prependIntoFile($string, $filename)
{
$combine = $string . JFile::read($filename);
return JFile::write($filename, $combine);
}
}