Динамические свойства юзербара, создание которого сейчас будет рассматриваться, заключается не в анимации, а в изменении его внешнего вида в зависимости от программного кода. Таким образом, юзербар приобретает кроме внешней красоты, над которой вы пошаманите в Photoshop, свой собственный интеллект (конечно относительно).
Это может быть как обычный отсчет времени от или до какого-то события, определение ip, операционной системы или браузера пользователя, прогноз погоды, да и все, что угодно! Ограничениями будут являться только ваша фантазия и знания программирования.
Вашему вниманию предлагается самого простого динамического юзербара, в которой может разобраться любой человек. Даже умение программировать на php не потребуется. Я специально приведу кроме основной схемы еще и простейшие шаблоны программного кода, вы можете совсем просто настроить его под себя.
Урок разрабатывался специально для userbars.ru, где значительная часть посетителей - дизайнеры, поэтому на всех технических моментах буду останавливаться очень подробно, и пусть меня простят программисты, для которых всё это может показаться скучным и примитивным.
У вас нет навыков работы в php и от веб-технологий вы далеки?
Тогда этот урок рассчитан и на вас. У вас всё получится, если будете строго следовать уроку, а мои подробные объяснения нацелены на то, чтобы вы осознавали свои действия и, в случае чего, могли переделать всё под себя. Что ж, приступим.
Ход работы
1. Подготовка.
2. Создание юзербара в графическом редакторе.
3. Подготовка инструментария.
4. Создаем скрипт-файл.
4.1. Комментарии относительно шрифтов.
5. Сохранение и размещение.
6. Первый результат.
7. .htaccess.
8. Конечный результат.
Для начала, нам потребуется хостинг. Т.е. дисковое пространство с поддержкой php.
Файлообменники или бесплатные галереи в данном случае не подойдут, т.к. на них мы можем закачать только статическое изображение. Наша же картинка будет каждый раз меняться, т.е. создаваться заново индивидуально для каждого пользователя серверным приложением.
Что делать, если своего веб-сервера у вас нет, а оплачивать хостинг совсем не хочется? Есть множество бесплатных хостингов, но я остановился на выборе www.ho.ua
Заполняем форму:
На e-mail приходит активация.
Активируем и получаем логин с паролем.
FTP-client (FTP клиент)
Для того, что бы управлять файлами на хостинге, воспользуемся Total Commander’ом: http://www.ghisler.com
Заходим в утилиту управления FTP-соединением. Ctrl+F.
Жмем кнопку «Добавить». И заполняем все поля значениями, которые выслали нам на е-мейл
Добавилось новое FTP соединение. Выбираем его из списка, жмем кнопку «Соединиться» и получаем доступ к файлам.
Editor (Текстовый редактор кода)
Мы будем работать с программным кодом и вручную, поэтому воспользуемся программой Notepad++( http://notepad-plus.sourceforge.net/ru/site.htm) которая красиво подсвечивает код php.
Скачиваем, устанавливаем и запускаем программу. В меню Синтаксис активируем поле - PHP.
2. Создание юзербара в графическом редакторе
Создаем растровое изображение размером 350 x 19. Всё зависит от ваших мастерских умений в Photoshop. По созданию юзербаров любой сложности можно найти очень много уроков, в этом уроке не буду подробно останавливаться на данном вопросе.
Единственное, что вам нужно рассчитать, это место для графического элемента, желательно с каким-то однотонным фоном. Таким элементом в моем уроке будет выступать обычный текст.
У меня получилось:
Я оставил место между машиной и логотипом “007” специально для текста, который будет оповещать о долгожданной премьере фильма.
3. Подготовка инструментария
Речь идет об инструментарии нашей серверной оболочке.
Рассмотрим все элементы, с которыми нам предстоит работать.
Файл со скриптом
Это файл, который будет содержать программный код для генерации графического изображения. Находиться он должен, только на сервере.
В моем конкретном случае, место этом файлу в директории htdocs.
.htaccess -файл дополнительной конфигурации веб-сервера Apache. На хостинге который я выбрал, такой файл уже существует в директории htdocs . Если ваша цель – хранить на том хостинге только юзербары, то можете созданный файл почистить.
Копируем себе с FTP на жесткий диск файл .htaccess и открываем его блокнотом, или же другим специализированным редактором. У меня для таких целей служит – Notepad++. Если вы хотите заняться динамическими юзербарами всерьез и надолго, то не поленитесь, скачайте и установите.
Уже составленный список программного обеспечения:
Photoshop, Total Commander, Notepad ++.
Как видим со скриншота, я вас не обманываю, все действительно просто:
Сделаем небольшие пояснения по программному коду того, что вам нужно изменить для того, чтобы создать юзербар под свои потребности.
$im = @ImageCreateFromJPEG ("userbar.jpg") ;
Это переменная с адресом изображения, на который будем накладывать свой эффект. У меня это userbar.jpg, который находится в одной папке со скриптом. Если у вас скрипт в корневой директории, а картинка в папке images, то путь будет таким:
К примеру, вам нужен черный цвет. Тогда наша строчка будет иметь такой вид:
$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. Первый результат
Если вы все сделали правильно, то уже сможете посмотреть свое творение по адресу вашего скрипта, в моем случае: http://artemhp.ho.ua/userbarscript.php
Мой результат:
Всё есть, и картинка, и текст. А вот расположение этого самого текста придётся поправить.
Это наш первый результат. Но не конечный, так как картинка имеет расширение “php”, а большинство движков форумов не поддерживают формат такой формат картинки . В тэгах [img][/img] мы её не увидим картинки.
Для того, чтобы обмануть браузеры, мы воспользуемся ещё одним файлом из нашего инструментария: .htaccess
7. .htaccess
Открываем .htaccess (желательно в Notepad++). Дописываем такие строки:
Код:
RewriteEngine On
RewriteRule userbar1.jpg userbarscript.php
Записью RewriteEngine On активируем модуль mod_rewrite
И делаем подмену. Как обычный ярлык во всех операционных системах userbar1.jpg – есть ярлыком на userbarscript.php.
Теперь все форумы и движки, видят нормально нашу картинку по адресу – http://artemhp.ho.ua/userbarscript.php
8. Конечный результат
В результате у нас получилось методами программирования создать кусочек графики, а здесь уж понятно, что можно творить всё что угодно. Были бы знания или друзья, которые помогут.
В созданном на этом уроке юзербаре динамику уловить сложно, текст статичен, поэтому в завершение, что бы совесть не мучила, приведу пример интересной возможности - определение ip-адреса.
Если у вас получилось сделать юзербар по моему уроку с использованием программного кода php, сообщите. Вопросы, в случае их возникновения, будут обязательно рассмотрены в будущих редакциях статьи.
Можете поэкспериментировать с более сложными алгоритмами,
К примеру:
Вместо записи:
Код:
$element = " Since 31.10.2008";
Вставляем нужный код алгоритма.
Отсчет времени с определенной даты
Дату - 2008-10-10. заменям на свою
Замечания. Недостатки.
По ходу тестирования данного метода были замечены следующие недостатки:
Кэширование
Даже если на сервере картинка поменялась, то в браузере Opera вы этого не заметите, пока картинка находится в КЭШе (т.е. картинка запоминается браузером и не выкачивается второй раз с сервера для экономии трафика). Стандартно в Opera под КЭШ выделяется 24 мб, это значит, что при нормальном серфинге уже через день картинка должна обновиться.
Данный недостаток вышеописаного метода замечен только в Opera. Остальные браузеры картинку обновляют с сервера нормально.
Буду весьма признателен, если вы подскажете, как решить данную проблему.
Выбор хостинга
У вас все получилось. Полигон для испытаний ho.ua уже в прошлом. Вам рано или позно понадобится изменить хостинг или создали свой собственный сервер. Есть быстрый способ проверить, настроен ли он под наши потребности (создание динамических юзербаров).
(от Arrest)
Залейте в корень сайта файлы .htaccess и imgen.php со следующим содержанием:
Хорошо написал)
Но, имхо, для обычного человека это бесмысленно.
Так же, как и качать Notepad++ - можно спокойно юзать блокнот, если всё равно пхп не знаешь. _________________
Roler
Спасибо, я тоже про обычного человека задумался
Делать ли проще и целенаправлено для начинающих php-программистов или для вооще людей, которые близко не подходили к этому делу.
Выбрал второй вариант, и таки думаю, что на этом форуме (а на каком же еще) необычно любят создавать юзербары, а переделав со всякими эфектами и анимациями однотипными, могли бы рискнуть и попробовать сделать для себя что-то совсем неординарное, расширив горизонты своих возможностей.
Меня вот лично мучала мысль о том, как делают всякие юзербары, где айпи показывается, или к какому то событию отсчет времени, уровни в он-лайн играх показываются. Вот взял и разобрался сам, написав урок закрепил у себя это и может кому то тоже полезно будет.
C Notepad++ может и переборщил
Но я так и предполагал, что не все будут качать и по этому пример на скрине навел в обычном блокноте.
Добавлено спустя 1 минуту 53 секунды:
ATHLON
Ага Не стесняйтесь только. Если что не получается, пишите, будем попрвлять)) Главное только терпение. Да и внимательно прочитать урок.
Денвер я использовал очень давно, как полигон для первых скриптов.
Если уже поднимать сервер, то Linux/Apache2
Но давайте не запугивать учеников, если следовать уроку, то этого не понадобится
FlexZERO
В скрипте же, при написании текста видишь шрифт?
В самом скрипте только название скрипта. Мне интересно как надпись появится, откуда сервер шрифт возьмет этот? Простите, но я в программировании ноль полный, хочу чтобы вы объяснили мне _________________
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах