HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/backip-old-files/modules/mod_latestnewsenhanced/headerfilesmaster.php
<?php
/**
 * @copyright	Copyright (C) 2011 Simplify Your Web, Inc. All rights reserved.
 * @license		GNU General Public License version 3 or later; see LICENSE.txt
 */

// no direct access
defined('_JEXEC') or die;

use Joomla\CMS\Language\Text;

jimport('syw.headerfilescache', JPATH_LIBRARIES);
jimport('syw.utilities', JPATH_LIBRARIES);

class LNE_CSSFileCache extends SYWHeaderFilesCache
{
	public function __construct($extension, $params = null)
	{
		parent::__construct($extension, $params);

		$this->extension = $extension;

		$variables = array();

		$suffix = '#lnee_'.$params->get('suffix');
		$variables[] = 'suffix';

		$bootstrap_version = $params->get('bootstrap_version', 2);
		$variables[] = 'bootstrap_version';

		$overall = $params->get('overall_style', 'original');
		$variables[] = 'overall';

		$horizontal = ($params->get('align', 'v') === 'h') ? true : false;
		$variables[] = 'horizontal';

		$items_align = $params->get('items_align', 'c');
		$variables[] = 'items_align';

		// items width and height

		$items_height = trim($params->get('items_h', ''));
		$variables[] = 'items_height';
		$items_width = trim($params->get('items_w', ''));
		$variables[] = 'items_width';

		$item_width = trim($params->get('item_w', 100));
		$item_width_unit = $params->get('item_w_u', 'percent');

		if ($item_width_unit == 'percent') {
			$item_width_unit = '%';
		}

		$variables[] = 'item_width_unit';

		if ($item_width_unit == '%') {
			if ($item_width <= 0 || $item_width > 100) {
				$item_width = 100;
			}
		} else {
			if ($item_width < 0) {
				$item_width = 0;
			}
		}

		$variables[] = 'item_width';

		$item_min_width = trim($params->get('min_item_w', ''));
		$variables[] = 'item_min_width';

		$item_max_width = trim($params->get('max_item_w', ''));
		$variables[] = 'item_max_width';

		$space_between_items = $params->get('item_spacebetween', '0');
		$variables[] = 'space_between_items';

		$margin_in_perc = 0;
		if ($item_width_unit == '%') {
			$news_per_row = (int)(100 / $item_width);
			$left_for_margins = 100 - ($news_per_row * $item_width);
			$margin_in_perc = $left_for_margins / ($news_per_row * 2);
		}

		$variables[] = 'margin_in_perc';

		// body parameters

		$maintain_height = $params->get('maintain_height', 0);
		$variables[] = 'maintain_height';

		$force_title_one_line = $params->get('force_one_line', 0);
		$variables[] = 'force_title_one_line';

		$font_ref_body = $params->get('f_r_body', 14);
		$variables[] = 'font_ref_body';

		$bgcolor_body = trim($params->get('bgcolor', '')) != '' ? trim($params->get('bgcolor')) : 'transparent';
		$variables[] = 'bgcolor_body';

		$wrap = $params->get('wrap', 0);
		$variables[] = 'wrap';

		$font_size_details = $params->get('details_fontsize', 80);
		$variables[] = 'font_size_details';

		$details_line_spacing = $params->get('details_line_spacing', array('', 'px'));
		$variables[] = 'details_line_spacing';

		$details_font_color = trim($params->get('details_color', ''));
		if ($details_font_color == 'transparent') {
			$details_font_color = '';
		}
		$variables[] = 'details_font_color';

		$iconfont_color = trim($params->get('iconscolor', ''));
		if ($iconfont_color == 'transparent') {
			$iconfont_color = '';
		}
		$variables[] = 'iconfont_color';

		// rating

		$star_color = trim($params->get('star_color', '#000000'));
		$variables[] = 'star_color';

		// head width and height

		$head_width = $params->get('head_w', 64);
		$head_height = $params->get('head_h', 64);

		$head_type = $params->get('head_type', 'none');

		// image

		$image = false;

		$image_types = array('image', 'imageintro', 'imagefull', 'allimagesasc', 'allimagesdesc');

		if (in_array($head_type, $image_types)) {

			$bgcolor = trim($params->get('imagebgcolor', '')) != '' ? trim($params->get('imagebgcolor')) : 'transparent';
			$variables[] = 'bgcolor';

			$pic_shadow_width = $params->get('sh_w_pic', 0);
			$variables[] = 'pic_shadow_width';
			$pic_border_width = $params->get('border_w', 0);
			$variables[] = 'pic_border_width';
			$pic_border_radius = $params->get('border_r_pic', 0);
			$variables[] = 'pic_border_radius';
			$pic_border_color = trim($params->get('border_c_pic', '#FFFFFF'));
			$variables[] = 'pic_border_color';

			$head_width = $head_width - $pic_border_width * 2;
			$head_height = $head_height - $pic_border_width * 2;

			$image = true;
		}
		$variables[] = 'image';

		$filter = $params->get('filter', 'none');
		if (!$params->get('create_thumb', 1)) {
			$filter = $params->get('filter_original', 'none');
		}

		if (strpos($filter, '_css') !== false) {
			$filter = str_replace('_css', '', $filter);
			$variables[] = 'filter';
		}

		// calendar

		$calendar = '';
		if ($head_type == 'calendar') {

			$color = trim($params->get('c1', '#3D3D3D'));
			$variables[] = 'color';
			$bgcolor1 = trim($params->get('bgc11', '')) != '' ? trim($params->get('bgc11')) : 'transparent';
			$variables[] = 'bgcolor1';
			$bgcolor2 = trim($params->get('bgc12', '')) != '' ? trim($params->get('bgc12')) : 'transparent';
			$variables[] = 'bgcolor2';

			$color_top = trim($params->get('c2', '#494949'));
			$variables[] = 'color_top';
			$bgcolor1_top = trim($params->get('bgc21', '')) != '' ? trim($params->get('bgc21')) : 'transparent';
			$variables[] = 'bgcolor1_top';
			$bgcolor2_top = trim($params->get('bgc22', '')) != '' ? trim($params->get('bgc22')) : 'transparent';
			$variables[] = 'bgcolor2_top';

			$color_bottom = trim($params->get('c3', '#494949'));
			$variables[] = 'color_bottom';
			$bgcolor1_bottom = trim($params->get('bgc31', '')) != '' ? trim($params->get('bgc31')) : 'transparent';
			$variables[] = 'bgcolor1_bottom';
			$bgcolor2_bottom = trim($params->get('bgc32', '')) != '' ? trim($params->get('bgc32')) : 'transparent';
			$variables[] = 'bgcolor2_bottom';

			$cal_shadow_width = $params->get('sh_w', 0);
			$variables[] = 'cal_shadow_width';
			$cal_border_width = $params->get('border_w_cal', 0);
			$variables[] = 'cal_border_width';
			$cal_border_radius = $params->get('border_r', 0);
			$variables[] = 'cal_border_radius';
			$cal_border_color = trim($params->get('border_c_cal', '#000000'));
			$variables[] = 'cal_border_color';

			$font_ref_cal = $params->get('f_r', 14);
			$variables[] = 'font_ref_cal';
			$font_ratio = 1; // floatval($head_height) / 80; // 1em base for a height of 80px
			$variables[] = 'font_ratio';

			$calendar = $params->get('cal_style', 'original');
		}
		$variables[] = 'calendar';

		// icon

		$icon = false;
		$variables[] = 'icon';

		// head width and height

		$variables[] = 'head_width';
		$variables[] = 'head_height';

		// animation and pagination

		$animation = $params->get('anim', '');
		$pagination = $params->get('pagination', '');
		if (!empty($pagination) && empty($animation)) { // pagination only
			$animation = 'justpagination';
		}

		$variables[] = 'animation';

		if (!empty($animation)) {

			$symbols = false;
			$arrows = false;
			$pages = false;
			switch ($params->get('pagination')) {
				case 'p': $pages = true; break;
				case 's': $symbols = true; break;
				case 'pn': $arrows = true; break;
				case 'ppn': $arrows = true; $pages = true; break;
				case 'psn': $arrows = true; $symbols = true; break;
			}
			$variables[] = 'symbols';
			$variables[] = 'arrows';
			$variables[] = 'pages';

			$pagination_align = $params->get('pagination_align', 'center');
			$variables[] = 'pagination_align';
			$pagination_position = $params->get('pagination_pos', 'below');
			$variables[] = 'pagination_position';
			$pagination_specific_size = $params->get('pagination_specific_size', 1);
			$variables[] = 'pagination_specific_size';
			$pagination_offset = $params->get('pagination_offset', 0);
			$variables[] = 'pagination_offset';
			$pagination_style = $params->get('pagination_style', '');
			$variables[] = 'pagination_style';
		}

		// set all necessary parameters
		$this->params = compact($variables);
	}

