Ищу скрипт лайнбаров

B
На сайте с 05.03.2007
Offline
171
362

Ищу скрипт лайнбаров (такая линейка с датами, по которой скользит какая-то отметина, грубо говоря), пусть платный - главное легко настраиваемый. Поиск не дал результатов, и самому писать пока время нет.

Буду признателен, если кто-нибудь что-нибудь посоветует Ж)

arkadiy_a
На сайте с 11.06.2008
Offline
82
#1

можете сайт для примера, как это выглядит?

FFFFx029A
На сайте с 01.09.2007
Offline
142
#2

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

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);

P.S примерно так)

FFFFx029A добавил 28.04.2009 в 17:54

Или за пару баксов тут: http://www.rc-script.ru/metric.htm

http://www.youtube.com/watch?v=Gyl4E4EcPdc (http://www.youtube.com/watch?v=Gyl4E4EcPdc) - партнёрка от Мавроди и МММ))) http://miniwm.ru/soft.php?read=917 (http://miniwm.ru/soft.php?read=917) CMS MiniWM v2.8 - 49.99$

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий