public function __construct($data, $boxname = "") { $this->BoxData['templatename'] = "personalbox"; $this->getBoxStatus($data); $this->BoxData['boxID'] = $data['boxID']; // Instant Messenger by Tatzelwurm if (!defined('INSTANTMESSENGER_AKTIV')) { define('INSTANTMESSENGER_AKTIV', false); } $imcount = 0; $pbShowIM = false; if (!empty($_REQUEST['page'])) { $boxCurPage = $_REQUEST['page']; } else { $boxCurPage = 'Portal'; } // DEFAULTS $pbCatVertOffset = 4; $pbLargeRankImages = false; $pbRepeatRankImage = true; $pbRankImage = '<img src="' . RELATIVE_WCF_DIR . 'icon/userRank1S.png" alt="" title="' . WCF::getLanguage()->get('wcf.user.rank') . '" />'; $pbLineFeedRank = false; $pbFBColor = 1; $pbSBColor = 2; $pbShowUserMarking = true; $pbStyleWidth = 140; $pbShowProfileLink = false; $pbShowDisplayLink = false; $pbFirstColWidth = 20; $pbTableWidth = '99%'; $pbCellPadding = 0; $pbWeatherZipCode = '60329'; $pbWeatherComZipCode = 'DEPLZ,60329'; $pbWeatherStyle = 1; $pbWeatherComStyle = 4; $pbWeatherWidth = 140; $pbWeatherComDay = 'C'; $pbMaxHeight = 0; $pbShowAvatar = true; $pbAvatarMaxWidth = 150; $pbAvatarMaxHeight = 150; $pbShowPersonal = false; $pbShowSearch = true; $pbSearchDays = 0; $pbShowPM = true; $pbShowUserCP = true; $pbShowStyles = false; $pbShowMisc = false; $pbShowWeather = false; $pbShowWeatherCom = false; $pbShowProfileHits = false; // ACP Konstanten... if (!defined('PERSONALBOX_CATSPACER_ACP')) { define('PERSONALBOX_CATSPACER_ACP', $pbCatVertOffset); } if (!defined('PERSONALBOX_LARGERANKIMAGES_ACP')) { define('PERSONALBOX_LARGERANKIMAGES_ACP', $pbLargeRankImages); } if (!defined('PERSONALBOX_REPEATRANKIMAGE_ACP')) { define('PERSONALBOX_REPEATRANKIMAGE_ACP', $pbRepeatRankImage); } if (!defined('PERSONALBOX_STYLEBOXWIDTH_ACP')) { define('PERSONALBOX_STYLEBOXWIDTH_ACP', $pbStyleWidth); } if (!defined('PERSONALBOX_WEATHER_ZIPCODE_ACP')) { define('PERSONALBOX_WEATHER_ZIPCODE_ACP', $pbWeatherZipCode); } if (!defined('PERSONALBOX_WEATHERCOM_ZIPCODE_ACP')) { define('PERSONALBOX_WEATHERCOM_ZIPCODE_ACP', $pbWeatherComZipCode); } if (!defined('PERSONALBOX_WEATHER_STYLE_ACP')) { define('PERSONALBOX_WEATHER_STYLE_ACP', $pbWeatherStyle); } if (!defined('PERSONALBOX_WEATHERCOM_STYLE_ACP')) { define('PERSONALBOX_WEATHERCOM_STYLE_ACP', $pbWeatherComStyle); } if (!defined('PERSONALBOX_WEATHERCOM_DAY_ACP')) { define('PERSONALBOX_WEATHERCOM_DAY_ACP', $pbWeatherComDay); } if (!defined('PERSONALBOX_WEATHER_WIDTH_ACP')) { define('PERSONALBOX_WEATHER_WIDTH_ACP', $pbWeatherWidth); } if (!defined('PERSONALBOX_LINEFEEDRANK_ACP')) { define('PERSONALBOX_LINEFEEDRANK_ACP', $pbLineFeedRank); } if (!defined('PERSONALBOX_FBCOLOR_ACP')) { define('PERSONALBOX_FBCOLOR_ACP', $pbFBColor); } if (!defined('PERSONALBOX_SBCOLOR_ACP')) { define('PERSONALBOX_SBCOLOR_ACP', $pbSBColor); } if (!defined('PERSONALBOX_SHOWUSERMARKING_ACP')) { define('PERSONALBOX_SHOWUSERMARKING_ACP', $pbShowUserMarking); } if (!defined('PERSONALBOX_SHOWPROFILELINK_ACP')) { define('PERSONALBOX_SHOWPROFILELINK_ACP', $pbShowProfileLink); } if (!defined('PERSONALBOX_SHOWDISPLAYLINK_ACP')) { define('PERSONALBOX_SHOWDISPLAYLINK_ACP', $pbShowDisplayLink); } if (!defined('PERSONALBOX_FIRSTCOLWIDTH_ACP')) { define('PERSONALBOX_FIRSTCOLWIDTH_ACP', $pbFirstColWidth); } if (!defined('PERSONALBOX_TABLEWIDTH_ACP')) { define('PERSONALBOX_TABLEWIDTH_ACP', $pbTableWidth); } if (!defined('PERSONALBOX_CELLPADDING_ACP')) { define('PERSONALBOX_CELLPADDING_ACP', $pbCellPadding); } if (!defined('PERSONALBOX_MAXHEIGHT_ACP')) { define('PERSONALBOX_MAXHEIGHT_ACP', $pbMaxHeight); } if (!defined('PERSONALBOX_SHOW_AVATAR_ACP')) { define('PERSONALBOX_SHOW_AVATAR_ACP', $pbShowAvatar); } if (!defined('PERSONALBOX_AVATARMAXWIDTH_ACP')) { define('PERSONALBOX_AVATARMAXWIDTH_ACP', $pbAvatarMaxWidth); } if (!defined('PERSONALBOX_AVATARMAXHEIGHT_ACP')) { define('PERSONALBOX_AVATARMAXHEIGHT_ACP', $pbAvatarMaxHeight); } if (!defined('PERSONALBOX_SHOW_PERSONAL_ACP')) { define('PERSONALBOX_SHOW_PERSONAL_ACP', $pbShowPersonal); } if (!defined('PERSONALBOX_SHOW_SEARCH_ACP')) { define('PERSONALBOX_SHOW_SEARCH_ACP', $pbShowSearch); } if (!defined('PERSONALBOX_SEARCH_DAYS_ACP')) { define('PERSONALBOX_SEARCH_DAYS_ACP', $pbSearchDays); } if (!defined('PERSONALBOX_SHOW_PM_ACP')) { define('PERSONALBOX_SHOW_PM_ACP', $pbShowPM); } if (!defined('PERSONALBOX_SHOW_USERCP_ACP')) { define('PERSONALBOX_SHOW_USERCP_ACP', $pbShowUserCP); } if (!defined('PERSONALBOX_SHOW_STYLES_ACP')) { define('PERSONALBOX_SHOW_STYLES_ACP', $pbShowStyles); } if (!defined('PERSONALBOX_SHOW_MISC_ACP')) { define('PERSONALBOX_SHOW_MISC_ACP', $pbShowMisc); } if (!defined('PERSONALBOX_WEATHER_SHOW_ACP')) { define('PERSONALBOX_WEATHER_SHOW_ACP', $pbShowWeather); } if (!defined('PERSONALBOX_WEATHERCOM_SHOW_ACP')) { define('PERSONALBOX_WEATHERCOM_SHOW_ACP', $pbShowWeatherCom); } if (!defined('PERSONALBOX_SHOW_IM_ACP')) { define('PERSONALBOX_SHOW_IM_ACP', false); } if (!defined('PERSONALBOX_SHOW_PROFILEHITS_ACP')) { define('PERSONALBOX_SHOW_PROFILEHITS_ACP', $pbShowProfileHits); } if (WCF::getUser()->userID != 0) { // Include libraries... require_once WBB_DIR . 'lib/data/board/Board.class.php'; require_once WCF_DIR . 'lib/data/user/UserProfile.class.php'; // Boxen Hoehe if (WCF::getUser()->getPermission('user.profile.personalbox.canSetMaxheight') && (WCF::getUser()->personalbox_maxheight >= 100 || WCF::getUser()->personalbox_maxheight == 0 || WCF::getUser()->personalbox_maxheight == 1)) { $pbMaxHeight = intval(WCF::getUser()->personalbox_maxheight); } else { if (PERSONALBOX_MAXHEIGHT_ACP >= 100) { $pbMaxHeight = PERSONALBOX_MAXHEIGHT_ACP; } } // Avatar if (WCF::getUser()->getPermission('user.profile.personalbox.canSetAvatar') && WCF::getUser()->personalbox_show_avatar == 'enabled') { $pbShowAvatar = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetAvatar') && WCF::getUser()->personalbox_show_avatar == 'disabled') { $pbShowAvatar = false; } else { $pbShowAvatar = PERSONALBOX_SHOW_AVATAR_ACP; } } // Persoenliches if (WCF::getUser()->getPermission('user.profile.personalbox.canSetPersonal') && WCF::getUser()->personalbox_show_personal == 'enabled') { $pbShowPersonal = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetPersonal') && WCF::getUser()->personalbox_show_personal == 'disabled') { $pbShowPersonal = false; } else { $pbShowPersonal = PERSONALBOX_SHOW_PERSONAL_ACP; } } // Beitraege if (WCF::getUser()->getPermission('user.profile.personalbox.canSetCurPosts') && WCF::getUser()->personalbox_show_search == 'enabled') { $pbShowSearch = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetCurPosts') && WCF::getUser()->personalbox_show_search == 'disabled') { $pbShowSearch = false; } else { $pbShowSearch = PERSONALBOX_SHOW_SEARCH_ACP; } } // Private Nachrichten if (WCF::getUser()->getPermission('user.profile.personalbox.canSetPM') && WCF::getUser()->personalbox_show_pm == 'enabled') { $pbShowPM = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetPM') && WCF::getUser()->personalbox_show_pm == 'disabled') { $pbShowPM = false; } else { $pbShowPM = PERSONALBOX_SHOW_PM_ACP; } } // Verwaltung if (WCF::getUser()->getPermission('user.profile.personalbox.canSetUserCP') && WCF::getUser()->personalbox_show_usercp == 'enabled') { $pbShowUserCP = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetUserCP') && WCF::getUser()->personalbox_show_usercp == 'disabled') { $pbShowUserCP = false; } else { $pbShowUserCP = PERSONALBOX_SHOW_USERCP_ACP; } } // Style if (WCF::getUser()->getPermission('user.profile.personalbox.canSetStyle') && WCF::getUser()->personalbox_show_styles == 'enabled') { $pbShowStyles = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetStyle') && WCF::getUser()->personalbox_show_styles == 'disabled') { $pbShowStyles = false; } else { $pbShowStyles = PERSONALBOX_SHOW_STYLES_ACP; } } $pbStyles = array(); if ($pbShowStyles && defined('PERSONALBOX_CNTSTYLES_ACP') && PERSONALBOX_CNTSTYLES_ACP == true) { $i = $isDefaultIdx = $cntDisabled = 0; $sql = "SELECT s.styleID, s.styleName, s.isDefault, s.disabled, COUNT(u.userID) AS CNT" . "\n FROM wcf" . WCF_N . "_style s" . "\n LEFT JOIN wcf" . WCF_N . "_user u ON (u.styleID = s.styleID OR (u.styleID = 0 AND isDefault = 1))" . "\n GROUP BY styleID, styleName, isDefault, disabled" . "\n ORDER BY styleName"; $result = WBBCore::getDB()->sendQuery($sql); while ($row = WBBCore::getDB()->fetchArray($result)) { $pbStyles[$i]['ID'] = $row['styleID']; $pbStyles[$i]['NAME'] = $row['styleName']; $pbStyles[$i]['DEFAULT'] = $row['isDefault']; $pbStyles[$i]['DISABLED'] = $row['disabled']; $pbStyles[$i]['CNT'] = $row['CNT']; if (!empty($row['isDefault'])) { $isDefaultIdx = $i; } if (!empty($row['disabled'])) { $cntDisabled += $row['CNT']; } $i++; } if ($cntDisabled > 0 && isset($pbStyles[$isDefaultIdx])) { $pbStyles[$isDefaultIdx]['CNT'] += $cntDisabled; } } // Sonstiges if (WCF::getUser()->getPermission('user.profile.personalbox.canSetMisc') && WCF::getUser()->personalbox_show_misc == 'enabled') { $pbShowMisc = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetMisc') && WCF::getUser()->personalbox_show_misc == 'disabled') { $pbShowMisc = false; } else { $pbShowMisc = PERSONALBOX_SHOW_MISC_ACP; } } $pbLinks = array(); if ($pbShowMisc && defined('PERSONALBOX_LINKLIST_ACP') && PERSONALBOX_LINKLIST_ACP != '' && preg_match('/\\|/', PERSONALBOX_LINKLIST_ACP)) { $linkList = preg_split("/\r?\n/", PERSONALBOX_LINKLIST_ACP); $i = 0; foreach ($linkList as $line) { $line = trim($line); if (preg_match("/\\{SPACER\\}/", $line)) { $pbLinks[$i]['TYPE'] = 'SPACER'; $pbLinks[$i]['SPACER'] = preg_replace("/\\{SPACER\\}(.*)\\{\\/SPACER\\}/i", "\$1", $line); $i++; } else { if (preg_match("/\\|/", $line)) { list($img, $url, $title, $target, $perm) = preg_split("/\\|/", $line, 5); $img = trim($img); $url = trim($url); $title = trim($title); $target = trim($target); $perm = trim($perm); if (!empty($url) && !empty($title)) { if (preg_match("/\\{\\@?RELATIVE_WBB_DIR\\}/", $img) && defined('RELATIVE_WBB_DIR')) { $img = preg_replace("/{\\@?RELATIVE_WBB_DIR\\}/", RELATIVE_WBB_DIR, $img); } if (preg_match("/\\{\\@?RELATIVE_WCF_DIR\\}/", $img) && defined('RELATIVE_WCF_DIR')) { $img = preg_replace("/{\\@?RELATIVE_WCF_DIR\\}/", RELATIVE_WCF_DIR, $img); } if (preg_match("/\\{\\@?RELATIVE_WBB_DIR\\}/", $url) && defined('RELATIVE_WBB_DIR')) { $url = preg_replace("/{\\@?RELATIVE_WBB_DIR\\}/", RELATIVE_WBB_DIR, $url); } if (preg_match("/\\{\\@?RELATIVE_WCF_DIR\\}/", $url) && defined('RELATIVE_WCF_DIR')) { $url = preg_replace("/{\\@?RELATIVE_WCF_DIR\\}/", RELATIVE_WCF_DIR, $url); } if (preg_match("/\\{\\@?SECURITY_TOKEN\\}/", $url) && defined('SECURITY_TOKEN')) { $url = preg_replace("/{\\@?SECURITY_TOKEN\\}/", SECURITY_TOKEN, $url); } if (preg_match("/\\{\\@?PACKAGE_ID\\}/", $url) && defined('PACKAGE_ID')) { $url = preg_replace("/{\\@?PACKAGE_ID\\}/", PACKAGE_ID, $url); } if (preg_match("/\\{\\@?SID_ARG_2ND\\}/", $url) && defined('SID_ARG_2ND')) { $url = preg_replace("/{\\@?SID_ARG_2ND\\}/", SID_ARG_2ND, $url); } if (preg_match("/\\{\\@?USER_ID\\}/", $url)) { $url = preg_replace("/{\\@?USER_ID\\}/", WCF::getUser()->userID, $url); } $pbLinks[$i]['TYPE'] = 'LINK'; $pbLinks[$i]['IMG'] = $img; $pbLinks[$i]['URL'] = $url; $pbLinks[$i]['TITLE'] = $title; $pbLinks[$i]['TARGET'] = $target; $pbLinks[$i]['PERM'] = $perm; $i++; } } } } } // Wetter if (WCF::getUser()->getPermission('user.profile.personalbox.enableWeather')) { // Donnerwetter if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeather') && WCF::getUser()->personalbox_weather_enabled == 'enabled') { $pbShowWeather = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeather') && WCF::getUser()->personalbox_weather_enabled == 'disabled') { $pbShowWeather = false; } else { $pbShowWeather = PERSONALBOX_WEATHER_SHOW_ACP; } } // PLZ fuer Donnerwetter if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeatherZip') && preg_match("/^[0-9]{4,5}\$/", WCF::getUser()->personalbox_weather_zipcode)) { $pbWeatherZipCode = WCF::getUser()->personalbox_weather_zipcode; } else { if (preg_match("/^[0-9]{4,5}\$/", PERSONALBOX_WEATHER_ZIPCODE_ACP)) { $pbWeatherZipCode = PERSONALBOX_WEATHER_ZIPCODE_ACP; } } // Style fuer Donnerwetter... if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeatherStyle') && preg_match("/^1|2\$/", WCF::getUser()->personalbox_weather_style)) { $pbWeatherStyle = WCF::getUser()->personalbox_weather_style; } else { if (preg_match("/^1|2\$/", PERSONALBOX_WEATHER_STYLE_ACP)) { $pbWeatherStyle = PERSONALBOX_WEATHER_STYLE_ACP; } } // wetter.com if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeather') && WCF::getUser()->personalbox_weathercom_enabled == 'enabled') { $pbShowWeatherCom = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeather') && WCF::getUser()->personalbox_weathercom_enabled == 'disabled') { $pbShowWeatherCom = false; } else { $pbShowWeatherCom = PERSONALBOX_WEATHERCOM_SHOW_ACP; } } if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeatherZip') && preg_match("/^.*\\,.*\$/", WCF::getUser()->personalbox_weathercom_zipcode)) { $pbWeatherComZipCode = WCF::getUser()->personalbox_weathercom_zipcode; } else { if (preg_match("/^.*\\,.*\$/", PERSONALBOX_WEATHERCOM_ZIPCODE_ACP)) { $pbWeatherComZipCode = PERSONALBOX_WEATHERCOM_ZIPCODE_ACP; } } if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeatherStyle') && preg_match("/^[1-5]\$/", WCF::getUser()->personalbox_weathercom_style)) { $pbWeatherComStyle = WCF::getUser()->personalbox_weathercom_style; } else { if (preg_match("/^[1-5]\$/", PERSONALBOX_WEATHERCOM_STYLE_ACP)) { $pbWeatherComStyle = PERSONALBOX_WEATHERCOM_STYLE_ACP; } } if (WCF::getUser()->getPermission('user.profile.personalbox.canSetWeatherStyle') && preg_match("/^Z|C|F\$/", WCF::getUser()->personalbox_weathercom_day)) { $pbWeatherComDay = WCF::getUser()->personalbox_weathercom_day; } else { if (preg_match("/^Z|C|F\$/", PERSONALBOX_WEATHERCOM_DAY_ACP)) { $pbWeatherComDay = PERSONALBOX_WEATHERCOM_DAY_ACP; } } } // setze Timestamp genau auf 0.00 Uhr... if (WCF::getUser()->getPermission('user.profile.personalbox.canSetCurPosts') && WCF::getUser()->personalbox_search_days != 'default') { $pbSearchDays = intval(WCF::getUser()->personalbox_search_days); } else { $pbSearchDays = PERSONALBOX_SEARCH_DAYS_ACP; } if ($pbSearchDays == 0) { $itstamp = time(); } else { $itstamp = time() - $pbSearchDays * 86400; } $searchTime = mktime(0, 0, 0, (int) date("m", $itstamp), (int) date("d", $itstamp), (int) date("Y", $itstamp)); // Hintergrundfarbe fuer Donnerwetter... if (preg_match("/^[a-f0-9]{6}\$/i", PERSONALBOX_WEATHER_BGCOLOR_ACP)) { $bgColor = strtoupper(PERSONALBOX_WEATHER_BGCOLOR_ACP); } else { $bgColor = strtoupper(WBBCore::getStyle()->getVariable('container1.background.color')); $bgColor = preg_replace("/\\#/", "", $bgColor); if (strlen($bgColor) < 6 && strlen($bgColor) > 0) { $bgColor = str_pad($bgColor, 6, substr($bgColor, -1, 1)); } } // Rahmenfarbe fuer Donnerwetter... if (preg_match("/^[a-f0-9]{6}\$/i", PERSONALBOX_WEATHER_BOCOLOR_ACP)) { $boColor = strtoupper(PERSONALBOX_WEATHER_BOCOLOR_ACP); } else { $boColor = $bgColor; } // Textfarbe fuer Donnerwetter... if (preg_match("/^[a-f0-9]{6}\$/i", PERSONALBOX_WEATHER_TEXTCOLOR_ACP)) { $textColor = strtoupper(PERSONALBOX_WEATHER_TEXTCOLOR_ACP); } else { $textColor = strtoupper(WBBCore::getStyle()->getVariable('container1.font.color')); $textColor = preg_replace("/\\#/", "", $textColor); if (strlen($textColor) < 6 && strlen($textColor) > 0) { $textColor = str_pad($textColor, 6, substr($textColor, -1, 1)); } } // Standardfarben, falls bis hierhin keine zugeordnet... if (empty($bgColor)) { $bgColor = 'FFFFFF'; } if (empty($boColor)) { $boColor = 'FFFFFF'; } if (empty($textColor)) { $textColor = '000000'; } $boardIDs = Board::getAccessibleBoards(); $user = new UserProfile(WCF::getUser()->userID); // RANK if ($user->rankImage) { if (PERSONALBOX_REPEATRANKIMAGE_ACP && $user->repeatImage) { $pbRankImage = ''; for ($i = 0; $i < $user->repeatImage; $i++) { $pbRankImage .= '<img src="' . RELATIVE_WCF_DIR . $user->rankImage . '" alt="" title="' . WCF::getLanguage()->get($user->rankTitle) . '" />'; } } else { $pbRankImage = '<img src="' . RELATIVE_WCF_DIR . $user->rankImage . '" alt="" title="' . WCF::getLanguage()->get($user->rankTitle) . '" />'; } } $user->username = StringUtil::encodeHTML(WCF::getUser()->username); $user->searchTime = $searchTime; $user->bgColor = $bgColor; $user->boColor = $boColor; $user->textColor = $textColor; $user->posts = 0; $user->cntNewPosts = 0; $user->cntLastPosts = 0; $user->cntReported = 0; $user->cntSub = 0; if (WCF::getUser()->getPermission('user.profile.personalbox.cntOwnPosts')) { // Anzahl Postings... $sql = "SELECT wbu.posts" . "\n FROM wbb" . WBB_N . "_user wbu" . "\n WHERE wbu.userid = " . WCF::getUser()->userID; $result = WBBCore::getDB()->getFirstRow($sql); $user->posts = StringUtil::formatInteger($result['posts']); } // Instant Messenger by Tatzelwurm if (INSTANTMESSENGER_AKTIV && (WCF::getUser()->getPermission('user.board.instantmessenger.canUseInstantMessenger') || WCF::getUser()->getPermission('user.instantmessenger.canUseInstantMessenger'))) { if (@(require_once WCF_DIR . 'lib/data/InstantMessage/IM.class.php')) { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetIM') && WCF::getUser()->personalbox_show_im == 'enabled') { $pbShowIM = true; } else { if (WCF::getUser()->getPermission('user.profile.personalbox.canSetIM') && WCF::getUser()->personalbox_show_im == 'disabled') { $pbShowIM = false; } else { $pbShowIM = PERSONALBOX_SHOW_IM_ACP; } } $imcount = IM::countNewIM(); } } // userOnlineMarking... if (PERSONALBOX_SHOWUSERMARKING_ACP) { $sql = "SELECT wcg.userOnlineMarking" . "\n FROM wcf" . WCF_N . "_group wcg" . "\n JOIN wcf" . WCF_N . "_user wcu ON (wcu.userOnlineGroupID = wcg.groupID)" . "\n WHERE wcu.userID = " . WCF::getUser()->userID; $result = WBBCore::getDB()->getFirstRow($sql); $userOnlineMarking = $result['userOnlineMarking']; if ($userOnlineMarking && $userOnlineMarking != '%s') { $user->username = sprintf($userOnlineMarking, StringUtil::encodeHTML(WCF::getUser()->username)); } } // neue Beitraege seit letztem Besuch und n Tagen, Abonnements... if ($pbShowSearch) { if (WCF::getUser()->getPermission('user.profile.personalbox.cntCurPosts')) { $sql = "SELECT COUNT(*) cntNewPosts" . "\n FROM wbb" . WBB_N . "_thread wbt" . "\n WHERE wbt.boardID IN (0" . $boardIDs . ")" . "\n AND wbt.lastPostTime >= " . WCF::getUser()->boardLastActivityTime; $result = WBBCore::getDB()->getFirstRow($sql); $user->cntNewPosts = $result['cntNewPosts']; } if (WCF::getUser()->getPermission('user.profile.personalbox.cntLastPosts')) { $sql = "SELECT COUNT(*) cntLastPosts" . "\n FROM wbb" . WBB_N . "_thread wbt" . "\n WHERE wbt.boardID IN (0" . $boardIDs . ")" . "\n AND wbt.lastPostTime >= " . $searchTime; $result = WBBCore::getDB()->getFirstRow($sql); $user->cntLastPosts = $result['cntLastPosts']; } if (WCF::getUser()->getPermission('user.profile.personalbox.cntSubscriptions')) { $sql = "SELECT COUNT(*) AS newSubscriptions" . "\n FROM wbb" . WBB_N . "_thread_subscription subscription" . "\n JOIN wbb" . WBB_N . "_thread thread ON (thread.threadID = subscription.threadID)" . "\n JOIN\twbb" . WBB_N . "_thread_visit thread_visit ON (thread_visit.threadID = subscription.threadID AND subscription.userID = thread_visit.userID)" . "\n JOIN\twbb" . WBB_N . "_board_visit board_visit ON (board_visit.boardID = thread.boardID AND subscription.userID = board_visit.userID)" . "\n WHERE subscription.userID = " . WCF::getUser()->userID . "\n AND thread_visit.lastVisitTime < thread.lastPostTime" . "\n AND (thread_visit.lastVisitTime > board_visit.lastVisitTime" . "\n OR board_visit.lastVisitTime < thread.lastPostTime" . "\n OR board_visit.lastVisitTime IS NULL)" . "\n GROUP BY subscription.userID"; $result = WBBCore::getDB()->getFirstRow($sql); $user->cntSub = intval($result['newSubscriptions']); } } // Moderation... if ($pbShowUserCP && (WCF::getUser()->getPermission('admin.general.canUseAcp') || WCF::getUser()->getPermission('mod.board.canDeleteThreadCompletely') || WCF::getUser()->getPermission('mod.board.canDeletePostCompletely') || WCF::getUser()->getPermission('mod.board.canEnablePost') || WCF::getUser()->getPermission('mod.board.canEnableThread'))) { if (WCF::getUser()->getPermission('admin.general.canUseAcp') || WCF::getUser()->getPermission('mod.board.canEnablePost') || WCF::getUser()->getPermission('mod.board.canEnableThread')) { $sql = "SELECT COUNT(*) cntReported" . "\n FROM wbb" . WBB_N . "_post_report wbr"; $result = WBBCore::getDB()->getFirstRow($sql); $user->cntReported = $result['cntReported']; } if (WCF::getUser()->getPermission('admin.general.canUseAcp') || WCF::getUser()->getPermission('mod.board.canDeleteThreadCompletely') || WCF::getUser()->getPermission('mod.board.canDeletePostCompletely')) { $sql = "SELECT COUNT(*) cntTrash" . "\n FROM wbb" . WBB_N . "_post wbp" . "\n JOIN wbb" . WBB_N . "_thread wbt ON (wbt.threadID = wbp.threadID)" . "\n WHERE wbt.boardID IN (0" . $boardIDs . ")" . "\n AND (wbp.isDeleted > 0 OR wbt.isDeleted > 0)"; $result = WBBCore::getDB()->getFirstRow($sql); $user->cntTrash = $result['cntTrash']; } } // Guestbook $user->cntGB = 0; if (WCF::getUser()->getPermission('user.guestbook.canUseOwn')) { $sql = "SELECT entries, userLastVisit, lastEntry" . "\n FROM wcf" . WCF_N . "_user_guestbook_header" . "\n WHERE userID = " . WCF::getUser()->userID; $result = WBBCore::getDB()->getFirstRow($sql); $user->cntGB = empty($result['entries']) ? 0 : $result['entries']; if (!empty($result['lastEntry']) && $result['lastEntry'] > $result['userLastVisit']) { $user->newGB = true; } else { $user->newGB = false; } } $this->BoxData['user'] = $user; } // Template Variablen zuordnen... WCF::getTPL()->assign(array('pbCatVertOffset' => intval(PERSONALBOX_CATSPACER_ACP), 'pbFirstBoxColor' => intval(PERSONALBOX_FBCOLOR_ACP), 'pbSecondBoxColor' => intval(PERSONALBOX_SBCOLOR_ACP), 'pbFirstColWidth' => intval(PERSONALBOX_FIRSTCOLWIDTH_ACP), 'pbTableWidth' => PERSONALBOX_TABLEWIDTH_ACP, 'pbCellPadding' => intval(PERSONALBOX_CELLPADDING_ACP), 'pbLargeImages' => PERSONALBOX_LARGERANKIMAGES_ACP, 'pbShowIP' => WCF::getUser()->getPermission('user.profile.personalbox.showIP') && WBBCore::getSession()->ipAddress ? WBBCore::getSession()->ipAddress : 0, 'pbStyleWidth' => PERSONALBOX_STYLEBOXWIDTH_ACP, 'pbLineFeedRank' => PERSONALBOX_LINEFEEDRANK_ACP, 'pbShowProfileLink' => PERSONALBOX_SHOWPROFILELINK_ACP, 'pbShowDisplayLink' => PERSONALBOX_SHOWDISPLAYLINK_ACP, 'pbRankImage' => $pbRankImage, 'pbMaxHeight' => $pbMaxHeight, 'pbShowAvatar' => $pbShowAvatar, 'pbAvatarMaxWidth' => PERSONALBOX_AVATARMAXWIDTH_ACP, 'pbAvatarMaxHeight' => PERSONALBOX_AVATARMAXHEIGHT_ACP, 'pbShowPersonal' => $pbShowPersonal, 'pbShowSearch' => $pbShowSearch, 'pbShowPM' => $pbShowPM, 'pbShowUserCP' => $pbShowUserCP, 'pbShowStyles' => $pbShowStyles, 'pbShowMisc' => $pbShowMisc, 'pbShowWeather' => $pbShowWeather, 'pbWeatherZipCode' => $pbWeatherZipCode, 'pbWeatherComZipCode' => $pbWeatherComZipCode, 'pbWeatherStyle' => $pbWeatherStyle, 'pbWeatherComStyle' => $pbWeatherComStyle, 'pbWeatherWidth' => $pbWeatherWidth, 'pbShowWeatherCom' => $pbShowWeatherCom, 'pbWeatherComDay' => $pbWeatherComDay, 'pbLinks' => isset($pbLinks) ? $pbLinks : array(), 'pbStyles' => isset($pbStyles) ? $pbStyles : array(), 'imcount' => $imcount, 'pbShowIM' => $pbShowIM, 'pbShowProfileHits' => PERSONALBOX_SHOW_PROFILEHITS_ACP, 'boxCurPage' => $boxCurPage)); }