You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
5.0 KiB
186 lines
5.0 KiB
<?php |
|
|
|
/** |
|
* Класс работы с календарями событий - модуля Unicalendar |
|
* |
|
* @autor Repellent |
|
* @package AVE.cms |
|
* @subpackage module_unicalendar |
|
* @filesource |
|
*/ |
|
|
|
class Unicalendar |
|
{ |
|
/** |
|
* ФУНКЦИИ ПУБЛИЧНОЙ ЧАСТИ |
|
*/ |
|
|
|
/** |
|
* Вывод календаря событий |
|
* @param string $tpl_dir - путь к папке с шаблонами модуля |
|
* @param int $id - идентификатор календаря |
|
*/ |
|
|
|
function unicalendarShow($tpl_dir, $id) |
|
{ |
|
global $AVE_DB, $AVE_Template; |
|
$sql = $AVE_DB->Query(" |
|
SELECT * |
|
FROM " . PREFIX . "_module_unicalendar |
|
WHERE id = '" . $id . "' |
|
"); |
|
$unicalendars = array(); |
|
while ($row = $sql->FetchAssocArray()) |
|
{ |
|
array_push($unicalendars, $row); |
|
} |
|
foreach ( $unicalendars as $k=>$v ) |
|
{ |
|
$uevents = $v['uca_events']; |
|
$urubric_id = $v['uca_rubric_id']; |
|
$udoc_id = $v['uca_doc_id']; |
|
} |
|
// Если выбрали вывести все документы из заданной рубрики - документы с Id=1 и Id=2 - выводиться не будут! |
|
if ($uevents !='' && $uevents == '1'){ |
|
$sql = $AVE_DB->Query(" |
|
SELECT Id, document_alias, document_title, document_published, document_meta_description |
|
FROM " . PREFIX . "_documents |
|
WHERE rubric_id = '" . $urubric_id . "' AND Id > 2 |
|
"); |
|
$results = array(); |
|
while ($row = $sql->FetchAssocArray()) |
|
{ |
|
array_push($results, $row); |
|
} |
|
|
|
} |
|
|
|
// Если выбрали вывести выбранные документы из заданной рубрики |
|
if ($uevents !='' && $uevents == '2'){ |
|
$sql = $AVE_DB->Query(" |
|
SELECT Id, document_alias, document_title, document_published, document_meta_description |
|
FROM " . PREFIX . "_documents |
|
WHERE rubric_id = '" . $urubric_id . "' AND Id > 2 AND $udoc_id |
|
"); |
|
$results = array(); |
|
while ($row = $sql->FetchAssocArray()) |
|
{ |
|
array_push($results, $row); |
|
} |
|
|
|
} |
|
$AVE_Template->assign('unicalendars', $unicalendars); |
|
$AVE_Template->assign('results', $results); |
|
$AVE_Template->display($tpl_dir . 'unicalendar.tpl'); |
|
} |
|
|
|
/** |
|
* ФУНКЦИИ АДМИНИСТРАТИВНОЙ ЧАСТИ |
|
*/ |
|
|
|
|
|
/** |
|
* Вывод списка календарей |
|
* |
|
* @param string $tpl_dir - путь к папке с шаблонами модуля |
|
*/ |
|
function unicalendarList($tpl_dir) |
|
{ |
|
global $AVE_DB, $AVE_Template; |
|
|
|
$unicalendars = array(); |
|
|
|
$limit = 20; |
|
$start = get_current_page() * $limit - $limit; |
|
|
|
$sql = $AVE_DB->Query(" |
|
SELECT SQL_CALC_FOUND_ROWS |
|
u.*, |
|
COUNT(u.id) AS uca_count |
|
FROM |
|
" . PREFIX . "_module_unicalendar AS u |
|
GROUP BY u.id |
|
ORDER BY u.id ASC |
|
LIMIT " . $start . "," . $limit . " |
|
"); |
|
|
|
$sql_num = $AVE_DB->Query("SELECT FOUND_ROWS()"); |
|
$num = $sql_num->GetCell(); |
|
|
|
while($row = $sql->FetchAssocArray()) |
|
{ |
|
array_push($unicalendars, $row); |
|
} |
|
|
|
if ($num > $limit) |
|
{ |
|
$page_nav = "<li><a href=\"index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=1&page={s}&cp=" . SESSION . "\">{t}</a></li>"; |
|
$page_nav = get_pagination(ceil($num / $limit), 'page', $page_nav); |
|
} |
|
else |
|
{ |
|
$page_nav = ''; |
|
} |
|
|
|
$AVE_Template->assign('page_nav', $page_nav); |
|
|
|
if (!empty($_REQUEST['alert'])) |
|
{ |
|
$AVE_Template->assign('alert', htmlspecialchars(stripslashes($_REQUEST['alert']))); |
|
} |
|
$AVE_Template->assign('unicalendars', $unicalendars); |
|
$AVE_Template->assign('formaction', 'index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=new&sub=save&cp=' . SESSION); |
|
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'admin_unicalendar_list.tpl')); |
|
} |
|
|
|
/** |
|
* Создание календаря |
|
* |
|
*/ |
|
function unicalendarNew() |
|
{ |
|
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] == 'save') |
|
{ |
|
global $AVE_DB; |
|
$cont = true; |
|
$alert = ''; |
|
if (empty($_POST['uca_title'])) |
|
{ |
|
$alert = '&alert=empty_uca_title'; |
|
$cont = false; |
|
} |
|
if ($cont) |
|
{ |
|
$AVE_DB->Query(" |
|
INSERT |
|
INTO " . PREFIX . "_module_unicalendar |
|
SET |
|
id = '', |
|
uca_title = '" . $_POST['uca_title'] . "', |
|
uca_events = '" . $_POST['uca_events'] . "', |
|
uca_rubric_id = '" . $_POST['uca_rubric_id'] . "', |
|
uca_doc_id = '" . $_POST['uca_doc_id'] . "' |
|
"); |
|
} |
|
header('Location:index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=1'. $alert); |
|
exit; |
|
} |
|
} |
|
|
|
/** |
|
* Удаление календаря |
|
* |
|
* @param int $unicalendar_id - идентификатор календаря |
|
*/ |
|
function unicalendarDelete($unicalendar_id) |
|
{ |
|
global $AVE_DB; |
|
$AVE_DB->Query("DELETE FROM " . PREFIX . "_module_unicalendar WHERE id = '" . $unicalendar_id . "'"); |
|
header('Location:index.php?do=modules&action=modedit&mod=unicalendar&moduleaction=1&cp=' . SESSION); |
|
exit; |
|
} |
|
|
|
} |
|
|
|
|
|
?>
|