Доступ запрещён
Извините, у вас не хватает прав для этого действия.
Авторизация
Сейчас вы не в системе. Авторизируйтесь при помощи формы ниже. Замечание: для работы у вас должны быть включены куки (cookies).
/**
* Вставляет кнопку «Комментировать» под каждым ,
* собирая точный оригинальный сниппет.
*/
public function injectButtons(Doku_Event $event, $param) {
global $ID;
if(!is_string($event->data)) return;
$html = $event->data;
$html = preg_replace_callback(
'#
]*\bsrc="([^"]+)"[^>]*)>#i',
function($m) use($ID) {
$attrs = $m[1];
$srcRaw = html_entity_decode($m[2]);
$media = '';
$width = '';
// 1) fetch.php?media=…&width=…
if(strpos($srcRaw,'fetch.php?')!==false){
$parts = parse_url($srcRaw);
parse_str($parts['query'] ?? '', $qs);
$media = $qs['media'] ?? '';
$width = $qs['width'] ?? '';
}
// 2) direct /_media/...
elseif(strpos($srcRaw,'/_media/')!==false){
// путь после /_media/
$path = parse_url($srcRaw, PHP_URL_PATH);
$sub = substr($path, strlen('/_media/'));
// namespace: replace slashes with colons
$media = str_replace('/', ':', $sub);
// get width from attribute, if present
if(preg_match('/\bwidth="(\d+)"/i',$attrs,$wm)){
$width = $wm[1];
}
}
if(!$media) return $m[0];
// caption from alt="", if exists
$label = '';
if(preg_match('/\balt="([^"]*)"/i',$attrs,$am)){
$label = $am[1];
}
// build exact wikitext snippet
$snippet = '{{:' . $media;
if($width) $snippet .= '?' . $width;
$snippet .= '|' . $label . '}}';
// link to our action
$url = DOKU_URL
. 'doku.php?do=mediacomment&snippet='
. rawurlencode($snippet);
// button HTML
$btn = '