HEX
Server: Apache
System: Linux webm010.cluster103.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: iestorre (46869)
PHP: 8.0.30
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/iestorre/www/modules/mod_smartcountdown/tmpl/default.php
<?php
/**
 * @package Module Smart Countdown for Joomla! 1.7 - 2.5
 * @version 2.4.2: default.php
 * @author Alex Polonski
 * @copyright (C) 2012 - Alex Polonski
 * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
**/
// no direct access
defined('_JEXEC') or die;

// disable browser cache. Workaround for Joomla 2.5 issue: pressing browser back button
// bypasses the server code and leads to incorrect counter values
JResponse::setHeader('Cache-Control', 'no-cache, max-age=0, must-revalidate, no-store', true);

// get ids suffix (used to avoid elements ids conflicts
// when more than one countdown on the same page
$ids_suffix = '_'.$params->get('module_id', '');

require_once(JPATH_ROOT.'/modules/mod_smartcountdown/helpers/html/smartcdpro.php');
require_once(JPATH_ROOT.'/modules/mod_smartcountdown/helpers/helper.php');

$values = str_split(strrev(
		str_pad($countdown['diff_php']['days'], $params->get('left_pad_days', 0), '0', STR_PAD_LEFT).
		$countdown['diff_php']['hours'].
		$countdown['diff_php']['minutes'].
		$countdown['diff_php']['seconds']
));

$mode = $params->get('countdown_mode', 'down');

$displayAll = !$layoutConfig['hide_zero_fields'];
$displaySeconds = $layoutConfig['display_seconds'];
$labelTypes = $layoutConfig['label_types'];

$assets = array(
	'days' => $displayAll || $countdown['diff_php']['days'] != 0,
	'hours' => $displayAll || ($countdown['diff_php']['days'] + $countdown['diff_php']['hours'] != 0),
	'minutes' => $displayAll || ($countdown['diff_php']['days'] + $countdown['diff_php']['hours'] + $countdown['diff_php']['minutes'] != 0),
	'seconds' => $displaySeconds || ($countdown['diff_php']['days'] + $countdown['diff_php']['hours'] + $countdown['diff_php']['minutes'] == 0)
);

// *** new feature ***
$hide_counter_class = ($mode == 'up' && $params->get('hidden_countup', 1) ? ' hidden-counter' : '');

// special option: show days only, recreate $assets array
if($params->get('compact_view', 0) == 1) {
	if($countdown['diff_php']['days'] > 0) {
		$visible = 'days';
	} elseif($countdown['diff_php']['hours'] > 0) {
		$visible = 'hours';
	} elseif($countdown['diff_php']['minutes'] > 0) {
		$visible = 'minutes';
	} else {
		$visible = 'seconds';
	}
	foreach($assets as $asset => $display) {
		$assets[$asset] = ($asset == $visible);
	}
}

// render module trigger javascript in module position, not in main document
// this is a workaround for caching software that supports "exclude position"
// settings. Rendering the script below directly in module position (not at the
// top of the page) ensures that it will be called on each page reload.
$js_library = $params->get('js_library', '');
$events_queue = $params->get('events_queue_json', '[]');
$options = $params->get('options_json', '{}');

if(empty($js_library)) { ?>
	<script>
		if(typeof(jQuery) != "undefined") {
			jQuery(document).ready(function() {
				scdpCounters.add(<?php echo $module->id; ?>, <?php echo $events_queue; ?>, <?php echo $options; ?>);
			});
		} else {
			window.addEvent("domready", function() {
				scdpCounters.add(<?php echo $module->id; ?>, <?php echo $events_queue; ?>, <?php echo $options; ?>);
			});
		}
	</script> <?php
} elseif($js_library == 1) { // mootools ?>
	<script>
			window.addEvent("domready", function() {
				scdpCounters.add(<?php echo $module->id; ?>, <?php echo $events_queue; ?>, <?php echo $options; ?>);
			});
	</script> <?php
} elseif($js_library == 2) { // jQuery ?>
	<script>
			jQuery(document).ready(function() {
				scdpCounters.add(<?php echo $module->id; ?>, <?php echo $events_queue; ?>, <?php echo $options; ?>);
			});
	</script> <?php
}
// end caching workaround ?>