	protected function getBuffer()
	{
		// get all necessary parameters
		extract($this->params);

// 		if (function_exists('ob_gzhandler')) { // TODO not tested
// 			ob_start('ob_gzhandler');
// 		} else {
			ob_start();
//		}

		// set the header
		$this->sendHttpHeaders('css');

		include 'styles/style.css.php';
		include 'styles/overall/'.$overall.'/style.css.php';
		if ($calendar) {
			include 'styles/calendar/'.$calendar.'/style.css.php';
		}
		if ($animation) {
			include 'animations/'.$animation.'/style.css.php';
		}

		// image CSS filters

		if (isset($filter)) {
			switch($filter) {
				case 'sepia': echo $suffix . ' .newshead .picture img { -webkit-filter: sepia(100%); filter: sepia(100%); }'; break;
				case 'grayscale': echo $suffix . ' .newshead .picture img { -webkit-filter: grayscale(100%); filter: grayscale(100%); }'; break;
				case 'negate': echo $suffix . ' .newshead .picture img { -webkit-filter: invert(100%); filter: invert(100%); }';
			}
		}

		return $this->compress(ob_get_clean());
	}

}

class LNE_JSAnimationFileCache extends SYWHeaderFilesCache
{
	public function __construct($extension, $params = null)
	{
		parent::__construct($extension, $params);

		$this->extension = $extension;

		$variables = array();

		$suffix = $params->get('suffix');
		$variables[] = 'suffix';

		$css_prefix = '#lnee_'.$suffix;
		$variables[] = 'css_prefix';

		$jQuery_var = 'jQuery';
		$variables[] = 'jQuery_var';

		$show_errors = $params->get('show_errors', 0);
		if ($params->get('site_mode', 'adv') == 'dev') {
			$show_errors = 1;
		} else if ($params->get('site_mode', 'adv') == 'prod') {
			$show_errors = 0;
		}
		$variables[] = 'show_errors';

		$bootstrap_version = $params->get('bootstrap_version', 2);
		$variables[] = 'bootstrap_version';

		$animation = $params->get('anim', '');
		$pagination = $params->get('pagination', '');
		if (!empty($pagination) && empty($animation)) { // pagination only
			$animation = 'justpagination';
		}
		$variables[] = 'animation';

		// general parameters

		$horizontal = ($params->get('align', 'v') === 'h') ? true : false;
		$variables[] = 'horizontal';

		$item_width = trim($params->get('item_w', 100));
		$item_width_unit = $params->get('item_w_u', 'percent');

		if ($item_width_unit == 'percent') {
			$item_width_unit = '%';
		}

		$variables[] = 'item_width_unit';

		if ($item_width_unit == '%') {
			if ($item_width <= 0 || $item_width > 100) {
				$item_width = 100;
			}
		} else {
			if ($item_width < 0) {
				$item_width = 0;
			}
		}

		$variables[] = 'item_width';

		$margin_in_perc = 0;
		if ($item_width_unit == '%' && $item_width > 0 && $item_width < 100) {
			$news_per_row = (int)(100 / $item_width);
			$left_for_margins = 100 - ($news_per_row * $item_width);
			$margin_in_perc = $left_for_margins / ($news_per_row * 2);
		}
		$variables[] = 'margin_in_perc';

		$min_width = trim($params->get('min_item_w', '')); // px
		$variables[] = 'min_width';

		$max_width = trim($params->get('max_item_w', ''));
		$variables[] = 'max_width';

		$space_between_items = $params->get('item_spacebetween', '0');
		$variables[] = 'space_between_items';

		$items_height = trim($params->get('items_h', ''));
		$variables[] = 'items_height';
		$items_width = trim($params->get('items_w', ''));
		$variables[] = 'items_width';

		// animation parameters

		$direction = 'left';
		if (!$horizontal) {
			$direction = 'up';
		}
		switch ($params->get('dir', 't')) {
			case 'l' :
				$direction = 'left';
				if (!$horizontal) {
					$direction = 'up';
				}
				break;
			case 'r' :
				$direction = 'right';
				if (!$horizontal) {
					$direction = 'down';
				}
				break;
			case 't' :
				$direction = 'up';
				if ($horizontal) {
					$direction = 'left';
				}
				break;
			case 'b' :
				$direction = 'down';
				if ($horizontal) {
					$direction = 'right';
				}
				break;
		}
		$variables[] = 'direction';

		$auto = $params->get('auto', 1);
		$variables[] = 'auto';

		$speed = $params->get('speed', 1000);
		$variables[] = 'speed';

		$interval = $params->get('interval', 3000);
		$variables[] = 'interval';

		$visibleatonce = $params->get('visible_items', 1);
		$variables[] = 'visibleatonce';

		$moveatonce = ($params->get('move', 'all') === 'all') ? $visibleatonce : '1';
		$variables[] = 'moveatonce';

		$num_links = $params->get('num_links', 5);
		$variables[] = 'num_links';

		$prev_type = $params->get('prev_type', '');
		$prev_label = ($prev_type == 'prev') ? Text::_('JPREV') : ($prev_type == 'label' ? trim($params->get('label_prev', '')) : '');
		$variables[] = 'prev_label';

		$next_type = $params->get('next_type', '');
		$next_label = ($next_type == 'next') ? Text::_('JNEXT') : ($next_type == 'label' ? trim($params->get('label_next', '')) : '');
		$variables[] = 'next_label';

		$symbols = false;
		$arrows = false;
		$pages = false;
		switch ($params->get('pagination')) {
		    case 'p': $pages = true; break;
		    case 's': $symbols = true; break;
		    case 'pn': $arrows = true; break;
		    case 'ppn': $arrows = true; $pages = true; break;
		    case 'psn': $arrows = true; $symbols = true; break;
		}
		$variables[] = 'symbols';
		$variables[] = 'arrows';
		$variables[] = 'pages';

		$pagination_position = $params->get('pagination_pos', 'below');
		$variables[] = 'pagination_position';

		$pagination_style = $params->get('pagination_style', '');
		$variables[] = 'pagination_style';

		$pagination_size = '';
		if ($pagination_style && $bootstrap_version > 0) { // Bootstrap is selected
		    $pagination_size = SYWUtilities::getBootstrapProperty('pagination-'.$params->get('pagination_size', ''), $bootstrap_version);
		}
		$variables[] = 'pagination_size';

		$pagination_align = '';
		if ($pagination_style && $bootstrap_version > 0) { // Bootstrap is selected
		    $pagination_align = SYWUtilities::getBootstrapProperty('pagination-'.$params->get('pagination_align', 'center'), $bootstrap_version);
		}
		$variables[] = 'pagination_align';

		// set all necessary parameters
		$this->params = compact($variables);
	}

	public function getBuffer()
	{
		// get all necessary parameters
		extract($this->params);

// 		if (function_exists('ob_gzhandler')) { // not tested
// 			ob_start('ob_gzhandler');
// 		} else {
 			ob_start();
// 		}

		// set the header
		$this->sendHttpHeaders('js');

		if (!empty($animation)) {
			include 'animations/'.$animation.'/'.$animation.'.js.php';
		}

		return $this->compress(ob_get_clean(), false);
	}

}