Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Шаблоны (TPL) » Как оформить ссылку из доп поля?

Как оформить ссылку из доп поля?


     22.05.2015    Все вопросы » Шаблоны (TPL)    2309

вопрос
Приветствую, есть доп поле для вывода ссылок, сейчас прописываю всё вручную, но как то не удобно, что требуется: к примеру в доп поле вставляется ссыла просто скопированная из строки браузера, http://site.ru/news, но в месте где она выводится нужно чтобы выводился только домен site.ru, с сохранением ссылки http://site.ru/news при клике на него. (Прописать в настройках доп поля заданные параметры - не вариант, тоже не удобно...)

Ответил: PunPun


Открыть /engine/modules/show.full.php найти :
$xfieldsdata = xfieldsdataload( $row['xfields'] );
Ниже вставить :
$url_xf = parse_url($xfieldsdata['test']);
if (preg_match ("/([^\.]+?\..{2,4})$/i", $url_xf['host'], $h))
$url_xf = $h[1];
if($xfieldsdata['test']) {
    $tpl->set( '[xf_url]', $url_xf );
} else {
    $tpl->set( '[xf_url]', "");
}
Открыть /engine/modules/show.short.php найти :
if( $xfound ) {
Выше вставить :
$tpl->set( '[xf_url]', "");
Далее найти :
$xfieldsdata = xfieldsdataload( $row['xfields'] );
Ниже вставить :
$url_xf = parse_url($xfieldsdata['test']);
if (preg_match ("/([^\.]+?\..{2,4})$/i", $url_xf['host'], $h))
$url_xf = $h[1];
if($xfieldsdata['test']) {
    $tpl->set( '[xf_url]', $url_xf );
} else {
    $tpl->set( '[xf_url]', "");
}    
Далее открыть /engine/modules/show.costum.php найти :
$xfieldsdata = xfieldsdataload( $row['xfields'] );
Ниже вставить :
$url_xf = parse_url($xfieldsdata['test']);
if (preg_match ("/([^\.]+?\..{2,4})$/i", $url_xf['host'], $h))
$url_xf = $h[1];
if($xfieldsdata['test']) {
    $tpl->set( '[xf_url]', $url_xf );
} else {
    $tpl->set( '[xf_url]', "");
}    
Где test - название доп поля.
Где [xf_url] тег для использования в шаблонах полной, краткой и тех что используются для кастомного вывода.
Пример конструкции такой будет
<a href="[xfvalue_test]">[xf_url]</a>

13 комментариев

yozuul
Юзер

yozuul - 23 мая 2015 03:12 -

Подсмотрено на другом сайте
    <?
    echo "<form method=POST><textarea cols=40 rows=5 name=url>".$_POST['r']."</textarea><br>
    <input type=submit value=Выполнить></form>";
    $url1 = ($_POST["url"]);
    $url1 = parse_url($url1);
    if (preg_match ("/([^\.]+?\..{2,4})$/i", $url1['host'], $h))
    $host = $h[1];
    echo $host;
    ?>

follor
Юзер

follor - 23 мая 2015 10:30 -

и куда его ставить то? поле то выводится в fullstory.tpl

joydo
Юзер

joydo - 23 мая 2015 10:33 -

Цитата: follor
и куда его ставить то? поле то выводится в fullstory.tpl

А есть проблемы? Вставьте его в fullstory.tpl, снимите запрет на использование PHP скриптов в index.php

LazyDev
PHP-developer

LazyDev - 23 мая 2015 10:37 -

joydo, хех, давайте ломать дле

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

follor
Юзер

follor - 23 мая 2015 10:40 -

Может на JS можно подобное сделать? если в html никак...

LazyDev
PHP-developer

LazyDev - 23 мая 2015 10:49 -

follor, можно, можно и на пхп

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

follor
Юзер

follor - 23 мая 2015 11:31 -

С тем что можно ясно, остаётся один вопрос как реализовать это?

joydo
Юзер

joydo - 23 мая 2015 11:16 -

Gameer,
а причем тут ломать?
Ссылка на офф сайт на эту тему

LazyDev
PHP-developer

LazyDev - 23 мая 2015 11:59 -

joydo, знаете о eval ?

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

follor
Юзер

follor - 23 мая 2015 20:09 -

Gameer, работает отлично, спасибо огромное)

follor
Юзер

follor - 23 мая 2015 20:18 -

А возможно ещё в этот скрипт добавить target="_blank" rel="nofollow"?

LazyDev
PHP-developer

LazyDev - 23 мая 2015 20:32 -

follor, ну так в "a" тег вставляйте это

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

follor
Юзер

follor - 23 мая 2015 20:36 -

Gameer,
точно)))

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх