| Server IP : 54.36.91.62 / Your IP : 216.73.217.111 Web Server : Apache System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : coopiak ( 151928) PHP Version : 8.3.23 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/coopiak/amisdesseniors-fr/montpellier/libraries/src/Button/ |
Upload File : |
<?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\CMS\Button;
use Joomla\CMS\Date\Date;
use Joomla\CMS\Factory;
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Language\Text;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* The FeaturedButton class.
*
* @since 4.0.0
*/
class FeaturedButton extends ActionButton
{
/**
* Configure this object.
*
* @return void
*
* @since 4.0.0
*/
protected function preprocess()
{
$this->addState(
0,
'featured',
'icon-unfeatured',
Text::_('JGLOBAL_TOGGLE_FEATURED'),
['tip_title' => Text::_('JUNFEATURED')]
);
$this->addState(
1,
'unfeatured',
'icon-color-featured icon-star',
Text::_('JGLOBAL_TOGGLE_FEATURED'),
['tip_title' => Text::_('JFEATURED')]
);
}
/**
* Render action button by item value.
*
* @param integer|null $value Current value of this item.
* @param integer|null $row The row number of this item.
* @param array $options The options to override group options.
* @param string|Date $featuredUp The date which item featured up.
* @param string|Date $featuredDown The date which item featured down.
*
* @return string Rendered HTML.
*
* @since 4.0.0
*/
public function render(?int $value = null, ?int $row = null, array $options = [], $featuredUp = null, $featuredDown = null): string
{
if ($featuredUp || $featuredDown) {
$bakState = $this->getState($value);
$default = $this->getState($value) ?? $this->unknownState;
$nowDate = Factory::getDate()->toUnix();
$tz = Factory::getUser()->getTimezone();
if (!\is_null($featuredUp)) {
$featuredUp = Factory::getDate($featuredUp, 'UTC')->setTimezone($tz);
}
if (!\is_null($featuredDown)) {
$featuredDown = Factory::getDate($featuredDown, 'UTC')->setTimezone($tz);
}
// Add tips and special titles
// Create special titles for featured items
if ($value === 1) {
// Create tip text, only we have featured up or down settings
$tips = [];
if ($featuredUp) {
$tips[] = Text::sprintf('JLIB_HTML_FEATURED_STARTED', HTMLHelper::_('date', $featuredUp, Text::_('DATE_FORMAT_LC5'), 'UTC'));
}
if ($featuredDown) {
$tips[] = Text::sprintf('JLIB_HTML_FEATURED_FINISHED', HTMLHelper::_('date', $featuredDown, Text::_('DATE_FORMAT_LC5'), 'UTC'));
}
$tip = empty($tips) ? false : implode('<br>', $tips);
$default['title'] = $tip;
$options['tip_title'] = Text::_('JLIB_HTML_FEATURED_ITEM');
if ($featuredUp && $nowDate < $featuredUp->toUnix()) {
$options['tip_title'] = Text::_('JLIB_HTML_FEATURED_PENDING_ITEM');
$default['icon'] = 'pending';
}
if ($featuredDown && $nowDate > $featuredDown->toUnix()) {
$options['tip_title'] = Text::_('JLIB_HTML_FEATURED_EXPIRED_ITEM');
$default['icon'] = 'expired';
}
}
$this->states[$value] = $default;
$html = parent::render($value, $row, $options);
$this->states[$value] = $bakState;
return $html;
}
return parent::render($value, $row, $options);
}
}