/** * @see Page::show() */ public function show() { $max = min(WCF::getUser()->getPermission('user.contest.maxAttachmentCount'), 1); $extensions = WCF::getUser()->getPermission('user.contest.allowedAttachmentExtensions'); $extensions = explode("\n", $extensions); $extensions = array_filter($extensions, create_function('$a', 'return in_array($a, array("jpeg", "jpg", "gif", "png"));')); $extensions = implode("\n", $extensions); require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $this->attachmentListEditor = new MessageAttachmentListEditor(array($this->priceID), 'contestPriceEntry', WCF::getPackageID('de.easy-coding.wcf.contest'), WCF::getUser()->getPermission('user.contest.maxAttachmentSize'), $extensions, $max); parent::show(); }
/** * Updates the language items of a language category. * * @param array $items * @param integer $categoryID * @param integer $packageID * @param array $useCustom */ public function easyUpdateItems($categoryString, $items, $packageID = null) { $packageID = $packageID === null ? WCF::getPackageID('de.easy-coding.wcf.contest') : $packageID; $language = new LanguageEditor($this->languageID); $xmlString = '<?xml version="1.0" encoding="' . CHARSET . '"?> <language languagecode="' . $this->getLanguageCode() . '"> <category name="' . $categoryString . '">'; foreach ($items as $key => $val) { if ($val === null) { continue; } $xmlString .= '<item name="' . $key . '"><![CDATA[' . $val . ']]></item>'; } $xmlString .= ' </category> </language>'; $xml = new XML(); $xml->loadString($xmlString); $language->updateFromXML($xml, $packageID); }
/** * @EventListener::execute() */ public function execute($eventObj, $className, $eventName) { // read the trackbacks $this->readTrackbacks($eventObj); // absolute url $permalink = PAGE_URL . '/index.php?page=Contest&contestID=' . $eventObj->contestID; $socialBookmarks = null; if (MODULE_SOCIAL_BOOKMARK) { $socialBookmarks = SocialBookmarks::getInstance()->getSocialBookmarks($permalink, $eventObj->entry->subject); } // assign data to template WCF::getTPL()->assign(array('trackback' => $this->trackback, 'trackbacks' => $this->trackbacks, 'socialBookmarks' => $socialBookmarks)); $objectPackageID = WCF::getPackageID('de.easy-coding.wcf.contest.socialBookmarks'); // get rdf code if ($this->trackback) { $tmp = $this->trackback->getRdfAutoDiscover($eventObj->entry->subject, $permalink, $eventObj->contestID, 'contestEntry', $objectPackageID); WCF::getTPL()->append('additionalContent3', $tmp); } WCF::getTPL()->append('additionalContent3', WCF::getTPL()->fetch('contestTrackbacks')); WCF::getTPL()->append('additionalButtonBar', WCF::getTPL()->fetch('contestSocialBookmarks')); }
/** * Creates a new help item. * * @param string $name * @param string $text * @param string $parentItem * @param string $refererPattern * @param integer $showOrder * @param boolean $isDisabled * @param integer $languageID * @param integer $packageID * * @return HelpItemEditor */ public static function create($name, $text = '', $parentItem = '', $refererPattern = '', $showOrder = 0, $isDisabled = 0, $languageID = 0, $packageID = PACKAGE_ID) { // get show order if ($showOrder == 0) { // get next number in row $sql = "SELECT\tMAX(showOrder) AS showOrder\n\t\t\t\tFROM\twcf" . WCF_N . "_help_item\n\t\t\t\tWHERE\tparentHelpItem = '" . escapeString($parentItem) . "'"; $row = WCF::getDB()->getFirstRow($sql); if (!empty($row)) { $showOrder = intval($row['showOrder']) + 1; } else { $showOrder = 1; } } else { $sql = "UPDATE\twcf" . WCF_N . "_help_item\n\t\t\t\tSET \tshowOrder = showOrder + 1\n\t\t\t\tWHERE \tshowOrder >= " . $showOrder . "\n\t\t\t\t\tAND parentHelpItem = '" . escapeString($parentItem) . "'"; WCF::getDB()->sendQuery($sql); } // get menu item name $helpItem = ''; if ($languageID == 0) { $helpItem = $name; } // save $sql = "INSERT INTO\twcf" . WCF_N . "_help_item\n\t\t\t\t\t(packageID, helpItem, parentHelpItem, refererPattern, showOrder, isDisabled)\n\t\t\tVALUES\t\t(" . $packageID . ", '" . escapeString($helpItem) . "', '" . escapeString($parentItem) . "', '" . escapeString($refererPattern) . "', " . $showOrder . ", " . $isDisabled . ")"; WCF::getDB()->sendQuery($sql); // get item id $helpItemID = WCF::getDB()->getInsertID("wcf" . WCF_N . "_help_item", 'helpItemID'); if ($languageID != 0) { // set name $helpItem = "item" . $helpItemID; $sql = "UPDATE\twcf" . WCF_N . "_help_item\n\t\t\t\tSET\thelpItem = '" . escapeString($helpItem) . "'\n\t\t\t\tWHERE \thelpItemID = " . $helpItemID; WCF::getDB()->sendQuery($sql); // save language variables $language = new LanguageEditor($languageID); $language->updateItems(array('wcf.help.item.' . $helpItem => $name, 'wcf.help.item.' . $helpItem . '.description' => $text), 0, WCF::getPackageID('com.woltlab.wcf.data.help')); LanguageEditor::deleteLanguageFiles($languageID, 'wcf.help.item'); } return new HelpItemEditor($helpItemID); }
/** * Gets a list of attachments. */ protected function readAttachments() { // read attachments if (MODULE_ATTACHMENT == 1 && count($this->attachmentEntryIDArray) > 0) { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentList.class.php'; $this->attachmentList = new MessageAttachmentList($this->attachmentEntryIDArray, 'contestEntry', '', WCF::getPackageID('de.easy-coding.wcf.contest')); $this->attachmentList->readObjects(); $this->attachments = $this->attachmentList->getSortedAttachments(WCF::getUser()->getPermission('user.contest.canViewAttachmentPreview')); // set embedded attachments if (WCF::getUser()->getPermission('user.contest.canViewAttachmentPreview')) { require_once WCF_DIR . 'lib/data/message/bbcode/AttachmentBBCode.class.php'; AttachmentBBCode::setAttachments($this->attachments); } // remove embedded attachments from list if (count($this->attachments) > 0) { MessageAttachmentList::removeEmbeddedAttachments($this->attachments); } } }
/** * @see NotificationObjectType::getPackageID() */ public function getPackageID() { return WCF::getPackageID('de.easy-coding.wcf.contest'); }
/** * @see Page::show() */ public function show() { // check upload permission if (MODULE_ATTACHMENT != 1 || !WCF::getUser()->getPermission('user.contest.canUploadAttachment')) { $this->showAttachments = false; } // get attachments editor if ($this->attachmentListEditor === null) { $max = min(WCF::getUser()->getPermission('user.contest.maxAttachmentCount'), 1); $extensions = WCF::getUser()->getPermission('user.contest.allowedAttachmentExtensions'); $extensions = explode("\n", $extensions); $extensions = array_filter($extensions, create_function('$a', 'return in_array($a, array("jpeg", "jpg", "gif", "png"));')); $extensions = implode("\n", $extensions); require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $this->attachmentListEditor = new MessageAttachmentListEditor(array(), 'contestPriceEntry', WCF::getPackageID('de.easy-coding.wcf.contest'), WCF::getUser()->getPermission('user.contest.maxAttachmentSize'), $extensions, $max); } parent::show(); }
/** * @see Page::show() */ public function show() { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $this->attachmentListEditor = new MessageAttachmentListEditor(array($this->solutionID), 'contestSolutionEntry', WCF::getPackageID('de.easy-coding.wcf.contest'), WCF::getUser()->getPermission('user.contest.maxAttachmentSize'), WCF::getUser()->getPermission('user.contest.allowedAttachmentExtensions'), WCF::getUser()->getPermission('user.contest.maxAttachmentCount')); parent::show(); }
/** * @see Page::show() */ public function show() { if (!MODULE_PM) { throw new IllegalLinkException(); } // check permission WCF::getUser()->checkPermission('user.pm.canUsePm'); if (!WCF::getUser()->userID) { throw new PermissionDeniedException(); } // check max pm permission if (WCF::getUser()->pmTotalCount >= WCF::getUser()->getPermission('user.pm.maxPm')) { throw new NamedUserException(WCF::getLanguage()->get('wcf.pm.error.mailboxIsFull')); } // get max text length $this->maxTextLength = WCF::getUser()->getPermission('user.pm.maxLength'); // check upload permissin if (MODULE_ATTACHMENT != 1 || !WCF::getUser()->getPermission('user.pm.canUploadAttachment')) { $this->showAttachments = false; } // get attachments editor require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $this->attachmentListEditor = new MessageAttachmentListEditor($this->pmID && !$this->forwarding && !$this->reply ? array($this->pmID) : array(), 'pm', WCF::getPackageID('com.woltlab.wcf.data.message.pm'), WCF::getUser()->getPermission('user.pm.maxAttachmentSize'), WCF::getUser()->getPermission('user.pm.allowedAttachmentExtensions'), WCF::getUser()->getPermission('user.pm.maxAttachmentCount')); // show form parent::show(); }
/** * @see Page::show() */ public function show() { // set active header menu item PageMenu::setActiveMenuItem('wcf.header.menu.user.contest'); // set active menu item ContestMenu::getInstance()->setContest($this->contest); ContestMenu::getInstance()->setActiveMenuItem('wcf.contest.menu.link.solution'); // check permission WCF::getUser()->checkPermission('user.contest.canViewContest'); if (!MODULE_CONTEST) { throw new IllegalLinkException(); } // check upload permission if (MODULE_ATTACHMENT != 1 || !WCF::getUser()->getPermission('user.contest.canUploadAttachment')) { $this->showAttachments = false; } // get attachments editor if ($this->attachmentListEditor === null) { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $this->attachmentListEditor = new MessageAttachmentListEditor(array(), 'contestSolutionEntry', WCF::getPackageID('de.easy-coding.wcf.contest'), WCF::getUser()->getPermission('user.contest.maxAttachmentSize'), WCF::getUser()->getPermission('user.contest.allowedAttachmentExtensions'), WCF::getUser()->getPermission('user.contest.maxAttachmentCount')); } parent::show(); }
/** * Deletes the data of the specified messages completely. * * @param string $pmIDs */ protected static function deleteData($pmIDs) { // delete recipients $sql = "DELETE FROM\twcf" . WCF_N . "_pm_to_user\n\t\t\tWHERE\t\tpmID IN (" . $pmIDs . ")"; WCF::getDB()->sendQuery($sql); // delete messages $sql = "DELETE FROM\twcf" . WCF_N . "_pm\n\t\t\tWHERE\t\tpmID IN (" . $pmIDs . ")"; WCF::getDB()->sendQuery($sql); // delete pm hashes $sql = "DELETE FROM\twcf" . WCF_N . "_pm_hash\n\t\t\tWHERE\t\tpmID IN (" . $pmIDs . ")"; WCF::getDB()->registerShutdownUpdate($sql); // delete attachments require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $attachmentList = new MessageAttachmentListEditor(explode(',', $pmIDs), 'pm', WCF::getPackageID('com.woltlab.wcf.data.message.pm')); $attachmentList->deleteAll(); }
/** * @see Page::show() */ public function show() { // set active header menu item PageMenu::setActiveMenuItem('wcf.header.menu.user.contest'); if (WCF::getUser()->userID == 0) { // forward to login page WCF::getTPL()->assign(array('url' => 'index.php?form=UserLogin' . SID_ARG_2ND, 'message' => WCF::getLanguage()->get('wcf.contest.register.message'))); WCF::getTPL()->display('redirect'); return; } // check permission WCF::getUser()->checkPermission('user.contest.canUseContest'); WCF::getUser()->checkPermission('user.contest.canAddContest'); if (!MODULE_CONTEST) { throw new IllegalLinkException(); } // check upload permission if (MODULE_ATTACHMENT != 1 || !WCF::getUser()->getPermission('user.contest.canUploadAttachment')) { $this->showAttachments = false; } // get attachments editor if ($this->attachmentListEditor == null) { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php'; $this->attachmentListEditor = new MessageAttachmentListEditor(array(), 'contestEntry', WCF::getPackageID('de.easy-coding.wcf.contest'), WCF::getUser()->getPermission('user.contest.maxAttachmentSize'), WCF::getUser()->getPermission('user.contest.allowedAttachmentExtensions'), WCF::getUser()->getPermission('user.contest.maxAttachmentCount')); } parent::show(); }
/** * Gets a list of attachments. */ protected function readAttachments() { // read attachments if (MODULE_ATTACHMENT == 1 && count($this->attachmentPMIDArray)) { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentList.class.php'; $this->attachmentList = new MessageAttachmentList($this->attachmentPMIDArray, 'pm', '', WCF::getPackageID('com.woltlab.wcf.data.message.pm')); $this->attachmentList->readObjects(); $this->attachments = $this->attachmentList->getSortedAttachments(); require_once WCF_DIR . 'lib/data/message/bbcode/AttachmentBBCode.class.php'; AttachmentBBCode::setAttachments($this->attachments); if (count($this->attachments) > 0) { MessageAttachmentList::removeEmbeddedAttachments($this->attachments); } } }
/** * @see Page::readData() */ public function readData() { parent::readData(); // show 5 entries on first page, but 20 on the following pages $this->eventmixList->sqlLimit = $this->pageNo <= 1 ? $this->itemsOnLandingpage : $this->itemsPerPage; $this->eventmixList->sqlOffset = $this->pageNo <= 1 ? 0 : ($this->pageNo - 2) * $this->itemsPerPage + $this->itemsOnLandingpage; // fire sql query $this->eventmixList->readObjects(); // get previous entry $sql = "SELECT\t\t*\n\t\t\tFROM\t\twcf" . WCF_N . "_contest\n\t\t\tWHERE\t\tuserID = " . intval($this->entry->userID) . "\n\t\t\t\t\tAND (\n\t\t\t\t\t\ttime > " . intval($this->entry->time) . "\n\t\t\t\t\t\tOR (time = " . intval($this->entry->time) . " AND contestID < " . intval($this->entry->contestID) . ")\n\t\t\t\t\t)\n\t\t\tORDER BY\ttime ASC, contestID DESC"; $this->previousEntry = new Contest(null, WCF::getDB()->getFirstRow($sql)); if (!$this->previousEntry->contestID) { $this->previousEntry = null; } // get next entry $sql = "SELECT\t\t*\n\t\t\tFROM\t\twcf" . WCF_N . "_contest\n\t\t\tWHERE\t\tuserID = " . intval($this->entry->userID) . "\n\t\t\t\t\tAND (\n\t\t\t\t\t\ttime < " . intval($this->entry->time) . "\n\t\t\t\t\t\tOR (time = " . intval($this->entry->time) . " AND contestID > " . intval($this->entry->contestID) . ")\n\t\t\t\t\t)\n\t\t\tORDER BY\ttime DESC, contestID ASC"; $this->nextEntry = new Contest(null, WCF::getDB()->getFirstRow($sql)); if (!$this->nextEntry->contestID) { $this->nextEntry = null; } // read attachments if (MODULE_ATTACHMENT == 1 && $this->entry->attachments > 0) { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentList.class.php'; $this->attachmentList = new MessageAttachmentList($this->contestID, 'contestEntry', '', WCF::getPackageID('de.easy-coding.wcf.contest')); $this->attachmentList->readObjects(); $this->attachments = $this->attachmentList->getSortedAttachments(WCF::getUser()->getPermission('user.contest.canViewAttachmentPreview')); // set embedded attachments if (WCF::getUser()->getPermission('user.contest.canViewAttachmentPreview')) { require_once WCF_DIR . 'lib/data/message/bbcode/AttachmentBBCode.class.php'; AttachmentBBCode::setAttachments($this->attachments); } // remove embedded attachments from list if (count($this->attachments) > 0) { MessageAttachmentList::removeEmbeddedAttachments($this->attachments); } } if ($this->entry->isOwner()) { // init todo list require_once WCF_DIR . 'lib/data/contest/owner/todo/ContestOwnerTodoList.class.php'; $this->todoList = new ContestOwnerTodoList(); $this->todoList->sqlConditions .= 'contest.contestID = ' . intval($this->contestID); $this->todoList->readObjects(); } // init sidebar $this->sidebar = new ContestSidebar($this->entry); }
/** * @see Form::readData() */ public function readData() { parent::readData(); if ($this->sendPickNotification) { $this->solutionObj->getEditor()->sendPickNotification(); } // init todo list $this->todoList = new ContestParticipantTodoList(); $this->todoList->sqlConditions .= 'contest_participant.contestID = ' . intval($this->contestID); $this->todoList->readObjects(); // read comments $this->commentList->sqlOffset = ($this->pageNo - 1) * $this->itemsPerPage; $this->commentList->sqlLimit = $this->itemsPerPage; $this->commentList->readObjects(); // read ratings $this->ratingList->readObjects(); // read attachments if (MODULE_ATTACHMENT == 1 && $this->solutionObj->attachments > 0) { require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentList.class.php'; $this->attachmentList = new MessageAttachmentList($this->solutionObj->solutionID, 'contestSolutionEntry', '', WCF::getPackageID('de.easy-coding.wcf.contest')); $this->attachmentList->readObjects(); $this->attachments = $this->attachmentList->getSortedAttachments(WCF::getUser()->getPermission('user.contest.canViewAttachmentPreview')); // set embedded attachments if (WCF::getUser()->getPermission('user.contest.canViewAttachmentPreview')) { require_once WCF_DIR . 'lib/data/message/bbcode/AttachmentBBCode.class.php'; AttachmentBBCode::setAttachments($this->attachments); } // remove embedded attachments from list if (count($this->attachments) > 0) { MessageAttachmentList::removeEmbeddedAttachments($this->attachments); } } // init sidebar $this->sidebar = new ContestSidebar($this->entry); }