/** * Generate a debug report of packer use * * @internal * @param bool $as_html * @return string */ public static function printDebugReport($as_html = true) { if (!eZTemplate::isTemplatesUsageStatisticsEnabled()) { return ''; } $stats = ''; if ($as_html) { $stats .= '<h3>CSS/JS files loaded with "ezjscPacker" during request:</h3>'; $stats .= '<table id="ezjscpackerusage" class="debug_resource_usage" title="List of used files, hover over italic text for more info!">'; $stats .= '<tr><th>Cache</th><th>Type</th><th>Packlevel</th><th>SourceFiles</th></tr>'; } else { $stats .= "CSS/JS files loaded with 'ezjscPacker' during request\n"; $stats .= sprintf("%-40s%-40s%-40s\n", 'Cache', 'Type', 'Packlevel'); } foreach (self::$log as $data) { $extension = $data['file_extension'] === '.js' ? 'JS' : 'CSS'; if ($as_html) { $sourceFilesStats = self::printDebugReportFiles($data, $as_html); $cache = $data['cache_path'] === '' ? '' : "<span class='debuginfo' title='Full path: {$data['cache_path']}'>{$data['cache_hash']}</span>"; $stats .= "<tr class='data'><td>{$cache}</td><td>{$extension}</td><td>{$data['pack_level']}</td><td>{$sourceFilesStats}</td></tr>"; } else { $stats .= sprintf("%-40s%-40s%-40s\n", $data['cache_hash'], $extension, $data['pack_level']); } } if ($as_html) { $stats .= '</table>'; } return $stats; }
function appendTemplateToStatisticsIfNeeded(&$templateName, &$templateFileName) { if (eZTemplate::isTemplatesUsageStatisticsEnabled()) { eZTemplate::appendTemplateToStatistics($templateName, $templateFileName); } }
static function generateStatistics($as_html = true) { $stats = ''; if (!eZTemplate::isTemplatesUsageStatisticsEnabled()) { return $stats; } if ($as_html) { $stats .= "<h3>Templates used to render the page:</h3>"; $stats .= "<table id='templateusage' class='debug_resource_usage' title='List of used templates'>" . "<tr><th title='Usage count of this particular template'>Usage</th>" . "<th>Requested template</th>" . "<th>Template</th>" . "<th>Template loaded</th>" . "<th>Edit</th>" . "<th>Override</th></tr>"; } else { $formatString = "%-40s%-40s%-40s\n"; $stats .= "Templates usage statistics\n"; $stats .= sprintf($formatString, 'Templates', 'Requested template', 'Template loaded'); } if ($as_html) { $iconSizeX = 16; $iconSizeY = 16; $templateViewFunction = 'visual/templateview'; eZURI::transformURI($templateViewFunction); $templateEditFunction = 'visual/templateedit'; eZURI::transformURI($templateEditFunction); $templateOverrideFunction = 'visual/templatecreate'; eZURI::transformURI($templateOverrideFunction); $std_base = eZTemplateDesignResource::designSetting('standard'); $wwwDir = htmlspecialchars(eZSys::wwwDir(), ENT_COMPAT, 'UTF-8'); $editIconFile = "{$wwwDir}/design/{$std_base}/images/edit.gif"; $overrideIconFile = "{$wwwDir}/design/{$std_base}/images/override-template.gif"; $tdClass = 'used_templates_stats1'; $j = 0; $currentSiteAccess = $GLOBALS['eZCurrentAccess']['name']; } $templatesUsageStatistics = eZTemplate::templatesUsageStatistics(); $alreadyListedTemplate = $templateCounts = array(); //Generate usage count for each unique template first. foreach ($templatesUsageStatistics as $templateInfo) { $actualTemplateName = $templateInfo['actual-template-name']; if (!array_key_exists($actualTemplateName, $templateCounts)) { $templateCounts[$actualTemplateName] = 1; } else { ++$templateCounts[$actualTemplateName]; } } //Then create the actual listing foreach ($templatesUsageStatistics as $templateInfo) { $actualTemplateName = $templateInfo['actual-template-name']; $requestedTemplateName = $templateInfo['requested-template-name']; $templateFileName = $templateInfo['template-filename']; if (!in_array($actualTemplateName, $alreadyListedTemplate)) { $alreadyListedTemplate[] = $actualTemplateName; if ($as_html) { $requestedTemplateViewURI = $templateViewFunction . '/' . $requestedTemplateName; $actualTemplateViewURI = $templateViewFunction . '/' . $actualTemplateName; $templateEditURI = $templateEditFunction . '/' . $templateFileName; $templateOverrideURI = $templateOverrideFunction . '/' . $actualTemplateName; $actualTemplateNameOutput = $actualTemplateName == $requestedTemplateName ? "<em><No override></em>" : $actualTemplateName; $stats .= "<tr class='data'><td>{$templateCounts[$actualTemplateName]}</td>" . "<td><a href=\"{$requestedTemplateViewURI}\">{$requestedTemplateName}</a></td>" . "<td>{$actualTemplateNameOutput}</td>" . "<td>{$templateFileName}</td>" . "<td><a href=\"{$templateEditURI}/(siteAccess)/{$currentSiteAccess}\"><img src=\"{$editIconFile}\" width=\"{$iconSizeX}\" height=\"{$iconSizeY}\" alt=\"Edit template\" title=\"Edit template\" /></a></td>" . "<td><a href=\"{$templateOverrideURI}/(siteAccess)/{$currentSiteAccess}\"><img src=\"{$overrideIconFile}\" width=\"{$iconSizeX}\" height=\"{$iconSizeY}\" alt=\"Override template\" title=\"Override template\" /></a></td></tr>"; $j++; } else { $stats .= sprintf($formatString, $requestedTemplateName, $actualTemplateName, $templateFileName); } } } $totalTemplatesCount = count($templatesUsageStatistics); $totalUniqueTemplatesCopunt = count(array_keys($alreadyListedTemplate)); if ($as_html) { $stats .= "<tr><td colspan=\"6\"><b> Number of times templates used: {$totalTemplatesCount}<br /> Number of unique templates used: {$totalUniqueTemplatesCopunt}</b></td></tr>"; $stats .= "</table>"; } else { $stats .= "\nTotal templates count: " . $totalTemplatesCount . "\n" . "Total unique templates count: " . $totalUniqueTemplatesCopunt . "\n"; } return $stats; }
static function generateStatistics($as_html = true) { $statStartTime = microtime(true); $stats = ''; if (!eZTemplate::isTemplatesUsageStatisticsEnabled()) { return $stats; } if ($as_html) { $stats .= "<h2>Templates used to render the page:</h2>"; $stats .= "<table id='templateusage' summary='List of used templates' style='border: 1px dashed black;' cellspacing='0'>" . "<tr><th>Usage count</th>" . "<th>Requested template</th>" . "<th>Template</th>" . "<th>Template loaded</th>" . "<th>Edit</th>" . "<th>Override</th></tr>"; } else { $formatString = "%-40s%-40s%-40s\n"; $stats .= "Templates usage statistics\n"; $stats .= sprintf($formatString, 'Templates', 'Requested template', 'Template loaded'); } if ($as_html) { $iconSizeX = 16; $iconSizeY = 16; $templateViewFunction = 'visual/templateview'; eZURI::transformURI($templateViewFunction); $templateEditFunction = 'visual/templateedit'; eZURI::transformURI($templateEditFunction); $templateOverrideFunction = 'visual/templatecreate'; eZURI::transformURI($templateOverrideFunction); $std_base = eZTemplateDesignResource::designSetting('standard'); $wwwDir = eZSys::wwwDir(); $editIconFile = "{$wwwDir}/design/{$std_base}/images/edit.gif"; $overrideIconFile = "{$wwwDir}/design/{$std_base}/images/override-template.gif"; $tdClass = 'used_templates_stats1'; $j = 0; $currentSiteAccess = $GLOBALS['eZCurrentAccess']['name']; } $templatesUsageStatistics = eZTemplate::templatesUsageStatistics(); $alreadyListedTemplate = $templateCounts = array(); //Generate usage count for each unique template first. foreach ($templatesUsageStatistics as $templateInfo) { $actualTemplateName = $templateInfo['actual-template-name']; if (!array_key_exists($actualTemplateName, $templateCounts)) { $templateCounts[$actualTemplateName] = 1; } else { ++$templateCounts[$actualTemplateName]; } } //Then create the actual listing foreach ($templatesUsageStatistics as $templateInfo) { $actualTemplateName = $templateInfo['actual-template-name']; $requestedTemplateName = $templateInfo['requested-template-name']; $templateFileName = $templateInfo['template-filename']; if (!in_array($actualTemplateName, $alreadyListedTemplate)) { $alreadyListedTemplate[] = $actualTemplateName; if ($as_html) { $tdClass = $j % 2 == 0 ? 'used_templates_stats1' : 'used_templates_stats2'; $requestedTemplateViewURI = $templateViewFunction . '/' . $requestedTemplateName; $actualTemplateViewURI = $templateViewFunction . '/' . $actualTemplateName; $templateEditURI = $templateEditFunction . '/' . $templateFileName; $templateOverrideURI = $templateOverrideFunction . '/' . $actualTemplateName; $actualTemplateNameOutput = $actualTemplateName == $requestedTemplateName ? "<span style=\"font-style: italic;\"><No override></span>" : $actualTemplateName; $stats .= "<tr><td class=\"{$tdClass}\" style=\"text-align: center;\">{$templateCounts[$actualTemplateName]}</td>" . "<td class=\"{$tdClass}\"><a href=\"{$requestedTemplateViewURI}\">{$requestedTemplateName}</a></td>" . "<td class=\"{$tdClass}\">{$actualTemplateNameOutput}</td>" . "<td class=\"{$tdClass}\">{$templateFileName}</td>" . "<td class=\"{$tdClass}\" align=\"center\"><a href=\"{$templateEditURI}/(siteAccess)/{$currentSiteAccess}\"><img src=\"{$editIconFile}\" width=\"{$iconSizeX}\" height=\"{$iconSizeY}\" alt=\"Edit template\" title=\"Edit template\" /></a></td>" . "<td class=\"{$tdClass}\" align=\"center\"><a href=\"{$templateOverrideURI}/(siteAccess)/{$currentSiteAccess}\"><img src=\"{$overrideIconFile}\" width=\"{$iconSizeX}\" height=\"{$iconSizeY}\" alt=\"Override template\" title=\"Override template\" /></a></td></tr>"; $j++; } else { $stats .= sprintf($formatString, $requestedTemplateName, $actualTemplateName, $templateFileName); } } } $totalTemplatesCount = count($templatesUsageStatistics); $totalUniqueTemplatesCopunt = count(array_keys($alreadyListedTemplate)); $statEndTime = microtime(true); $timeUsage = number_format($statEndTime - $statStartTime, 4); if ($as_html) { $stats .= "<tr><td class=\"{$tdClass}\"> </td>" . "<td class=\"{$tdClass}\"> </td>" . "<td class=\"{$tdClass}\"> </td>" . "<td class=\"{$tdClass}\"> </td>" . "<td class=\"{$tdClass}\"> </td>" . "<td class=\"{$tdClass}\"> </td></tr>"; $stats .= "<tr><td colspan=\"2\" style=\"text-align: left;\"><b> Number of times templates used: {$totalTemplatesCount}<br /> Number of unique templates used: {$totalUniqueTemplatesCopunt}</b></td></tr>"; $stats .= "<tr><td colspan=\"2\" style=\"text-align: left;\"><b> Time used to render template usage: {$timeUsage} secs</b></td></tr>"; $stats .= "</table>"; } else { $stats .= "\nTotal templates count: " . $totalTemplatesCount . "\n" . "Total unique templates count: " . $totalUniqueTemplatesCopunt . "\n"; } return $stats; }