/** * @see Form::save() */ public function save() { parent::save(); // store search result in database $data = serialize(array('matches' => $this->matches, 'itemsPerPage' => $this->itemsPerPage, 'columns' => $this->columns)); $sql = "INSERT INTO \twcf" . WCF_N . "_search\n\t\t\t\t\t(userID, searchData, searchDate, searchType)\n\t\t\tVALUES\t\t(" . WCF::getUser()->userID . ",\n\t\t\t\t\t'" . escapeString($data) . "',\n\t\t\t\t\t" . TIME_NOW . ",\n\t\t\t\t\t'users')"; unset($data); // save memory WCF::getDB()->sendQuery($sql); unset($sql); // save memory // get new search id $this->searchID = WCF::getDB()->getInsertID(); $this->saved(); // forward to result page HeaderUtil::redirect('index.php?page=UserList&searchID=' . $this->searchID . '&sortField=' . rawurlencode($this->sortField) . '&sortOrder=' . rawurlencode($this->sortOrder) . '&packageID=' . PACKAGE_ID . SID_ARG_2ND_NOT_ENCODED); exit; }
/** * @see Form::show() */ public function show() { // set active menu item WCFACP::getMenu()->setActiveMenuItem('wcf.acp.menu.link.user.massProcessing'); // check permission WCF::getUser()->checkPermission(array('admin.user.canEditUser', 'admin.user.canDeleteUser', 'admin.user.canMailUser')); // check master password WCFACP::checkMasterPassword(); // get user options and categories from cache $this->readCache(); // show form parent::show(); }
/** * @see Page::readData() */ public function readData() { parent::readData(); // get profile options require_once WCF_DIR . 'lib/data/user/option/UserOptions.class.php'; $userOptions = new UserOptions(); $this->categories = $userOptions->getOptionTree('profile', $this->frame->getUser()); // move contact information and about me foreach ($this->categories as $category => $categoryData) { if ($category == 'profile.contact' || $category == 'profile.messenger') { foreach ($categoryData['options'] as $key => $option) { if (isset($option['outputData'])) { $this->contactInformation[] = $option['outputData']; } else { if (!empty($option['optionValue']) && (empty($option['outputClass']) || !$userOptions->getOutputObject($option['outputClass']) instanceof UserOptionOutputContactInformation)) { $this->contactInformation[] = array('icon' => '', 'title' => WCF::getLanguage()->get('wcf.user.option.' . $option['optionName']), 'value' => $option['optionValue'], 'url' => ''); } } } unset($this->categories[$category]); } } // add vcard link $this->contactInformation[] = array('icon' => StyleManager::getStyle()->getIconPath('vCardM.png'), 'title' => WCF::getLanguage()->get('wcf.user.profile.downloadVCard'), 'value' => StringUtil::encodeHTML($this->frame->getUser()->username), 'url' => 'index.php?page=VCard&userID=' . $this->frame->getUserID() . SID_ARG_2ND); // add general informations // registration date $this->generalInformation[] = array('icon' => StyleManager::getStyle()->getIconPath('registerM.png'), 'title' => WCF::getLanguage()->get('wcf.user.registrationDate'), 'value' => DateUtil::formatTime(null, $this->frame->getUser()->registrationDate)); // languages require_once WCF_DIR . 'lib/acp/form/UserOptionListForm.class.php'; $languages = array(); $availableLanguages = UserOptionListForm::getAvailableContentLanguages(); if (!$this->frame->getUser()->languageIDs) { $this->languages = $availableLanguages; } else { $languageIDs = explode(',', $this->frame->getUser()->languageIDs); foreach ($languageIDs as $languageID) { if (isset($availableLanguages[$languageID])) { $languages[$languageID] = $availableLanguages[$languageID]; } } // sort languages StringUtil::sort($languages); } if (count($languages)) { $this->generalInformation[] = array('icon' => StyleManager::getStyle()->getIconPath('languageM.png'), 'title' => WCF::getLanguage()->get('wcf.user.profile.languages'), 'value' => implode(', ', $languages)); } // last activity if (!$this->frame->getUser()->isOnline() && (!$this->frame->getUser()->invisible || WCF::getUser()->getPermission('admin.general.canViewInvisible')) && $this->frame->getUser()->lastActivityTime != 0) { $this->generalInformation[] = array('icon' => StyleManager::getStyle()->getIconPath('offlineM.png'), 'title' => WCF::getLanguage()->get('wcf.user.lastActivity'), 'value' => DateUtil::formatTime(null, $this->frame->getUser()->lastActivityTime, true)); } // profile visits WCF::getTPL()->assign('user', $this->frame->getUser()); $this->generalInformation[] = array('icon' => StyleManager::getStyle()->getIconPath('visitsM.png'), 'title' => WCF::getLanguage()->get('wcf.user.profile.hits'), 'value' => StringUtil::formatNumeric($this->frame->getUser()->profileHits) . ($this->frame->getUser()->getProfileAge() > 1 ? ' ' . WCF::getLanguage()->getDynamicVariable('wcf.user.profile.hitsPerDay') : '')); // get profile visitors $sql = "SELECT\t\tavatar.*, user_table.*, visitor.*\n\t\t\tFROM\t\twcf" . WCF_N . "_user_profile_visitor visitor\n\t\t\tLEFT JOIN \twcf" . WCF_N . "_user user_table\n\t\t\tON \t\t(user_table.userID = visitor.userID)\n\t\t\tLEFT JOIN \twcf" . WCF_N . "_avatar avatar\n\t\t\tON \t\t(avatar.avatarID = user_table.avatarID)\n\t\t\tWHERE\t\townerID = " . $this->frame->getUserID() . "\n\t\t\t\t\tAND user_table.userID IS NOT NULL\n\t\t\tORDER BY\ttime DESC"; $result = WCF::getDB()->sendQuery($sql, 5); while ($row = WCF::getDB()->fetchArray($result)) { $this->profileVisitors[] = new UserProfile(null, $row); } // friends if (MODULE_MEMBERS_LIST == 1 && $this->frame->getUser()->shareWhitelist) { $sql = "SELECT\t\tavatar.*, user_table.*\n\t\t\t\tFROM\t\twcf" . WCF_N . "_user_whitelist friends\n\t\t\t\tLEFT JOIN \twcf" . WCF_N . "_user user_table\n\t\t\t\tON \t\t(user_table.userID = friends.whiteUserID)\n\t\t\t\tLEFT JOIN \twcf" . WCF_N . "_avatar avatar\n\t\t\t\tON \t\t(avatar.avatarID = user_table.avatarID)\n\t\t\t\tWHERE\t\tfriends.userID = " . $this->frame->getUserID() . "\n\t\t\t\t\t\tAND confirmed = 1\n\t\t\t\t\t\tAND user_table.userID IS NOT NULL\n\t\t\t\tORDER BY\tfriends.time DESC"; $result = WCF::getDB()->sendQuery($sql, 5); while ($row = WCF::getDB()->fetchArray($result)) { $this->friends[] = new UserProfile(null, $row); } } }
/** * @see Page::readData() */ public function readData() { UserOptionListForm::readData(); if (!count($_POST)) { // get visible languages $this->readVisibleLanguages(); // default values $this->readDefaultValues(); } // add icon path $this->categoryData = $this->cachedCategories[$this->activeCategory]; if (!empty($this->categoryData['categoryIconM'])) { // get relative path $path = ''; if (empty($this->categoryData['packageDir'])) { $path = RELATIVE_WCF_DIR; } else { $path = FileUtil::getRealPath(RELATIVE_WCF_DIR . $this->categoryData['packageDir']); } $this->categoryData['categoryIconM'] = $path . $this->categoryData['categoryIconM']; } // get path to category icons foreach ($this->cachedCategories as $key => $category) { // add icon path if (!empty($category['categoryIconM'])) { // get relative path $path = ''; if (empty($category['packageDir'])) { $path = RELATIVE_WCF_DIR; } else { $path = FileUtil::getRealPath(RELATIVE_WCF_DIR . $category['packageDir']); } $this->cachedCategories[$key]['categoryIconM'] = $path . $category['categoryIconM']; } } // get categories $this->options = $this->getOptionTree($this->activeCategory); if (count($this->options) == 0) { $this->pageOptions = $this->getCategoryOptions($this->activeCategory); } }
/** * @see DynamicOptionListForm::checkOption() */ protected function checkOption($optionName) { if (!parent::checkOption($optionName)) { return false; } $option = $this->cachedOptions[$optionName]; return $option['editable'] != 1 && $option['editable'] != 4 && !$option['disabled']; }