155 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|  * @package Joomla 3.8
 | |
|  * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
 | |
|  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 | |
|  *
 | |
|  * @component Phoca Component
 | |
|  * @copyright Copyright (C) Jan Pavelka www.phoca.cz
 | |
|  * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
 | |
|  */
 | |
| defined('_JEXEC') or die();
 | |
| use Joomla\CMS\Filesystem\Folder;
 | |
| use Joomla\CMS\Installer\Installer;
 | |
| use Joomla\CMS\Uri\Uri;
 | |
| use Joomla\CMS\Plugin\PluginHelper;
 | |
| use Joomla\CMS\Factory;
 | |
| class PhocaMapsHelper
 | |
| {
 | |
| 	public static function strTrimAll($input) {
 | |
| 		$output	= '';;
 | |
| 	    $input	= trim($input);
 | |
| 	    for($i=0;$i<strlen($input);$i++) {
 | |
| 	        if(substr($input, $i, 1) != " ") {
 | |
| 	            $output .= trim(substr($input, $i, 1));
 | |
| 	        } else {
 | |
| 	            $output .= " ";
 | |
| 	        }
 | |
| 	    }
 | |
| 	    return $output;
 | |
| 	}
 | |
| 
 | |
| 	public static function getPhocaVersion($component = 'com_phocamaps') {
 | |
| 		$component = 'com_phocamaps';
 | |
| 		$folder = JPATH_ADMINISTRATOR . '/components/'.$component;
 | |
| 
 | |
| 		if (Folder::exists($folder)) {
 | |
| 			$xmlFilesInDir = Folder::files($folder, '.xml$');
 | |
| 		} else {
 | |
| 			$folder = JPATH_SITE . '/components/'.$component;
 | |
| 			if (Folder::exists($folder)) {
 | |
| 				$xmlFilesInDir = Folder::files($folder, '.xml$');
 | |
| 			} else {
 | |
| 				$xmlFilesInDir = null;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		$xml_items = array();
 | |
| 		if (!empty($xmlFilesInDir))
 | |
| 		{
 | |
| 			foreach ($xmlFilesInDir as $xmlfile)
 | |
| 			{
 | |
| 				if ($data = Installer::parseXMLInstallFile($folder.'/'.$xmlfile)) {
 | |
| 					foreach($data as $key => $value) {
 | |
| 						$xml_items[$key] = $value;
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		if (isset($xml_items['version']) && $xml_items['version'] != '' ) {
 | |
| 			return $xml_items['version'];
 | |
| 		} else {
 | |
| 			return '';
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public static function getAliasName($name) {
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	public static function fixImagePath($description) {
 | |
| 
 | |
|           $description = str_replace('<img src="'.Uri::root(true).'/', '', $description);// no double
 | |
|           $description = str_replace('<img src="', '<img src="'.Uri::root(true).'/', $description);
 | |
| 
 | |
|           // correct possible problems with full paths
 | |
|           $description = str_replace('<img src="'.Uri::root(true).'/http://', '<img src="http://', $description);
 | |
|           $description = str_replace('<img src="/http://', '<img src="http://', $description);
 | |
| 
 | |
| 		  $description = str_replace('<img src="'.Uri::root(true).'/https://', '<img src="https://', $description);
 | |
|           $description = str_replace('<img src="/https://', '<img src="https://', $description);
 | |
|           return $description;
 | |
|        }
 | |
| 
 | |
| 	public static function filterValue($string, $type = 'html') {
 | |
| 
 | |
| 		switch ($type) {
 | |
| 
 | |
| 			case 'url':
 | |
| 				return rawurlencode($string);
 | |
| 				break;
 | |
| 
 | |
| 			case 'number':
 | |
| 				return preg_replace( '/[^.0-9]/', '', $string );
 | |
| 				break;
 | |
| 
 | |
| 			case 'number2':
 | |
| 				//return preg_replace( '/[^0-9\.,+-]/', '', $string );
 | |
| 				return preg_replace( '/[^0-9\.,-]/', '', $string );
 | |
| 				break;
 | |
| 
 | |
| 			case 'alphanumeric':
 | |
| 				return preg_replace("/[^a-zA-Z0-9]+/", '', $string);
 | |
| 				break;
 | |
| 
 | |
| 			case 'alphanumeric2':
 | |
| 				return preg_replace("/[^\\w-]/", '', $string);// Alphanumeric plus _  -
 | |
| 				break;
 | |
| 
 | |
| 			case 'alphanumeric3':
 | |
| 				return preg_replace("/[^\\w.-]/", '', $string);// Alphanumeric plus _ . -
 | |
| 				break;
 | |
| 
 | |
| 			case 'folder':
 | |
| 			case 'file':
 | |
| 				$string =  preg_replace('/[\"\*\/\\\:\<\>\?\'\|]+/', '', $string);
 | |
| 				return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
 | |
| 				break;
 | |
| 
 | |
| 			case 'folderpath':
 | |
| 			case 'filepath':
 | |
| 				$string = preg_replace('/[\"\*\:\<\>\?\'\|]+/', '', $string);
 | |
| 				return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
 | |
| 				break;
 | |
| 
 | |
| 			case 'text':
 | |
| 				return htmlspecialchars(strip_tags($string), ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
 | |
| 				break;
 | |
| 			case 'textjs':
 | |
| 			return addslashes(strip_tags($string));
 | |
| 			break;
 | |
| 
 | |
| 			case 'html':
 | |
| 			default:
 | |
| 				return htmlspecialchars($string, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8');
 | |
| 				break;
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	public static function getExtInfo() {
 | |
| 
 | |
|         PluginHelper::importPlugin('phocatools');
 | |
|         $results = Factory::getApplication()->triggerEvent('onPhocatoolsOnDisplayInfo', array('NjI5NTcyMjc3MTE3'));
 | |
|         if (isset($results[0]) && $results[0] === true) {
 | |
|             return '';
 | |
|         }
 | |
| 
 | |
| 		return '<div style="text-align: right; color: rgb(211, 211, 211); clear: both; margin-top: 10px;margin-bottom:10px;">Powered by <a href="https://www.phoca.cz" style="text-decoration: none;" target="_blank" title="Phoca.cz">Phoca</a> <a href="https://www.phoca.cz/phocamaps" style="text-decoration: none;" target="_blank" title="Phoca Maps">Maps</a></div>';
 | |
| 	}
 | |
| }
 | |
| ?>
 |