Business Insights
Facebook 0 Likes
Twitter 0 Followers
Instagram 0 Followers
Pinterest 0 Followers
YouTube 0 Subscribers
Subscribe
Business Insights
Business Insights
  • Рекламным агентствам
  • Информационное спонсорство
  • Ссылки
  • О проекте
  • Без рубрики

Система “Совет дня”. Часть 3.

  • 12.11.2001
Total
0
Shares
0
0
0

Автор статьи: Головин Андрей

В двух предыдущих опытах мы рассмотрели, как организовать таблицы и работу с ними для реализации системы “Совет дня”. Сегодня рассмотрим, как предоставить возможность использовать наши советы другим пользователям на своих сайтах.

При предоставлении такой возможности, нельзя расчитывать, что у пользователя окажется возможность использовать наши php-скрипты. Безвыходная ситцация? Отнюдь, нет.

Каждый разработчик может включить на свои страницы “удаленные” скрипты на языке JavaScript. Т.е. исходный текст js-скрипта может храниться на абсолютно другом сервере. Например, на нашем. В то же время, php дает нам возможность генерировать этот скрипт “на лету”. внешний js-скрипт подключается с помощью следующего тэга:

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" SRC="<B>http://...</B>"></SCRIPT>

Выделенная часть – путь до нашего скрипта.

Теперь разберем, как владелец ресурса может поместить наши данные в необходимое ему место? При использовании js-скрипта, это проще всего сделать с помощью функции document.write(). Таким образом, наш js-скрипт должен состоять из набора вызовов этих функций.

Начнем конструировать PHP-скрипт для генерации необходимого кода. Для начала возьмем фрагмент кода из предыдущего опыта, получающий параметры текущего совета (код установления соединения с базой можно посмотреть в первой части этой серии опытов):

Далее мы будем использовать возможности PHP, по “внедрению” HTML-кода. Необходимо заметить, что как HTML-код можно помещать внутри .php3 файлов, так и PHP-код внутри HTML файлов со специальным расширением .phtml (вобще, данные расширения не являются жестко заданными. В принципе, любой администратор может установить их по своему желанию. Подробнее можно посмотреть в опыте, посвященном установке PHP.). Таким образом сразу за закрывающим тэгом ?> помещаем вызовы функции document.write() таким образом:

document.write(‘<DIV CLASS=”tipHeader”><B><?php echo $curTip[“title”] ?></B><DIV>’);

Выделенный фрагмент выведет в исходный текст js-скрипта значение атрибута title текущего совета. Таким же образом поступаем с текстом совета, предварительно заменив переводы строк на тэги
. Это необходимо потому, что выводимый текст может занять несколько строк, а разрыв строки в функции document.write() недопустим. Делается это следующей функцией:

$s = ereg_replace("\r\n","<BR>", $curTip["text"]);

Про регулярные выражения можно почитать подробнее вопыте, посвященном описанию работы с ними.

