Скрипт сервиса линеек для форума.

Статус
В этой теме нельзя размещать новые ответы.
У меня - нет. С виду все работает и ошибок не выдает, но - не генерятся картинки.

ЛЮДИ! У кого не работало, но удалось пофиксить - поделитесь что сделали, плиз!
 
Это не то :( Это просто счетчик, их полно, а надо линейки-метрики.
 
У меня была такая ситуация. Не генерились картинки. Но я на сервер залила в другую папку. Изменила в скрипте путь к картинкам и все работает. Проверь пути.
Для просмотра ссылки Войди или Зарегистрируйся
Вот глянь
 
sana1, спасибо, благодаря тебе методом тыка и путем вставки урла готовой линейки в эксплорер получил наконец ошибку:

Warning: imagefttext() [function.imagefttext]: Could not find/open font in /home/m46375/public_html/lin/img.php on line 53

53 это строка:
imagefttext($out,10,0,10,$out_h+10,imagecolorallocate($out,0,0,0),'arial.ttf', win2uni($text.' '.$monsz.' месяцев и '.$days.' дней'.' (c) Zumo' ));

Фонт arial.ttf на месте, права ему делал 777 - пофиг, не работает

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

Добавлено через 3 минуты
2sana1 - кстати у тебя с цветами шрифта что-то совсем нето, еле видно надпись, ты не пробовала поковыряться?
 
Нет еще не ковыряла :). Не цвета, не шрифт.
Но картинки должны быть на сервере в соответствующих папках "Линейки" и "бегунки".

Может тебе мой скрипт скинуть?
 
Ес!!! Получилось! У меня все дело было в пути к шрифту в img.php, прописал полностью и все заработало.

У тебя с цветом шрифта проблема скорее всего изза самих картинок, изза их фона.
И возьми лучше доработанный скрипт из этой темы, страницей назад. Клевые линейки получаются.
 
Вот он, лучше этот поставь.
 

Вложения

  • lines.zip
    39 KB · Просмотры: 130
Щас попробуем :)
---
Не работает. такой файл не создается line_5.gif_beg_08b.gif_time_1050350400_text_Voditelmgkskii_stazh.png
 
поэкспериментируй с CHMOD (777)
и в img.php в конце попробуй прямые пути к фонту указать, типа /home/m6375/public_html/мой_сайт/lines/raxel.ttf

Добавлено через 28 минут
Ребят, кто шарит a PHP, помогите с правильной подстановкой времени в падежах, вот код создания линейки:

Код:
<?
include("perekod.php");

function win2uni($s)
{
$s = convert_cyr_string($s,'w','i'); // преобразование win1251 -> iso8859-5
// преобразование iso8859-5 -> unicode:
for ($result='', $i=0; $i<strlen($s); $i++) {
  $charcode = ord($s[$i]);
  $result .= ($charcode>175)?"&#".(1040+($charcode-176)).";":$s[$i];
}
return $result;
}

header("Content-type: image/png");

$line=imagecreatefromgif('lines/'.$_GET['l']);
$beg=imagecreatefromgif('begs/'.$_GET['b']);
$text=latrus($_GET['t']);

$line_sx=imagesx($line);
$line_sy=imagesy($line);

$beg_sx=imagesx($beg);
$beg_sy=imagesy($beg);

$out_h=($line_sy<$beg_sy)?$beg_sy:$line_sy;
$out=imagecreate($line_sx,$out_h+15);
$imgwhite = imagecolorallocate($out, 255, 255, 255);
$color = imagecolorallocate($out, 255, 0, 0);
imagefill($out, 0, 0, $imgwhite);
imagecolortransparent($out,$imgwhite);

imagecopy($out,$line,0,$out_h-$line_sy ,0,0,$line_sx,$line_sy);

$pixpm=$line_sx/12;
$std=$_GET['d'];
$ed=time();

$sid=3600*24;
$sim=3600*30*24;

$sty=mktime(0,0,0,0,0,date('Y',$std));
$offset=abs($ed-$std);
$years=floor($offset/(365*24*60*60));
$offset=$offset-$years*(365*24*60*60);
$monsz=floor($offset/(30*24*60*60));
$offset=$offset-$monsz*(30*24*60*60);
$days=floor($offset/(24*60*60));

$beg_x=$monsz*$pixpm;

imagecopy($out,$beg,$beg_x,5,0,0,$beg_sx,$beg_sy);

if ($years>0)
$str_metrik=$text.' '.$years.' лет '.$monsz.' месяцев и '.$days.' дней';
else
$str_metrik=$text.' '.$monsz.' месяцев и '.$days.' дней';

if($beg_x<$line_sx)
imagefttext($out,6,0,10,$out_h+10,imagecolorallocate($out,0,0,0),'/home/m46375/public_html/autowomen/lines/raxel.ttf',
win2uni($str_metrik));

imagefttext($out,6,0,$line_sx-87,10,imagecolorallocate($out,0,0,0),'/home/m46375/public_html/autowomen/lines/raxel.ttf',
win2uni('AutoWomen.ru'));

imagepng($out);

?>

А вот тема про то что нужно:


Заведем еще две строковые переменные:
$y — может принимать значения {"год", "года", "лет"}
$d — может принимать значения {"день", "дня", "дней"}

Пораскинув мозгами, мы понимаем, что $y должно принять значение: "год" — только тогда, когда в переменной $years записано любое (кроме 11) число, заканчивающееся на "1": "1 год", "31 год", "991 год" и т. д. "года" — только тогда, когда в переменной $years записано любое (кроме 12, 13, 14) число, заканчивающееся на "2", "3", "4": "2 года", "3 года", "104 года" и т. д.
"лет" — в остальных случаях...

Абсолютно так же обстоят дела с падежами слова "день". Алгоритм можете придумать сами, я использовал следующий:


Код:
//годы
$buf1=$years%10; $buf2=$years%100;
if($buf1==2 || $buf1==3 || $buf1==4 && $buf2!=12 && $buf2!=13 && $buf2!=14) $y="года";
elseif($buf1==1 && $buf2!=11) $y="год";
else $y="лет";

//дни
$buf1=$days%10; $buf2=$days%100;
if($buf1==2 || $buf1==3 || $buf1==4 && $buf2!=12 && $buf2!=13 && $buf2!=14) $d="дня";
elseif($buf1==1 && $buf2!=11) $d="день";
else $d="дней";

Как и куда это можно внедрить?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху