function showHeader() { global $wgUser, $wgSitename; global $wgNavBarClasses, $wgLogo; // $output = ''; $output = ' <header class="header navbar navbar-default navbar-fixed-top' . $wgNavBarClasses . '" role="navigation"> <div class="navbar-container"> <div class="navbar-header"> <a rel="nofollow" class="navbar-brand" href="#menu-toggle" id="menu-toggle"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <a class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse"> <i class="fa fa-chevron-down"></i> </a> <a class="visible-xs-inline-block search-toggle"> <span class="fa fa-search navbar-search"></span> </a> <a title="灰机wiki" href="http://huiji.wiki" class="navbar-brand"><img alt="Logo" src="' . $wgLogo . '"> </a> <a class="visible-sm-block wiki-toggle"> <i class="fa fa-chevron-down"></i> </a> <form class="navbar-search navbar-form" action="/index.php" id="searchformphone" role="search"> <div> <input class="form-control" type="search" name="search" placeholder="在' . $wgSitename . '内搜索" title="Search ' . $wgSitename . ' [ctrl-option-f]" accesskey="f" id="searchInputPhone" autocomplete="off"> <input type="hidden" name="title" value="Special:Search"> </div> </form> </div> <div class="collapse navbar-collapse"> <ul id="icon-section" class="nav navbar-nav"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">推荐wiki <span class="caret"></span></a> <ul class="dropdown-menu hub-menu" role="menu"> <li> <ul class="hub-list"> <li class="letter active" data-toggle="letter">文学</li> <li class="movie" data-toggle="movie">影视</li> <li class="anime" data-toggle="anime">动漫</li> <li class="game" data-toggle="game">游戏</li> <li class="star" data-toggle="star">明星</li> <li class="more" data-toggle="more">更多</li> </ul> </li> <li class="a"> <ul class="hub-selection letter-link active"> <li><a href="http://lotr.huiji.wiki">魔戒</a></li> <li><a href="http://asoiaf.huiji.wiki">冰与火之歌</a></li> <li><a href="http://zhoutian.huiji.wiki">周天世界</a></li> <li><a href="http://witcher.huiji.wiki">猎魔人</a></li> <li><a href="http://coppermind.huiji.wiki/wiki">红铜智库</a></li> <li><a href="http://jiuzhou.huiji.wiki">九州</a></li> </ul> <ul class="hub-selection movie-link"> <li><a href="http://spn.huiji.wiki">邪恶力量</a></li> <li><a href="http://jinguang.huiji.wiki">金光布袋戏</a></li> <li><a href="http://downtonabbey.huiji.wiki">唐顿庄园</a></li> <li><a href="http://mcu.huiji.wiki">漫威电影宇宙</a></li> <li><a href="http://htgawm.huiji.wiki">逍遥法外</a></li> <li><a href="http://doctorwho.huiji.wiki/">神秘博士</a></li> </ul> <ul class="hub-selection anime-link"> <li><a href="http://cardcaptorsakura.huiji.wiki/">小樱的封印之书</a></li> <li><a href="http://kaiji.huiji.wiki">逆境无赖</a></li> <li><a href="http://gundam.huiji.wiki">高达</a></li> </ul> <ul class="hub-selection game-link"> <li><a href="http://gjqt.huiji.wiki">古剑奇谭</a></li> <li><a href="http://hearthstone.huiji.wiki">炉石传说</a></li> <li><a href="http://assassinscreed.huiji.wiki">刺客信条</a></li> <li><a href="http://3pz.huiji.wiki">三国志puzzle大战</a></li> <li><a href="http://pvz.huiji.wiki">植物大战僵尸</a></li> <li><a href="http://bravely.huiji.wiki">勇气默示录中文百科</a></li> </ul> <ul class="hub-selection star-link"> <li><a href="http://tfboys.huiji.wiki">TFBOYS</a></li> <li><a href="http://mfassbender.huiji.wiki">迈克尔·法斯宾德</a></li> </ul> <ul class="hub-selection more-link"> <li><a href="http://kaixinmahua.huiji.wiki">开心麻花</a></li> <li><a href="http://mahjong.huiji.wiki">麻将</a></li> <li><a href="http://arsenal.huiji.wiki">阿森纳</a></li> <li><a href="http://www.huiji.wiki/wiki/%E7%89%B9%E6%AE%8A:%E7%AB%99%E7%82%B9%E6%8E%92%E8%A1%8C">站点排行榜</a></li> <a rel="nofollow" href="/wiki/Special:Randomwiki" class="wiki-random"> 随机一下试试 </a> </ul> </li> </ul> </li> <li> <a rel="nofollow" href="http://www.huiji.wiki/wiki/创建新wiki">创建wiki</a> </li> <li class="hidden-xs hidden-sm"> <a rel="nofollow" href="http://www.huiji.wiki/wiki/%E5%B8%AE%E5%8A%A9:%E7%BC%96%E8%BE%91%E6%89%8B%E5%86%8C">帮助文档</a> </li> </ul>'; if ($wgUser->isLoggedIn()) { if (count($this->data['personal_urls']) > 0) { $avatar = new wAvatar($wgUser->getID(), 'l'); // $user_icon = '<span class="user-icon"><img src="https://secure.gravatar.com/avatar/'.md5(strtolower( $wgUser->getEmail())).'.jpg?s=20&r=g"/></span>'; $user_icon = '<i class="fa fa-cog"></i>'; $name = $wgUser->getName(); $personal_urls = $this->data['personal_urls']; unset($personal_urls['uls']); unset($personal_urls['notifications-alert']); unset($personal_urls['notifications-message']); unset($personal_urls['userpage']); $user_nav = $this->dropdownAdapter($personal_urls, $user_icon, 'user'); $user_notify = $this->nav_notification($this->notificationAdapter($this->data['personal_urls'])); } $userPage = Title::makeTitle(NS_USER, $wgUser->getName()); $userPageURL = htmlspecialchars($userPage->getFullURL()); /*$avatar = new wAvatar( $wgUser->getID(), 'l' );*/ $output .= '<ul' . $this->html('userlangattributes') . ' class="nav navbar-nav navbar-right navbar-user">'; $output .= '<li><a href="' . $userPageURL . '"><span class="user-icon" style="border: 0px;">' . $avatar->getAvatarURL() . '</span><span class="hidden-xs">' . $wgUser->getName() . '</span></a></li>'; $output .= $user_notify; $output .= '<li class="dropdown collect"><a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-heart-o"></i></i></a><ul class="dropdown-menu collect-menu">'; $sites = UserSiteFollow::getFullFollowedSitesWithDetails($wgUser->getId(), $wgUser->getId()); $count = count($sites); if ($count > 0) { $num = $count > 8 ? 8 : $count; foreach ($sites as $user) { $site_name[] = $user['val']; $domain_name[] = $user['key']; } for ($i = 0; $i < $num; $i++) { $output .= '<li><a href=http://' . $domain_name[$i] . '.huiji.wiki>' . $site_name[$i] . '</a></li>'; } if ($count > 3) { $output .= '<li><a rel="nofollow" href="/index.php?title=Special:ShowFollowedSites&user_id=' . $wgUser->getID() . '&target_user_id=' . $wgUser->getID() . '">我关注的全部维基</a></li>'; } } else { $output .= '<li><a>暂无</a></li>'; } $output .= '</ul></li>'; $output .= $user_nav; $output .= '</ul>'; } else { // else if is logged in //old login $output .= '<ul class="nav navbar-nav navbar-right navbar-login"> <li id= "pt-login" data-toggle="modal" data-target=".user-login"> <a rel="nofollow" class="login-in">登录</a> </li> <li>' . Linker::linkKnown(SpecialPage::getTitleFor('Userlogin'), '注册', array('id' => 'pt-createaccount'), array('type' => 'signup')) . ' </li> </ul>'; } $output .= '<form class="navbar-search navbar-form table-cell hidden-xs" action="/index.php" id="searchform" role="search"> <div> <span class="fa fa-search navbar-search"></span> <input class="form-control" type="search" name="search" placeholder="在' . $wgSitename . '内搜索" title="Search ' . $wgSitename . ' [ctrl-option-f]" accesskey="f" id="searchInput" autocomplete="off"> <input type="hidden" name="title" value="Special:Search"> </div> </form> </div> </div> </header>'; return $output; }
/** * Show the special page * * @param $params Mixed: parameter(s) passed to the page or null */ public function execute($params) { global $wgUser, $wgSitename, $wgHuijiPrefix, $wgUserLevels; $lang = $this->getLanguage(); $out = $this->getOutput(); $request = $this->getRequest(); $user = $this->getUser(); // Set the page title, robot policies, etc. $this->setHeaders(); $output = '<i>' . $this->msg('editranknote')->plain() . '</i>'; // Add CSS // $out->addModuleStyles( 'ext.socialprofile.useruserfollows.css' ); $out->addModuleStyles('ext.socialprofile.userstats.css'); // Add JS $out->addModuleScripts('ext.socialprofile.usersitefollows.js'); $output = ''; /** * Get query string variables */ $user_id = $request->getVal('user_id'); $target_user_id = $request->getInt('target_user_id'); $rel_type = $request->getInt('rel_type'); $page = $request->getInt('page'); /** * Set up config for page / default values */ if (!$page || !is_numeric($page)) { $page = 1; } if (!$rel_type || !is_numeric($rel_type)) { $rel_type = 2; } //per_page : Limit the number of pages per page $per_page = 20; $per_row = 2; /** * If no user is set in the URL, we assume its the current user */ if ($target_user_id == 0 || !is_int($target_user_id)) { $out->setPageTitle($this->msg('g-error-title')->plain()); $out->addHTML($this->msg('g-error-message-invalid-link')->plain()); return false; } $sites = UserSiteFollow::getFullFollowedSitesWithDetails($user_id, $target_user_id); $total = count($sites); $star_page = $per_page * ($page - 1); $per_sites = array_slice($sites, $star_page, $per_page); if (!$sites) { $output .= '<div class="top-users"><h3>暂时还没有关注哦</h3>'; } if (!$per_sites) { $output .= '<div class="top-users"><h3>此页暂时没有站点</h3>'; } $output .= '<div class="top-users" style="width:90%; max-width:500px">'; foreach ($per_sites as $user) { $site_name = $user['val']; $domain_name = $user['key']; $is_follow = $user['is']; if ($user_id == '' || $user_id == 0) { $output .= '<div class=\\"top-fan-row\\"><a href=http://' . $domain_name . '.huiji.wiki class="list-group-item">' . $site_name . '</a>'; } else { if ($is_follow == 'Y') { $output .= '<div class=\\"top-fan-row\\"><a href=http://' . $domain_name . '.huiji.wiki class="list-group-item">' . $site_name . '<span class="badge user-site-follow-from-modal unfollow">取关</span></a>'; } else { $output .= '<div class=\\"top-fan-row\\"><a href=http://' . $domain_name . '.huiji.wiki class="list-group-item">' . $site_name . '<span class="badge user-site-follow-from-modal">关注</span></a>'; } } $output .= '<div class="cleared"></div>'; $output .= '</div>'; } $output .= '</div><div class="cleared"></div>'; /** * Build next/prev nav */ $total = intval(str_replace(',', '', $total)); $numofpages = $total / $per_page; $pageLink = $this->getPageTitle(); if ($numofpages > 1) { $output .= '<nav class="page-nav pagination">'; if ($page > 1) { $output .= '<li>' . Linker::link($pageLink, '<span aria-hidden="true">«</span>', array(), array('user' => $user_name, 'user_id' => $user_id, 'target_user_id' => $target_user_id, 'rel_type' => $rel_type, 'page' => $page - 1)) . '</li>'; } if ($total % $per_page != 0) { $numofpages++; } // if ( $numofpages >= 2 && $page < $total ) { // $numofpages = 2 + $page; // } // if ( $numofpages >= ( $total / $per_page ) ) { // $numofpages = ( $total / $per_page ) + 1; // } for ($i = 1; $i <= $numofpages; $i++) { if ($i == $page) { $output .= '<li class="active"><a href="#">' . $i . ' <span class="sr-only">(current)</span></a></li>'; } else { $output .= '<li>' . Linker::link($pageLink, $i, array(), array('user' => $user_name, 'user_id' => $user_id, 'target_user_id' => $target_user_id, 'rel_type' => $rel_type, 'page' => $i)) . '</li>'; } } if ($total - $per_page * $page > 0) { $output .= '<li>' . Linker::link($pageLink, '<span aria-hidden="true">»</span>', array(), array('user' => $user_name, 'user_id' => $user_id, 'target_user_id' => $target_user_id, 'rel_type' => $rel_type, 'page' => $page + 1)) . '</li>'; } $output .= '</nav>'; } $out->addHTML($output); }