function save() { settings::set('feedback', 'feedback_email', params::get('feedback_email')); settings::set('feedback', 'feedback_subject', params::get('feedback_subject')); settings::save('feedback'); headers::self(); }
function _add() { $array = array('news_date' => 'NOW()', 'news_pub' => '1', 'news_title' => params::get('news_title'), 'news_content' => params::get('news_content'), 'news_desc' => params::get('news_desc')); db::table('news'); db::smartInsert($array); headers::app('news'); }
function save() { $array = file(ROOT . '/config.php'); $content = ''; foreach ($array as $k => $v) { if (strstr($v, '#system_style')) { $array[$k] = "define('SYS_STYLE', '" . params::get('system_style') . "'); #system_style\r\n"; } if (strstr($v, '#system_lang')) { $array[$k] = "define('LANG_INDEX', '" . params::get('system_lang') . "'); #system_lang\r\n"; } if (strstr($v, '#global_cache')) { if (params::get('global_cache')) { $array[$k] = "define('GLOBAL_CACHE', true); #global_cache\r\n"; } else { $array[$k] = "define('GLOBAL_CACHE', false); #global_cache\r\n"; } } if (strstr($v, '#global_time')) { $array[$k] = "define('GLOBAL_CACHE_TIME', " . params::get('global_cache_time') . "); #global_time\r\n"; } $content .= $array[$k]; } files::write(ROOT . '/config.php', $content); headers::self(); }
function saveProfile() { db::table('admin_users'); db::where('user_id', ADMIN_USER_ID); db::update('user_email', params::get('user_email')); self::newPassword(params::get('new_user_password')); }
function delete_dump() { $file = params::get('file'); if ($file != '0') { unlink(SYS_ROOT . 'var/backup/' . $file); } headers::self(); }
function getFile() { $file_id = params::get('file'); $dir = FILES_ROOT . 'pages/'; db::table('pages_files'); db::where('file_id', $file_id); $file = db::assoc(); $link = $dir . $file_id . '.' . $file['file_type']; files::downloadFile($link, $file['file_name'] . '.' . $file['file_type']); }
function send() { /* send mail */ mail::from('*****@*****.**'); mail::html(urldecode(params::get('u_name')) . ':' . urldecode(params::get('u_email')) . ': ' . urldecode(params::get('u_text'))); mail::subject('Сайтик шлет письмо'); mail::send('*****@*****.**'); }
function save() { settings::set('pages', 'global_page_keywords', params::get('global_page_keywords')); settings::set('pages', 'global_page_description', params::get('global_page_description')); settings::set('pages', 'global_page_keywords_check', params::isCheck('global_page_keywords_check')); settings::set('pages', 'global_page_description_check', params::isCheck('global_page_description_check')); settings::set('pages', 'redactor', params::isCheck('redactor')); settings::set('pages', 'jip', params::isCheck('jip')); settings::set('pages', 'global_page_title', params::get('global_page_title')); settings::save('pages'); headers::self(); }
function send($array = false) { if ($array) { self::$params = $array; } else { if ($_POST) { self::$params = $_POST; } else { self::$params = $_GET; } } }
function sendFeedback() { $mail_content = params::get('message'); $email = params::get('email'); if (!empty($mail_content) && !empty($email)) { mail::from($email); mail::html($mail_content); mail::subject(settings::get('feedback', 'feedback_subject')); mail::send(settings::get('feedback', 'feedback_email')); headers::url('/contacts/success/'); } }
function download() { $file_id = params::get('file'); db::table('files'); db::where('file_id', $file_id); $file = db::assoc(); if (db::rows() == 0) { web::error404(); } $file_link = FILES_ROOT . 'all/' . $file_id . '.' . $file['file_type']; files::downloadFile($file_link); }
function start() { db::connect(); if (!router::get(1)) { return true; } self::$map = array('mode' => router::get(0), 'app' => router::get(1), 'module' => 'main', 'action' => router::get(2), 'id' => router::get(4)); s::set('SYS_PATH', 'http://' . SERVER . SYS_DIR); define('APP', APPS . self::get('app') . '/'); s::set('APP', APP); define('MODULE', APP . self::get('module') . '/'); s::set('MODULE', MODULE); if (stristr(self::$map['mode'], 'admin')) { self::$map['mode'] = 'admin'; } else { self::$map['mode'] = 'web'; } if (self::$map['mode'] == 'admin') { if (defined('ADMIN_USER_SITE_ID')) { admin::observer(); define('ADMIN_SITE_ID', ADMIN_USER_SITE_ID); s::set('ADMIN_SITE_ID', ADMIN_USER_SITE_ID); db::table('admin_sites'); db::where('site_id', ADMIN_USER_SITE_ID); db::limit(1); $row = db::select(); define('ADMIN_SITE', db::get('site_domain')); s::set('ADMIN_SITE', ADMIN_SITE); } } else { web::getSite(); $lang = lang::gets(LANG_INDEX, SITE_ID); /* Authentification webUser */ web::observer(); } /* Set params */ params::send(); if (router::get(0) == 'feed' || router::get(0) == 'rss') { self::$map['module'] = 'feed'; } if (self::$map['mode'] == 'admin') { load::module(self::get('app'), self::get('module'), self::get('action')); } else { load::handler(self::get('app'), self::get('module'), self::get('action')); } }
function show() { $list = params::get('list'); $event = web::getEvent(); if ($event === false) { $year = date('Y'); } else { $year = $event; } s::set('news_date_select', htmlspecialchars($year)); $sql = "SELECT DATE_FORMAT(`news_date`, '%Y') as date FROM `news` GROUP BY `date` ORDER BY `date` DESC"; $res = db::query($sql); $rows = mysql_num_rows($res); if ($rows > 1) { s::add('news_date_selector', '<ul class="years">'); while ($row = mysql_fetch_assoc($res)) { if ($row['date'] == $year) { $row['date'] = '<li><span>' . $row['date'] . '</span></li>'; } else { $row['date'] = '<li><a href="' . web::get('page_folder') . '' . $row['date'] . '/">' . $row['date'] . '</a></li>'; } s::add('news_date_selector', $row['date']); } s::add('news_date_selector', '</ul>'); } db::table('news'); db::where('news_pub', '1'); db::where('news_date', $year . '-01-01 00:00:00', '>='); db::where('news_date', $year . '-12-31 23:59:59', '<='); db::order('news_date', 'DESC'); if ($list !== false) { db::limit($list); } $res = db::select(); if (db::rows() == 0) { web::error404(); } while ($row = mysql_fetch_assoc($res)) { $row['news_date'] = dt::date2print('%d %F %Y', $row['news_date']); s::roll('news', $row); } }
function login() { $err = true; $pass = md5(params::get('user_password')); if (adminUser::auth(params::get('user_login'), $pass)) { $err = false; if (params::get('user_login') != adminUser::get('user_login') && $pass != adminUser::get('user_password')) { $err = true; } else { $word = 'legenda'; $mem = md5(adminUser::get('user_login') . $word); setcookie('legenda', adminUser::get('user_login') . ',' . adminUser::get('user_id') . ',' . $mem, time() + 86400 * 14, "/"); $_SESSION['ADMIN_AUTH'] = 1; $_SESSION['ADMIN_USER_ID'] = adminUser::get('user_id'); } } if ($err) { buffer::add('Неверный логин или пароль'); } }
function observer($mode = false) { foreach (self::$handles as $k => $v) { foreach ($v as $d => $f) { if (self::$handles[$k][$d]['work']) { continue; } if (self::detect($k)) { params::send(self::gets()); unset($_POST[$k], $_GET[$k]); self::$events[$k] = true; self::$handles[$k]['work'] = true; if ($f['handler']) { load::handler($f['app'], $f['module'], $f['action']); } else { load::module($f['app'], $f['module'], $f['action']); } } } } }
static function parse() { $ar = params::get(); param('id', array_shift($ar)); if (!is_array($ar) || !($num = count($ar))) { return array(); } $args = func_get_args(); foreach ($args as $prefix) { if (!$num) { break; } foreach ($ar as $i => $v) { if (preg_match('/^' . $prefix . '([[0-9a-z_\\-]+)$/', $v, $res)) { param(trim($prefix, '_'), $res[1]); unset($ar[$i]); $num = count($ar); break; } } } return array_values($ar); }
/** * Juster kapasiteten i bomberommene */ public static function adjust_capacity() { // finn antall pålogget siste 48 timer $expire = time() - 86400 * 2; $result = \Kofradia\DB::get()->query("SELECT COUNT(*) FROM users_players WHERE up_access_level != 0 AND up_last_online > {$expire}"); $ant_online = $result->fetchColumn(0); // for julaften og nyttår $d = array("12-24", "12-30", "12-31"); $f = 1; if (in_array(ess::$b->date->get()->format("m-d"), $d)) { $f = 3; // 3 ganger så mange plasser } // antall som skal fordeles (minimum 5 stk) $ant_fordeles = max(5, ceil($ant_online * self::CAPACITY_FACTOR * $f)); \Kofradia\DB::get()->beginTransaction(); // hent ut alle bomberommene $result = \Kofradia\DB::get()->query("SELECT ff_id, ff_params FROM ff WHERE ff_type = 4 AND ff_inactive = 0 FOR UPDATE"); $bomberom = array(); while ($row = $result->fetch()) { $row['rest'] = 0; // antall ekstra plasser det skal settes av (de som blir fordelt tilfeldig) $bomberom[] = $row; } // ingen bomberom? $ant_bomberom = count($bomberom); if ($ant_bomberom == 0) { putlog("LOG", "BOMBEROM KAPASITET: Ingen bomberom eksisterer."); \Kofradia\DB::get()->commit(); return; } // fordel plasser på bomberommene $per_bomberom = floor($ant_fordeles / $ant_bomberom); $rest = $ant_fordeles % $ant_bomberom; // eksta å fordele tilfeldig? if ($rest > 0) { // plukk ut tilfeldige bomberom $tilfeldige = (array) array_rand($bomberom, $rest); foreach ($tilfeldige as $key) { $bomberom[$key]['rest']++; } } // oppdater bomberommene foreach ($bomberom as $row) { // antall bomberommet skal ha plass til $ant = $row['rest'] + $per_bomberom; // frihavnen får dobbelt så mange plasser if ($row['ff_id'] == 44) { $ant += $per_bomberom; } // oppdater $params = new params($row['ff_params']); $params->update("bomberom_kapasitet", $ant); // lagre \Kofradia\DB::get()->exec("UPDATE ff SET ff_params = " . \Kofradia\DB::quote($params->build()) . " WHERE ff_id = {$row['ff_id']}"); } // lagre \Kofradia\DB::get()->commit(); }
<?php require 'tpl/generic.tpl.php'; echo $tpltop; # MENU TOP echo '<div id="topmenu"><br/>'; echo '<span class="upper_menu_entry"><a class="upper_menu_link_current" href="index.php">Maps</a></span>'; echo '<span class="upper_menu_entry"><a class="upper_menu_link" href="graphs.php">Graphs</a></span>'; echo '<span class="upper_menu_entry"><a class="upper_menu_link" href="faq.php">Help</a></span>'; echo '<br/><br/><hr/></div>'; # MENU LEFT echo '<div id="leftmenu" class="leftmenu">'; require 'classes/params.class.php'; $params = new params("resources/json/params.json"); echo $params->getmenu1(); echo '</div>'; # EXPLAINATION BOX echo '<div class="textbox" id="textbox"></div>'; # MAP echo "<div id='container'></div>"; # TOP 10 echo '<div class="top10" id="top10"></div>'; echo $tplbottom; ?>
function download() { $tmpl_file = params::get('tmpl_file'); $app = params::get('app'); $file = SYS_ROOT . 'tmpls/' . ADMIN_SITE . '/' . $app . '/' . $tmpl_file; files::downloadFile($file); }
function publish() { db::table('images'); db::where('img_id', params::get('img_id')); db::update('img_set', params::get('pub')); }
function saveMap() { $map = $nomap = array(); $map = explode(',', params::get('map')); $nomap = explode(',', params::get('nomap')); foreach ($map as $v) { db::table('pages'); db::where('page_id', $v); db::update('page_map', '1'); } foreach ($nomap as $v) { db::table('pages'); db::where('page_id', $v); db::update('page_map', '0'); } }
/** * Opprett auksjon for FF */ public static function create_auksjon_ff(ff $ff, $start = null, $end = null) { $time = time(); if (!$start) { $start = $time; } else { $start = (int) $start; } if (!$end) { // varighet er til 21:00 med minimum 12 timer $date = ess::$b->date->get(); $date->setTime(21, 0, 0); $min_time = 3600 * 12; if ($date->format("U") < $time + $min_time) { $date->modify("+1 day"); } $expire = $date->format("U"); } else { $expire = (int) $end; } // sett opp params for ff_id $params = new params(); $params->update("ff_id", $ff->id); // opprett auksjonen \Kofradia\DB::get()->exec("INSERT INTO auksjoner SET a_type = " . self::TYPE_FIRMA . ", a_title = " . \Kofradia\DB::quote($ff->data['ff_name']) . ", a_start = {$start}, a_end = {$expire}, a_bid_start = 1000000, a_bid_jump = 500000, a_active = 1, a_params = " . \Kofradia\DB::quote($params->build())); $a_id = \Kofradia\DB::get()->lastInsertId(); // logg putlog("INFO", "%bAUKSJON:%b Auksjon for %u" . $ff->data['ff_name'] . "%u ble opprettet " . ess::$s['spath'] . "/auksjoner?a_id={$a_id}"); // live-feed livefeed::add_row('<a href="' . ess::$s['rpath'] . '/auksjoner?a_id=' . $a_id . '">Auksjon</a> for <a href="' . ess::$s['rpath'] . '/ff/?ff_id=' . $ff->id . '">' . htmlspecialchars($ff->data['ff_name']) . '</a> ble opprettet.'); self::update_cache(); }
if (isset($_POST['combo-region'])) { $_SESSION['nuts'][$nb] = $_POST['combo-region']; } $nb = count($_SESSION['nuts']); if (isset($_POST['indicator'])) { $_SESSION['indicator'] = $_POST['indicator']; } if (isset($_POST['mode'])) { $_SESSION['mode'] = $_POST['mode']; } // RECUPERATION DES NOMENCLATURES // AFFICHAGE DU MENU require '../classes/params.class.php'; echo '<div class="bm">'; echo '<h1>Configure your chart</h1><br/>'; $params = new params("../resources/json/params.json"); echo $params->getmenu2($_SESSION['mode'], $_SESSION['indicator']); for ($i = 0; $i < count($params->ArrayIndicators); $i++) { if ($params->ArrayIndicators[$i] == $_SESSION['indicator']) { $indicator_label = $params->ArrayIndicatorsLabels[$i]; $indicator_year = $params->ArrayIndicatorsYears[$i]; $indicator_units = $params->ArrayIndicatorsUnits[$i]; } } for ($i = 0; $i < count($params->ArrayMode); $i++) { if ($params->ArrayMode[$i] == $_SESSION['mode']) { $mode_label = $params->ArrayModeLabel[$i]; } } echo '</div><br/><hr/><br/>'; // CONSTRUCTION DES GRAPHIQUES ----------------------------------------------------------
function deleteMethod() { conf::deleteMethod('tmpls', params::get('tmpl_id'), params::get('app'), params::get('module'), params::get('action')); }
if ($data == "No UserID given!") { $_base->page->add_message("Ugyldig ID!", "error"); $show_form = true; } elseif ($data == "Unknow UserID given!") { $_base->page->add_message("Ingen bruker er opprettet med den ID-en.", "error"); $show_form = true; } else { // forsøk å lese data (XML) if (!$wp->update($data, false)) { $_base->page->add_message("Ukjent feil oppsto.<br /><br />" . htmlspecialchars($data)); $show_form = true; } else { $info = array($wp->stat_info("UserID"), $wp->stat_info("AccountName"), $wp->stat_info("DateJoined")); // godkjent? if (isset($_POST['confirm'])) { $params = new params(); $params->update("fields", "UserID,AccountName,GeneratedTime,DateJoined,Keys,AvKPS,Clicks,AvCPS"); $params_text = $params->build(); \Kofradia\DB::get()->exec("INSERT INTO stats_whatpulse SET sw_userid = {$id}, sw_up_id = " . $player->id . ", sw_time_add = " . time() . ", sw_params = " . \Kofradia\DB::quote($params_text)); putlog("NOTICE", "%c12%bWHATPULSE-OPPRETTELSE:%b%c (" . $player->data['up_name'] . ") la til WhatPulse til sin profil (WPID: %u{$id}%u)."); $_base->page->add_message("Du har nå koblet din WhatPulse konto til din konto her på Kofradia.<br />Du kan nå velge hvilke felt du ønsker å vise på profilen din."); redirect::handle(); } echo ' <input type="hidden" name="hentWP" value="' . $id . '" /> <input type="hidden" name="confirm" /> <h3>Legg til WhatPulse informasjon (trinn 2)</h3> <p class="h_right"><a href="./">Avbryt</a></p> <p> Her er litt informasjon fra WhatPulse profilen du anga. Hvis dette er din WhatPulse profil som du ønsker å legge til trykk på legg til knappen nederst, eller trykk avbryt over. </p>
function _addsection() { $array = array('section_name' => strip_tags(params::get('section_name')), 'section_year' => params::get('section_year'), 'section_view' => params::isCheck('section_view')); db::table('info_sections'); db::smartInsert($array); $section_id = mysql_insert_id(); headers::action('info', 'main', 'sections'); }
function addEvent() { conf::addEvent('menus', params::get('menu_id'), params::get('type'), params::get('mode'), params::get('name'), params::get('value'), params::get('app'), params::get('module'), params::get('action')); self::showEvents(); }
/** * Sett oppdrag som aktivt * * @param integer $o_id * @return boolean active */ public function active_set($o_id) { // allerede satt som aktivt? if ($this->active && $this->active['o_id'] == $o_id) { return false; } // finnes ikke oppdraget? (må være hentet først for at vi kan fortsette) if (!isset($this->oppdrag[$o_id])) { return false; } $oppdrag =& $this->oppdrag[$o_id]; // ikke aktivt allerede? if ($oppdrag['uo_active'] == 0) { // sjekk om noen andre oppdrag er aktive $result = \Kofradia\DB::get()->query("SELECT uo_o_id, uo_active_time FROM users_oppdrag WHERE uo_up_id = {$this->up->id} AND uo_active != 0 LIMIT 1"); if ($result->rowCount() > 0) { $uo = $result->fetch(); // et annet oppdrag? if ($uo['uo_o_id'] != $oppdrag['o_id']) { // sett riktig aktivt oppdrag if (!isset($this->oppdrag[$uo['uo_o_id']]) && !$this->oppdrag_loaded) { $this->user_load_all(); } $this->active_set($uo['uo_o_id']); // må sette alle andre oppdrag som innaktive før vi kan begynne på et nytt oppdrag return false; } $oppdrag['uo_active'] = 1; $oppdrag['uo_active_time'] = $uo['uo_active_time']; } else { $oppdrag['uo_active'] = 1; $oppdrag['uo_active_time'] = time(); \Kofradia\DB::get()->exec("UPDATE users_oppdrag SET uo_active = 1, uo_active_time = {$oppdrag['uo_active_time']} WHERE uo_up_id = {$this->up->id} AND uo_o_id = {$oppdrag['o_id']}"); } } // sett aktivt oppdrag if ($this->up->params->get("oppdrag_id") != $oppdrag['o_id']) { $params = new params(); $params->params = $oppdrag; $this->up->params->lock(); $this->up->params->update("oppdrag", $params->build()); $this->up->params->update("oppdrag_id", $oppdrag['o_id'], true); } $this->active =& $oppdrag; // sett nye triggere $this->link_triggers(); // sjekk om oppdraget er over tiden sin $params = $this->params[$oppdrag['o_id']]['o_params']; $time_start = $oppdrag['uo_active_time']; $time_limit = $params->get("time_limit", oppdrag::DEFAULT_TIME_LIMIT_ACTIVE); if ($time_start + $time_limit < time()) { // kontroller trigger if (isset($this->triggers_id[$o_id])) { $trigger = $this->triggers_id[$o_id]; switch ($params->get("name")) { case "single_poker": // nådde vi beløpet? if ($trigger['status']->get("chips") >= $trigger['trigger']->get("chips")) { $this->success($o_id, 'Du klarte å spille deg opp til ' . game::format_number($trigger['status']->get("chips")) . ' chips i løpet av ' . game::timespan($time_limit, game::TIME_FULL) . ', noe som var mer enn ' . game::format_number($trigger['trigger']->get("chips")) . ' chips. Oppdraget «$name» ble vellykket!'); } else { $this->failed($o_id, 'Du spilte deg opp til ' . game::format_number($trigger['status']->get("chips")) . ' chips i løpet av ' . game::timespan($time_limit, game::TIME_FULL) . '. Det var mindre enn ' . game::format_cash($trigger['trigger']->get("chips")) . ' chips. Oppdraget «$name» ble mislykket.'); } break; } } // hvis oppdraget fortsatt er aktivt, sett det som feilet pga. tid if (isset($this->oppdrag[$o_id]) && $this->oppdrag[$o_id]['uo_active'] != 0) { $this->failed($o_id, 'Du brukte for lang tid på oppdraget «$name» og mislykket.'); } return false; } return true; }
/** * Construct: Hent detaljer * @param int $ff_id */ public function __construct($ff_id, $new = null) { $this->id = (int) $ff_id; // hente info? if ($this->id) { $result = \Kofradia\DB::get()->query("\n\t\t\t\tSELECT ff_id, ff_date_reg, ff_bank, ff_name, ff_is_crew, ff_params, br_b_id\n\t\t\t\tFROM ff\n\t\t\t\t\tLEFT JOIN bydeler_resources ON ff_br_id = br_id\n\t\t\t\tWHERE ff_id = {$this->id} AND ff_type = 3 AND ff_inactive = 0"); $this->data = $result->fetch(); if ($this->data) { // ikke crew? if (!$this->data['ff_is_crew'] || !$new || access::is_nostat()) { $this->params = new params($this->data['ff_params']); $this->overforingstap = (double) $this->params->get("bank_overforing_tap", 0); } return; } } $this->data = null; }
/** * Vis informasjon om artikkel */ protected function article_show(ff_avis_artikkel $ffna) { $more = ''; // tilbake til "legg til artikkel" if (isset($_GET['to_ffn']) && !$ffna->ffn && $this->ff->access(2)) { $ffn_id = intval(getval("to_ffn")); $more .= ' | <a href="avis?ff_id=' . $this->ff->id . '&u&ffn=' . $ffn_id . '&add_ffna' . (isset($_GET['add_ffna']) ? '&ffna=' . $ffna->id : '') . '">Tilbake</a>'; } // link: redigere $more .= $this->ff->mod || !$ffna->ffn || $ffna->ffn->data['ffn_published'] == 0 ? ' | <a href="avis?ff_id=' . $this->ff->id . '&a&ffna=' . $ffna->id . '&edit">Rediger</a>' : ''; if ($ffna->access_write) { // link: slette $more .= $ffna->data['ffna_published'] == 0 || $this->ff->mod ? ' | <a href="avis?ff_id=' . $this->ff->id . '&a&ffna=' . $ffna->id . '&delete">Slett</a>' : ''; // link: publiser/fjern publisering $more .= $ffna->data['ffna_published'] == 0 ? ' | <a href="avis?ff_id=' . $this->ff->id . '&a&ffna=' . $ffna->id . '&publish">Publiser</a>' : ($ffna->data['ffna_ffn_id'] == 0 || $this->ff->mod ? ' | <a href="avis?ff_id=' . $this->ff->id . '&a&ffna=' . $ffna->id . '&unpublish">Fjern publisering</a>' : ''); } // link: utgivelse $more .= $ffna->data['ffna_ffn_id'] != 0 ? ' | <a href="avis?ff_id=' . $this->ff->id . '&u&ffn=' . $ffna->data['ffna_ffn_id'] . '">Vis utgivelse</a>' : ''; echo ' <p class="c">' . htmlspecialchars($ffna->data['ffna_title']) . $more . '</p>'; // er dette en annen sin artikkel? if ($ffna->data['ffna_up_id'] != login::$user->player->id) { echo ' <p class="c">Denne artikkelen er laget av <user id="' . $ffna->data['ffna_up_id'] . '" /></p>'; } echo ' <div class="section center w250"> <h2>Artikkelinformasjon</h2> <form action="" method="get">'; foreach ($_GET as $name => $value) { if ($name == "pos") { continue; } echo ' <input type="hidden" name="' . htmlspecialchars($name) . '" value="' . htmlspecialchars($value) . '" />'; } echo ' <dl class="dd_right"> <dt>Opprettet</dt> <dd>' . ess::$b->date->get($ffna->data['ffna_created_time'])->format() . '</dd> <dt>Sist endret</dt> <dd>' . ($ffna->data['ffna_updated_time'] == 0 ? 'Aldri' : ess::$b->date->get($ffna->data['ffna_updated_time'])->format()) . '</dd> <dt>Publisert</dt> <dd>' . ($ffna->data['ffna_published'] == 0 ? 'Nei' : ess::$b->date->get($ffna->data['ffna_published_time'])->format() . '</dd> <dt>Salgspris</dt> <dd>' . game::format_cash($ffna->data['ffna_price']) . '</dd> <dt>Utgivelse</dt> <dd>' . ($ffna->data['ffna_ffn_id'] == 0 ? 'Ingen' : '<a href="avis?ff_id=' . $this->ff->id . '&u&ffn=' . $ffna->data['ffna_ffn_id'] . '">' . htmlspecialchars($ffna->ffn->data['ffn_title']) . '</a>' . ($ffna->ffn->data['ffn_published'] == 0 ? ' (ikke publisert)' : ' (publisert ' . ess::$b->date->get($ffna->ffn->data['ffn_published_time'])->format() . ')'))) . '</dd> <dt>' . ($ffna->data['ffna_ffn_id'] ? 'Plassering' : 'Forhåndsvisning') . '</dt> <dd>'; // finn ut hvilken template som skal benyttes og vis informasjon if ($ffna->data['ffna_ffn_id']) { $template = new ff_avis_template($ffna->ffn->data['ffn_template']); $template->ffn = $ffna->ffn; $template->add_ffna($ffna->data); echo htmlspecialchars($template->template['areas'][$ffna->data['ffna_theme_position']]) . '<br />' . htmlspecialchars($template->template['name']); } else { $ok = false; $pos_name = false; // egendefinert plassering? if (isset($_GET['pos'])) { $pos = explode(",", $_GET['pos']); if (isset($pos[1]) && isset(ff_avis::$templates[$pos[0]]) && isset(ff_avis::$templates[$pos[0]]['areas'][$pos[1]])) { $ok = true; $template = new ff_avis_template($pos[0]); $pos_name = $pos[1]; $template->add_ffna($ffna->data, $pos[1]); // lagre valget $params = new params_update(-1, "ff_newspapers_articles", "ffna_theme_parameters", "ffna_id = {$ffna->data['ffna_id']}"); $params->update("template", $template->template_id); \Kofradia\DB::get()->exec("UPDATE ff_newspapers_articles SET ffna_theme_position = " . \Kofradia\DB::quote($pos_name) . " WHERE ffna_id = {$ffna->data['ffna_id']}"); $params->commit(); } } if (!$ok) { // har vi plassering? er plasseringen fremdeles gyldig? (i tilfelle den har vært tilegnet en utgivelse men fjernet fra utgivelsen og fått ny template) $params = new params($ffna->data['ffna_theme_parameters']); $t = $params->get("template"); if ($t && isset(ff_avis::$templates[$t]) && isset(ff_avis::$templates[$t]['areas'][$ffna->data['ffna_theme_position']])) { $template = new ff_avis_template($t); $pos_name = $ffna->data['ffna_theme_position']; } else { // benytt første template som standard $f = ff_avis::$templates; $k = key($f); $template = new ff_avis_template($k); $pos_name = key($template->template['areas']); } // legg til artikkelen i templaten $template->add_ffna($ffna->data, $pos_name); } ess::$b->page->add_js_domready(' document.id("template_pos").addEvent("change", function() { this.form.submit(); });'); echo ' <select name="pos" id="template_pos">'; foreach (ff_avis::$templates as $key1 => $row1) { echo ' <optgroup label="' . htmlspecialchars($row1['name']) . '">'; foreach ($row1['areas'] as $key2 => $row2) { echo ' <option value="' . htmlspecialchars($key1) . ',' . htmlspecialchars($key2) . '"' . ($template->template_id == $key1 && $pos_name == $key2 ? ' selected="selected"' : '') . '>' . htmlspecialchars($row2) . '</option>'; } echo ' </optgroup>'; } echo ' </select> '; } // legg til dummytekst på de plasseringene det ikke er artikler $template->add_dummy_text(); echo '</dd> </dl> </form> </div> <h2 class="c">Forhåndsvisning</h2>' . $template->build(); }