Ejemplo n.º 1
0
 /**
  * Validate the data.
  *
  * @return boolean
  */
 public function validate()
 {
     $text = $this->getData();
     if (Str::length(trim(str_replace(" ", "", strip_tags($text)))) > 0) {
         if ($this->getSetup("max_length", 10000) < Str::length($text)) {
             $this->addError("TEXT_TOO_LARGE");
             return false;
         }
         $this->setData(richText($text));
     } else {
         $this->setData("");
     }
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Saves the updated alliance preferences.
  *
  * @param boolean $showmember		Show member list to everyone
  * @param boolean $showhomepage		Show homepage to everyone
  * @param boolean $open				Open applications
  * @param string $foundername		Founder rank name
  * @param integer $memberlistsort	Default memer list sort
  * @param string $textextern		Extern alliance text
  * @param string $textintern		Intern alliance text
  * @param string $logo				Logo URL
  * @param string $homepage			Homepage URL
  * @param string $applicationtext	Application template
  *
  * @return Bengine_Game_Controller_Alliance
  */
 protected function updateAllyPrefs($showmember, $showhomepage, $open, $foundername, $memberlistsort, $textextern, $textintern, $logo, $homepage, $applicationtext)
 {
     $foundername = trim($foundername);
     $logo = trim($logo);
     $homepage = trim($homepage);
     Hook::event("UpdateAlliancePreferences");
     if ($showmember == 1) {
         $showmember = 1;
     } else {
         $showmember = 0;
     }
     if ($showhomepage == 1) {
         $showhomepage = 1;
     } else {
         $showhomepage = 0;
     }
     if ($open == 1) {
         $open = 1;
     } else {
         $open = 0;
     }
     if (Str::length($foundername) > Core::getOptions()->get("MAX_CHARS_ALLY_NAME")) {
         $foundername = "";
     }
     $further = 1;
     if (Str::length($textextern) > Core::getOptions()->get("MAX_ALLIANCE_TEXT_LENGTH")) {
         $further = 0;
     }
     if (Str::length($textintern) > Core::getOptions()->get("MAX_ALLIANCE_TEXT_LENGTH")) {
         $further = 0;
     }
     if ((!isValidImageURL($logo) || Str::length($logo) > 128) && $logo != "") {
         $further = 0;
     }
     if ((!isValidURL($homepage) || Str::length($homepage) > 128) && $homepage != "") {
         $further = 0;
     }
     if (Str::length($applicationtext) > Core::getOptions()->get("MAX_APPLICATION_TEXT_LENGTH")) {
         $further = 0;
     }
     if ($further == 1) {
         $spec = array("logo" => $logo, "textextern" => richText($textextern), "textintern" => richText($textintern), "applicationtext" => Str::validateXHTML($applicationtext), "homepage" => $homepage, "showmember" => $showmember, "showhomepage" => $showhomepage, "memberlistsort" => $memberlistsort, "open" => $open, "foundername" => Str::validateXHTML($foundername));
         Core::getQuery()->update("alliance", $spec, "aid = ?", array($this->aid));
         $this->redirect("game/" . SID . "/Alliance/Manage");
     } else {
         if (Str::length($textextern) > Core::getOptions()->get("MAX_ALLIANCE_TEXT_LENGTH")) {
             Core::getTPL()->assign("externerr", Logger::getMessageField("TEXT_INVALID"));
         }
         if (Str::length($textintern) > Core::getOptions()->get("MAX_ALLIANCE_TEXT_LENGTH")) {
             Core::getTPL()->assign("internerr", Logger::getMessageField("TEXT_INVALID"));
         }
         if (Str::length($applicationtext) > Core::getOptions()->get("MAX_APPLICATION_TEXT_LENGTH")) {
             Core::getTPL()->assign("apperr", Logger::getMessageField("TEXT_INVALID"));
         }
         if ((!isValidImageURL($logo) || Str::length($logo) > 128) && $logo != "") {
             Core::getTPL()->assign("logoerr", Logger::getMessageField("LOGO_INVALID"));
         }
         if ((!isValidURL($homepage) || Str::length($homepage) > 128) && $homepage != "") {
             Core::getTPL()->assign("hperr", Logger::getMessageField("HOMEPAGE_INVALID"));
         }
     }
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * Deletes messages.
  *
  * @param integer $folder	Folder id
  * @param integer $option	Mode to delete content
  * @param array $msgs		Messages
  *
  * @return Bengine_Game_Controller_MSG
  */
 protected function deleteMessages($folder, $option, array $msgs)
 {
     $pagination = $this->getPagination($folder);
     $deltime = 604800;
     if (is_numeric(Core::getOptions()->get("DEL_MESSAGE_DAYS")) && Core::getOptions()->get("DEL_MESSAGE_DAYS") > 0) {
         $deltime = (int) Core::getOptions()->get("DEL_MESSAGE_DAYS") * 86400;
     }
     $deltime = TIME - $deltime;
     Core::getQuery()->delete("message", "time <= ?", null, null, array($deltime));
     switch ($option) {
         case 1:
             foreach ($msgs as $msgid) {
                 Core::getQuery()->delete("message", "msgid = ? AND receiver = ?", null, null, array($msgid, Core::getUser()->get("userid")));
             }
             break;
         case 2:
             $where = Core::getDB()->quoteInto("receiver = ? AND mode = ?", array(Core::getUser()->get("userid"), $folder));
             $result = Core::getQuery()->select("message", "msgid", "", $where, "time DESC", $pagination->getStart() . ", " . Core::getOptions()->get("MAX_PMS"));
             foreach ($result->fetchAll() as $row) {
                 if (!in_array($row["msgid"], $msgs)) {
                     Core::getQuery()->delete("message", "msgid = ?", null, null, array($row["msgid"]));
                 }
             }
             $result->closeCursor();
             break;
         case 3:
             $where = Core::getDB()->quoteInto("receiver = ? AND mode = ?", array(Core::getUser()->get("userid"), $folder));
             $result = Core::getQuery()->select("message", array("msgid"), "", $where, "time DESC", $pagination->getStart() . ", " . Core::getOptions()->get("MAX_PMS"));
             foreach ($result->fetchAll() as $row) {
                 Core::getQuery()->delete("message", "msgid = ?", null, null, array($row["msgid"]));
             }
             break;
         case 4:
             Core::getQuery()->delete("message", "receiver = ? AND mode = ?", null, null, array(Core::getUser()->get("userid"), $folder));
             break;
         case 5:
             $reports = array();
             $modId = Game::getRandomModerator();
             foreach ($msgs as $msgid) {
                 $where = Core::getDB()->quoteInto("m.msgid = ? AND m.receiver = ?", array($msgid, Core::getUser()->get("userid")));
                 $result = Core::getQuery()->select("message m", array("m.sender", "m.mode", "m.message", "m.time", "u.username"), "LEFT JOIN " . PREFIX . "user u ON (u.userid = m.sender)", $where);
                 if ($row = $result->fetchRow()) {
                     if (($row["sender"] > 0 || $row["mode"] == 5) && $row["sender"] != $modId) {
                         $reports[] = $row;
                     }
                 }
             }
             if (count($reports) > 0) {
                 Core::getLang()->assign("reportSender", Core::getUser()->get("username"));
                 foreach ($reports as $report) {
                     Core::getLang()->assign("reportMessage", $report["message"]);
                     Core::getLang()->assign("reportUser", $report["username"]);
                     Core::getLang()->assign("reportSendTime", Date::timeToString(1, $report["time"], "", false));
                     if ($report["mode"] == 5) {
                         $assault = Game::getModel("game/assault")->load((int) $report["message"]);
                         $url = BASE_URL . Core::getLang()->getOpt("langcode") . "/combat/report/" . $assault->get("assaultid") . "/" . $assault->get("key");
                         $gentime = $assault->get("gentime") / 1000;
                         $label = Core::getLanguage()->getItem("ASSAULT_REPORT") . " (A: " . fNumber($assault->get("lostunits_attacker")) . ", D: " . fNumber($assault->get("lostunits_defender")) . ") " . $gentime . "s";
                         Core::getLang()->assign("reportLink", "<span class=\"assault-report\" onclick=\"window.open('" . $url . "')\">" . $label . "</span>");
                         $message = Core::getDB()->escape(Core::getLang()->get("MODERATOR_REPORT_COMBAT"));
                     } else {
                         richText($message = Core::getLang()->get("MODERATOR_REPORT_MESSAGE"));
                     }
                     $subject = Core::getLang()->get("MODERATOR_REPORT_SUBJECT");
                     $spec = array("sender" => null, "mode" => 1, "subject" => $subject, "message" => $message, "receiver" => $modId, "time" => TIME, "read" => 0);
                     Core::getQuery()->insert("message", $spec);
                 }
                 Logger::addMessage("MESSAGES_REPORTED", "success");
             }
             break;
     }
     return $this;
 }