Example #1
0
 public function getView($params, $synchrone)
 {
     $form = new Form($this->fields, $params);
     $title = '';
     if ($form->isSubmitting() && Tools::isEmpty($form->getErrors())) {
         $access_key = isset($params['access_key']) && !empty($params['access_key']) ? Tools::saltHash($params['access_key']) : 'NULL';
         // Create Game
         $game = Game::create(F::i('Session')->getMid(), $params['name'], $access_key);
         Tools::redirect('?action=wait_game&game=' . $game->g_id);
     } else {
         // Generate form
         $view = View::setFile('formular', View::HTML_FILE);
         $errors = $form->getErrors();
         // Errors in the filling
         if (!empty($errors)) {
             $view->setSwitch('form_errors', TRUE);
             foreach ($errors as $field => $error) {
                 $view->setGroupValues('form_errors', array('error' => F::i('Lang')->getKey('error_' . $field . '_' . $error)));
             }
         }
         $view->setValue('form', $form->getHTML(F::i('Lang')->getKey('Create'), '#', 'POST', 'tabbed_form'));
         $title = F::i('Lang')->getKey('title_new_game');
     }
     return parent::setBody($view, $title);
 }
Example #2
0
 public function getView($params, $synchrone)
 {
     include_once _MODEL_DIR . '/chatbox.php';
     $chatbox = new Form(Chatbox::getFields(), array('name' => Chatbox::getNickname()));
     $login = F::i('Session')->getUsername();
     // Display Index page...
     $view = View::setFile('index', View::HTML_FILE);
     $view->setValue('u_chatbox', '?action=chatbox');
     $view->setValue('chatbox_form', $chatbox->getHTML('', '?action=chatbox', 'ajax', 'chatbox_form', 'cron.socket', 'clear_chatbox'));
     $view->setValue('login', $login);
     return parent::setBody($view, F::i('Lang')->getKey('title_index'));
 }
 /**
  * Получение формы редактирования объекта.
  */
 public static function rpc_get_editor(Context $ctx)
 {
     $node = Node::load($ctx->get('node'))->knock(ACL::UPDATE);
     $schema = $node->getSchema();
     if (!array_key_exists($field = $ctx->get('field'), $schema['fields'])) {
         throw new PageNotFoundException(t('Нет такого поля у этого объекта.'));
     }
     $tpl = $schema['fields'][$field];
     $tpl['value'] = $field;
     $tpl['nolabel'] = true;
     $form = new Form(array('action' => '?q=nodeapi.rpc&action=modify&node=' . $node->id . '&field=' . $field));
     $form->addControl(Control::make($tpl));
     $form->addControl(new SubmitControl(array('text' => 'OK')));
     return new Response($form->getHTML($node));
 }
Example #4
0
 public function getView($params, $synchrone)
 {
     $form = new Form($this->fields, $params);
     if ($form->isSubmitting() && Tools::isEmpty($form->getErrors())) {
         // Register
         $salt = Tools::generateSalt();
         $password = Tools::saltHash($params['password'], $salt);
         $error = FALSE;
         try {
             F::i(_DBMS_SYS)->exec('INSERT INTO !prefix_members (m_login, m_password, m_email, m_salt, m_auth) VALUES (?, ?, ?, ?, ?)', array($params['login'], $password, $params['email'], $salt, _AUTH_MEMBER));
         } catch (DBMSError $e) {
             // Login already given
             $error = TRUE;
         }
         if (!$error) {
             $view = View::setFile('info', View::HTML_FILE);
             $view->setValue('L_message', F::i('Lang')->getKey('register_successful'));
             $view->setValue('U_ok', '?');
             F::i('Session')->connect($params['login'], $params['password']);
         } else {
             $view = View::setFile('error', View::HTML_FILE);
             $view->setValue('l_message', F::i('Lang')->getKey('login_taken'));
             $view->setValue('u_ok', '?');
         }
     } else {
         $view = View::setFile('formular', View::HTML_FILE);
         $errors = $form->getErrors();
         // Errors in the filling
         if (!empty($errors)) {
             $view->setSwitch('form_errors', TRUE);
             foreach ($errors as $field => $error) {
                 $view->setGroupValues('form_errors', array('error' => F::i('Lang')->getKey('error_' . $field . '_' . $error)));
             }
         }
         $view->setValue('form', $form->getHTML(F::i('Lang')->getKey('register'), '#', 'POST', 'tabbed_form'));
     }
     return parent::setBody($view);
 }
Example #5
0
 protected static final function setBody(ViewItem $content, $title = '', $short = FALSE)
 {
     include_once _MODEL_DIR . '/connect.php';
     $form = new Form(Connect::getFields());
     if ($short) {
         $view = View::setFile('short_header');
         $view->setValue('SITE_TITLE', (!empty($title) ? $title . ' « ' : '') . _SITE_TITLE);
     } else {
         $view = View::setFile('header');
         $view->setValue('SITE_TITLE', (!empty($title) ? $title . ' « ' : '') . _SITE_TITLE);
         $view->setValue('L_WELCOME', sprintf(F::i('Lang')->getKey('Welcome_Explain'), F::i('Session')->isConnected() ? F::i('Session')->getUsername() : F::i('Lang')->getKey('Guest')));
         $view->setValue('FORM_CONNECT', $form->getHTML('', '?action=connect', 'POST'));
     }
     // Static Switches
     $view->setStaticSwitch('debug', _DEBUG);
     $view->setStaticSwitch('is_guest', !F::i('Session')->isConnected());
     $view->setStaticSwitch('is_member', F::i('Session')->getAuth() >= _AUTH_MEMBER);
     $view->setStaticSwitch('is_admin', F::i('Session')->getAuth() >= _AUTH_ADMIN);
     $header = $view->getContent();
     $view = View::setFile('footer');
     $view->setValue('BENCHMARK', F::i('Benchmark')->getTotal());
     $footer = $view->getContent();
     return $header . $content->getContent() . $footer;
 }
Example #6
0
    public function getView($params, $synchrone)
    {
        $search_form = new Form($this->search_fields, $params);
        $access_form = new Form($this->access_fields, $params);
        $title = '';
        $insert = TRUE;
        try {
            if (!isset($params['game'])) {
                throw new Exception('No Game given');
            }
            $game = new Game($params['game']);
            if ($game->isIn(F::i('Session')->getMid())) {
                throw new Exception('Already In');
            }
        } catch (Exception $e) {
            $insert = FALSE;
        }
        if ($insert) {
            if ($game->g_access_key == 'NULL' || $access_form->isSubmitting() && Tools::isEmpty($access_form->getErrors()) && $game->g_access_key == Tools::saltHash($params['access_key'])) {
                $game->insert(F::i('Session')->getMid());
                Tools::redirect('?action=wait_game&game=' . $game->g_id);
            } else {
                // CHECK
                if ($access_form->isSubmitting()) {
                    // Error
                    die('bad access key');
                } else {
                    $view = View::setFile('formular', View::HTML_FILE);
                    $errors = $access_form->getErrors();
                    // Errors in the filling
                    if (!empty($errors)) {
                        $view->setSwitch('form_errors', TRUE);
                        foreach ($errors as $field => $error) {
                            $view->setGroupValues('form_errors', array('error' => F::i('Lang')->getKey('error_' . $field . '_' . $error)));
                        }
                    }
                    $view->setValue('form', $access_form->getHTML(F::i('Lang')->getKey('access_key'), '#', 'POST', 'tabbed_form'));
                }
            }
        } else {
            $sql = 'SELECT g.g_id, g_name, TIMESTAMPDIFF(HOUR, g_start, NOW()) AS lifetime, COUNT(*) AS g_total_players, m_login AS g_owner 
					FROM !prefix_members m, !prefix_games AS g, !prefix_players AS p 
					WHERE g.m_id = m.m_id 
						AND p.g_id = g.g_id 
						AND g.g_id NOT IN (
							SELECT g_id FROM !prefix_players WHERE m_id = ?
						)';
            $array = array(F::i('Session')->getMid());
            // If search is defined, add condition
            if (isset($params['search'])) {
                $sql .= ' AND g_name LIKE ?';
                $array[] = '%' . $params['search'] . '%';
            }
            $sql .= ' GROUP BY g.g_id ORDER BY g_start DESC';
            // Get all the games
            $result = F::i(_DBMS_SYS)->query($sql, $array);
            $view = View::setFile('list_games', View::HTML_FILE);
            $view->setValue('form', $search_form->getHTML('', '#', 'POST', 'inline'));
            if ($result->getNumRows() == 0) {
                $view->setSwitch('no_games', TRUE);
            }
            for ($i = 0; $i < $result->getNumRows(); $i++) {
                $obj = $result->getObject();
                $view->setGroupValues('games', array('link' => '?action=join_game&game=' . $obj->g_id, 'name' => stripslashes($obj->g_name), 'total_players' => $obj->g_total_players, 'owner' => $obj->g_owner, 'lifetime' => $obj->lifetime));
            }
            $title = F::i('Lang')->getKey('title_join_game');
        }
        return parent::setBody($view);
    }