/** Lag HTML for avisutgivelsen */ public function build_avis_html() { // hent inn alle artiklene i utgivelsen $result = \Kofradia\DB::get()->query("\n\t\t\tSELECT ffna_id, ffna_up_id, ffna_title, ffna_text, ffna_theme_position, ffna_theme_priority\n\t\t\tFROM ff_newspapers_articles\n\t\t\tWHERE ffna_ffn_id = {$this->id}\n\t\t\tORDER BY ffna_theme_priority"); while ($row = $result->fetch()) { $this->template->add_ffna($row); } return $this->template->build(); }
/** * 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(); }