<div id="scdpro<?php echo $ids_suffix; ?>" class="clearfix scdp-container<?php echo $moduleclass_sfx; ?>"<?php echo $layoutConfig['module_style']; ?>>
	<div<?php echo $layoutConfig['wrapper_class']; ?>>
		<?php if($layoutConfig['text_before_counter']): ?>
			<div id="scdpro_text<?php echo $ids_suffix; ?>" class="action-scdp-event-text scdp-text-<?php echo $layoutConfig['text_layout_class']; ?>"<?php echo $layoutConfig['event_text_style']; ?>>
				<?php echo $countdown['text']; ?>
			</div>
			<?php if($layoutConfig['text_layout_class'] == '-vert') : ?>
				<div class="clear"></div>
			<?php endif; ?>
		<?php endif; ?>	
		
		<div class="clearfix action-counter scdp-counter-<?php echo $layoutConfig['text_layout_class']; ?><?php echo $hide_counter_class; ?>"<?php echo $layoutConfig['counter_style']; ?>>
			
			<?php foreach($assets as $name => $display): ?>
				<?php $unit_style = $layoutConfig['units_style'].(!$display ? 'display:none;' : ''); ?>
				<?php $unit_style = $unit_style ? ' style="'.$unit_style.'"' : ''; ?>
				<?php
					$isImage = false;
					if($labelTypes[$name] == '&') {
						$label_text = $layoutConfig['separator_image'];
						$isImage = true;
					}
					elseif($labelTypes[$name] == '%') {
						$label_text = null;
					}
					else {
						$label_text = $labelTypes[$name];
					}
				?>
				
				<div id="scdpro_<?php echo $name.$ids_suffix; ?>" class="scdp-unit-<?php echo $layoutConfig['counter_layout_class']; ?>"<?php echo $unit_style; ?>>
				<?php $number = modSmartCountdownHelper::getNumber($name, $values); ?>
				
				<?php
					// use special style (days_number_style) for days unit, otherwise general style (numbers_style)
					$number_style = $name == 'days' ? $layoutConfig['days_number_style'] : $layoutConfig['numbers_style'];
				?>
				<?php if($layoutConfig['labels_before_numbers']): ?>
				
					<div class="scdp-label scdp-label-<?php echo $layoutConfig['units_layout_class']; ?>"<?php echo $layoutConfig['labels_style']; ?>>
					<?php echo JHtml::_('SmartCDPro.label', $name, $number['value'], $label_text, $isImage); ?>
					</div>
					<div class="scdp-number scdp-number-<?php echo $layoutConfig['units_layout_class']; ?>"<?php echo $number_style; ?>>
					<?php echo JHtml::_('SmartCDPro.number', $number['digits'], $digitsConfig, $ids_suffix, $mode); ?>
					</div>
				<?php else: ?>
					<div class="scdp-number scdp-number-<?php echo $layoutConfig['units_layout_class']; ?>"<?php echo $number_style; ?>>
					<?php echo JHtml::_('SmartCDPro.number', $number['digits'], $digitsConfig, $ids_suffix, $mode); ?>
					</div>
					<div class="scdp-label scdp-label-<?php echo $layoutConfig['units_layout_class']; ?>"<?php echo $layoutConfig['labels_style']; ?>>
					<?php echo JHtml::_('SmartCDPro.label', $name, $number['value'], $label_text, $isImage); ?>
					</div>
				<?php endif;?>
				</div>
			<?php endforeach; ?>
		</div>
		
		<?php if(!$layoutConfig['text_before_counter']): ?>
			<?php if($layoutConfig['text_layout_class'] == '-vert') : ?>
				<div class="clear"></div>
			<?php endif; ?>
			<div id="scdpro_text<?php echo $ids_suffix; ?>" class="action-scdp-event-text scdp-text-<?php echo $layoutConfig['text_layout_class']; ?>"<?php echo $layoutConfig['event_text_style']; ?>>
				<?php echo $countdown['text']; ?>
			</div>
		<?php else : ?>
			<?php if($layoutConfig['text_layout_class'] == '-vert') : ?>
				<div class="clear"></div>
			<?php endif; ?>
			<div class="action-scdp-event-text"<?php echo $layoutConfig['text_after_style']; ?>>
				<?php echo $params->get('text_after', ''); ?>
			</div>
		<?php endif; ?>
		
		<div class="clear scdp-deadline-message"<?php echo $layoutConfig['deadline_message_style']; ?>>
			<?php if($mode == 'up' && $params->get('hidden_countup', 0)) : // *** new feature test *** ?>
				<?php echo $params->get('deadline_message', ''); ?>
			<?php endif; ?>
		</div>
	</div>
</div>
<div class="clear"></div>