fix(workchronicles): hide debug logs for non-admin users in shaarli

This commit is contained in:
2025-08-21 13:58:28 +00:00
parent df6ddcd4a9
commit 9ef29342c6

View File

@@ -12,50 +12,51 @@ use Shaarli\Plugin\PluginManager;
function workchronicles_url(string $url): string function workchronicles_url(string $url): string
{ {
echo "<pre style=\"color: lime;\">DEBUG: Checking URL {$url}</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Checking URL {$url}</pre>"; }
$pattern = '~^https?://(?:www\.)?(?:workchronicles\.com|workchronicles\.substack\.com)/\S+~i'; $pattern = '~^https?://(?:www\.)?(?:workchronicles\.com|workchronicles\.substack\.com)/\S+~i';
if (preg_match($pattern, $url, $m)) { if (preg_match($pattern, $url, $m)) {
echo "<pre style=\"color: lime;\">DEBUG: Matched workchronicles URL {$m[0]}</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Matched workchronicles URL {$m[0]}</pre>"; }
return $m[0]; return $m[0];
} }
echo "<pre style=\"color: yellow;\">DEBUG: Not a workchronicles URL</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: yellow;\">DEBUG: Not a workchronicles URL</pre>"; }
return ''; return '';
} }
function hook_workchronicles_render_linklist(array $data): array function hook_workchronicles_render_linklist(array $data): array
{ {
echo "<pre style=\"color: lime;\">DEBUG: hook_workchronicles_render_linklist start</pre>"; $GLOBALS['WC_DEBUG'] = !empty($data['is_admin']) || !empty($data['is_loggedin']);
if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: hook_workchronicles_render_linklist start</pre>"; }
if (empty($data['links']) || !is_array($data['links'])) { if (empty($data['links']) || !is_array($data['links'])) {
echo "<pre style=\"color: yellow;\">DEBUG: Aucun lien à traiter</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: yellow;\">DEBUG: Aucun lien à traiter</pre>"; }
return $data; return $data;
} }
foreach ($data['links'] as &$link) { foreach ($data['links'] as &$link) {
$url = $link['url'] ?? ''; $url = $link['url'] ?? '';
echo "<pre style=\"color: lime;\">DEBUG: Processing link {$url}</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Processing link {$url}</pre>"; }
$page = workchronicles_url($url); $page = workchronicles_url($url);
if ('' === $page) { if ('' === $page) {
echo "<pre style=\"color: yellow;\">DEBUG: Skipping non-workchronicles</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: yellow;\">DEBUG: Skipping non-workchronicles</pre>"; }
continue; continue;
} }
echo "<pre style=\"color: lime;\">DEBUG: Fetching page content from {$page}</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Fetching page content from {$page}</pre>"; }
list($headers, $content) = get_http_response($page); list($headers, $content) = get_http_response($page);
if (empty($content)) { if (empty($content)) {
echo "<pre style=\"color: red;\">DEBUG: Empty content</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: red;\">DEBUG: Empty content</pre>"; }
continue; continue;
} }
echo "<pre style=\"color: lime;\">DEBUG: Page content length: " . strlen($content) . "</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Page content length: " . strlen($content) . "</pre>"; }
$imgUrl = ''; $imgUrl = '';
if (preg_match('/<meta\s+property="og:image"\s+content="([^"]+)"/i', $content, $m)) { if (preg_match('/<meta\s+property="og:image"\s+content="([^"]+)"/i', $content, $m)) {
$imgUrl = $m[1]; $imgUrl = $m[1];
echo "<pre style=\"color: lime;\">DEBUG: Found og:image {$imgUrl}</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Found og:image {$imgUrl}</pre>"; }
} }
if ('' === $imgUrl && preg_match('#<figure[^>]*>.*?<img[^>]+src="([^"]+)"#is', $content, $m2)) { if ('' === $imgUrl && preg_match('#<figure[^>]*>.*?<img[^>]+src="([^"]+)"#is', $content, $m2)) {
$imgUrl = $m2[1]; $imgUrl = $m2[1];
echo "<pre style=\"color: lime;\">DEBUG: Fallback found <figure> img src {$imgUrl}</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Fallback found <figure> img src {$imgUrl}</pre>"; }
} }
if ('' !== $imgUrl) { if ('' !== $imgUrl) {
@@ -68,25 +69,26 @@ function hook_workchronicles_render_linklist(array $data): array
} else { } else {
$link['description'] = $html; $link['description'] = $html;
} }
echo "<pre style=\"color: lime;\">DEBUG: Injected thumbnail into description</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Injected thumbnail into description</pre>"; }
} else { } else {
echo "<pre style=\"color: yellow;\">DEBUG: No image found (og:image nor <figure> img)</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: yellow;\">DEBUG: No image found (og:image nor <figure> img)</pre>"; }
} }
} }
unset($link); unset($link);
echo "<pre style=\"color: lime;\">DEBUG: hook_workchronicles_render_linklist end</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: hook_workchronicles_render_linklist end</pre>"; }
return $data; return $data;
} }
function hook_workchronicles_render_includes(array $data): array function hook_workchronicles_render_includes(array $data): array
{ {
echo "<pre style=\"color: lime;\">DEBUG: hook_workchronicles_render_includes</pre>"; $GLOBALS['WC_DEBUG'] = !empty($data['is_admin']) || !empty($data['is_loggedin']);
if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: hook_workchronicles_render_includes</pre>"; }
$css = '<style>'; $css = '<style>';
$css .= '.wc-thumbnail img { border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); display: block; margin: 0.5em auto; }'; $css .= '.wc-thumbnail img { border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.2); display: block; margin: 0.5em auto; }';
$css .= '</style>'; $css .= '</style>';
$data['includes'][] = $css; $data['includes'][] = $css;
echo "<pre style=\"color: lime;\">DEBUG: Injected CSS</pre>"; if (!empty($GLOBALS['WC_DEBUG'])) { echo "<pre style=\"color: lime;\">DEBUG: Injected CSS</pre>"; }
return $data; return $data;
} }