|
|
|
Юзербары-информеры |
|
|
|
13.6.2007, 1:09
|
Группа: Пользователи
Сообщений: 1022
Регистрация: 15.2.2007
Из: Северной Пальмиры
Пользователь №: 17152
|
Не разгадал смысл смайла (IMG: http://rusro2.org/forum/style_emoticons/default/emo_ro33.gif) Вот у тебя в приписке такой юзербар, не сложно ли будет объяснить или свести с человеком, который объяснит как такие делать без углубленного знания языка? Я уверен, что существует некий шаблон, например, конкретно для нашего сервера, хотелось бы его увидеть.
|
|
|
|
|
13.6.2007, 2:54
|
Группа: Пользователи
Сообщений: 1022
Регистрация: 15.2.2007
Из: Северной Пальмиры
Пользователь №: 17152
|
Общий скрипт, как понимаю, написать сложно, но неужели нет шаблона, в который достаточно вставить ник чара (какой-либо его определитель)? Или это одно и то же? P.S. Язык даже не начинал изучать, полный нуб в этом деле (IMG: http://rusro2.org/forum/style_emoticons/default/smile.gif)
|
|
|
|
|
13.6.2007, 19:04
|
Группа: Пользователи
Сообщений: 79
Регистрация: 21.1.2007
Пользователь №: 16737
|
Ой, фкучю личек кидать линива, вот вам файл со скриптом и небольшой гайдик (=
outlaw.php ( 3.52 килобайт )
Кол-во скачиваний: 55Алгоритм глупый, и, если администрация изменит код страницы топа игроков, его придется переделывать *_* На сервер заливаем скрипт и нужный баннер размером 502*73 (можно менять, но тогда в скрипте нужно менять координаты текста). Да, и, поскольку писалось это дело для своей гильды, то названии гильдии там задано жестко, тоже менять придется. Поскольку форум в теги [IMG] позволяет вставлять только ссылки на картинки, то на сервер (если это apache) в папку со скриптом нужно всунуть файл .htaccess с таким кодом Цитата RewriteEngine On RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L] Это позволит задавать ссылку вида host/high/I n o/outlaw.jpg например, которая через регулярки разобъется на параметры и перенаправит на скрипт. Ну, названия outlaw.php, outlaw.jpg естественно менять нужно и в названиях файлов и в .htaccess. Первый параметр (high/normal) определяет в каком из двух топов искать чара, а второй его ник. Вроде все.
|
|
|
|
|
13.6.2007, 19:49
|
Группа: Пользователи
Сообщений: 1022
Регистрация: 15.2.2007
Из: Северной Пальмиры
Пользователь №: 17152
|
Предлагаю составить гайд в виде вопрос-ответ. Я знаю, это интересно многим, поэтому прошу разобрать все по винтикам. Цитата(Ino @ 13.6.2007, 20:04) На сервер заливаем скрипт и нужный баннер На какой сервер? Цитата(Ino @ 13.6.2007, 20:04) Поскольку форум в теги [IMG] позволяет вставлять только ссылки на картинки, то на сервер (если это apache) в папку со скриптом нужно всунуть файл .htaccess с таким кодом Цитата RewriteEngine On RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L]
Что за apache? Цитата(Ino @ 13.6.2007, 20:04) Это позволит задавать ссылку вида host/high/I n o/outlaw.jpg например, которая через регулярки разобъется на параметры и перенаправит на скрипт Что за регулярки? Очень жду ответа (IMG: http://rusro2.org/forum/style_emoticons/default/smile.gif)
|
|
|
|
|
15.6.2007, 8:33
|
Группа: Пользователи
Сообщений: 1022
Регистрация: 15.2.2007
Из: Северной Пальмиры
Пользователь №: 17152
|
По шагам: 1. Создание сервера. Допустимо ли создание сервера, например, на narod.ru?2. Создание фалов. 2.1. Создание юзербара 2.2. Создание php-файла 2.3. Создание htaccess-файла Я так понял, ТОЛЬКО для apache.org?3. Структура php- и htaccess-файлов. 3.1 PHP Цитата <?
$banner_image = "http://alnar.net/img.jpg"; $banner_link = "http://rusro2.com/"; function GetMyLevel($name) { $myinfo = NULL; $found = false; $fileIndex = 1; if ($name == 'inosage') {$name = 'И н о';} while (!$found) { $f = fopen("http://rusro2.com/top.php?mode=".$_GET['mode']."&page=".$fileIndex, "r"); if ($f != NULL) { while (!feof($f)) { $tstr = fgets($f); $iname = stristr(trim($tstr), $name); if (strpos(trim($tstr), $name)) { //echo "Name: $name<br>\n"; $myinfo['name'] = $name; if ($name == 'И н о') {$myinfo['name'] = 'I n o';} $tstr = fgets($f); if (strpos(trim($tstr),"offline")) {$ionline = "Offline";} if (strpos(trim($tstr),"online")) {$ionline = "Online";}
//echo "Status: ".(($ionline !== false)?$ionline:"Offline")."<br>\n"; $myinfo['status'] = $ionline; //echo "Status: ".$myinfo['status']."<br>\n"; /*$tstr = fgets($f); $tstr = fgets($f); $tstr = fgets($f); echo $tstr."<br>\n"; $iguild = strip_tags($tstr); echo "Guild: $iguild<br>\n";*/ $myinfo['guild'] = 'Outlaw'; $tstr = fgets($f); $tstr = fgets($f); $tstr = fgets($f); $tstr = fgets($f); $iprof = strip_tags($tstr); //echo "Profession: $iprof<br>\n"; $myinfo['prof'] = $iprof; $tstr = fgets($f); $ibase = strip_tags($tstr); //echo "Base level: $ibase"; $myinfo['base'] = $ibase; $tstr = fgets($f); $ijob = strip_tags($tstr); //echo "Job level: $ijob"; $myinfo['job'] = $ijob; //echo $name." - ".$iprof." ( ".$ibase."/ ".$ijob.") [".$iguild."]<br /> Status: ".$ionline."\n";; $found = true; break; } } fclose($f); $fileIndex += 1; } else { break; } } $myinfo['prof']=strrev(substr(strrev($myinfo['prof']),1)); $myinfo['base']=strrev(substr(strrev($myinfo['base']),1)); $myinfo['job']=strrev(substr(strrev($myinfo['job']),1)); return $myinfo; }
function PrintBanner() { Header("Pragma: no-cache");
$imf = $GLOBALS['banner_image']; $fn = fopen($imf, "r"); if ($fn != false) { fclose($fn); header("Content-Type: image/jpg"); $im = imagecreatefromjpeg($imf); $orange = imagecolorallocate($im, 255, 255, 255); $myinfo = GetMyLevel(isset($_GET['name'])?$_GET['name']:"I n o"); $string1 = $myinfo['name']." - ".nl2br($myinfo['prof'])." (".$myinfo['base']."/".$myinfo['job'].") [ ".$myinfo['guild']." ] "; $string2 = $myinfo['status']; imagestring($im, 3, 8, 8, $string1, $orange); imagestring($im, 3, 8, 35, $string2, $orange); imagejpeg($im); imagedestroy($im); exit; }
header("Content-type: image/png"); $im = @ImageCreate (50, 15) or die ("Cannot Initialize new GD image stream"); $background_color = ImageColorAllocate($im, 225, 130, 130); $text_color = ImageColorAllocate ($im, 0, 0, 0); ImageString ($im, 2, 4, 1, "NO FILE", $text_color); ImagePng($im); }
PrintBanner(); //GetMyLevel($_GET['name']);
?> $banner_image = "http://alnar.net/img.jpg"; - нужна прямая ссылка на jpg-файл (.jpg на конце)?
if ($name == 'inosage') {$name = 'И н о';} - первый параметр ник и профа подряд английскими буквами? Т.е. smiththegreatblacksmith для моего кузнеца? Второй параметр - просто ник, верно? И почему у тебя, профессора, стоит sage?if ($name == 'И н о') {$myinfo['name'] = 'I n o';} - первый параметр - ник в игре, что означает второй?$myinfo['guild'] = 'Outlaw'; - тут просто заменить на свою гильдию? 3.2 HTACCESSЦитата RewriteEngine On RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L] Должен выглядеть так? Цитата RewriteEngine On RewriteRule http://сервер/каталоги/файл.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule http://сервер/каталоги/файл.jpg$ /(тут надо что-нибудь вставить?)outlaw.php?name=ник_чара&mode=режим (normal или high) [L] 4. Загрузка всех трех (двух?) файлов на сервер. Обязательно ли создавать host/normal(high)/ник_чара/? Туда скинуть все три (два) файла?5. Поставить в подпись http://сервер/каталоги/файл.jpg, окруженный IMG-тегамиВсе верно? У меня так ничего не вышло, отобразился лишь сам баннер. С координатами позже, ибо промежуточного результата нет (IMG: http://rusro2.org/forum/style_emoticons/default/sad.gif)
|
|
|
|
|
15.6.2007, 10:26
|
Группа: Пользователи
Сообщений: 79
Регистрация: 21.1.2007
Пользователь №: 16737
|
1. Хост нужен тот, который допускает выполнение .php скриптов. 2.3 Файл .htaccess задает правила доступа к каталогу, в котором он находится. То, что в нем написано сейчас - правила для модуля modrewrite, заданные с помощью регулярных выражений. RewriteRule ^(.+)/(.+)/outlaw.jpg$ /outlaw.php?name=$2&mode=$1 [L] Эта строка при получении адреса вида host/prof/name/outlaw.jpg вытягивает из него два параметра prof и name и перенаправляет их на скрипт host/outlaw.php?name=name&mode=prof; Это нужно для того, чтобы была возможность сунуть картинку в приписку, т.к. ссылка на скрипт там не допускается. Сам файл .htaccess может лежать в любом каталоге хоста и будет регулировать правила доступа только к этому каталогу и к каталогам, вложенным в него (ну и файлам в них). 3.1 Цитата $banner_image = "http://alnar.net/img.jpg"; Просто ссылка на картинку, на которо это дело рисуется. Цитата if ($name == 'inosage') {$name = 'И н о';} if ($name == 'И н о') {$myinfo['name'] = 'I n o';} Это просто тупая подпорка из-за проблем с русскими никами (у моей профки ник русский и отображается некорректно), можно не обращать внимания =) Цитата $myinfo['guild'] = 'Outlaw'; Да 3.2 .htaccess здесь менять не нужно просто скинуть в каталог. Изменить, можно, при желании название картинки (outlaw.jpg) и название скрипта (outlaw.php) 4. Создавать подкаталоги вообще не нужно, эти три файла (скрипт, .htaccess, картинка) кидаются в корень. Адрес набирается таким образом (host/normal(high)/ник_чара/outlaw.jpg) только лишь для того, чтобы задать параметры поиска через modrewrite, каталогов таких не существует.
|
|
|
|
|
15.6.2007, 13:20
|
Группа: Пользователи
Сообщений: 1022
Регистрация: 15.2.2007
Из: Северной Пальмиры
Пользователь №: 17152
|
Цитата(Ino) правда форум не даст поместить в качестве ссылки на картинку ссылку на php-скрипт Как это сделать тогда? Два раза было написано, но я ничего не понял, идеально бы было побольше конкретики (примеров). Итак, что пихать в теги [img]? P.S. Что у тебя стоит в подписи?
|
|
|
|
|
15.6.2007, 16:41
|
Группа: Пользователи
Сообщений: 1022
Регистрация: 15.2.2007
Из: Северной Пальмиры
Пользователь №: 17152
|
Есть хост jino-net.ru, на нем создан домен 3го уровня zerothegreat, на этом сервере лежат файлы fon.gif, wr.php и wr.htaccess. Если вводить в подпись _img]http://zerothegreat.jino-net.ru/normal/smiththegreat/fon.gif[/img_, то ничего не выходит (IMG: http://rusro2.org/forum/style_emoticons/default/sad.gif) P.S. То же самое было и с jpg-файлом.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|