コード例 #1
0
ファイル: Home.php プロジェクト: vincium/bourg-la-reine
 public function form()
 {
     $simple = new \Rebond\Bus\Simple\Form();
     $post = Util\Converter::string('send', 'post');
     if (isset($post)) {
         if ($simple->setFromPost()->validate()->isValid()) {
             $result = Util\Media::UploadForm('photoId');
             if ($result->result == ResultType::SUCCESS) {
                 $simple->setPhotoId($result->id);
             }
             if ($result->result != ResultType::ERROR) {
                 $simple->save();
                 Util\Session::set('siteSuccess', 'submitted');
             } else {
                 Util\Session::set('siteError', $result->message);
             }
         } else {
             Util\Session::set('siteError', 'invalid');
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Util\Template(Util\Template::MODULE, ['bus', 'simple']);
     $tplMain->set('item', $simple);
     // layout
     $this->tplLayout->set('column1', $tplMain->render('form'));
     // template
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-2-col'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #2
0
ファイル: Home.php プロジェクト: vincium/resa
 public function index()
 {
     // main
     $newsGadget = new \Own\App\Standard\Gadget($this->app);
     $userGadget = new \Own\App\User\Gadget($this->app);
     $column1 = [];
     $column2 = [];
     $column1[] = $userGadget->status($this->player);
     if ($this->signedUser->getId() == 0) {
         $column1[] = $newsGadget->filteredList(3);
     } else {
         $tplBook = new Util\Template(Util\Template::MODULE, ['bus', 'book']);
         $column1[] = $tplBook->render('own-bookings-placeholder');
         $column1[] = $newsGadget->filteredList(2);
         if ($this->signedUser->getIsAdmin()) {
             $tplAdminBook = new Util\Template(Util\Template::MODULE, ['bus', 'book']);
             $options = [];
             $options['where'][] = 'status = 1';
             $courts = \Own\Bus\Court\Data::loadAll($options);
             $tplAdminBook->set('courts', $courts);
             $tplAdminBook->set('days', [1 => Util\Lang::lang('monday'), 2 => Util\Lang::lang('tuesday'), 3 => Util\Lang::lang('wednesday'), 4 => Util\Lang::lang('thursday'), 5 => Util\Lang::lang('friday'), 6 => Util\Lang::lang('saturday'), 0 => Util\Lang::lang('sunday')]);
             $column2[] = $tplAdminBook->render('admin-book');
         }
     }
     $column2[] = \Own\Bus\Book\Service::renderCalendar($this->player);
     return $this->response('tpl-default', ['title' => Util\Lang::lang('home')], 'layout-home', ['column1' => $column1, 'column2' => $column2]);
 }
コード例 #3
0
ファイル: Profile.php プロジェクト: vincium/resa
 public function buy_credit()
 {
     // auth
     Util\Auth::isAuthorized($this->signedUser, 'member', true, '/');
     $playerForm = new \Own\Bus\Player\Form($this->player, 'player');
     $credits = $this->player->getCredits();
     $this->player->setCredits(0);
     // action
     $add = Util\Converter::toString('add', 'post');
     if (isset($add)) {
         $creditValidation = ['required' => true, 'integer' => true, 'minValue' => 1, 'maxValue' => 20];
         $playerForm->setFromPost(['credits']);
         $fieldCredits = Util\Validate::validate('credits', $playerForm->getModel()->getCredits(), $creditValidation);
         $validation = new \Rebond\Core\Form();
         $validation->addField($fieldCredits);
         $playerForm->setValidation($validation);
         if ($playerForm->getValidation()->isValid()) {
             $this->player->addCredits($credits);
             $this->player->save();
             Util\Session::siteSuccess('creditsBought', '/profile');
         } else {
             Util\Session::set('siteError', $playerForm->getValidation()->getMessage());
         }
     }
     // layout
     $tplPlayer = new Util\Template(Util\Template::MODULE, ['bus', 'player']);
     $tplPlayer->set('credits', $credits);
     $tplPlayer->set('player', $playerForm);
     return $this->response('tpl-default', ['title' => Util\Lang::lang('profile')], 'layout-home', ['column1' => $tplPlayer->render('buy-credit')]);
 }
コード例 #4
0
ファイル: Gadget.php プロジェクト: vincium/resa
 public function facebookPage()
 {
     $fbPage = \Rebond\Config::getKey('facebook');
     if (!isset($fbPage)) {
         $fbPage = 'vincium';
     }
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'plugin']);
     $tpl->set('fbPage', $fbPage);
     return $tpl->render('facebook-page');
 }
コード例 #5
0
ファイル: Config.php プロジェクト: vincium/bourg-la-reine
 public function generate()
 {
     $configFile = FULL_PATH . '/files/config.xml';
     if (!file_exists($configFile)) {
         Util\Error::kill(Util\Error::XML_CONFIG_NOT_FOUND, $configFile, __FILE__, __LINE__);
     }
     $conf = simplexml_load_string(file_get_contents($configFile));
     $configTpl = new Util\Template(Util\Template::SITE, ['generator', 'config']);
     foreach ($conf->servers->server as $server) {
         if (strpos($_SERVER['HTTP_HOST'], $server->attributes()->host->__toString()) === false) {
             continue;
         }
         $configTpl->set('httpHost', $server->attributes()->host);
         $configTpl->set('siteFolder', $server->siteFolder);
         $configTpl->set('adminFolder', $server->adminFolder);
         $configTpl->set('dbHost', $server->db->host);
         $configTpl->set('dbPort', $server->db->port);
         $configTpl->set('dbUsername', $server->db->username);
         $configTpl->set('dbPassword', $server->db->password);
         $configTpl->set('dbName', $server->db->name);
         $configTpl->set('type', $server->mail->type);
         $configTpl->set('email', $server->mail->email);
         if ($server->mail->type == 'smtp') {
             $configTpl->set('host', $server->mail->host);
             $configTpl->set('port', $server->mail->port);
             $configTpl->set('option', $server->mail->option);
             $configTpl->set('password', $server->mail->password);
         } else {
             $configTpl->set('host', '');
             $configTpl->set('port', '');
             $configTpl->set('option', '');
             $configTpl->set('password', '');
         }
         break;
     }
     $langs = [];
     foreach ($conf->languages->language as $language) {
         $tpl = new Util\Template(Util\Template::SITE, ['generator', 'config']);
         $tpl->set('lang', $language->attributes()->lang);
         $tpl->set('locale', $language->locale);
         $langs[] = $tpl->render('lang');
     }
     $configTpl->set('lang', implode('', $langs));
     $settings = [];
     foreach ($conf->settings->setting as $setting) {
         $tpl = new Util\Template(Util\Template::SITE, ['generator', 'config']);
         $tpl->set('key', $setting->attributes()->key);
         $tpl->set('value', $setting);
         $settings[] = $tpl->render('setting');
     }
     $configTpl->set('key', implode('', $settings));
     $configPath = \Rebond\Config::getPath('rebond') . 'Cache/Config.php';
     Util\File::save($configPath, 'w', str_replace('<#php', '<?php', $configTpl->render('config')));
 }
コード例 #6
0
ファイル: Help.php プロジェクト: vincium/lot
 private function generic($tpl)
 {
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::SITE, ['www']);
     // layout
     $this->tplLayout->set('column1', $tplMain->render($tpl));
     // template
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-center'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #7
0
ファイル: Service.php プロジェクト: vincium/bourg-la-reine
 private function produceService()
 {
     // Service template
     $serviceTpl = new Template(Template::SITE, ['generator', 'service']);
     $serviceTpl->set('package', $this->package);
     $serviceTpl->set('entity', $this->entity);
     $servicePath = \Rebond\Config::getPath('rebond') . $this->package . '/' . $this->entity . '/Service.php';
     if (!file_exists($servicePath)) {
         $render = str_replace('<#php', '<?php', $serviceTpl->render('service'));
         \Rebond\Util\File::save($servicePath, 'w', $render);
         $this->info[] = '<div>Service created.</div>';
     } else {
         $this->info[] = '<div class="exist">Service already exists.</div>';
     }
 }
コード例 #8
0
ファイル: Service.php プロジェクト: vincium/resa
 public static function renderCalendar($player = null)
 {
     $maxBooking = 0;
     $playerLevel = \Own\Bus\Level::value(0);
     $players = [];
     if (isset($player)) {
         $maxBooking = $player->getMaxBooking();
         $playerLevel = $player->getLevelValue();
         $players = \Own\Bus\Player\Data::loadPartners($player->getId());
     }
     $tplCalendar = new Util\Template(Util\Template::MODULE, ['bus', 'book']);
     $tplCalendar->set('maxBooking', $maxBooking);
     $tplCalendar->set('playerLevel', $playerLevel);
     $tplCalendar->set('players', $players);
     return $tplCalendar->render('booking-placeholder');
 }
コード例 #9
0
ファイル: Gadget.php プロジェクト: vincium/lot
 private function getDetail($title)
 {
     $r = [];
     $item = Data::loadByUrlFriendlyTitle($title);
     if (isset($item)) {
         $tpl = new Util\Template(Util\Template::MODULE, ['app', 'Standard']);
         $tpl->set('item', $item);
         $tpl->set('filter', self::hasFilter());
         $r[] = ResultType::SUCCESS;
         $r[] = $tpl->render('detail');
         return $r;
     }
     $r[] = ResultType::ERROR;
     $r[] = '';
     return $r;
 }
コード例 #10
0
ファイル: League.php プロジェクト: vincium/lot
 public function ranking()
 {
     $id = Converter::toInt('id', 'get', $this->player->getLeagueId());
     $league = \Own\Bus\League\Data::loadById($id);
     if (!isset($league)) {
         $league = $this->player->getLeague();
     }
     // player not logged in
     if (!isset($league)) {
         Session::redirect('/league');
     }
     // view
     $this->setTpl();
     $cacheTime = $this->app->site()->getCacheTime();
     $cache = \Rebond\Util\Cache::getCache('league-ranking', $league->getId(), $cacheTime);
     if (isset($cache)) {
         // layout
         $this->tplLayout->set('column1', $cache);
     } else {
         $options = [];
         $options['clearSelect'] = true;
         $options['select'][] = \Own\Bus\Player\Data::getList(['id', 'user_id', 'country', 'experience', 'username', 'league_ranking', 'league_point', 'league_diff']);
         $options['select'][] = \Rebond\Core\User\Data::getList(['id', 'avatar_id'], 'player_user');
         $options['select'][] = \Rebond\Core\Media\Data::getList([], 'player_user_avatar');
         $options['leftJoin'][] = 'core_user player_user ON player_user.id = player.user_id';
         $options['leftJoin'][] = 'core_media player_user_avatar ON player_user_avatar.id = player_user.avatar_id';
         $options['where'][] = 'player.active = 1';
         $options['where'][] = 'player.league_id = ' . $league->getId();
         $options['order'][] = 'player.league_ranking, player.created_date';
         $players = \Own\Bus\Player\Data::loadAll($options);
         // main
         $tplMain = new Template(Template::SITE, ['www']);
         $tplMain->set('league', $league);
         $tplMain->set('player', $this->player);
         $tplMain->set('players', $players);
         // layout
         $cache = $tplMain->render('league-ranking');
         $this->tplLayout->set('column1', $cache);
         // cache
         \Rebond\Util\Cache::saveCache('league-ranking', $league->getId(), $cacheTime, $cache);
     }
     // template
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-center'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #11
0
ファイル: Integration.php プロジェクト: vincium/resa
 public function bookings_add()
 {
     Util\Auth::isAdminAuthorized($this->signedUser, null, false, '/');
     $today = new Util\DateTime();
     $this->date = Util\Converter::toDate('date');
     if (!isset($this->date)) {
         $this->date = new Util\DateTime();
     }
     /*
     header('Content-Type: application/json');
     echo(json_encode($this->getBookings()));exit();
     */
     $message = [];
     $message[] = $this->clearBookings();
     $message[] = $this->addBookings($this->getBookings());
     // main
     $tpl = new Util\Template(Util\Template::SITE, ['admin']);
     $tpl->set('today', $today->format('Y-m-d'));
     $tpl->set('message', implode($message, '<br>'));
     return $this->response('tpl-default', ['title' => Util\Lang::lang('own'), 'jsLauncher' => 'integration'], 'layout-1-col', ['column1' => $tpl->render('integration')]);
 }
コード例 #12
0
ファイル: Gadget.php プロジェクト: vincium/resa
 public function detail()
 {
     if (!$this->app->isDebug()) {
         return self::generic();
     }
     $logId = Util\Converter::toInt('id');
     if ($logId == 0) {
         return self::generic();
     }
     $log = \Rebond\Core\Log\Data::loadById($logId);
     if (!isset($log)) {
         return self::generic();
     }
     $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
     // main
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'error']);
     $tpl->set('log', $log);
     $tpl->set('referer', $referer);
     $tpl->set('adminUrl', \Rebond\Config::getPath('adminUrl'));
     return $tpl->render('detail');
 }
コード例 #13
0
ファイル: Mail.php プロジェクト: vincium/lot
 public static function send($playerId, $notification)
 {
     $options = [];
     $options['clearSelect'] = true;
     $options['select'][] = \Own\Bus\Player\Data::getList(['id', 'user_id', 'username']);
     $options['select'][] = \Rebond\Core\User\Data::getList(['id', 'email'], 'player_user');
     $options['join'][] = 'core_user player_user ON player_user.id = player.user_id';
     $options['where'][] = 'send_notification_email = 1';
     $options['where'][] = ['player.id = ?', $playerId];
     $player = \Own\Bus\Player\Data::load($options);
     if (!isset($player)) {
         return false;
     }
     // send email
     $app = \Rebond\App::instance();
     $tpl = new Util\Template(Util\Template::MODULE, ['bus', 'notification']);
     $tpl->set('url', 'http://' . \Rebond\Config::getPath('siteUrl'));
     $tpl->set('player', $player);
     $tpl->set('notification', $notification);
     $tplMail = new Util\Template(Util\Template::SITE, ['mail']);
     $tplMail->set('title', Util\Lang::lang('notification'));
     $tplMail->set('site', $app->site()->getTitle());
     $tplMail->set('url', 'http://' . \Rebond\Config::getPath('siteUrl'));
     $tplMail->set('layout', $tpl->render('notification'));
     $message = \Swift_Message::newInstance()->setContentType('text/html')->setSubject($app->site()->getTitle() . ' - ' . Util\Lang::lang('notification'))->setFrom(\Rebond\Config::getMail('email'))->setTo($player->getUser()->getEmail())->setBody($tplMail->render('tpl-default'));
     return Util\Mail::send($message);
 }
コード例 #14
0
ファイル: Home.php プロジェクト: vincium/bourg-la-reine
 public function index()
 {
     // auth
     if (!\Rebond\Util\Auth::isAdminAuthorized($this->signedUser, null, false)) {
         header('Location: /profile/sign-in');
         exit;
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::SITE, ['admin']);
     $tplMain->set('title', $this->app->site()->getTitle());
     // right
     $tplRight = new Template(Template::SITE, ['admin']);
     $pendingItems = [];
     if ($this->app->site()->getIsCms()) {
         $options = [];
         $options['where'][] = 'module.status = 1';
         $options['where'][] = 'module.has_content = 1';
         $modules = \Rebond\Cms\Module\Data::loadAll($options);
         if ($modules) {
             foreach ($modules as $module) {
                 $appData = '\\Rebond\\App\\' . $module->getTitle() . '\\Data';
                 $items = $appData::loadByVersion('pending');
                 if (count($items) > 0) {
                     $pendingItems[] = $items;
                 }
             }
         }
     }
     $tplRight->set('items', $pendingItems);
     $tplRight->set('title', \Rebond\Util\Lang::lang('pendingItems'));
     // layout
     $this->tplLayout->set('column1', $tplMain->render('index'));
     $this->tplLayout->set('column2', $tplRight->render('pending'));
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-2-col'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #15
0
ファイル: Mail.php プロジェクト: vincium/resa
 public static function resetPassword($siteTitle, \Rebond\Core\User\Model $user)
 {
     $userSecure = \Rebond\Core\UserSecurity\Service::saveSecure($user->getId(), \Rebond\Core\UserSecurity\Model::RESET);
     $tpl = new Util\Template(Util\Template::SITE, ['mail']);
     $tpl->set('url', \Rebond\Config::getPath('siteUrl'));
     $tpl->set('site', $siteTitle);
     $tpl->set('item', $user);
     $tpl->set('reset', $userSecure->getSecure());
     $tplMail = new Util\Template(Util\Template::SITE, ['mail']);
     $tplMail->set('title', Util\Lang::lang('resetPassword'));
     $tplMail->set('site', $siteTitle);
     $tplMail->set('url', \Rebond\Config::getPath('siteUrl'));
     $tplMail->set('layout', $tpl->render('reset-password'));
     $message = \Swift_Message::newInstance()->setContentType('text/html')->setSubject($siteTitle . ' - ' . Util\Lang::lang('resetPassword'))->setFrom(\Rebond\Config::getMail('email'))->setTo($user->getEmail())->setBody($tplMail->render('tpl-default'));
     return Util\Mail::send($message);
 }
コード例 #16
0
ファイル: Launch.php プロジェクト: vincium/bourg-la-reine
 public function generic($package, $module)
 {
     $tpl = new Template(Template::SITE, ['admin', 'dev']);
     $entityModel = '\\Rebond\\' . $package . '\\' . $module . '\\Model';
     $entityForm = '\\Rebond\\' . $package . '\\' . $module . '\\Form';
     $entityData = '\\Rebond\\' . $package . '\\' . $module . '\\Data';
     $model = new $entityModel();
     $form = new $entityForm($model);
     $validate = $form->validate();
     $items = $entityData::count();
     $tpl->set('title', $module);
     $tpl->set('count', count($items));
     $tpl->set('valid', $validate->isValid());
     $tpl->set('fields', $validate->getFields());
     return $tpl->render('test-entity');
 }
コード例 #17
0
ファイル: Mail.php プロジェクト: vincium/resa
 public static function error($siteTitle, $emails, $code, $message, $file, $line)
 {
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'error']);
     $tpl->set('url', \Rebond\Config::getPath('siteUrl'));
     $tpl->set('site', $siteTitle);
     $tpl->set('code', Util\Code::value($code));
     $tpl->set('message', $message);
     $tpl->set('file', $file);
     $tpl->set('line', $line);
     $tplMail = new Util\Template(Util\Template::SITE, ['mail']);
     $tplMail->set('title', Util\Lang::lang('log'));
     $tplMail->set('site', $siteTitle);
     $tplMail->set('url', \Rebond\Config::getPath('siteUrl'));
     $tplMail->set('layout', $tpl->render('mail'));
     $message = \Swift_Message::newInstance()->setContentType('text/html')->setSubject($siteTitle . ' - ' . Util\Lang::lang('log'))->setFrom(\Rebond\Config::getMail('email'))->setTo($emails)->setBody($tplMail->render('tpl-default'));
     return Util\Mail::send($message);
 }
コード例 #18
0
ファイル: Gadget.php プロジェクト: vincium/bourg-la-reine
 public function gmap()
 {
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'plugin']);
     $tpl->set('address', \Rebond\Config::getKey('gmap'));
     return $tpl->render('gmap');
 }
コード例 #19
0
ファイル: Page.php プロジェクト: vincium/bourg-la-reine
 public function gadget()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.page.gadget', true, '/page');
     // check
     $id = Converter::int('id');
     $save = Converter::int('save', 'post');
     $page = \Rebond\Cms\Page\Data::loadById($id);
     if (!isset($page)) {
         header('Location: /page');
         exit;
     }
     $gadget = new \Rebond\Cms\Gadget\Model();
     $gadget->setPageId($page->getId());
     $form = new \Rebond\Cms\Gadget\Form($gadget);
     // action
     if (isset($save)) {
         Auth::isAdminAuthorized($this->signedUser, 'admin.page.gadget.edit', true, '/page/gadget?id=' . $id);
         if ($form->setFromPost()->validate()->isValid()) {
             $gadget->save();
             Session::adminSuccess('saved', '/page/gadget?id=' . $id);
         } else {
             Session::set('adminError', $form->getValidation()->getMessage());
         }
     }
     // view
     $this->setTpl();
     // form
     $layout = \Rebond\Cms\Layout\Data::loadById($page->getLayoutId());
     $columns = $layout->getColumns();
     $columnOptions = [];
     for ($i = 1; $i <= $columns; $i++) {
         $columnOptions[$i] = Lang::lang('column') . ' ' . $i;
     }
     $tplForm = new Template(Template::MODULE, ['cms', 'gadget']);
     $tplForm->set('item', $form);
     $tplForm->set('title', Lang::lang('manageGadgetOf', [$page->getTitle()]));
     $tplForm->set('columnOptions', $columnOptions);
     $tplForm->set('selectedColumn', $gadget->getCol());
     // active listing
     $options = [];
     $options['join'][] = 'cms_page page ON page.id = gadget.page_id';
     $options['join'][] = 'cms_component component ON component.id = gadget.component_id';
     $options['join'][] = 'cms_module module ON module.id = component.module_id';
     $options['where'][] = ['page.id = ?', $page->getId()];
     $options['where'][] = 'module.status = 1';
     $options['where'][] = 'component.status = 1';
     $options['order'][] = 'gadget.col';
     $options['order'][] = 'gadget.display_order';
     $gadgets = \Rebond\Cms\Gadget\Data::loadAll($options);
     if ($gadgets) {
         foreach ($gadgets as $g) {
             $g->prepareFilter();
         }
     }
     // inactive listing
     $options = [];
     $options['join'][] = 'cms_page page ON page.id = gadget.page_id';
     $options['join'][] = 'cms_component component ON component.id = gadget.component_id';
     $options['join'][] = 'cms_module module ON module.id = component.module_id';
     $options['where'][] = ['page.id = ?', $page->getId()];
     $options['where'][] = 'module.status = 0 OR component.status = 0';
     $options['order'][] = 'gadget.col';
     $options['order'][] = 'gadget.display_order';
     $inactiveGadgets = \Rebond\Cms\Gadget\Data::loadAll($options);
     if ($inactiveGadgets) {
         foreach ($inactiveGadgets as $g) {
             $g->prepareFilter();
         }
     }
     $tplListing = new Template(Template::MODULE, ['cms', 'gadget']);
     $tplListing->set('items', $gadgets);
     $tplListing->set('inactiveItems', $inactiveGadgets);
     $tplListing->set('columnOptions', $columnOptions);
     // layout
     $this->tplLayout->add('column1', $tplForm->render('editor-selector'));
     $this->tplLayout->add('column2', $tplListing->render('listing'));
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-2-row'));
     $this->tplMaster->set('jsLauncher', 'pageGadget');
     return $this->tplMaster->render('tpl-default');
 }
