Bontiv-Sourceer source code viewer
Root | Help
./bontiv-cms/modules/news/admin.php
<?php
class adm_news extends core_modbase {
   
    function
__construct($adm)
    {
       
$this->template = new template();
       
$this->translator = new translator();
       
$this->translator->load('common');
       
$this->translator->load('admin');
       
$session = new session();
       
$this->acl = &$adm->acl;
               
       
$menu = array(
           
'mgnews' => array(
               
'mnews_new' => '{AP}news/new',
               
'mnews_wait' => '{AP}news/waiting',
               
'mnews_list' => '{AP}news',
            )
        );
       
core_signal::SmpSignal('admin::menu', $menu);
    }
   
    function
PAGE_index() {
       
$sql = new SQL('news');
       
$this->template->assign('edit', core_settings::Get('sitepath') . 'admin/news/edit');
       
$this->template->assign('new', core_settings::Get('sitepath') . 'admin/news/new');
       
$this->template->assign('wait', core_settings::Get('sitepath') . 'admin/news/waiting');

       
$news = $sql->select();
        foreach (
$news as $elmt)
        {
           
$user = new user(intval($elmt->news_author));
           
$this->template->block('news', array(
               
'news_time' => ldate($elmt->news_time),
               
'news_author' => $user->pseudo,
               
'news_state' => $this->translator->get('state_' . $elmt->news_state),
               
'news_title' => $elmt->news_title,
               
'news_id' => $elmt->news_id,
            ));
        }
        return
$this->fetch('adm-list.tpl');
    }
   
    function
PAGE_new(){
        if (
$_SERVER['REQUEST_METHOD'] == 'POST')
        {
            if (
$_POST['title'] == '' || $_POST['data'] == '')
            {
               
$this->assign('message', 'checkerror');
            }
            else
            {
                if (!
in_array($_POST['status'], array('programed', 'active', 'foread', 'unactive')))
                   
$_POST['status'] = 'foread';
                   
                if (
$_POST['sdate'] == '')
                   
$_POST['sdate'] = date('Y-m-d H:i:s');

                if (
$_POST['edate'] == '')
                   
$_POST['edate'] = null;

               
$sql = new SQL ('news');
               
$user = new user();
               
$sql->insert(array(
                   
'news_title' => $_POST['title'],
                   
'news_time' => $_POST['sdate'],
                   
'news_state' => $_POST['status'],
                   
'news_endtime' => $_POST['edate'],
                   
'news_author' => $user->user_id,
                   
'news_content' => $_POST['data'],
                ));
                return
$this->PAGE_index();
            }
        }
        return
$this->fetch('adm-new.tpl');
    }
   
    function
PAGE_edit($newsid)
    {
       
$database = new SQL('news');
       
$news = $database
           
->where(array('news_id' => $newsid))
            ->
select()
            ->
current();

        if (
$_SERVER['REQUEST_METHOD'] == 'POST')
        {
           
$news->news_title = $_POST['title'];
           
$news->news_content = $_POST['content'];

            if (
$_POST['edate'] == '')
               
$news->news_endtime = NULL;
            elseif (
preg_match('`^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$`', $_POST['edate']))
               
$news->news_endtime = $_POST['edate'] . ':00';
               
            if (
$_POST['sdate'] == '')
               
$news->news_time = date('Y-m-d H:i:s');
            elseif (
preg_match('`^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$`', $_POST['sdate']))
               
$news->news_time = $_POST['sdate'] . ':00';

            if (
in_array($_POST['state'], array('active','foread','unactive','programed')))
               
$news->news_state = $_POST['state'];
           
            try {
               
$author = new user($_POST['author']);
               
$news->news_author = $author->GetId();
            } catch (
ArgError $e)
            { }
        }

       
$author = new user(intval($news->news_author));

       
$this->template->assign('news', array(
           
'id' => $news->news_id,
           
'title' => $news->news_title,
           
'time' => substr($news->news_time, 0, 16),
           
'end' => substr($news->news_endtime, 0, 16),
           
'state' => $news->news_state,
           
'content' => $news->news_content,
           
'author' => $author->pseudo,
            ));

        return
$this->fetch('adm-edit.tpl');
    }
}
Presented with Bontiv-Sourceer