예제 #1
0
 /**
  * Display the HTML for this special page
  */
 public static function displayContainer($doc_name = '', $is_mobile)
 {
     global $wgServer, $wgUploadDirectory, $wgUser;
     $ads = "";
     $ads2 = "";
     $ads3 = "";
     $sampleDocsURIbase = '/images/sampledocs';
     $sampleDocsFileBase = $wgUploadDirectory . '/sampledocs';
     if (!$doc_name) {
         $doc_name = self::getSampleFromUrl();
     }
     if ($doc_name) {
         //grab data from the db
         $dbr = wfGetDB(DB_SLAVE);
         $res = $dbr->select('dv_sampledocs', '*', array('dvs_doc' => $doc_name), __METHOD__);
         //did we catch anything?
         if (!$res->fetchObject()) {
             return false;
         }
         $doc_array = array();
         foreach ($res as $row) {
             $doc_hash = preg_replace('@^.*/([^/]+)$@', '$1', $row->dvs_doc_folder);
             $doc_uri_path = "{$sampleDocsURIbase}/{$doc_hash}";
             $doc_file_path = "{$sampleDocsFileBase}/{$doc_hash}";
             $full_path = $row->dvs_doc_folder . '/' . $row->dvs_doc . '.' . $row->dvs_doc_ext;
             $doc_array[$row->dvs_doc_ext] = $full_path;
         }
         //docx, xlsx, doc, xls...we're all cool here
         if ($doc_array['docx']) {
             $doc_array['doc'] = $doc_array['docx'];
         }
         if ($doc_array['xlsx']) {
             $doc_array['xls'] = $doc_array['xlsx'];
         }
         //what are we sending to gdoc?
         if ($doc_array['doc']) {
             $doc_array['gdoc'] = urlencode($wgServer . $doc_array['doc']);
         } elseif ($doc_array['xls']) {
             $doc_array['gdoc'] = urlencode($wgServer . $doc_array['xls']);
         }
         if (!$is_mobile && wikihowAds::isEligibleForAds()) {
             $ads = wikihowAds::getAdUnitPlaceholder("docviewer");
             if (!self::showPdf($doc_name)) {
                 $ads2 = wikihowAds::getAdunitPlaceholder("docviewer2a");
             }
             $ads3 = wikihowAds::getAdUnitPlaceholder("docviewer3");
         }
         $tmpl = new EasyTemplate(dirname(__FILE__));
         $tmpl->set_vars(array('doc_title' => self::getDisplayName($doc_name), 'header_get' => wfMsg('header_get'), 'header_found' => wfMsg('header_found'), 'header_related' => wfMsg('header_related'), 'show_staff_stats' => self::showStaffStats(), 'dv_download' => wfMsg('dv-download'), 'dv_found' => self::getFoundInArticles($doc_name, $is_mobile), 'dv_related' => self::getRelatedArticles($doc_name), 'dv_fallback_img' => self::getFallbackImg($doc_name), 'dv_ads' => $ads, 'dv_ads2' => $ads2, 'dv_ads3' => $ads3, 'dv_share_buttons' => WikihowShare::getTopShareButtons(), 'dv_sample_html' => self::getSampleHtml($doc_uri_path, $doc_file_path, $doc_name), 'dv_pdf_carrot' => self::$pdf_carrot, 'doc_name' => $doc_name, 'dv_open_in' => wfMsg('dv-open-in'), 'dv_dl_text_pdf' => wfMsg('dv-dl-text-pdf'), 'dv_dl_file_pdf' => $doc_array['pdf'], 'dv_display_pdf' => 'http://www.wikihow.com/Sample/' . str_replace($doc_array['pdf'], 'sampledocs', 'samplepdfs'), 'dv_dl_text_doc' => wfMsg('dv-dl-text-doc'), 'dv_dl_file_doc' => $doc_array['doc'], 'dv_dl_text_xls' => wfMsg('dv-dl-text-xls'), 'dv_dl_file_xls' => $doc_array['xls'], 'dv_dl_text_txt' => wfMsg('dv-dl-text-txt'), 'dv_dl_file_txt' => $doc_array['txt'], 'dv_dl_text_gdoc' => wfMsg('dv-dl-text-gdoc'), 'dv_dl_file_gdoc' => $doc_array['gdoc']));
         if ($is_mobile) {
             $tmpl_name = 'docviewer_mobile.tmpl.php';
         } else {
             $tmpl_name = 'docviewer.tmpl.php';
         }
         $html = $tmpl->execute($tmpl_name);
         self::addWidgets($tmpl);
     } else {
         //no name passed in?
         return false;
     }
     //now shows via the wikiHowSkin on the page, so we don't need to ad it in
     //if ($ads) $html = wikihowAds::getSetup() . $html;
     return $html;
 }