Example #1
0
 /**
  * Oppdater forumlenke
  * @param bool $force legg til/fjern lenke
  * @return true: lenken ble oppdatert, false: lenken ble ikke oppdatert, NULL: lenken finnes ikke
  */
 public function forum_link($force = NULL)
 {
     $this->params_load();
     // finn ut om forumlenken er lagt til
     if ($force !== NULL) {
         $this->params_user->lock();
     }
     $container = new container($this->params_user->get("forums"));
     foreach ($container->items as $key => $row) {
         if ($row[0] != "ff") {
             continue;
         }
         if ($row[1] != $this->ff->id) {
             continue;
         }
         // fjerne lenken?
         if ($force === false) {
             unset($container->items[$key]);
             // fjerne hele container?
             if (count($container->items) == 0) {
                 $this->params_user->remove("forums");
             } else {
                 $this->params_user->update("forums", $container->build());
             }
             // lagre endringer
             $this->params_user->commit();
             return true;
         }
         // sjekk om lenken er oppdatert
         if ($row[2] != $this->ff->data['ff_name']) {
             $this->params_user->lock();
             $forums = $this->params_user->get("forums");
             $container = new container($forums);
             foreach ($container->items as $key => $row) {
                 if ($row[0] != "ff" || $row[1] != $this->ff->id) {
                     continue;
                 }
                 // oppdater navnet
                 $container->items[$key][2] = $this->ff->data['ff_name'];
                 $this->params_user->update("forums", $container->build());
                 $this->params_user->commit();
                 return true;
             }
             $this->params_user->commit();
             return NULL;
         }
         if ($force !== NULL) {
             $this->params_user->commit();
         }
         return false;
     }
     // legge til lenken?
     if ($force === true) {
         $container->items[] = array("ff", $this->ff->id, $this->ff->data['ff_name'], $this->ff->get_fse_id());
         $this->params_user->update("forums", $container->build());
         $this->params_user->commit();
         return true;
     }
     if ($force !== null) {
         $this->params_user->commit();
     }
     return NULL;
 }
Example #2
0
    /**
     * Panelet
     */
    protected function page_panel()
    {
        ess::$b->page->add_title("Panel");
        ess::$b->page->add_css('
.ff_panel {
	width: 490px;
	margin: 0 auto;
	overflow: hidden;
}
.ff_panel .section {
	margin-bottom: 20px;
}');
        // hent info om innbetaling
        $pay_info = $this->ff->pay_info();
        // sjekk om vi er i forum lista
        $forum_added = $this->ff->uinfo->forum_link() !== NULL;
        // medlemsbegrensning
        $limits = $this->ff->get_limits();
        echo '
<div class="ff_panel">
	<div style="width: 235px; float: left">
		
		<!-- ffinformasjon -->
		<div class="section">
			<h2>Informasjon om ' . $this->ff->type['refobj'] . '</h2>
			<dl class="dd_right">
				<dt>Navn</dt>
				<dd>' . htmlspecialchars($this->ff->data['ff_name']) . '</dd>
				<dt>Opprettet</dt>
				<dd>' . ess::$b->date->get($this->ff->data['ff_date_reg'])->format() . '</dd>
				<dt>Pengebeholdning</dt>
				<dd>' . game::format_cash($this->ff->data['ff_bank']) . '</dd>
				<dt>Medlemsbegrensning</dt>
				<dd>' . $limits[0] . ' medlemmer</dd>
			</dl>' . ($this->ff->data['ff_is_crew'] ? '
			<p>' . ucfirst($this->ff->type['refobj']) . ' har status som nostat. Den teller ikke med i spillstatistikken til spilleren.</p>' : '') . ($this->ff->uinfo->data['ffm_priority'] == 3 ? '
			<p class="c"><a href="panel?ff_id=' . $this->ff->id . '&amp;a=suggestion">Foreslå ' . ($this->ff->type['type'] == "familie" ? 'nytt medlem' : 'ny ansatt') . ' til ' . $this->ff->type['refobj'] . ' &raquo;</a></p>' : '') . '
			<p class="c"><a href="./?ff_id=' . $this->ff->id . '&amp;stats">Vis statistikk for ' . $this->ff->type['refobj'] . '</a></p>
		</div>
		
		<!-- egen informasjon -->
		<div class="section">
			<h2>Min informasjon</h2>
			<dl class="dl_30 dd_right">
				<dt>Ble med</dt>
				<dd>' . ess::$b->date->get($this->ff->uinfo->data['ffm_date_join'])->format() . '</dd>
				<dt>Posisjon</dt>
				<dd>' . ucfirst($this->ff->uinfo->get_priority_name()) . '</dd>
				<dt>Donert</dt>
				<dd>' . game::format_cash($this->ff->uinfo->data['ffm_donate']) . '</dd>
			</dl>
			<form action="" method="post">
				<p class="c">' . show_sbutton("Forlat {$this->ff->type['refobj']}", 'name="leave"') . '</p>
			</form>
		</div>';
        // kulelager for familie
        if ($this->ff->type['type'] == "familie") {
            $cap = $this->ff->get_bullets_capacity();
            $bullets = $this->ff->params->get("bullets", 0);
            echo '
		
		<!-- kulelager for broderskap -->
		<div class="section">
			<h2>Kulelager for broderskapet</h2>
			<dl class="dd_right">
				<dt>Kapasitet</dt>
				<dd>' . game::format_num($cap) . '</dd>
				<dt>Antall kuler</dt>
				<dd>' . game::format_num($bullets) . '</dd>
			</dl>';
            if (login::$user->player->weapon) {
                $up_cap = login::$user->player->weapon->data['bullets'];
                $up_bullets = login::$user->player->data['up_weapon_bullets'];
                $up_bullets_a = login::$user->player->data['up_weapon_bullets_auksjon'];
                echo '
			<p style="margin-bottom: 0"><b>Din oversikt</b></p>
			<dl class="dd_right" style="margin-top: 0">
				<dt>Kapasitet</dt>
				<dd>' . game::format_num($up_cap) . '</dd>
				<dt>Antall kuler</dt>
				<dd>' . game::format_num($up_bullets) . ($up_bullets_a ? ' (' . game::format_num($up_bullets_a) . ')' : '') . '</dd>
			</dl>';
                // de som ikke er nostat skal ikke få ta ut kuler fra Kofradia Crew
                if (!access::is_nostat() && $this->ff->data['ff_id'] == 1) {
                    echo '
					<p>Du kan ikke sette inn/ta ut kuler fra ' . htmlspecialchars($this->ff->data['ff_name']) . '.</p>';
                } else {
                    // kan vi ikke ta ut kuler?
                    $p = $this->ff->uinfo->data['ffm_priority'];
                    if ($p > 3) {
                        echo '
						<p>Du kan ikke ta ut kuler, men kan få <user id="' . $this->ff->uinfo->data['ffm_parent_up_id'] . '" /> til å gi deg kuler fra broderskapet.</p>';
                    } else {
                        // spillere vi kan ta ut kuler til
                        $s_up = postval("bullets_up");
                        $other = array();
                        // kan vi ta ut kuler for kun underordnede under seg selv? (har pri 3)
                        if ($p == 3 && isset($this->ff->members['members_parent'][login::$user->player->id])) {
                            foreach ($this->ff->members['members_parent'][login::$user->player->id] as $ffm) {
                                $other[] = $ffm;
                            }
                        } elseif ($p < 3 && isset($this->ff->members['members_priority'][4])) {
                            foreach ($this->ff->members['members_priority'][4] as $ffm) {
                                $other[] = $ffm;
                            }
                        }
                        // har vi noen underordnede?
                        $sub = '';
                        if ($other) {
                            $sub = '
							<select name="bullets_up">
							<option value="">Til meg</option>';
                            foreach ($other as $ffm) {
                                $sub .= '
								<option value="' . $ffm->data['ffm_up_id'] . '"' . ($s_up == $ffm->data['ffm_up_id'] ? ' selected="selected"' : '') . '>' . htmlspecialchars($ffm->data['up_name']) . '</option>';
                            }
                            $sub .= '
							</select>';
                        }
                        echo '
						<form action="" method="post">
						<p class="c">' . $sub . '
						<input type="text" name="bullets_out" value="' . htmlspecialchars(postval("bullets_out")) . '" class="styled w30" />
						' . show_sbutton("Ta ut") . '
						</p>
						</form>';
                    }
                    echo '
					<form action="" method="post">
					<p class="c">
					<input type="text" name="bullets_in" value="' . htmlspecialchars(postval("bullets_in")) . '" class="styled w30" />
					' . show_sbutton("Sett inn kuler") . '
					</p>
					</form>';
                }
            } else {
                echo '
			<p>Du har ikke noe våpen og kan ikke sette inn/ta ut kuler.</p>';
            }
            echo '
		</div>';
        }
        echo '
		
		<!-- donasjon til FF -->
		<div class="section">
			<h2>Donér til ' . $this->ff->type['refobj'] . '</h2>
			<form action="" method="post">
				<dl class="dd_right">
					<dt>Beløp</dt>
					<dd><input type="text" name="donate" value="' . game::format_cash(game::intval(postval("donate"))) . '" class="styled w75" /></dd>
					<dt>Melding/notat</dt>
					<dd><input type="text" name="note" value="' . htmlspecialchars(postval("note")) . '" maxlength="50" class="styled w100" /></dd>
				</dl>
				<p class="c">' . show_sbutton("Donér") . '</p>
			</form>
		</div>
		
	</div>
	<div style="margin-left: 20px; float: left; width: 235px">' . ($pay_info ? '
		
		<!-- driftskostnad -->
		<div class="section">
			<h2>Driftskostnad</h2>
			<p>For at ' . $this->ff->type['refobj'] . ' ikke skal dø ut, må det betales inn et beløp på <u>100 mill</u> i tillegg til kostnad per ekstra medlemsplass til spillet hver 10. dag.</p>
			<p>Når medlemmene i ' . $this->ff->type['refobj'] . ' ranker, vil beløpet som må innbetales synke med 1 og 1 mill avhengig av hvor mye som rankes.</p>
			<p>' . ucfirst($this->ff->type['refobj']) . ' mister ikke ranken hvis et medlem forlater ' . $this->ff->type['refobj'] . '.</p>
			<p>Beløpet vil bli trukket fra banken automatisk ved innbetalingstidspunkt. Hvis det ikke er nok penger i banken, vil ' . $this->ff->type['refobj'] . ' få frist på å innbetale beløpet manuelt innen 24 timer. Beløpet vil da øke med 50 %.</p>' . (!$pay_info['in_time'] ? '
			<div class="section">
				<h2>Betaling av driftskostnad</h2>
				<p class="error_box">' . ucfirst($this->ff->type['refobj']) . ' har overskredet tidspunktet for innbetaling. Betaling må skje manuelt av ' . $this->ff->type['priority'][1] . '/' . $this->ff->type['priority'][2] . '.</p>
				<dl class="dd_right">
					<dt>Betalingsfrist</dt>
					<dd>' . ess::$b->date->get($pay_info['next'])->format() . '<br />' . game::timespan($pay_info['next'], game::TIME_ABS) . '</dd>
					<dt>Beløp</dt>
					<dd>' . game::format_cash($pay_info['price']) . '</dd>
				</dl>
				<p class="c"><a href="panel?ff_id=' . $this->ff->id . '&amp;a=pay" class="button">Fortsett/vis detaljer &raquo;</a></p>
				<p>Hvis beløpet ikke blir betalt innen betalingsfristen vil ' . $this->ff->type['refobj'] . ' dø ut.</p>
			</div>' : '
			<dl class="dd_right">
				<dt>Neste innbetaling</dt>
				<dd>' . ess::$b->date->get($pay_info['next'])->format() . '</dd>
				<dt>Foreløpig beløp</dt>
				<dd>' . game::format_cash($pay_info['price']) . '</dd>
			</dl>
			<p><a href="panel?ff_id=' . $this->ff->id . '&amp;a=pay">Vis oversikt over medlemmers bidrag &raquo;</a></p>
			<p><a href="panel?ff_id=' . $this->ff->id . '&amp;a=paystats">Statistikk &raquo;</a></p>') . '
		</div>' : '') . '
		
		<!-- forum ting -->
		<div class="section">
			<h2>Forum</h2>
			<p class="h_right"><a href="../forum/forum?id=' . $this->ff->get_fse_id() . '">Vis forum</a></p>
			<p>For enkel tilgang til forumet for ' . $this->ff->type['refobj'] . ' kan du legge til en lenke i menyen.</p>
			<form action="" method="post">
				<p><b>Status</b>: ' . ($forum_added ? 'Lenke <u>vises</u> - ' . show_sbutton("Fjern lenke", 'name="forum_link_remove"') : 'Lenke er <u>skjult</u> - ' . show_sbutton("Vis lenke", 'name="forum_link_add"')) . '</p>
			</form>
		</div>';
        // eier info
        if ($this->ff->access(2)) {
            $high = $this->ff->access(1);
            $groups = array();
            $eier = ucfirst($this->ff->type['priority'][1]);
            if ($high) {
                $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=sell">Selg ' . $this->ff->type['refobj'] . ' til ' . $this->ff->type['priority'][2] . '</a> (' . $eier . ')';
            }
            if ($high) {
                $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=navnbytte">' . ($this->ff->mod ? 'Endre navn' : 'Søk om navnbytte') . '</a> (' . $eier . ')';
            }
            $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=beskrivelse">Rediger beskrivelse</a>';
            if ($high) {
                $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=logo">Bytt logo</a> (' . $eier . ')';
            }
            if ($high) {
                $groups["Generelt"][] = '<a href="banken?ff_id=' . $this->ff->id . '">Banken</a> (' . $eier . ')';
            }
            if ($high) {
                $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=drop">Legg ned ' . $this->ff->type['refobj'] . '</a> (' . $eier . ')';
            }
            if ($this->ff->mod) {
                $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=br">Velg ny bygning</a> (Moderator)';
            }
            // firmaer
            switch ($this->ff->type['type']) {
                case "avis":
                    $groups["Avisfirma"][] = '<a href="avis?ff_id=' . $this->ff->id . '&amp;a">Mine avisartikler</a>';
                    $groups["Avisfirma"][] = '<a href="avis?ff_id=' . $this->ff->id . '&amp;u">Administrer avisutgivelser</a>';
                    break;
                case "bank":
                    $groups["Bankfirma"][] = '<a href="bank?ff_id=' . $this->ff->id . '">Administrer banken</a>';
                    break;
            }
            $groups["Medlemmer"][] = '<a href="medlemmer?ff_id=' . $this->ff->id . '">Medlemskontroll</a>';
            $groups["Medlemmer"][] = '<a href="medlemmer?ff_id=' . $this->ff->id . '&amp;invite">Inviter spiller</a>';
            if ($high && $this->ff->type['type'] == "familie") {
                $groups["Medlemmer"][] = '<a href="panel?ff_id=' . $this->ff->id . '&amp;a=members_limit">Medlemsbegrensning</a> (' . $eier . ')';
            }
            $groups["Annet"][] = '<a href="logg?ff_id=' . $this->ff->id . '">Vis logg</a>';
            $groups["Annet"][] = '<a href="../forum/forum?id=' . $this->ff->get_fse_id() . '">Vis forum</a>';
            echo '
		<div class="section">
			<h2>Innstillinger/handlinger</h2>';
            foreach ($groups as $group => $items) {
                echo '
			<h3>' . $group . '</h3>
			<ul>
				<li>' . implode('</li>
				<li>', $items) . '</li>
			</ul>';
            }
            echo '
		</div>';
        }
        echo '
	</div>
</div>';
    }