Example #1
0
    public static function getDebugInfo($articleId = 0)
    {
        global $I18N, $REX;
        if ($articleId != 0) {
            self::initArticle($articleId);
        }
        if (!OOArticle::isValid(self::$curArticle)) {
            return '';
        }
        $out = '<div id="seo42-debug">';
        $out .= '<h1>---------- SEO42 DEBUG BEGIN ----------<h1>';
        // general information
        $out .= '<h2>General Information</h2>';
        $out .= '<table>';
        $out .= '<tr><td class="left"><code>REDAXO Version</code></td><td class="right"><code>' . $REX['VERSION'] . '.' . $REX['SUBVERSION'] . '.' . $REX['MINORVERSION'] . '</code></td></tr>';
        $out .= '<tr><td class="left"><code>SEO42 Version</code></td><td class="right"><code>' . $REX['ADDON']['version']['seo42'] . '</code></td></tr>';
        $out .= '<tr><td class="left"><code>PHP Version</code></td><td class="right"><code>' . phpversion() . '</code></td></tr>';
        if (isset($REX['ADDON']['version']['community'])) {
            $out .= '<tr><td class="left"><code>Community Version</code></td><td class="right"><code>' . $REX['ADDON']['version']['community'] . '</code></td></tr>';
        }
        $out .= '</table>';
        // methods
        $out .= '<h2>Class Methods</h2>';
        $out .= '<table>';
        $out .= self::getDebugInfoRow('rex_getUrl', array(self::$curArticle->getId()));
        $out .= self::getDebugInfoRow('seo42::getUrl', array(self::$curArticle->getId()));
        $out .= self::getDebugInfoRow('seo42::getTrimmedUrl', array(self::$curArticle->getId()));
        $out .= self::getDebugInfoRow('seo42::getFullUrl', array(self::$curArticle->getId()));
        $out .= self::getDebugInfoRow('seo42::getTitle');
        $out .= self::getDebugInfoRow('seo42::getTitlePart');
        $out .= self::getDebugInfoRow('seo42::getDescription');
        $out .= self::getDebugInfoRow('seo42::getKeywords');
        $out .= self::getDebugInfoRow('seo42::getRobotRules');
        $out .= self::getDebugInfoRow('seo42::getCanonicalUrl');
        $out .= self::getDebugInfoRow('seo42::getArticleName');
        $out .= self::getDebugInfoRow('seo42::isStartArticle');
        $out .= self::getDebugInfoRow('seo42::getWebsiteName');
        $out .= self::getDebugInfoRow('seo42::getLangCode', array('0'));
        $out .= self::getDebugInfoRow('seo42::getLangSlug', array('0'));
        $out .= self::getDebugInfoRow('seo42::getLangName', array('0'));
        $out .= self::getDebugInfoRow('seo42::getOriginalLangName', array('0'));
        $out .= self::getDebugInfoRow('seo42::getServerProtocol');
        $out .= self::getDebugInfoRow('seo42::getBaseUrl');
        $out .= self::getDebugInfoRow('seo42::getServerUrl');
        $out .= self::getDebugInfoRow('seo42::getServer');
        $out .= self::getDebugInfoRow('seo42::getServerWithSubDir');
        $out .= self::getDebugInfoRow('seo42::getServerSubDir');
        $out .= self::getDebugInfoRow('seo42::isWwwServerUrl');
        $out .= self::getDebugInfoRow('seo42::hasTemplateBaseTag');
        $out .= self::getDebugInfoRow('seo42::isSubDirInstall');
        $out .= self::getDebugInfoRow('seo42::isMultiLangInstall');
        $out .= self::getDebugInfoRow('seo42::getLangCount');
        $out .= self::getDebugInfoRow('seo42::getTitleDelimiter');
        $out .= self::getDebugInfoRow('seo42::getUrlStart');
        $out .= self::getDebugInfoRow('seo42::has404ResponseFlag');
        $out .= self::getDebugInfoRow('seo42::getQueryString');
        $out .= self::getDebugInfoRow('seo42::getMediaDir');
        $out .= self::getDebugInfoRow('seo42::getMediaDirName');
        $out .= self::getDebugInfoRow('seo42::getMediaFile', array('image.png'));
        $out .= self::getDebugInfoRow('seo42::getMediaUrl', array('image.png'));
        $out .= self::getDebugInfoRow('seo42::getAbsoluteMediaFile', array('image.png'));
        $out .= self::getDebugInfoRow('seo42::getMediaAddonDir');
        $out .= self::getDebugInfoRow('seo42::getLangTags');
        $out .= self::getDebugInfoRow('seo42::getHtml');
        $out .= self::getDebugInfoRow('seo42::getImageTag', array('image.png', 'rex_mediapool_detail', '150', '100'));
        $out .= self::getDebugInfoRow('seo42::getImageManagerFile', array('image.png', 'rex_mediapool_detail'));
        $out .= self::getDebugInfoRow('seo42::getDownloadFile', array('doc.pdf'));
        $out .= self::getDebugInfoRow('seo42::getUrlString', array("The Hitchhiker's Guide to the Galaxy!"));
        $out .= self::getDebugInfoRow('seo42::getAnswer');
        $out .= '</table>';
        // settings
        $out .= '<h2>Settings</h2>';
        $out .= '<pre class="rex-code">';
        $out .= seo42_utils::print_r_pretty($REX['ADDON']['seo42']['settings'], true);
        $out .= '</pre>';
        // cached redirects
        $out .= '<h2>Cached Redirects</h2>';
        $out .= '<pre class="rex-code">';
        $out .= seo42_utils::print_r_pretty($REX['SEO42_CACHED_REDIRECTS'], true);
        $out .= '</pre>';
        // pathlist
        $out .= '<h2>Pathlist</h2>';
        $pathlistRoot = SEO42_PATHLIST;
        if (file_exists($pathlistRoot)) {
            $content = rex_get_file_contents($pathlistRoot);
            $out .= rex_highlight_string($content, true);
        } else {
            $out .= 'File not found: ' . $pathlistRoot;
        }
        // .htaccess
        $out .= '<h2>.htaccess</h2>';
        $htaccessRoot = $REX['FRONTEND_PATH'] . '/.htaccess';
        if (file_exists($htaccessRoot)) {
            $content = rex_get_file_contents($htaccessRoot);
            $out .= rex_highlight_string($content, true);
        } else {
            $out .= 'File not found: ' . $htaccessRoot;
        }
        $out .= '<h1>---------- SEO42 DEBUG END ----------</h1>';
        $out .= '</div>';
        $out .= '<style type="text/css">
					#seo42-debug h1 {
						font-size: 16px;
						margin: 10px 0;
					}

					#seo42-debug h2 {
						margin: 15px 0;
						font-size: 14px;
					}

					#seo42-debug .rex-code {
						border: 1px solid #F2353A;
					}

					#seo42-debug code,
					#seo42-debug .rex-code {
						color: #000;
						background: #FAF9F5;
					}

					#seo42-debug table {
						width: 100%;
						border-collapse: collapse;
						border-spacing: 0;
						background: #FAF9F5;
					}

					#seo42-debug table th,
					#seo42-debug table thead td {
						font-weight: bold;
					}

					#seo42-debug table td, 
					#seo42-debug table th {
						padding: 12px;
						border: 1px solid #F2353A;
						text-align: left;
					}

					#seo42-debug table td.left {
						width: 280px;
					}
				</style>';
        return $out;
    }