/** * 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; }