Oznámení

Provoz fóra byl ukončen

figureModule a videa

před 10 lety

Blizzy
Člen | 149

Vytvořil jsem image handler, který umí vytvářet YouTube videa. Vypadá následovně:

// user image handler for Youtube videos
function youtubeHandler($invocation, $image, $link)
{
    if ($image->URL == NULL) return FALSE;
    if (!preg_match('#^http://(www\.)?youtube\.com/watch\?.*v=([0-9a-zA-Z\-\_]{11,}).*$#i', $image->URL, $matches))
        return $invocation->proceed();

    $texy = $invocation->getTexy();

    $ytURL = 'http://www.youtube.com/v/' . $matches[2];
    $ytWidth = $image->width ? $image->width : 480;
    $ytHeight = $image->height ? $image->height : (270+25);
    $ytAlt = $image->modifier->title;

    $elObject = TexyHtml::el('object', array(
        'width'  => $ytWidth,
        'height' => $ytHeight
    ));
    $elObject->create('param', array(
        'name'  => 'movie',
        'value' => $ytURL
    ));
    $elObject->create('param', array(
        'name'  => 'wmode',
        'value' => 'transparent'
    ));
    $elObject->create('embed', array(
        'src'    => $ytURL,
        'type'   => 'application/x-shockwave-flash',
        'wmode'  => 'transparent',
        'width'  => $ytWidth,
        'height' => $ytHeight
    ));

    $elDiv = TexyHtml::el('div');
    $elDiv->attrs['class'][] = 'youtube-video';
    $elDiv->add($elObject);
    $image->modifier->decorate($texy, $elDiv);

    return $elDiv;
}

Chtěl bych vytvářet videa s popiskou podobně jako obrázky s popiskou.

Problém je v tom, že solve ve figureModule při vytváření obrázku s popiskou zavolá funkci imageModule->solve a tím pádem nespustí můj handler na videa. Zkoušel jsem tedy vytvořit vlastní figure handler, nicméně jsem nepřišel na to, jak ho odkázat na můj image handler na YouTube videa (dělal jsem přitom různé pokusy s invokeHandlers a invokeAroundHandlers).

Jak takový figure handler vytvořit nebo alespoň jak z jednoho handleru odkázat na druhý?