1
0
www.mikescher.com/www/protected/components/ProgramHelper.php

102 lines
2.1 KiB
PHP
Raw Normal View History

2014-05-28 09:35:46 +02:00
<?php
/**
* Class ProgramHelper
*/
class ProgramHelper {
2014-05-28 09:35:46 +02:00
/**
* @param bool $doDelimiter
* @return Program[]
*/
2014-05-28 09:35:46 +02:00
public static function GetHighlightedProgList($doDelimiter)
{
$dropDownModels = array();
$criteria = new CDbCriteria;
$criteria->order = "add_date DESC";
$criteria->condition = "visible=1 AND enabled=1";
$criteria->limit = 3;
foreach (Program::model()->findAll($criteria) as $row) {
2014-05-28 09:35:46 +02:00
$dropDownModels[] = $row;
}
if ($doDelimiter)
{
$dropDownModels[] = null;
}
$criteria = new CDbCriteria;
$criteria->order = "add_date DESC";
$criteria->limit = 8;
2014-05-28 17:19:57 +02:00
$criteria->condition = "Sterne >= 4 AND visible=1 AND enabled=1";
foreach (Program::model()->findAll($criteria) as $row) {
2014-06-02 19:31:14 +02:00
$contains = false;
foreach($dropDownModels as $modelElem)
if ($modelElem != null && $modelElem->ID == $row->ID)
2014-06-02 19:31:14 +02:00
$contains = true;
if (! $contains)
$dropDownModels[] = $row;
2014-05-28 09:35:46 +02:00
}
return $dropDownModels;
}
/**
* @param DateTime $date
* @return Program
*/
public static function GetRecentProg($date)
2014-05-28 09:35:46 +02:00
{
$criteria = new CDbCriteria;
$criteria->order = "add_date DESC";
$criteria->condition = "DATEDIFF('" . $date->format('Y-m-d') . "', add_date) <= 14 AND visible=1 AND enabled=1";
2014-05-28 09:35:46 +02:00
$criteria->limit = 1;
return Program::model()->find($criteria);
2014-05-28 09:35:46 +02:00
}
/**
* @param string $date
* @return Program
*/
public static function GetDailyProg($date = 'now')
2014-05-28 09:35:46 +02:00
{
if ($date == 'now') {
$date = new DateTime();
}
$recent = self::GetRecentProg($date);
2014-05-28 09:35:46 +02:00
if ($recent != null)
return $recent;
$toparray = self::GetHighlightedProgList(false);
$msrand = new SeededRandom();
$msrand->seedWithDailySeed($date);
2014-05-28 09:35:46 +02:00
$result = $msrand->getRandomElement($toparray);
return $result;
}
/**
* @return array
*/
2014-05-28 09:35:46 +02:00
public static function GetProgDropDownList()
{
$progDropDown = array();
$dropDownModels = self::GetHighlightedProgList(true);
foreach ($dropDownModels as $row) {
if (is_null($row))
$progDropDown[] = MsHtml::menuDivider();
2014-05-28 09:35:46 +02:00
else
$progDropDown[] = array('label' => $row->Name, 'url' => $row->getLink());
2014-05-28 09:35:46 +02:00
}
return $progDropDown;
}
}