Начинаю изучать написание собственных расширений для Joomla, попутно изучаю PHP Есть такой код: Код (PHP): $baseUrl = JUri::base(); foreach($files as $file) { $document->addScriptDeclaration("new Asset.image('" . $baseUrl . '/images/' . $file . "');"); } В консоли браузера такая ошибка: поиск по интернету ничего толкового не дал Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
Для написания плагинов Joomla скилл php должен быть на уровне "очень крут" (в основе Joomla не самый тривиальный фреймворк лежит). Ну и js тоже.
все, я понял причину появления ошибки. asset - оператор mootools, а я изучаю написание расширений под Joomla 3, где mootools не используется по умолчанию (если я ничего не путаю). в общем, подскажите, как данную строку интерпретировать в jQuery?
Игорь, эта хрень оказывается для предзагрузки изображений, она их не вставляет сразу в DOM denism300, а погуглить jquery image preload слабо? http://stackoverflow.com/questions/476679/preloading-images-with-jquery, http://www.jqueryrain.com/demo/jquery-preloader-image/
Сделал так: Код (PHP): $path = JPATH_ROOT . DS . 'images'; $filter = '\.png$|\.gif$|\.jpg$|\.bmp$|\.ico$'; $files = JFolder::files($path, $filter); foreach($files as $file) { $imgPath = $path . DS. $file; $document->addScriptDeclaration("$(\"<img />\").attr(\"src\", \"$imgPath\");"); var_dump($imgPath); } на выходе в var_dump путь к картинке верный
Почему? Код предзагрузки я взял отсюда: http://jquery.page2page.ru/index.php5/Предзагрузка_изображений Вот он: Код (PHP): function preloadImages() { for(var i = 0; i<arguments.length; i++) $("<img />").attr("src", arguments[i]); } если я правильно понял, то непосредственно предзагрузка реализуется вот в этой строке: Код (PHP): $("<img />").attr("src", arguments[i]); у меня в папке сейчас 3 картинки, var_dump выводит все их корректно.
да, но в этом нет смысла, если ты "пред"загружаешь сразу все картинки. Это имеет смысл, если ты грузишь картинки по мере пролистывания например. Смысл-то какой? Если ты хочешь, чтобы иконки, как в примере, отображались нормально и быстро, то надо их все склеить в одну картинку, как сейчас во всех иконках растровых сделано. А если иконки в шрифте, то они загрузятся сразу скопом сами и так. Смысл какой? Чего ты пытаешься добиться-то? Или ты просто на всякий пожарный решил подключить какой-нибудь клевый код?
смысл такой: в админке есть поле типа "выпадающий список", в котором можно выбрать изображение для дальнейшей работы с ним. есть область, в которой показывается миниатюра выбранного изображения. предзагрузку я хочу сделать для того, чтобы при смене изображения не приходилось ждать обновления миниатюры. это не критично, но, как я уже писал, я только начинаю изучать, поэтому, пробую осваивать разные вещи. как-то так.
при смене изображения ты меняешь изображение и оно загрузится. В принципе можно подгрузить заранее, но опять-таки, у тебя есть реальные проблемы с загрузкой этих изображений? они долго грузятся? Если нет - надо сосредоточиться на основном функционале. Но для практики можно делать что угодно конечно, опыт лишним не будет.
в принципе, я понял что надо сделать, чтобы заработало, но не понял как. Нужно передать содержимое переменной $imgPath в скрипт. Я попытался сделать так: Код (PHP): $document->addScriptDeclaration("jQuery('<img />').attr('src', ('<?=$imgPath?>'));"); но убираются все разделители между папками. и еще такой вопрос. есть объект <img>, которому присвоен id вида hello.world скриптом я пытаюсь присвоить ему атрибут src Код (PHP): jQuery(document).ready(function() { jQuery('img#hello.world').attr('src', jQuery('select#image option:selected').val()); }); но атрибут не присваивается. что я делаю не так? Подсказка от модератора: Любой код или текст конфигурации пишите между тегом [code=php] и [/code]. Используйте отступы в коде для форматирования текста. Это помогает быстрее понять вас, увеличивает шанс на получение ответа. Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
не совсем понял как это сделать указанным способом. там говориться про то, как передать значение какого-либо атрибута тэга, мне надо передать значение переменной php в jQuery так, чтобы сохранились разделитель директорий. т.е., к примеру, $imgPath=/images/test/dir/img.jpg а в скрипт тем способом, который я реализовал, передается как imagestestdirimg.jpg
ты меня, похоже, не правильно понял. в том посте я описал две разные, никак не взаимосвязанные проблемы... т.е., вот это первая проблема, которую я пытаюсь решить: а вот это не имеющая отношения к первой, вторая проблема: как-то так.
вот и я считаю, что должен. но не присваивается. в console.log значение jQuery('select#image option:selected').val() выводится корректно попробовал ради интереса такую конструкцию: Код (PHP): jQuery(document).ready(function() { jQuery('img#hello.world').attr('alt', 'test'); }); тоже не присваивает. ошибок никаких нигде нет.