/** * 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; }
/** * 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 . '&a=suggestion">Foreslå ' . ($this->ff->type['type'] == "familie" ? 'nytt medlem' : 'ny ansatt') . ' til ' . $this->ff->type['refobj'] . ' »</a></p>' : '') . ' <p class="c"><a href="./?ff_id=' . $this->ff->id . '&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 . '&a=pay" class="button">Fortsett/vis detaljer »</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 . '&a=pay">Vis oversikt over medlemmers bidrag »</a></p> <p><a href="panel?ff_id=' . $this->ff->id . '&a=paystats">Statistikk »</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 . '&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 . '&a=navnbytte">' . ($this->ff->mod ? 'Endre navn' : 'Søk om navnbytte') . '</a> (' . $eier . ')'; } $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&a=beskrivelse">Rediger beskrivelse</a>'; if ($high) { $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&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 . '&a=drop">Legg ned ' . $this->ff->type['refobj'] . '</a> (' . $eier . ')'; } if ($this->ff->mod) { $groups["Generelt"][] = '<a href="panel?ff_id=' . $this->ff->id . '&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 . '&a">Mine avisartikler</a>'; $groups["Avisfirma"][] = '<a href="avis?ff_id=' . $this->ff->id . '&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 . '&invite">Inviter spiller</a>'; if ($high && $this->ff->type['type'] == "familie") { $groups["Medlemmer"][] = '<a href="panel?ff_id=' . $this->ff->id . '&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>'; }