[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавить слайдер
Страницы: 1, 2
Reh
Есть разные статьи, в них присутствуют фото. Нужно сделать чтобы они были кликабельными и открывались в просмотрщике. Лайтбокс прикрутился легко, но возникла проблема, непойму как эту статью обработать перед выводом. Фото в статьях заисаны так
<img alt="" src="/uploads/advice_auto/4f43d8b8b1fbdd1b96c8dcc70bf4962ccfcf25e2.png" style="height:76px; width:200px">
привести нужно к виду что то вроде

<a href="/uploads/advice_auto/4f43d8b8b1fbdd1b96c8dcc70bf4962ccfcf25e2.png" rel="lightbox"><img alt="" src="/uploads/advice_auto/4f43d8b8b1fbdd1b96c8dcc70bf4962ccfcf25e2.png" style="height:76px; width:200px"></a>

Я так думаю нужно составить регулярку и обработать функцией preg_replace, но несоображу как это будет выглядеть. Подскажет кто-нибудь?
Zzepish
Reh
ты jquery юзаешь?
Reh
Zzepish
Если ты имеешь ввиду лайтбокс, то да
Zzepish
А ты не можешь генерировать сам данные на стороне сервера? Или доступ к нему закрыт?
Reh
Zzepish
Статья в бд, я её хочу обработать перед тем как передать в шаблон. Все на сервере.
Zzepish
<?php
$article = '<img alt="" src="/uploads/advice_auto/4f43d8b8b1fbdd1b96c8dcc70bf4962ccfcf25e2.png" style="height:76px; width:200px">';

preg_match_all('#src="(/uploads/advice_auto/[0-9a-z]+\.png)"#i', $article, $matches);

foreach($matches[1] as $url) {
echo '<a href="' . $url . '" rel="lightbox"><img alt="" src="' . $url . '" style="height:76px; width:200px"></a>';
}

Лови
Reh
Это не то, как вытащить массив с урлами фоток я знаю, мне нужно в самой статье изменить.
Должно быть что то вроде этого
$article = preg_replace('|(<img.*\/\>)|isU','<a href="/uploads/advice_auto/4f43d8b8b1fbdd1b96c8dcc70bf4962ccfcf25e2.png" rel="lightbox">$1</a>',$article);

Только регулярку не могу правильно сделать
Zzepish
Reh
В идеале все решить через класс работы с дом деревом на php. Это будет самый простой вариант
Reh
Вот так кажись работает

$article = preg_replace('|(<img.*\/uploads\/article\/([-0-9A-Za-z]*)\.png.*\/\>)|isU','<a href="/uploads/article/$2.png" rel="lightbox">$1</a>',$article);


Буду тестить, спасибо за участие
sergeiss
Reh, моё сугубое мнение - у тебя изначально неправильный подход. Это всё надо делать на стороне клиента, правильно Zzepish сказал. А уж за инлайновые стили вообще руки отрывать надо... Ну это моё мнение, а ты делай, как умеешь wink.gif

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Reh
sergeiss
подскажи плиз как правильно сделать?
sergeiss
Я бы передавал от сервера клиенту только данные (пути к картинкам), а всё остальное формировал бы средствами JS.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Reh
Это как ?
В БД хранится текст с тегами и путями, пишется он туда из редактора ckeditor, всеь этот текст просто выводится в див и все. Нужно вместо того чтобы php его передал в шаблон обрабатывать js ? Я где то тут читал что все что можно сделать на сервере нужно делать на сервере) Или этот случай неподходи?
sergeiss
Если тебе так хочется сделать это в ПХП... То глянь сюда http://php.net/manual/ru/class.domdocument.php
Я думаю, что можно выбрать с помощью этой фичи нужные параметры (href в данном случае) и затем сформировать то, что ты хочешь. Это будет проще, нагляднее и быстрее, чем с регулярками.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
killer8080
ИМХО лучшим вариантом будет не коверкать html, заворачивая картинки в ненужные ссылки, а заставить галерею работать с ними как есть, в крайнем случае завернуть их на клиентской стороне, перед инициализацией галереи.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.