Example #1
0
 function menu($menu_selected, $uid = FALSE)
 {
     global $hlpdsk_theme, $name, $prefix, $file;
     $rows = Opentts::menu_values();
     $_BUTTONS = "";
     foreach ($rows as $line) {
         if ($line->file == $menu_selected) {
             $selected = TRUE;
         } else {
             $selected = FALSE;
         }
         $_BUTTONS .= draw_button($line->link, $line->title, $line->image, $selected);
         $_EXTRA_BUTTONS = show_hidden() . draw_extra_button();
     }
     $textfile = "themes/{$hlpdsk_theme}/menu.html";
     #$custom_title=get_cross_value("{$prefix}_modules","custom_title"," where title='$name'");
     $custom_title = $name;
     $text = addslashes(implode("", file($textfile)));
     eval("\$content=\"{$text}\";");
     echo $content;
     return TRUE;
 }
Example #2
0
 function process()
 {
     $this->dbg->add_line("PROCESS. state: " . $this->state->get_state('mode') . ", name:" . $this->data['p']['name'] . ", data:" . $this->data['p']['data']);
     switch ($this->state->get_state('mode')) {
         case 'logout':
             $this->usr->do_logout();
             $this->state->set_state('mode', 'login');
             $this->state->set_state('username', '');
             $this->cmd->add_cmd('topline', '');
             $this->cmd->add_cmd('control', '');
             $this->cmd->add_cmd('main', draw_loginform());
             break;
         case 'newrecord':
             switch ($this->data['p']['name']) {
                 /*	case 'movielist':
                 			$this->state->set_state('mode','movielist');
                 			$this->data['p']['name']='show';
                 			$this->process();
                 			break;*/
                 case 'newrec':
                     $this->dbg->add_line("new record mode processing");
                     $checklist = array('caption', 'genre', 'country', 'director', 'actors', 'story', 'info');
                     $filmdata = array('NULL', $this->usr->user['user_id']);
                     foreach ($checklist as $k) {
                         if (array_key_exists($k, $this->data['p']['data'])) {
                             $filmdata[] = "'" . $this->data['p']['data'][$k] . "'";
                         } else {
                             $filmdata[] = 'empty';
                         }
                     }
                     $filmdata[] = 0;
                     $this->dbg->add_line(join(' $ ', $filmdata));
                     $mlist = new CMovie($this->dbg);
                     if ($mlist->add_new_record($filmdata)) {
                         $this->state->set_state('mode', 'movielist');
                         $this->data['p']['name'] = 'show';
                         $this->process();
                     }
                     //$this->cmd->add_cmd('control', '' );
                     break;
                 case 'show':
                 default:
                     $this->cmd->add_cmd('main', draw_addnewrecord());
                     //$this->dbg->add_line("авторизовано: user id: ".$this->usr->user['user_id']);
                     $this->cmd->add_cmd('topline', draw_topline($this->state->get_state('username')));
                     $btn = array('caption' => 'добавить', 'sender' => 'newrecord', 'data' => 'show');
                     $btn2 = array('caption' => 'показать список', 'sender' => 'movielist', 'data' => 'show');
                     $btn3 = array('caption' => 'показать мой список', 'sender' => 'mymovies', 'data' => 'show');
                     $this->cmd->add_cmd('control', draw_button($btn) . draw_button($btn2) . draw_button($btn3));
                     break;
                     //$this->dbg->add_line("def name");
                     //$this->data['p']['name']='show';
                     //break;
             }
             break;
         case 'mymovies':
             $this->dbg->add_line("my movies");
             switch ($this->data['p']['name']) {
                 case 'moviedel':
                     $mlist = new CMovie($this->dbg);
                     if ($mlist->delete_record($this->data['p']['data'], $this->usr->user['user_id'])) {
                         $this->cmd->add_cmd('main', 'запись удалена', 1);
                         $this->data['p']['name'] = 'show';
                         $this->process();
                     } else {
                         $this->cmd->add_cmd('main', 'ошибка при удалении', 1);
                     }
                     break;
                 case 'show':
                     $this->dbg->add_line("my movies: show");
                     $mlist = new CMovie($this->dbg);
                     $tbl = new CVizuller($this->dbg);
                     if ($mlist->get_list($this->usr->user['user_id'], $tbl)) {
                         //$this->dbg->add_line("test: ".join(" % ", $tbl->data[0]));
                         $template = array('mat_caption' => 'название', 'mat_genre' => 'жанр', 'mat_rate' => 'рейтинг');
                         $actions = array('mat_caption' => array('moviedet', 'mat_id'), 'delete' => array('moviedel', 'mat_id'));
                         $this->cmd->add_cmd('main', $tbl->render_list($template, $actions));
                     }
                     break;
                 default:
                     $this->cmd->add_cmd('topline', draw_topline($this->state->get_state('username')));
                     $btn = array('caption' => 'добавить', 'sender' => 'newrecord', 'data' => 'show');
                     $btn2 = array('caption' => 'показать список', 'sender' => 'movielist', 'data' => 'show');
                     $btn3 = array('caption' => 'показать мой список', 'sender' => 'mymovies', 'data' => 'show');
                     $this->cmd->add_cmd('control', draw_button($btn) . draw_button($btn2) . draw_button($btn3));
                     $this->cmd->add_cmd('navigator', "");
                     //$left=array( 'caption'=>'влево', 'sender'=>'scrollleft','data'=>'');
                     //$right=array( 'caption'=>'вправо', 'sender'=>'scrollright','data'=>'');
                     //$this->cmd->add_cmd('navigator', draw_button($left)."&nbsp;<span id='pagenumber'>".$this->state->get_state('page')."</span>&nbsp;".draw_button($right) );
                     $this->data['p']['name'] = 'show';
                     $this->process();
                     //$this->dbg->add_line("my movies: def");
                     //$this->data['p']['name']='show';
                     //$this->process();
                     break;
             }
             break;
         case 'movielist':
             switch ($this->data['p']['name']) {
                 case 'scrollleft':
                     $page = $this->state->get_state('page') - 1;
                     if ($page < 0) {
                         $page = 0;
                     }
                     $this->state->set_state('page', $page);
                     $this->data['p']['name'] = 'show';
                     $this->process();
                     break;
                 case 'scrollright':
                     $page = $this->state->get_state('page') + 1;
                     $this->state->set_state('page', $page);
                     $this->data['p']['name'] = 'show';
                     $this->process();
                     break;
                 case 'show':
                     $mlist = new CMovie($this->dbg);
                     $tbl = new CVizuller($this->dbg);
                     $range_start = $this->state->get_state('page') * $mlist->get_pagesize();
                     if ($mlist->get_list(NULL, $tbl, $range_start)) {
                         $template = array('mat_caption' => 'название', 'mat_genre' => 'жанр', 'mat_rate' => 'рейтинг');
                         $actions = array('mat_caption' => array('moviedet', 'mat_id'));
                         $this->cmd->add_cmd('main', $tbl->render_list($template, $actions));
                         $this->cmd->add_cmd('pagenumber', $this->state->get_state('page') + 1);
                     } else {
                         $page = $this->state->get_state('page') - 1;
                         if ($page < 0) {
                             $page = 0;
                         }
                         $this->state->set_state('page', $page);
                     }
                     break;
                 default:
                     $this->cmd->add_cmd('topline', draw_topline($this->state->get_state('username')));
                     $btn = array('caption' => 'добавить', 'sender' => 'newrecord', 'data' => 'show');
                     $btn2 = array('caption' => 'показать список', 'sender' => 'movielist', 'data' => 'show');
                     $btn3 = array('caption' => 'показать мой список', 'sender' => 'mymovies', 'data' => 'show');
                     $this->cmd->add_cmd('control', draw_button($btn) . draw_button($btn2) . draw_button($btn3));
                     $left = array('caption' => 'влево', 'sender' => 'scrollleft', 'data' => '');
                     $right = array('caption' => 'вправо', 'sender' => 'scrollright', 'data' => '');
                     $this->cmd->add_cmd('navigator', draw_button($left) . "&nbsp;<span id='pagenumber'>" . $this->state->get_state('page') . "</span>&nbsp;" . draw_button($right));
                     $this->data['p']['name'] = 'show';
                     $this->process();
                     break;
             }
             break;
         case 'moviedet':
             switch ($this->data['p']['name']) {
                 case 'show':
                 default:
                     $mlist = new CMovie($this->dbg);
                     $tbl = new CVizuller($this->dbg);
                     if ($mlist->get_record($this->data['p']['data'], $tbl)) {
                         $this->dbg->add_line("##" . $tbl->data[0]['mat_caption']);
                         $this->cmd->add_cmd('main', $tbl->render_record());
                     } else {
                         $this->state->set_state('mode', 'movielist');
                         $this->data['p']['name'] = 'show';
                         $this->process();
                     }
                     $this->cmd->add_cmd('topline', draw_topline($this->state->get_state('username')));
                     $btn = array('caption' => 'добавить', 'sender' => 'newrecord', 'data' => 'show');
                     $btn2 = array('caption' => 'показать список', 'sender' => 'movielist', 'data' => 'show');
                     $btn3 = array('caption' => 'показать мой список', 'sender' => 'mymovies', 'data' => 'show');
                     $this->cmd->add_cmd('control', draw_button($btn) . draw_button($btn2) . draw_button($btn3));
                     break;
             }
             break;
         default:
             $this->state->set_state('mode', 'movielist');
             $this->data['p']['name'] = '';
             $this->cmd->add_cmd('topline', draw_topline($this->state->get_state('username')));
             //$btn=array( 'caption'=>'добавить', 'sender'=>'newrecord','data'=>'show');
             //$btn2=array( 'caption'=>'показать список', 'sender'=>'movielist','data'=>'show');
             //$btn3=array( 'caption'=>'показать мой список', 'sender'=>'mymovies','data'=>'show');
             //$this->cmd->add_cmd('control', draw_button($btn).draw_button($btn2).draw_button($btn3) );
             $this->process();
             break;
             //$cmd->add_cmd('main', "<p>я не знаю - что тут должно рисоваться при исполненном вами сценарии навигации!</p>" );
             //$dbg->add_line("undef mode for ball processing... :( ");
             break;
     }
     $this->dbg->add_line("process end");
     $this->dbg->add_line("state: " . $this->state->get_state('mode'));
 }