Модераторы: 2man
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт линейки 
:(
    Опции темы
SneG0K
Дата 17.6.2009, 05:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



А где можно найти скрипты линеек? Ну, типо, с такого то события прошло три дня и гадость какая-то ползет по линейке.

PM WWW Skype   Вверх
2man
Дата 18.6.2009, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: 15
Всего: 71



Покопавшись немного, нашел вот что.

Скрипт вывода:
Код

define("THIS_DIR", dirname(__FILE__)."/");
define("MEASURES_DIR", dirname(__FILE__)."/measures/");
define("IMG_DIR", dirname(__FILE__)."/img/");
define("TTF_ARIAL_BOLD", "arialbi.ttf");

require_once MEASURES_DIR.$_REQUEST['id'].".inc";

$line = imagecreatetruecolor($lineWidth, $lineHeight);

$colorTitle = imagecolorallocate($line, $lineTextColor[0], $lineTextColor[1], $lineTextColor[2]);
$colorScale = imagecolorallocate($line, $lineShkaleColor[0], $lineShkaleColor[1], $lineShkaleColor[2]);

$lineBack = imagecreatefrompng(IMG_DIR.$backPicture);
$lineDin = imagecreatefrompng(IMG_DIR.$dinamicPicture);

imagecopy($line, $lineBack, 0, 0, 0, 0, $backPictureWidth, $backPictureHeight);

$periodSize = $fineTime - $startTime;
$measureSize = $fineX - $startX;
$actualPos = (time() - $startTime)/$periodSize;
$dinamicPos = $measureSize*$actualPos+$startX;
$togo = $fineTime-time();
$toDays = $togo/86400;
$toHours = ($toDays - (int)$toDays)*24;
$toMins = ($toHours - (int)$toHours)*60;

$lineText = sprintf($lineText, (int)$toDays, (int)$toHours, (int)$toMins);
$iso = convert_cyr_string($lineText, "w", "i");
$lineText = iso2uni($iso);
//prer($lineText);

imagecopy($line, $lineDin, $dinamicPos-$dinamicPictureWidth, 30, 0, 0, $dinamicPictureWidth, $dinamicPictureHeight);

$titleSize = imagettfbbox($lineTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $lineText);
imagettftext($line, $lineTextFontSize, 0, ((int)$lineWidth/2) - ((int)$titleSize[2]/2), 15, $colorTitle, THIS_DIR.TTF_ARIAL_BOLD, $lineText);

$period = ($fineTime-$startTime)/86400;

for($n=$interMeasureSize; $n<$period; $n=$n+$interMeasureSize){
    $x = (($measureSize/$period)*$n)+$startX;
    imageline($line, $x, $lineHeight-25, $x, $lineHeight-15, $colorScale);
    $date = date("d.m.y", $startTime+($n*86400));
    $datestr = imagettfbbox($measureTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $date);
    $dateX = (int)$x-(int)$datestr[2]/2;
    imagettftext($line, $measureTextFontSize, 0, $dateX, $lineHeight-4, $colorScale, THIS_DIR.TTF_ARIAL_BOLD, $date);
}

imageline($line, $startX, $lineHeight-60, $startX, $lineHeight-4, $colorScale);
imageline($line, $fineX, $lineHeight-60, $fineX, $lineHeight-4, $colorScale);

$startText = iso2uni(convert_cyr_string($startText."\n".date("d.m.y", $startTime), "w", "i"));
$fineText = iso2uni(convert_cyr_string($fineText."\n".date("d.m.y", $fineTime), "w", "i"));

$startTextSize = imagettfbbox($endedLineTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $startText);
$fineTextSize = imagettfbbox($endedLineTextFontSize, 0, THIS_DIR.TTF_ARIAL_BOLD, $fineText);

imagettftext($line, $endedLineTextFontSize, 0, $startX, $lineHeight-$startTextSize[3]-60, $colorScale, THIS_DIR.TTF_ARIAL_BOLD, $startText);
imagettftext($line, $endedLineTextFontSize, 0, $fineX-$fineTextSize[2], $lineHeight-$fineTextSize[3]-60, $colorScale, THIS_DIR.TTF_ARIAL_BOLD, $fineText);

header("Content-type: image/gif");
imagegif($line);

function iso2uni ($iso){
    $uni="";
    for ($i=0; $i < strlen($iso); $i++){
        $thischar=substr($iso,$i,1);
        $charcode=ord($thischar);
        $uni.=($charcode>175)?"&#".(1040+($charcode-176)).";":$thischar;
    }
    return $uni;



Файл с данными для линейки:
Код

$lineWidth      =   500;
$lineHeight     =   100;

$backPicture        =   "f1_line_back.png";
$backPictureWidth   =   500;
$backPictureHeight  =   100;

$dinamicPicture         =   "f1_line_david.png";
$dinamicPictureWidth    =   174;
$dinamicPictureHeight   =   46;

$interMeasureSize       =   2;

$startTime              =   gmmktime(18, 0, 0, 8, 5, 2007);
$fineTime               =   gmmktime(12, 0, 0, 8, 26, 2007);

$startX                 =   10;
$fineX                  =   490;

$lineText               =   "До старта ГП Турции осталось %s дней %s часов %s минут";
$lineTextFontSize       =   8;

$endedLineTextFontSize  =   7;
$measureTextFontSize    =   7;

$startText              =   "Хунгароринг-07";
$fineText               =   "Стамбул-07";

$lineTextColor          =   array(0, 0, 100);
$lineShkaleColor        =   array(120, 0, 0); 


Еще вроде тут немного есть: http://phpzakaz.net/demo.php

Это сообщение отредактировал(а) 2man - 18.6.2009, 23:12


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
SneG0K
Дата 21.6.2009, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: нет
Всего: 54



2man, спасибо, но может ты случайно встречал что-нить более функциональное, под MySQL ?
Алгоритм то мне понятен, просто писать совсем нет времени.

Добавлено через 48 секунд
Цитата(SneG0K @  21.6.2009,  18:48 Найти цитируемый пост)
что-нить более функциональное

В данном случае, что бы было где устновить тип записи (от события, до события, событие повторяеться)
PM WWW Skype   Вверх
GAMMA
Дата 26.8.2009, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 7.6.2007
Где: Молдова, Унгены

Репутация: нет
Всего: нет



У меня есть скрипт который удалось скачать с готового проекта - линеечки для мамочек. Он настроен под тот проект. Перенастроить под себя в принципе не сложно. Я уже делал. Только мне он не понадобился. 

Это сообщение отредактировал(а) 2man - 30.8.2009, 14:07
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие движки / фрейморки | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.