Неверный путь потока изображений, потому что он добавляет тот из HTML - PullRequest
1 голос
/ 07 октября 2011

Я включил PHP-скрипт в сайт Typo3. Этот скрипт PHP генерирует теги img, которые автоматически берутся за основу для imageflow-slider .

Файлы потока изображений находятся в папке / fileadmin / teamtemplate. Изображения в /fileadmin/teamtemplate/images.

В imageflow.js у меня есть следующие параметры:

this.defaults =
{
    imagePath:          '',                                    /* Path to the images relative to the reflect_.php script */
    reflectPath:        'fileadmin/teamtemplate/',             /* Path to the reflect_.php script */

В выводе html-файла у меня есть следующее:

  img  src="./images/1317986502.png" ongdesc="" width="380" height="253" alt="" />

(Извините, но я не узнал, как разместить HTML-код.) Imageflow создает следующий путь, который работает:

fileadmin/teamtemplate/reflect3.php?img=./images/1317986502.png

Проблема заключается в следующем:

Для refle3.php путь правильный, потому что (./images) доступен:

-reflect3.php
Прообразы /
--1317986502.png

Imageflow обычно принимает URL, указанный в теге html img src. refle3.php может теперь получить доступ к изображениям, но в HTML-коде путь неверен!

Неправильно в HTML, но работает, потому что refle3.php находит файлы
img src = "./ images / 1317986502.png" ongdesc = "" width = "380" height = "253" alt = "" />

Исправить в HTML, но refle3.php не может найти файлы
img src = "./ fileadmin / teamtemplate / images / 1317986502.png" ongdesc = "" width = "380" height = "253" alt = "" />

Неисправный код в imageflow.js

version = (my.reflectionPNG) ? '3' : '2';
src = my.imagePath+node.getAttribute('src',2);
src = my.reflectPath+'reflect'+version+'.php?img='+src+my.reflectionGET;
node.setAttribute('src',src);

my.reflectionGET должен взорвать строку, чтобы она заняла только последние 1317986502.png.

Рабочий раствор:

/* Add 'reflect.php?img=' */
if(my.reflections === true)
{
    version = (my.reflectionPNG) ? '3' : '2';
    if(my.imagePath === "") {
        src = my.imagePath+node.getAttribute('src',2);
        src = my.reflectPath+'reflect'+version+'.php?img='+src+my.reflectionGET;
    } else {
        var imagePath = node.getAttribute('src',2);
        var slash = "/";
        var lastOccurence = imagePath.lastIndexOf(slash);
        var withoutPath = imagePath.substring(lastOccurence, imagePath.length);
        src = my.imagePath+withoutPath;
        src = my.reflectPath+'reflect'+version+'.php?img='+src+my.reflectionGET;
    }
    node.setAttribute('src',src);
}
...