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

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


     22.05.2015    Шаблоны (TPL)    941

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

Ответил: Gameer


Открыть /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
14 | 1

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
1

243 | 10

follor - 23 мая 2015 10:30 - Юзер

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

joydo
4

171 | 31

joydo - 23 мая 2015 10:33 - Юзер

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

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

Gameer
226

1124 | 396

Gameer - 23 мая 2015 10:37 - Эксперт

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

Истина в противоречии.​

follor
1

243 | 10

follor - 23 мая 2015 10:40 - Юзер

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

Gameer
226

1124 | 396

Gameer - 23 мая 2015 10:49 - Эксперт

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

Истина в противоречии.​

follor
1

243 | 10

follor - 23 мая 2015 11:31 - Юзер

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

joydo
4

171 | 31

joydo - 23 мая 2015 11:16 - Юзер

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

Gameer
226

1124 | 396

Gameer - 23 мая 2015 11:59 - Эксперт

joydo, знаете о eval ?

Истина в противоречии.​

follor
1

243 | 10

follor - 23 мая 2015 20:09 - Юзер

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

follor
1

243 | 10

follor - 23 мая 2015 20:18 - Юзер

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

Gameer
226

1124 | 396

Gameer - 23 мая 2015 20:32 - Эксперт

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

Истина в противоречии.​

follor
1

243 | 10

follor - 23 мая 2015 20:36 - Юзер

Gameer,
точно)))

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

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