public static function allow_page_edit($presenter, $id) { if (!$presenter->user->isInRole('user')) { //probably admin -> allow return true; } //log all changes by users if (count($presenter->request->post)) { $v = PagesModel::getPageById($id); } else { $v = $presenter->request; } $key = Strings::webalize($presenter->user->id); $data = date("Y-m-d H:i:s ") . $_SERVER["REQUEST_URI"] . " " . base64_encode(print_r($v, 1)); file_put_contents(WWW_DIR . "/data/activitylog/{$key}.log", $data, FILE_APPEND); if ($presenter->user->identity->webpages == 'all') { return true; } $allowed = explode(',', $presenter->user->identity->webpages); foreach (PagesModel::getPageById($id)->getParents() as $page) { if (in_array($page->id, $allowed)) { //allowed to edit page? return true; } } return false; }
function constructUrl(PresenterRequest $appRequest, Url $ref) { if ($appRequest->getPresenterName() !== self::PRESENTER) { return NULL; } $params = $appRequest->getParameters(); //find the friendly-url in the database $lang = $params['lang']; if ($lang == NULL) { $lang = $this->getDefaultLang(); } //lang base url (domain or just relative prefix?) $langDomains = Environment::getVariable("langDomains"); if ($langDomains) { $baseUrl = $ref->scheme . ':' . $langDomains[$lang]; } else { $baseUrl = $ref->getBaseUrl() . ($lang == $this->getDefaultLang() ? '' : "{$lang}/"); } //NULL page = / if (!isset($params['id_page'])) { return $baseUrl; } //nonexisting page - do not route $page = PagesModel::getPageById($params['id_page'], $lang); if (!$page) { return NULL; } unset($params['lang']); unset($params['id_page']); unset($params['action']); // appended parameters $params = http_build_query($params, '', '&'); if ($params) { $params = "?{$params}"; } // no pagelink -> do /p123-friendly-name if (!$page['seoname']) { return $baseUrl . "p{$page->id}" . (Strings::webalize($page->name) ? '-' : '') . Strings::webalize($page->name) . $params; } // /sth -> normal friendly url for that page if ($page['seoname'][0] == '/') { return $baseUrl . substr($page['seoname'], 1) . $params; } return NULL; }
/** * Returns the sanitized file name. * @return string */ public function getSanitizedName() { return trim(Strings::webalize($this->name, '.', FALSE), '.-'); }
foreach ($voting->movies->movie as $movie) { ?> <li> <?php if (isset($movie->result)) { ?> <span class="result"><?php echo $movie->result; ?> </span> <?php } if (isset($movie->title)) { ?> <a href="<?php echo $page->getUrl(null, 'movies') . '#' . Strings::webalize($movie->title); ?> "><span class="title"><?php echo $movie->title; ?> </span></a> <?php } ?> </li> <?php } ?> </ul> <?php }
/** * @return \Nette\Application\IRouter */ public function createRouter() { $router = new RouteList(); $context = $this->context; Route::$styles['path'] = array(Route::PATTERN => '.*?'); Route::setStyleProperty('presenter', Route::FILTER_TABLE, array('profil' => 'User:User', 'moje-akce' => 'User:Events', 'moje-mista' => 'User:Places', 'katalog' => 'Catalog', 'akce-pro-deti' => 'Calendar', 'clanky' => 'Articles', 'newsletter' => 'Newsletter', 'admin' => 'Admin:Default', 'ucet' => 'Account', 'o' => 'About', 'souteze' => 'Competitions', 'reklama' => 'Advertising', 'odkazy' => 'Links', 'partneri' => 'Partners', 'vyhledavani' => 'Search')); Route::setStyleProperty('action', Route::FILTER_TABLE, array('lokalita' => 'locality', 'mesto' => 'district', 'kraj' => 'shire', 'komentare' => 'comments', 'nas' => 'us')); Route::addStyle('timeframe'); Route::setStyleProperty('timeframe', Route::FILTER_TABLE, array('vikend' => 'weekend', 'pristi-vikend' => 'next weekend', 'tyden' => 'week', 'pristi-tyden' => 'next week', 'tento-mesic' => 'month', 'pristi-mesic' => 'next month', 'dnes' => 'today', 'zitra' => 'tomorrow')); Route::addStyle('title'); Route::setStyleProperty('title', Route::FILTER_OUT, function ($url) { return Strings::webalize($url); }); Route::setStyleProperty('title', Route::FILTER_IN, function ($url) { return Strings::webalize($url); }); $router[] = new Route('index.php', 'Service:default', Route::ONE_WAY); // @deprecated $router[] = new Route('akce-pro-deti.php', 'Calendar:default', Route::ONE_WAY); // @deprecated $router[] = new Route('kalendar.php', 'Calendar:default', Route::ONE_WAY); // @deprecated $router[] = new Route('infoservis[/<code>].php', 'Articles:default', Route::ONE_WAY); // @deprecated $router[] = new Route('odkazy.php', 'Links:default', Route::ONE_WAY); // @deprecated $router[] = new Route('partneri.php', 'Partners:default', Route::ONE_WAY); // @deprecated $router[] = new Route('inzerce.php', 'Advertising:default', Route::ONE_WAY); // @deprecated $router[] = new Route('souteze.php', 'Competitions:default', Route::ONE_WAY); // @deprecated $router[] = new Route('sdruzeni_pro_aktivni_rodinu.php', 'About:us', Route::ONE_WAY); // @deprecated $router[] = new Route('tipy/', 'Catalog:default', Route::ONE_WAY); // @deprecated $router[] = new Route('katalog_formular.php', 'Homepage:default', Route::ONE_WAY); // @deprecated $router[] = new Route('kalendar_formular.php', 'Homepage:default', Route::ONE_WAY); // @deprecated $router[] = new Route('katalog/kategorie/detska-predstaveni/', array('presenter' => "Calendar", 'action' => 'default', 'category' => 'detska-predstaveni'), Route::ONE_WAY); // @deprecated $router[] = new Route('<presenter clanky>/<code>/', 'Articles:detail'); $router[] = new Route('<presenter souteze>/<code>/', 'Competitions:detail'); $router[] = new Route('<presenter image>/<action [a-z]+>-<x [0-9]+>x<y [0-9]+>/<code>', 'Image:default'); $router[] = new Route('<presenter katalog>/kategorie/<category>/', 'Catalog:default'); $router[] = new Route('<presenter katalog>/aktivita/<category>/', 'Catalog:default'); // @deprecated $router[] = new Route('<presenter katalog>/aktivita/<category>/kraj/<shire>', 'Catalog:default'); // @deprecated $router[] = new Route('<presenter katalog>/lokalita/<locality>/', 'Catalog:default'); $router[] = new Route('<presenter katalog>/mesto/<district>/', 'Catalog:default'); $router[] = new Route('<presenter katalog>/kraj/<shire>/', 'Catalog:default'); $router[] = new Route('<presenter katalog>[/detail]/<code>/', 'Catalog:detail'); $router[] = new Route('<presenter akce-pro-deti>/kategorie/<category>/', 'Calendar:default'); $router[] = new Route('<presenter akce-pro-deti>/lokalita/<locality>/', 'Calendar:default'); $router[] = new Route('<presenter akce-pro-deti>/kraj/<shire>/', 'Calendar:default'); //$router[] = new Route('<presenter akce-pro-deti>[/detail]/<id>/', 'Calendar:detail'); $router[] = new Route('<presenter akce-pro-deti>[/detail]/<id>/', array('presenter' => "Calendar", 'action' => 'detail', 'id' => array(Route::FILTER_IN => function ($id) use($context) { if (is_numeric($id)) { return $id; } else { $code = substr($id, strpos($id, '-') + 1); $id = substr($id, 0, strpos($id, '-')); $pages = $context->createServiceEvents()->where('code', $code)->where('id', $id)->fetch(); if (!$pages) { throw new \Nette\Application\BadRequestException("Tato stránka neexistuje.", 404); } if ($pages->deleted == 1) { throw new \Nette\Application\BadRequestException("Tato stránka byla odstraněna.", 410); } return $pages->id; } }, Route::FILTER_OUT => function ($id) use($context) { if (!is_numeric($id)) { return $id; } else { $pages = $context->createServiceEvents()->where('id', $id)->fetch(); return $pages->id . '-' . $pages->code; } }))); $router[] = new Route('<presenter akce-pro-deti>/kdy/<timeframe>/', 'Calendar:default'); $router[] = new Route('<presenter>/<action>[/<id [0-9]+>/]', 'Homepage:default'); $router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default'); return $router; }
<?php require_once 'libs/strings.php'; $data = new SimpleXMLElement(file_get_contents('data/movies/' . $page->getYear() . '.xml')); ?> <div id="movies"> <ul> <?php if ($data && isset($data->movies, $data->movies->movie)) { foreach ($data->movies->movie as $movie) { ?> <li id="<?php echo isset($movie->title) ? Strings::webalize($movie->title) : ''; ?> " class="row full-section"> <div class="center-section"> <div class="col-sm-6"> <?php if (isset($movie->title)) { ?> <h2><?php echo $movie->title; ?> </h2> <?php } if (isset($movie->description)) { ?> <span class="description"><?php echo $movie->description; ?>