Показать сообщение отдельно
Старый 11.04.2010, 15:48 Вверх   #1
Старший модератор
 
Аватар для Ghost
Ghost вне форума
Доп. информация
Хорошо Создаем динамический Userbar используя язык PHP

Стыбрил статью о создание динамичного юзербара php.

:: Создание динамического юзербара на php ::
Урок. Создание Динамического юзербара на php

Динамические свойства юзербара, создание которого сейчас будет рассматриваться, заключается не в анимации, а в изменении его внешнего вида в зависимости от программного кода. Таким образом, юзербар приобретает кроме внешней красоты, над которой вы пошаманите в Photoshop свой собственный интеллект (конечно относительно).
Это может быть как обычный отсчет времени от или до какого-то события, определение ip, операционной системы или браузера пользователя, прогноз погоды, да и все, что угодно! Ограничениями будут являться только ваша фантазия и знания программирования.
Вашему вниманию предлагается самого простого динамического юзербара, в которой может разобраться любой человек. Даже умение программировать на php не потребуется. Я специально приведу кроме основной схемы еще и простейшие шаблоны программного кода, вы можете совсем просто настроить его под себя.
Урок разрабатывался специально для userbars.ru, где значительня часть посетителей - дизайнеры, поэтому на всех технических моментах буду останавливаться очень подробно, и пусть меня простят программисты, для которых всё это может показаться скучным и примитивным.

У вас нет навыков работы в php и от веб-технологий вы далеки?
Тогда этот урок рассчитан и на вас. У вас всё получится, если будете строго следовать уроку, а мои подробные объяснения нацелены на то, чтобы вы осознавали свои действия и, в случае чего, могли переделать всё под себя. Что ж, приступим

Ход работы

1. Подготовка
2. Создание юзербара в графическом редакторе
3. Подготовка инструментария
4. Создаем скрипт-файл
4.1. Комментарии относительно шрифтов
5. Сохранение и размещение
6. Первый результат
7. .htaccess
8. Конечный результат

1. Подготовка

Нам понадобятся:

* Веб-сервер - хостинг
* FTP client - Total Commander
* Editor - Notepad++

Теперь остановимся на каждом подробнее.

Веб-сервер

Для начала, нам потребуется хостинг. Т.е. дисковое пространство с поддержкой php.
Файлообменники или бесплатные галереи в данном случае не подойдут, т.к. на них мы можем закачать только статическое изображение. Наша же картинка будет каждый раз меняться, т.е. создаваться заново индивидуально для каждого пользователя серверным приложением.
Что делать, если своего веб-сервера у вас своего нет, а оплачивать хостинг совсем не хочется? Есть множество бесплатных хостингов, но я остановился на выборе: ХОСТЕРА

Заполняем форму:


На e-mail приходит активация.
Активируем и получаем логин с паролем.


FTP-client (FTP клиент)

Для того, что бы управлять файлами на хостинге, воспользуемся Total Commander’ом: ghisler.com
Заходим в утилиту управления FTP-соединением. Ctrl+F.
Жмем кнопку «Добавить». И заполняем все поля значениями, которые выслали нам на е-мейл



Добавилось новое FTP соединение. Выбираем его из списка, жмем кнопку «Соединиться» и получаем доступ к файлам.

Editor (Текстовый редактор кода)
Мы будем работать с программным кодом и вручную, поэтому воспользуемся программой Notepad ++ которая красиво подсвечивает код php.
Скачиваем, устанавливаем и запускаем программу. В меню Синтаксис активируем поле - PHP.

2. Создание юзербара в графическом редакторе

Создаем растровое изображение размером 350 x 19. Всё зависит от ваших мастерских умений в Photoshop. По созданию юзербаров любой сложности можно найти очень много уроков, в этом уроке не буду подробно останавливаться на данном вопросе.
Единственное, что вам нужно рассчитать, это место для графического элемента, желательно с каким-то однотонным фоном. Таким элементом в моем уроке будет выступать обычный текст.
У меня получилось:


Я оставил место между машиной и логотипом 007 специально для текста, который будет оповещает о долгожданной премьеры фильма.
3. Подготовка инструментария
Речь идет об инструментарии нашей серверной оболочке.
Рассмотрим все элементы, с которыми нам предстоит работать.

Файл шрифта
Скачиваем шрифт Visitor

Файл со скриптом
Это файл, который будет содержать программный код для генерации графического изображения. Находиться он должен, только на сервере.
В моем конкретном случае, место этом файлу в директории htdocs

