Ссылка в дополнительных характеристиках

Статус
В этой теме нельзя размещать новые ответы.

virtualbrest

Полезный
Регистрация
6 Май 2007
Сообщения
210
Реакции
18
Просмотр поиска ничего не дал, сам тоже не могу придумать, подскажите как реализовать:

Нужно создать дополнительную характеристику для e-mail и интернет-адреса. Код HTML туда не впихнуть, он выводится так же как его туда и вносишь, так вот есть ли способ сделать там все же ссылку?
Или хоть целиком выводить HTML код из всех дополнительных характеристик.
 
Зачем?

Сделать можно, но зачем?

Чтобы не изобретать велосипед, напиши какой смысл несет данная запись и желательно с примером (например: ссылка на страницу где это есть; картинка отрисованная в фотошопе с пояснением...). Возможно задачку можно решить стандартными средствами...
 
Сделать можно, но зачем?

Чтобы не изобретать велосипед, напиши какой смысл несет данная запись и желательно с примером (например: ссылка на страницу где это есть; картинка отрисованная в фотошопе с пояснением...). Возможно задачку можно решить стандартными средствами...


Есть сайт, на котором размещаются не товары, а те или иные сайты, типа каталога, но а необходимостью работы корзины (набиваешь то что понравилось). Ну так заказчик хочет.
Так вот, приходится адрес этого сайта посать в описании, а сверху, в дополнительных характеристиках места - навалом. Обидно, пропадает. И красиво там смотрится ссылка. Но только к сожалению она не ссылка, а просто текст.
 
Как то не верится, что никто так и не решил никогда этой задачи. Может все же есть какая-то подсказка? Никак не дается мне эта ссылка.
 
В файле core_functions/product_functions.php сразу после этих строчек
Код:
$b = array();
$b["option_type"] = $val["option_type"];
$b["name"] = $row["name"];
$b["option_value"] = $val["option_value"];
$b["option_value"] = TransformDataBaseStringToText( $b["option_value"] );
пропиши
Код:
$b["option_value"] = preg_replace('#(^|\s)([a-z]+://([^\s\w/]?[\w/])*)#is', '\\1<a target="new" href="\\2">\\2</a>', $b["option_value"]);
$b["option_value"] = preg_replace('#(^|\s)((www|ftp)\.([^\s\w/]?[\w/])*)#is', '\\1<a target="new" href="http://\\2">\\2</a>', $b["option_value"]);
$b["option_value"] = preg_replace('#(^|\s)(([a-z0-9._%+-]+)@(([.-]?[a-z0-9])*))#is', '\\1<a href="mailto:\\2">\\2</a>', $b["option_value"]);
В конфигураторе товара во 2-е поле (называется "Произвольное значение") можно вводить ссылки вида Для просмотра ссылки Войди или Зарегистрируйся ftp., Для просмотра ссылки Войди или Зарегистрируйся Для просмотра ссылки Войди или Зарегистрируйся а также и е-мейл - mailto:
 
Спасибо! Точно в product_functions.php ?
Нет у меня ни одной такой строчки...

 
Действительно, у нас разные файлы. Эти строчки надо добавить в функцию GetExtraParametrs( $productID ).

В твоем случае замени это
Код:
        if (($_Row['option_type']==0 || $_Row['option_type']==NULL) && strlen( trim($_Row['option_value']))>0){ 

            $ProductsExtras[$_Row['productID']][] = array( 
                'option_type' => $_Row['option_type'], 
                'name' => $_Row['name'], 
                'option_value' => $_Row['option_value'] 
            ); 
        }
на это:
Код:
        if (($_Row['option_type']==0 || $_Row['option_type']==NULL) && strlen( trim($_Row['option_value']))>0){ 
$_Row['option_value'] = preg_replace('#(^|\s)([a-z]+://([^\s\w/]?[\w/])*)#is', '\\1<a target="new" href="\\2">\\2</a>', $_Row['option_value']);
$_Row['option_value'] = preg_replace('#(^|\s)((www|ftp)\.([^\s\w/]?[\w/])*)#is', '\\1<a target="new" href="http://\\2">\\2</a>', $_Row['option_value']);
$_Row['option_value'] = preg_replace('#(^|\s)(([a-z0-9._%+-]+)@(([.-]?[a-z0-9])*))#is', '\\1<a href="mailto:\\2">\\2</a>', $_Row['option_value']);

            $ProductsExtras[$_Row['productID']][] = array( 
                'option_type' => $_Row['option_type'], 
                'name' => $_Row['name'], 
                'option_value' => $_Row['option_value'] 
            ); 
        }
 
Огромное Спасибо.
Работает, но на практике получается все равно нет совсем универсально... :(

К примеру, если ты делаешь ссылку просто на сайт производителя, тогда куда еще не шло. (напр.: Для просмотра ссылки Войди или Зарегистрируйся), а когда идет ссылка на товар на сайте производителя, тогда получается длинная колбаса (напр.: Для просмотра ссылки Войди или Зарегистрируйся, а иногда и в две строки не помещается...).

Полноценный вариант должен быть примерно такой:
Активная ссылка "Сайт производителя" (при нажатии перемещаешься на линкованый адрес).

Или так, если вбивается что-либо похожее на электронный адресс - менялось на рисунок (подлинкованый)

Как-то можно такое чудо соорудить?
 
Попробуй заменить три строчки в моем предыдущем посте на эти
Код:
$_Row['option_value'] = preg_replace('#(^|\s)([a-z]+://([^\s\w/]?[\w/])*)#is', '\\1<a target="new" href="\\2">Сайт производителя</a>', $_Row['option_value']);
$_Row['option_value'] = preg_replace('#(^|\s)((www|ftp)\.([^\s\w/]?[\w/])*)#is', '\\1<a target="new" href="http://\\2">Сайт производителя</a>', $_Row['option_value']);
$_Row['option_value'] = preg_replace('#(^|\s)(([a-z0-9._%+-]+)@(([.-]?[a-z0-9])*))#is', '\\1<a href="mailto:\\2">Написать письмо производителю</a>', $_Row['option_value']);

Или так, если вбивается что-либо похожее на электронный адресс - менялось на рисунок (подлинкованый)
Про это не понял. Покажи пример.
 
Все, спасибо. Я об этом и говорил. :ay:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху