Exemplo n.º 1
0
 /** 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();
 }
Exemplo n.º 2
0
    /**
     * 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 . '&amp;u&amp;ffn=' . $ffn_id . '&amp;add_ffna' . (isset($_GET['add_ffna']) ? '&amp;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 . '&amp;a&amp;ffna=' . $ffna->id . '&amp;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 . '&amp;a&amp;ffna=' . $ffna->id . '&amp;delete">Slett</a>' : '';
            // link: publiser/fjern publisering
            $more .= $ffna->data['ffna_published'] == 0 ? ' | <a href="avis?ff_id=' . $this->ff->id . '&amp;a&amp;ffna=' . $ffna->id . '&amp;publish">Publiser</a>' : ($ffna->data['ffna_ffn_id'] == 0 || $this->ff->mod ? ' | <a href="avis?ff_id=' . $this->ff->id . '&amp;a&amp;ffna=' . $ffna->id . '&amp;unpublish">Fjern publisering</a>' : '');
        }
        // link: utgivelse
        $more .= $ffna->data['ffna_ffn_id'] != 0 ? ' | <a href="avis?ff_id=' . $this->ff->id . '&amp;u&amp;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 . '&amp;u&amp;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();
    }