Кроме того, мы можем предоставить пользователю возможность описать формат оформления совета на свой вкус (в определенных пределах, конечно). При указании параметров с троке вызова (<SCRIPT TYPE=”text/javascript” LANGUAGE=”JavaScript” SRC=”<EM>http://…</EM>”></SCRIPT></SPAN>) по правилам, которые используются при передаче параметров значений элементов ввода форм (см. “Передача переменных в скрипт.”).

В скрипте мы организуем проверку на установку этих параметров. Если параметры не установлены, то присвоим им значения по умолчанию. Проверка осуществляется вызовом функции empty(var), которая принимает значение TRUE, если значение переменной не было установлено.

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

if (empty($hColor)) {
$hColor = "black";
}

Задавать этот параметр будем с помощью каскадных таблиц стиля (CSS), вывод которых будем организовывать аналогично (с помощью функции document.write()). Код для этого будет выглядеть так:

document.write('<STYLE>');
document.write('.tipHeader {');
document.write(' color: <?php echo $hColor ?>;');
document.write('}');
document.write('</STYLE>');

В вызове на сайте пользователя, цвет можно будет задать так:

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript" SRC="http://...<B>?hColor=blue</B>"></SCRIPT>

Соберем все вместе (файл extips.php3):

<?php
if (mysql_connect("localhost", "john", "dark")) {
if (!mysql_select_db("test")) {
echo "<B>Error selecting db!!!</B>";
exit();
}
} else {
echo "<B>Error connecting!!!</B>";
exit();
}
$sql = "SELECT * FROM tipoad WHERE startdate <= NOW() ORDER BY startdate DESC";
$res = mysql_query($sql) or die(mysql_error());
$curTip = mysql_fetch_array($res);
if (empty($hColor)) {
$hColor = "black";
}
$s = ereg_replace("\r\n","<BR>", $curTip["text"]);
?>
document.write('<STYLE>');
document.write('.tipHeader {');
document.write(' color: <?php echo $hColor ?>;');
document.write('}');
document.write('</STYLE>');
document.write('<DIV CLASS="tipHeader"><?php echo $curTip["title"] ?><DIV>');
document.write('<DIV><?php echo $s; ?></DIV>');

Вызов со страницы пользователя будет выглядеть так (предположим, что файл extips.php3 расположен на сервере www.pupkin.ru):

<SCRIPT TYPE=”text/javascript” LANGUAGE=”JavaScript” SRC=”http://www.pupkin.ru/extips.php3?hColor=blue”></SCRIPT>

Таким образом мы создали полнофункциональную систему провайдинга динамического контента для пользователей. На подобных принципах работает рекламная система TX3. Как видите, ничего особенно сложного.

Total
0
Shares
Share 0
Tweet 0
Pin it 0
Алексей Волков

Previous Article
  • PHP

Система “Совет дня”. Часть 1

  • 12.11.2001
  • Алексей Волков
Read More
Next Article
  • Программирование

Регулярные выражения

  • 12.11.2001
  • alexvolkov
Read More
You May Also Like
Read More
  • Без рубрики

Вдохновение для мам: лучшие книги ко Дню матери

  • Юля Ласкевич
  • 09.12.2015
Read More
  • Без рубрики
  • Пресс-релизы

Coca-Cola пригласила певицу Ёлку исполнить «Праздник к нам приходит»

  • Юля Ласкевич
  • 08.12.2015
Read More
  • Без рубрики

Пообедай на http://www.sushipermi.ru/

  • denisneopage
  • 26.12.2013
Read More
  • Без рубрики

Существенный плюс от http://detal-plus.ru/

  • denisneopage
  • 25.12.2013
Read More
  • Без рубрики

Популярность стилей дизайна

  • denisneopage
  • 25.12.2013
Read More
  • Без рубрики

http://kvadrolit.ru/ – яркий представитель онлайн-торговли

  • denisneopage
  • 09.12.2013
Read More
  • Без рубрики

Ати грузовые перевозки работает без обмана

  • denisneopage
  • 03.12.2013
Read More
  • Без рубрики

http://kfsperm.ru/ поможет изменить жизнь каждого к лучшему

  • denisneopage
  • 18.11.2013

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

  • Рассылка как продукт
    • 24.07.2020
  • Google назвал лучшие приложения App Store за 2018 год
    • 14.12.2018
  • Онлайн-конференция интернет-магазин от “А до Я” CyberE-com 2018
    • 25.05.2018
  • Бесплатная онлайн-конференция по управлению репутацией
    • 04.12.2017
  • Открыта регистрация на CyberMarketing-2017
    • 19.10.2017
Social Links
Facebook 0 Likes
Twitter 0 Followers
Instagram 0 Followers
Pinterest 0 Followers
YouTube 0 Subscribers
Twitter Feed
Marketer
  • Рекламным агентствам
  • Информационное спонсорство
  • Ссылки
  • О проекте
Статьи про рекламу, маркетинг, public relations, интернет

Input your search keywords and press Enter.