Server : LiteSpeed System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 User : alsaif ( 1057) PHP Version : 7.4.33 Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/alsaif/public_html/plugins/system/nrframework/NRFramework/Assignments/ |
<?php
/**
* @author Tassos.gr <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2018 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
namespace NRFramework\Assignments;
defined('_JEXEC') or die;
use NRFramework\Assignments\DateTimeBase;
class Day extends DateTimeBase
{
/**
* Check current weekday
*
* @return bool
*/
public function pass()
{
if (is_array($this->selection) && !empty($this->selection))
{
// convert selection values to lowercase
$this->selection = array_map("strtolower", $this->selection);
// convert 'weekdays' and 'weekend' values to day ids
foreach ($this->selection as $d)
{
if (preg_match('/^weekdays?$/', trim($d)))
{
$this->selection = array_merge($this->selection, range(1, 5));
continue;
}
if ($d === 'weekend')
{
$this->selection = array_merge($this->selection, [6, 7]);
}
}
$this->selection = array_unique($this->selection);
// 'N' -> week day
// 'l' -> fulltext week day
// 'D' -> Abbreviated day name (Mon to Sun)
// http://php.net/manual/en/function.date.php
$today = $this->date->format('N');
$todayText = strtolower($this->date->format('l'));
$todayTextAbbrv = strtolower($this->date->format('D'));
if (in_array($today, $this->selection) ||
in_array($todayText, $this->selection) ||
in_array($todayTextAbbrv, $this->selection))
{
return true;
}
}
return false;
}
/**
* Returns the assignment's value
*
* @return string Name of the current day
*/
public function value()
{
return $this->date->format('l');
}
}