.htaccess - файл дополнительной конфигурации веб-сервера Apache. На хостинге который я выбрал, такой файл уже существует в директории htdocs . Если ваша цель – хранить на том хостинге только юзербары, то можете созданный файл почистить.
Копируем себе с FTP на жесткий диск файл .htaccess и открываем его блокнотом, или же другим специализированным редактором. У меня для таких целей служит – Notepad++. Если вы хотите заняться динамическими юзербарами всерьез и надолго, то не поленитесь, скачайте и установите.
Уже составленый список программного обеспечения:
Photoshop, Total Commander, Notepad ++. Открываем блокнот и вставляем код:
4. Создаем скрипт
Открываем блокнот Файл-Создать. Копируем код


Уже составленый список программного обеспечения:
Photoshop, Total Commander, Notepad ++. Открываем блокнот и вставляем код:
Код:
<?php  
header("Content-type: image/jpeg");  
$im = @ImageCreateFromJPEG ("userbar.jpg");  
$color = imagecolorallocate($im, 255, 255, 255);  
$element = " Since 31.10.2008";  
imagettftext($im, 10, 0, 45, 13, $color, "Visitor TT2 -BRK-.ttf",  $element);  
imagejpeg($im, NULL, 100);  
imagedestroy($im);  
?>
Как видим со скриншота, я вас не обманываю, все действительно просто:

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

$im = @ImageCreateFromJPEG ("userbar.jpg");
Это переменная с адресом изображения, на который будем накладывать свой эффект. У меня это userbar.jpg, который находится в одной папке со скриптом. Если у вас скрипт в корневой директории, а картинка в папке images, то путь будет таким:
$im = @ImageCreateFromJPEG ("images/userbar.jpg") ;

$color = imagecolorallocate($im, 255, 255, 255);
Переменная с цветом. Если вы немного разбираетесь в RGB, то понимаете, что это белый.
К примеру вам нужен черный цвет. Тогда наша строчка будет иметь такой вид:
$color = imagecolorallocate($im, 0, 0, 0);
Зеленый: $color = imagecolorallocate($im, 0, 255, 0);
Синий: $color = imagecolorallocate($im, 0, 0, 255);
Красный: $color = imagecolorallocate($im, 255, 0, 0);

$element = " Since 31.10.2008";
Это строковая переменная (в рамках урока рассматриваем только строковые), в которой должно содержаться то, что мы собираемся выводить на экран.

imagettftext($im, 10, 0, 45, 13, $color, "Visitor TT2 -BRK-.ttf", $element);
Накладываем текст, который содержится в переменной $element.
Где 10 – размер шрифта, 0 – угол поворота картинки, 45 – смещение от левого края, 13 – смещение от верхнего края картинки. Visitor TT2 –BRK-.ttf – шрифт.

imagejpeg($im, NULL, 100);
Вывод картинки на монитор. 100 – максимальное качество изображения. Так как мы создаем небольшой юзербар, то мелочиться с качеством не стоит.
4.1. Шрифт

Программный код php обрабатывается на сервере специальным модулем php в Apache2, и на выходе мы получаем готовый продукт. В основном генерируется html-код, но в нашем случае - картинка.
Поэтому не нужно беспокоится о том, что у пользователя нет такого шрифта ненужно, вся процедура выполняется сервером, но как раз о наличии этого шрифта на сервере нам нужно и позаботиться.
Закачать шрифт нужно в нашем случае нужно в папку htdocs и указать к нему путь.
Путь указывается в программном коде в этой строке:
imagettftext($im, 10, 0, 160, 13, $color, "Visitor TT2 -BRK-.ttf", $ element);
В двойных скобках указываем точное местоположение шрифта. Если шрифт вы закачали в ту же папку, где и главный срипт, то достаточно в точности скопировать имя файла шрифта. Если у вас много шрифтов, и для нихвы выделили отдельную папку fonts, то адрес будет такой: "fonts/Visitor TT2 -BRK-.ttf"

Таким образом, настройка шрифта сводится до процедуры в два действия:
1. Закачиваем шрифт через Total Commander на сервер
2. Указываем точный путь файла

Как видим, указывается не просто название шрифта, а полный путь до него. Поэтому, даже для того что бы использовать Arial нужно закачать его на сервер

5. Сохранение и размещение
Если вы строго следовали уроку, то не заниманились ни сохранением ни размещением php-срипта и скорее всего правильно сделали .

Сохраняем
В Блокноте: Файл – Сохранить как – Имя файла: userbarscript.php
У нас получился файл с расширением *.php
Если будете просматривать файл в Total Commander, обратите внимание, чтобы файл именовался чётко - userbarscript.php, а не userbarscript.php.txt к примру, в случае чего – переименуйте.

Размещаем
Просто скопируйте через Total Commander файл userbarscript.php в директорию вашего хостинга. Если необходимо будет сделать в скрипте изменение, копируйте обратно, изменяйте и заново заливайте – т.е. не всегда получится отредактировать файл непосредственно на сервере.