コード例 #20
0
ファイル: Gadget.php プロジェクト: vincium/resa
 public function changePassword()
 {
     $signedUser = $this->app->user();
     // auth
     if (!Util\Auth::isAuth($signedUser)) {
         header('Location: /profile');
         exit;
     }
     $form = new \Rebond\Core\User\Form($signedUser);
     // action
     $change = Util\Converter::toString('resetPassword', 'post');
     if (isset($change)) {
         $form->changePassword('/profile');
     }
     $tpl = new Util\Template(Util\Template::MODULE, ['app', 'User']);
     $tpl->set('item', $form);
     $tpl->set('checkCurrentPassword', true);
     return $tpl->render('password-change');
 }
コード例 #21
0
ファイル: Mysql.php プロジェクト: vincium/bourg-la-reine
 private function fieldList($template, $propertyName, $type, $sqlType, $maxLength, $default = null, $table = null, $oldPropertyName = null)
 {
     $tpl = new Template(Template::SITE, ['generator', 'mysql', 'parts']);
     $tpl->set('propertyName', $propertyName);
     $tpl->set('type', $type);
     $tpl->set('sqlType', $sqlType);
     $tpl->set('maxLength', $maxLength);
     if (isset($default)) {
         $tpl->set('default', $default);
     }
     if (isset($table)) {
         $tpl->set('table', $table);
     }
     if (isset($oldPropertyName)) {
         $tpl->set('oldPropertyName', $oldPropertyName);
     }
     return $tpl->render($template);
 }
コード例 #22
0
ファイル: Own.php プロジェクト: vincium/lot
 public function index()
 {
     Util\Auth::isAdminAuthorized($this->signedUser, 'member', true, '/');
     $tplDefault = new Util\Template(Util\Template::SITE, ['admin']);
     return $this->response('tpl-default', ['title' => Util\Lang::lang('own'), 'jsLauncher' => 'own'], 'layout-1-col', ['column1' => $tplDefault->render('index')]);
 }
コード例 #23
0
ファイル: Cms.php プロジェクト: vincium/bourg-la-reine
 public function media_link_edit()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.cms.media-link', true, '/cms/media-link');
     // check
     $id = Converter::int('id');
     $moduleMedia = \Rebond\Cms\ModuleMedia\Data::loadById($id, true);
     $form = new \Rebond\Cms\ModuleMedia\Form($moduleMedia);
     // action
     if (isset($_POST['save'])) {
         Auth::isAdminAuthorized($this->signedUser, 'admin.cms.media-link.edit', true, '/cms/media-link-edit?id=' . $id);
         if ($form->setFromPost()->validate()->isValid()) {
             $moduleMedia->save();
             Session::adminSuccess('saved', '/cms/media_link');
         } else {
             Session::set('adminError', $form->getValidation()->getMessage());
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::MODULE, ['cms', 'moduleMedia']);
     $tplMain->set('item', $form);
     // layout
     if (Auth::isAdminAuthorized($this->signedUser, 'admin.cms.media-link.edit', false)) {
         $this->tplLayout->set('column1', $tplMain->render('editor'));
     } else {
         $this->tplLayout->set('column1', $tplMain->render('view'));
     }
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #24
0
ファイル: Media.php プロジェクト: vincium/bourg-la-reine
 public function in_use()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.media.image', true, '/media');
     $id = Converter::int('id');
     if (!isset($id)) {
         return $this->index();
     }
     // find app modules that use medium
     $items = [];
     $moduleMedium = \Rebond\Cms\ModuleMedia\Data::loadAll();
     if ($moduleMedium) {
         foreach ($moduleMedium as $moduleMedia) {
             $module = \Rebond\Cms\Module\Data::loadById($moduleMedia->getModuleId());
             if (isset($module)) {
                 $appData = '\\Rebond\\App\\' . $module->getTitle() . '\\Data';
                 $options = [];
                 $options['where'][] = [$moduleMedia->getField() . ' = ?', $id];
                 $options['where'][] = ['content.version NOT IN (?)', [VersionType::DELETED, VersionType::OLD]];
                 $items = array_merge($items, $appData::loadAll($options));
             }
         }
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::SITE, ['admin', 'media']);
     $tplMain->set('items', $items);
     // layout
     $this->tplLayout->set('column1', $tplMain->render('in-use'));
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #25
0
ファイル: Data.php プロジェクト: vincium/bourg-la-reine
 private function deleteBy($entity, $table, $sqlPropertyName)
 {
     $tpl = new Template(Template::SITE, ['generator', 'data', 'parts']);
     $tpl->set('entity', $entity);
     $tpl->set('table', $table);
     $tpl->set('sqlPropertyName', $sqlPropertyName);
     $tpl->set('propertyName', Converter::toCamelCase($sqlPropertyName));
     return $tpl->render('delete-by');
 }
コード例 #26
0
ファイル: Profile.php プロジェクト: vincium/lot
 public function tour_points()
 {
     // auth
     Util\Auth::isAuthorized($this->signedUser, 'member', false, '/profile/sign-in');
     \Own\Bus\Match\Data::checkMatchToView($this->player->getId());
     $race = Util\Converter::toBool('race', 'get', true);
     // params
     $id = Util\Converter::toInt('id');
     if ($id == 0) {
         $player = $this->player;
     } else {
         $player = \Own\Bus\Player\Data::loadById($id);
         if (!isset($player)) {
             $player = $this->player;
         }
     }
     if ($race) {
         $options = [];
         $options['join'][] = 'bus_tournament tournament ON tournament.id = tournament_player.tournament_id';
         $options['where'][] = 'tournament.status = ' . TournamentStatus::FINISHED;
         $options['where'][] = 'tournament.start_date > \'' . Engine::getStartYearDate($this->app->site()->getCreatedDate()) . '\'';
         $options['order'][] = 'points DESC';
         $tournaments = \Own\Bus\TournamentPlayer\Data::loadAllByPlayerId($player->getId(), $options);
         $oldTournaments = null;
     } else {
         $options = [];
         $options['join'][] = 'bus_tournament tournament ON tournament.id = tournament_player.tournament_id';
         $options['where'][] = 'tournament.status = ' . TournamentStatus::FINISHED;
         $options['where'][] = 'tournament.start_date > NOW() - INTERVAL ' . Engine::DAY * 336 . ' HOUR';
         $options['order'][] = 'points DESC';
         $tournaments = \Own\Bus\TournamentPlayer\Data::loadAllByPlayerId($player->getId(), $options);
         $options = [];
         $options['join'][] = 'bus_tournament tournament ON tournament.id = tournament_player.tournament_id';
         $options['where'][] = 'tournament.status = ' . TournamentStatus::FINISHED;
         $options['where'][] = 'tournament.start_date < NOW() - INTERVAL ' . Engine::DAY * 336 . ' HOUR';
         $options['order'][] = 'tournament.start_date DESC';
         $oldTournaments = \Own\Bus\TournamentPlayer\Data::loadAllByPlayerId($player->getId(), $options);
     }
     // view
     $this->setTpl();
     // filter
     $tplFilter = new Util\Template(Util\Template::SITE, ['www']);
     $tplFilter->set('race', $race);
     $tplFilter->set('playerId', $player->getId());
     // main
     $tplMain = new Util\Template(Util\Template::SITE, ['www']);
     $tplMain->set('username', $player->getUsername());
     $tplMain->set('tournaments', $tournaments);
     $tplMain->set('oldTournaments', $oldTournaments);
     // layout
     $this->tplLayout->set('column1', $tplFilter->render('profile-tour-point-filter'));
     $this->tplLayout->add('column1', $tplMain->render('profile-tour-point'));
     // template
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-center'));
     return $this->tplMaster->render('tpl-default');
 }
コード例 #27
0
ファイル: Model.php プロジェクト: vincium/bourg-la-reine
 private function toArray($propertyName, $type)
 {
     $tpl = new Template(Template::SITE, ['generator', 'model', 'parts']);
     $tpl->set('propertyName', $propertyName);
     $tpl->set('type', $type);
     return $tpl->render('to-array');
 }
コード例 #28
0
ファイル: Profile.php プロジェクト: vincium/bourg-la-reine
 public function sign_in()
 {
     // auth
     if (Auth::isAdminAuthorized($this->signedUser)) {
         Session::redirect('/');
     }
     // action
     $form = new \Rebond\Core\User\Form($this->signedUser);
     $form->signIn();
     if (Auth::isAdmin($form->getModel())) {
         Session::redirect('/');
     }
     if (Auth::isAuth($form->getModel())) {
         Session::setAndRedirect('siteError', Lang::lang('accessNonAuthorized'), 'http://' . \Rebond\Config::getPath('siteUrl'));
     }
     // view
     $this->setTpl();
     // main
     $tplMain = new Template(Template::MODULE, ['core', 'user']);
     $tplMain->set('item', $form);
     // master
     $this->tplMaster->set('column1', $tplMain->render('sign-in'));
     $this->tplMaster->set('jsLauncher', 'profile');
     return $this->tplMaster->render('tpl-signin');
 }
コード例 #29
0
 public function cache()
 {
     // auth
     Auth::isAdminAuthorized($this->signedUser, 'admin.config.cache', true, '/configuration');
     // view
     $this->setTpl();
     // main
     $files = \Rebond\Util\File::getFiles('files/cache');
     $tplMain = new Template(Template::SITE, ['admin', 'configuration']);
     $tplMain->set('files', $files);
     $tplMain->set('cache', $this->app->site()->getCacheTime());
     $tplMain->set('cachePath', \Rebond\Config::getPath('cache'));
     // layout
     $this->tplLayout->set('column1', $tplMain->render('cache'));
     // master
     $this->tplMaster->set('layout', $this->tplLayout->render('layout-1-col'));
     $this->tplMaster->set('jsLauncher', 'configCache');
     return $this->tplMaster->render('tpl-default');
 }
コード例 #30
0
ファイル: Engine.php プロジェクト: vincium/lot
 public static function renderMastery($class, $mastery, $value, $max, $form = true)
 {
     $tpl = new Util\Template(Util\Template::MODULE, ['bus', 'player']);
     $html = '<div class="r-row">
         <div class="r-col-xs-10 tooltip" title="' . $tpl->render('mastery-' . $mastery) . '"> ' . self::renderProgressBar($class, $mastery, $value, $max) . '</div>
         <div class="r-col-xs-2">';
     if ($form) {
         $html .= '<a href="#" class="button action tooltip" data-mastery="' . $mastery . '" title="">+</a>
             ' . Util\Form::buildField($mastery, 'hidden', $value);
     }
     $html .= '</div></div>';
     return $html;
 }