示例#1
0
 static function getCurrentTitleMetaDescription()
 {
     global $wgTitle;
     static $titleTest = null;
     $return = '';
     if ($wgTitle->getNamespace() == NS_MAIN && $wgTitle->getFullText() == wfMsg('mainpage')) {
         $return = wfMsg('mainpage_meta_description');
     } elseif ($wgTitle->getNamespace() == NS_MAIN) {
         $desc = '';
         if (!$titleTest) {
             $titleTest = TitleTests::newFromTitle($wgTitle);
             if ($titleTest) {
                 $desc = $titleTest->getMetaDescription();
             }
         }
         if (!$desc) {
             if (!self::$wgTitleAMIcache) {
                 self::$wgTitleAMIcache = new ArticleMetaInfo($wgTitle);
             }
             $ami = self::$wgTitleAMIcache;
             $desc = $ami->getDescription();
         }
         if (!$desc) {
             $return = wfMsg('article_meta_description', $wgTitle->getText());
         } else {
             $return = $desc;
         }
     } elseif ($wgTitle->getNamespace() == NS_CATEGORY) {
         // get keywords
         $subcats = self::getMetaSubcategories($wgTitle, 3);
         $keywords = implode(", ", $subcats);
         if ($keywords) {
             $return = wfMsg('category_meta_description', $wgTitle->getText(), $keywords);
         } else {
             $return = wfMsg('subcategory_meta_description', $wgTitle->getText(), $keywords);
         }
     } elseif ($wgTitle->getNamespace() == NS_USER) {
         $desc = ProfileBox::getMetaDesc();
         $return = $desc;
     } elseif ($wgTitle->getNamespace() == NS_IMAGE) {
         $articles = ImageHelper::getLinkedArticles($wgTitle);
         if (count($articles) && $articles[0]) {
             $articleTitle = wfMsg('howto', $articles[0]);
             if (preg_match('@Step (\\d+)@', $wgTitle->getText(), $m)) {
                 $imageNum = '#' . $m[1];
             } else {
                 $imageNum = '';
             }
             $return = wfMsg('image_meta_description', $articleTitle, $imageNum);
         } else {
             $return = wfMsg('image_meta_description_no_article', $wgTitle->getText());
         }
     } elseif ($wgTitle->getNamespace() == NS_SPECIAL && $wgTitle->getText() == "Popularpages") {
         $return = wfMsg('popularpages_meta_description');
     }
     return $return;
 }
 static function addTwitterMetaProperties()
 {
     global $wgTitle, $wgRequest, $wgOut, $wgLanguageCode, $wgServer;
     $action = $wgRequest->getVal('action', 'view');
     if ($wgTitle->getNamespace() != NS_MAIN || $action != "view") {
         return;
     }
     $isMainPage = $wgTitle && $wgTitle->getNamespace() == NS_MAIN && $wgTitle->getText() == wfMessage('mainpage')->inContentLanguage()->text() && $action == 'view';
     if (!self::$wgTitleAMIcache) {
         self::$wgTitleAMIcache = new ArticleMetaInfo($wgTitle);
     }
     $ami = self::$wgTitleAMIcache;
     if ($isMainPage) {
         $twitterTitle = "wikiHow";
     } else {
         $twitterTitle = wfMessage('howto', $ami->titleText)->text();
     }
     if ($isMainPage) {
         $twitterDesc = "wikiHow - How to do anything";
     } else {
         $twitterDesc = $ami->getFacebookDescription();
     }
     if ($isMainPage) {
         $twitterImg = "/images/7/71/Wh-logo.jpg";
     } else {
         $twitterImg = $ami->getImage();
     }
     if ($wgLanguageCode == 'en') {
         $twitterImg = $wgServer . $twitterImg;
     } else {
         $twitterImg = wfGetPad('http://www.wikihow.com' . $twitterImg);
     }
     $wgOut->addHeadItem('tcard', '<meta name="twitter:card" content="summary_large_image"/>' . "\n");
     if (!self::isImageExclusionArticle()) {
         $wgOut->addHeadItem('timage', '<meta name="twitter:image:src" content="' . $twitterImg . '"/>' . "\n");
     }
     $wgOut->addHeadItem('tsite', '<meta name="twitter:site" content="@wikihow"/>' . "\n");
     $wgOut->addHeadItem('tdesc', '<meta name="twitter:description" content="' . htmlentities($twitterDesc) . '"/>' . "\n");
     $wgOut->addHeadItem('ttitle', '<meta name="twitter:title" content="' . htmlentities($twitterTitle) . '"/>' . "\n");
     $wgOut->addHeadItem('turl', '<meta name="twitter:url" content="' . $wgTitle->getFullURL() . '"/>' . "\n");
 }