6. Первый результат

Если вы все сделали правильно, то уже сможете посмотреть свое творение по адресу вашего скрипта,
Всё есть, и картинка, и текст. А вот расположение этого самого текста придётся поправить.

Изменяем
PHP код:
imagettftext($im, 10, 0, 45, 13, $color, "Visitor TT2 -BRK-.ttf", $element);

на
PHP код:
imagettftext($im, 10, 0, 160, 13, $color, "Visitor TT2 -BRK-.ttf", $ element);

И всё ровненько:


Это наш первый результат. Но не конечный, так как картинка имеет расширение “php”, а большинство движков форумов не поддерживают формат такой формат картинки . В тэгах [img][/img] мы её не увидим картинки.
Для того, чтобы обмануть браузеры, мы воспользуемся ещё одним файлом из нашего инструментария: .htaccess

7. .htaccess
Открываем .htaccess (желательно в Notepad++) Дописываем такие строки:

PHP код:
RewriteEngine On
RewriteRule userbar1
.jpg userbarscript.php

Записью RewriteEngine On активируем модуль mod_rewrite
И делаем подмену. Как обычный ярлык во всех операционных системах userbar1.jpg – есть ярлыком на userbarscript.php.
И теперь все форумы и движки, видят нормально нашу картинку по адресу – artemhp.ho.ua

8. Конечный результат
В результате у нас получилось методами программирования создать кусочек графики, а здесь уж понятно, что можно творить всё что угодно. Были бы знания или друзья, которые помогут.
В созданном юзербаре на этого урока динамику уловить сложно, текст статичен, поэтому в завершения, что бы совесть не мучила, приведу пример интересной возможности - определение ip-адреса.

Вместо:
PHP код:
$element = " Since 31.10.2008";

пишем
PHP код:
$element = "007 Agent IP: ".$_SERVER["REMOTE_ADDR"];

Получаем:


Если у вас получилось сделать юзербар по моему уроку с использованием программного кода php, сообщите. Вопросы, в случае их возникновения, будут обязательно рассмотрены в будущих редакциях статьи.
Можете поэкспериментировать с более сложными алгоритмами,

К примеру:

Вместо записи:
PHP код:
$element = " Since 31.10.2008";

Вставляем нужный код алгоритма.

Отсчет времени с определенной даты
Дату - 2008-10-10. заменям на свою

PHP код:
$last = "2008-10-10";
$now = time();
$res = $now - strtotime($last);
$days = 0;
while (
$res >= 86400 ) {
$days++;
$res -= 86400;
}
$element = "Прошло - ".$days." дней";

Сколько дней осталось до определенной даты
2009-03-13 - заменям на свое.

PHP код:
$f = "2009-03-13";
$now = time();
$res = strtotime($f)-$now;
$days = 0;
while (
$res >= 86400 ) {
$days++;
$res -= 86400;
}
$element = " Осталось - ".$days." дней";

Замечания. Недостатки.
По ходу тестирования данного метода были замечены следующие недостатки:

Кэширование
Даже если на сервере картинка поменялась, то в браузере Opera вы этого не заметите, пока картинка находится в КЭШе (т.е. картинка запоминается браузером и не выкачивается второй раз с сервера для экономии трафика). Стандартно в Opera под КЭШ выделяется 24 мб, это значит, что при нормальном серфинге уже через день картинка должна обновиться.
Данный недостаток вышеописаного метода замечен только в Opera. Остальные браузеры картинку обновляют с сервера нормально.
Буду весьма признателен, если вы подскажете, как решить данную проблему.

На заметку администраторам
Если у вас свой собственный сервер, то вам нужно проверить наличие:
- Установленного и настроенного в Apache2 mod_rewrite.
- Наличие графической библиотеки GD2 для php
http://guzei.com/www/php/gd.php

Выбор хостинга
У вас все получилось. Полигон для испытаний ho.ua уже в прошлом. Вам рано или позно понадобится изменить хостинг или создали свой собственный сервер. Есть быстрый способ проверить, настроен ли он под наши потребности (создание динамических юзербаров).
(от Arrest)

Залейте в корень сайта файлы .htaccess и imgen.php со следующим содержанием:

PHP код:
RewriteEngine on 
RewriteRule ipr
.gif imgen.php 
imgen.php

PHP код:
<?php 
error_reporting
(7); 
$i imagecreate(200100); 
$c imagecolorallocate($i000); 
imagestring($i300"Works!"$c); 
imagegif($i); 
?>
Всем спасибо.
Автор: Артем Дейкун

Последний раз редактировалось Serberg; 12.04.2010 в 19:52..
  Ответить с цитированием
Cказали cпасибо:
 
Время генерации страницы 0.11526 секунды с 10 запросами