Your IP : 216.73.216.219


Current Path : /home/pteabiscqq/www/plugins/system/lab5_cookie_commander/_admin/elements/ext/
Upload File :
Current File : /home/pteabiscqq/www/plugins/system/lab5_cookie_commander/_admin/elements/ext/changelog.php

<?php
/** 
* Cookie Commander
* 
* @author : Lab5 - Dennis Riegelsberger
* @authorUrl : https://lab5.ch
* @copyright : Copyright (C) 2018+  Lab5 - Dennis Riegelsberger. All rights reserved.
* @license : GNU/GPL General Public License version 2 or later
* @project : https://lab5.ch/cookie-commander
* @on JED : https://extensions.joomla.org/extensions/extension/site-management/cookie-control/lab5-cookie-commander/
* 
* Built with <3 
* Lab5
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 
/**
 * @CHANGELOG :	
 * * 2020.03.05 : Added  extension differentiation "template"
 * * 2020.08.27 : Added compatibility for use in component config.xml
 */ 
defined('_JEXEC') or die;
if(!defined('DS')) define('DS',DIRECTORY_SEPARATOR);

// jimport('joomla.form.formfield');

class JFormFieldChangelog extends JFormField {

		/////////////////////////////////////////////////////
		protected $type = 'Changelog';
		/////////////////////////////////////////////////////
		public function renderField($options = array()) {
		/////////////////////////////////////////////////////

							// renderField will NOT be called if field is in Component Config
							return $this->getInput();
				
		} ///////////////////////////////////////////////////
		protected function getInput() {
		/////////////////////////////////////////////////////
						
								$extension = $this->form->getData();  
								if( !empty($extension->get('module', null)) ){  // MODULE :
								
											$extension = $extension->get('module');
											$extensionpath = "modules/".$extension ;
											$configfile = JPATH_ROOT.'/'.$extensionpath.'/'.$extension.'.xml';
									
								}elseif($extension->get('template', null)){ // TEMPLATE :
											
											$extension = $extension->get('template');
											$extensionpath = "templates/".$extension ;
											$configfile = JPATH_ROOT.'/'.$extensionpath.'/templateDetails.xml';
								
								}elseif($extension->get('folder') && $extension->get('element')){ // PLUGIN :
											
											$folder = $extension->get('folder');
											$extension = $extension->get('element');
											$extensionpath = 'plugins/'.$folder.'/'.$extension ; 
											$configfile = JPATH_ROOT.'/'.$extensionpath.'/'.$extension.'.xml';
											
								}else{ // COMPONENT  :
											
											$CUR_PATH = explode( DS, str_replace( JPATH_BASE, '', __DIR__ )  );
											$extension = ( $CUR_PATH[0] ) ? $CUR_PATH[1] : $CUR_PATH[2] ; // wg. DS as first
											$extensionpath = ( $CUR_PATH[0] ) ? $CUR_PATH[0] : $CUR_PATH[1] ; // wg. DS as first
											$extensionpath = $extensionpath.'/'.$extension ; 
											if( str_replace( JPATH_ROOT, '', JPATH_BASE ) ){ // if Admin 
											$extensionpath = basename( str_replace( JPATH_ROOT, '', JPATH_BASE )).'/'.$extensionpath ;
											}
											$configfile = JPATH_ROOT.'/'.$extensionpath.'/'.(str_replace("com_", "", $extension)).'.xml';
											
								}
								// print_r($extension); exit;
						
						/////////////////////////
						$xml = simplexml_load_file($configfile);
						/////////////////////////
							
							$return = '<hr>';
							$return .= '<h3>Changelog</h3>';
							$return .= '<hr>';
							$return .=  '<dl class="lab5-changelog dl-horizontal  list-striped ">';
							foreach( $xml->changeLog->changeDate as $changeDate  ){
										
										$date = $changeDate->attributes()->date;
										$return .= '<dt class="">'.$date.'</dt>';	
										foreach( $changeDate->change as $change  ){
														
												$return .=  '<dd class="muted">'.$change.'</dd>';
																
										}
							}
							$return .=  '</dl>';
							$return .= '<hr>';
							
						/////////////////////////
						
			return $return;
		}
		/////////////////////////////////////////////////////
		
}