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; }
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)." <span id='pagenumber'>".$this->state->get_state('page')."</span> ".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) . " <span id='pagenumber'>" . $this->state->get_state('page') . "</span> " . 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')); }