Перейти к содержимому

Реферальная программа Мегаплана

Партнерская программа Kredov

Php адрес текущей страницы

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 31 Январь 2009 - 00:55

САБЖ, как сделать чтобы выводило адрес текущей страницы??? ;)

Часто встречаю под новостью:

"Поделится ссылкой с другом

http://....."

как так сделать?

 

 

  • 0


#2 FordogeN

FordogeN
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 31 Январь 2009 - 01:00

Если правильно понял:
$_SERVER['REQUEST_URI'] - эта функция выводит адрес текущей страницы!


Вариант кода, если вписывать в html код:
<input type="text" value="<?php echo $_SERVER['REQUEST_URI']; ?>">



Вариант кода, если вписывать в php код:
<?php
$url=$_SERVER['REQUEST_URI'];
echo'<input type="text" value="$url">';
?>


ps. Не тестил, но по идее правильно.
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#3 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 31 Январь 2009 - 11:58

А как это вставить в меню, чтобы текущая ссылка выделялась каким-нибудь цветом?

Допустим вот меню

<a href="index.hml">Главная</a>

<a href="index.hml">Новости</a>



Наверно как-то так (пишу что-бы поняли что я имею ввиду, PHP я вообще не знаю ;) )

{проверка условия, если index.hml=$_SERVER['REQUEST_URI'] то <div class="active" иначе <div class="menu"}<a href="index.hml">Главная</a></div>

{проверка условия, если news.hml=$_SERVER['REQUEST_URI'] то <div class="active" иначе <div class="menu"}<a href="news.hml">Новости</a></div>


ну а классы прописать в CSS или такого не бывает
  • 0

#4 FordogeN

FordogeN
  • Пользователь
  • 1 414 сообщений
  • Репутация: 0

Отправлено 31 Январь 2009 - 14:37

Bender, а ZiToSs уже писал об этом - http://www.masterweb...kushuju-ssilku/
  • 0

Как настроить выдержку и диафрагму зеркального фотоаппарата



#5 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 31 Январь 2009 - 15:07

Я там ничего не понял так как ПХП не знаю, думал может можно как-то проще...
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 31 Январь 2009 - 17:37

Banderas,
Ничего сложного, возможны варианты на PHP или на JS
1) PHP
Разместить ссылку на своём сайте
<a href="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']?>">Ссылка на мою страницу</a>
Не забыв в данном случае заменить < на &lt и > на &gt, тогда спецсимволы < и > мы увидем на странице.

Ссылка другу
<input type="text" value="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']?>" />

Как это будет выглядеть покажу на skreenshot
Изображение

2) JavaScript
Почитайте про window.localtion.href сделать подобие такого
<script type="text/javascript">
 document.getElementById("href_friend").innerHTML = window.location.href;
</script>
..............
<div id="href_friend"></div>
..............

FordogeN,

$_SERVER['REQUEST_URI'] - эта функция выводит адрес текущей страницы!

1) это не функция, а зарезервированная предопределённая переменная
2) Она не выведет весь адрес, ведёт от имени хоста(не включая домен), правильнее как у меня.

Bender, в HTML-сайте сделать не проблема... Для каждой страницы, для каждого файла пишем свою навигацию, с выделением нужного пункта.
На динамичных сайтах всё сложнее, там можно целую систему можно написать по подсветке пункта меню. Советую на этом заморачиваться, этоне так уж актуально!
  • 0

#7 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 31 Январь 2009 - 19:16

Bender, в HTML-сайте сделать не проблема... Для каждой страницы, для каждого файла пишем свою навигацию, с выделением нужного пункта.

Ну у меня же все меню через инклуд вставляется, иначе было бы очень нудно добавлять страницы.

А раз есть функция которая выводит адрес страницы, нет ли случайно функции которая выводит Title ?
  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 31 Январь 2009 - 19:41

Bender, запомните это не функция, а переменная! Говорю последний раз... У меня просто душу коробит от таких высказываний.

Осознайте работу серверного языка программирования... При запросе страницы *.php идёт обращение к серверу например Apache и тот уже вызывает обработчик PHP. Обработчик PHP ищет в нашем файле *.php PHP-код и просто заменяет его. Выдать же на страницу то что находится между тегами <title> и </title> вы конечно не сумеете. Но если учесть, что заголовок страницы также формируется PHP и содержится по вывода в некоторой переменной, тогда вывести на экран заголовок будет не проблема.

Также есть возможность написать обработчик JavaScript, привожу простой пример
<html>
<head>
<title>Заголовок страницы</title>
<script type="text/javascript">

function echoTitle()
{
alert(document.title);
}

</script>
</head>
<body onLoad="echoTitle();">
</body>
</html>

Вам же просто придётся не вывести во всплывающем окне заголовок, а поместить его в нужный контейнер :unsure:
  • 0

#9 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 31 Январь 2009 - 22:03

никатит :unsure: либо я настолько блондинко либо одно из двух :)

когда вставляю
<input type="text" value="http://<?php echo $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']?>" />

то вот такое http://kachalka.com.ua/test.html

пс. У меня ДЛЕ 7.0
  • 0


#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 01 Февраль 2009 - 13:10

Banderas, запомни, чтобы сервер понял, что данный файл нужно отдать обработчику PHP, его расширение должно быть *.php, за исключением когда на сервере настроена обработка также html, shtml. Это редкость. Так что лучше всегда писать *.php

Сей час опишу как сделать для твоего скрипта на DLE.
1) Заходим в текущий шаблон, который используется на сайте templates/[текущий_шаблон]/
На папки не смотрим, нам нужны именно шаблоны *.tpl, в них содержится наш HTML код. И так... По смыслу определяем или по коду находим нужный нам шаблон. В данном случае так как мы ищем шаблон полной статьи, то нам надо изменить файл fullstory.tpl

После
	  <tr>
<td class="news">{full-story}</td>
</tr>

Вставить
	<tr>
<td class="regin" style="border: 1px dashed #c6c6c6; padding: 10px 8px;">
<b>Ссылка на вашем сайте:</b>
<input style="width: 70%" type="text" value="<a href='{url_site}'>{title}</a>" onMouseOver="this.select();">
<br><br>
<b>Показать статью другу:</b>
<input style="width: 70%" type="text" value="{url_site}" onMouseOver="this.select();">
</td>
</tr>

Как мы успели заметить, мы используем два параметра
{title} - название статьи, он уже определён скриптом, как мы видим выше в полной статье идёт вывод заголовка с помощью {title}. Поэтому мы можем его использовать, что мы и делаем.
{url_site} - ссылка адресной строки. Данный параметр не определён, мы его объявили сами. Нам придётся его задать...

2) Где же задавать данный параметр?! Подумаем... Так как вывод статьи это должно быть отдельным модулем, значит нам нужно искать файл в модулях engine/modules/show.full.php
Как вы видите по названию примерно сопоставимо. Для понятности можно посмотреть также его назначение вверху в комментариях

Назначение: Просмотр полной новости и комментариев

Находим где передаётся {title}
$tpl->set('{title}', $metatags['title']);

И вставляем после неё
$tpl->set('{url_site}', "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}");


Всё, скрипт исправно работает и выводит статьи с ссылкой для друга и ссылкой на своём сайте
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru