/**
  * main action
  */
 public function mainAction()
 {
     $node_id = $this->GET['id'];
     require_once 'models/common/common_print_article.php';
     $PrintArticle = new common_print_article();
     if (is_numeric($node_id)) {
         //this return as well the file detail from filesystem
         //$files = $File->listFiles($node_id);
         $main_articles = $PrintArticle->listing("node_id={$node_id} AND type = 'article'", "priority DESC, title ASC");
         $abstracts = $PrintArticle->listing("node_id={$node_id} AND type = 'abstract'", "priority DESC, title ASC");
         $reviews = $PrintArticle->listing("node_id={$node_id} AND type = 'review'", "priority DESC, title ASC");
     }
     foreach ($main_articles as $ma) {
         $ma['src'] = substr($ma['src'], 4);
         $ma['title'] = strtoupper($ma['title']);
         //$ma['title'] = recode_string("utf-8..flat", trim($ma['title']));
         $this->tpl->assign('ARTICLE', $ma);
         $this->tpl->parse('content.main_articles.item');
     }
     if (count($main_articles) == 0) {
         $this->tpl->parse('content.main_articles.noitem');
     }
     $this->tpl->parse('content.main_articles');
     foreach ($abstracts as $a) {
         $a['src'] = substr($a['src'], 4);
         $a['other'] = unserialize($a['other']);
         $this->tpl->assign('ARTICLE', $a);
         $this->tpl->parse('content.abstracts.item');
     }
     if (count($abstracts) == 0) {
         $this->tpl->parse('content.abstracts.noitem');
     }
     $this->tpl->parse('content.abstracts');
     foreach ($reviews as $r) {
         $r['src'] = substr($r['src'], 4);
         $r['other'] = unserialize($r['other']);
         $this->tpl->assign('REVIEW', $r);
         $this->tpl->parse('content.reviews.item');
     }
     if (count($reviews) == 0) {
         $this->tpl->parse('content.reviews.noitem');
     }
     $this->tpl->parse('content.reviews');
     $this->tpl->assign('NODE', $node_data);
     if ($node_data['display_title']) {
         $this->tpl->parse('content.title');
     }
     return true;
 }
 /**
  * post action
  */
 function post()
 {
     parent::post();
     $node_id = $this->GET['id'];
     require_once 'models/common/common_print_article.php';
     $File = new common_print_article();
     if ($_POST['add'] == 'add') {
         $_POST['file']['other'] = serialize($_POST['file']['other']);
         if ($File->insertFile($_POST['file'])) {
             msg('File inserted');
         }
     }
     if ($_POST['delete_file'] != '') {
         msg("Not implemented", "error");
         //can't use File->deleteFile(file_name),
         //use File->unlink(id) instead
         //if ($File->deleteFile($_POST['delete_file'])) $_POST['upload'] = 1;
     }
     if (is_numeric($_POST['update'])) {
         //$File->detail($_POST['update']);
         $_POST['file']['other'] = serialize($_POST['file']['other']);
         if ($File->update($_POST['file'])) {
             msg('updated');
         }
     }
     $files = $File->listFiles($node_id);
     foreach ($files as $f) {
         $this->tpl->assign('FILE', $f);
         if ($this->GET['type'] == 'RTE') {
             $this->tpl->parse("content.item.RTE_select");
         }
         $this->tpl->parse("content.item");
     }
     //print_r($_POST); exit;
     if ($_POST['upload'] && !$_POST['edit_file']) {
         $_POST['action'] = 'add';
     } else {
         if ($_POST['edit_file'] || is_numeric($_POST['update'])) {
             $_POST['action'] = 'edit';
         }
     }
     switch ($_POST['action']) {
         case 'edit':
         case 'update':
             $detail = $File->detail($_POST['edit_file']);
             if (is_array($detail)) {
                 $detail['other'] = unserialize($detail['other']);
                 if (!is_array($detail['other'])) {
                     $detail['other'] = 0;
                 }
                 $this->tpl->assign("SELECTED_{$detail['type']}", 'selected="selected"');
                 $this->tpl->assign('FILE', $detail);
                 $this->tpl->parse("content.file_edit");
             } else {
                 msg("Cant get info of {$_POST['edit_file']} from DB", 'error');
             }
             break;
         case 'add':
         default:
             if ($_POST['upload'] == 'new') {
                 $_POST['file']['priority'] = 0;
                 $_POST['file']['src'] = '';
             }
             $this->tpl->assign('FILE', $_POST['file']);
             $this->tpl->parse("content.file_upload");
             break;
     }
 }