[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Линейка для форума
287_08
В общем хочу написать линейку для форума. Чтобы человек заходил, выбирал картинку, писал событие и выбирал дату. Интерфейс как и у всех линеек в общем. Вот думаю с чего начать, кто-нибудь уже писал такую шнягу?



Спустя 32 минуты, 41 секунда (19.01.2010 - 19:16) jetistyum написал(а):
да, тут даже есть спец университеты которые выпускают исключительно линейкописателей.
Если уж решил писать, должен был сначала решить как писать.
GD тебе в помощь!

Спустя 2 минуты, 10 секунд (19.01.2010 - 19:19) arlamar написал(а):
что такое линейка для форума? blink.gif

Спустя 3 часа, 54 минуты, 36 секунд (19.01.2010 - 23:13) Lex_R написал(а):
Я не писал, но думаю основные моменты здесь работа с базой данных, библиотекой GD, ну и правильно вычислять время, прошедшее с определенной даты smile.gif

Спустя 57 минут, 4 секунды (20.01.2010 - 00:10) VolCh написал(а):
Цитата (arlamar @ 19.01.2010 - 19:19)
что такое линейка для форума? blink.gif

+1, расскажите хоть что это такое

Спустя 9 минут, 3 секунды (20.01.2010 - 00:19) Lex_R написал(а):
Вот первое, что нашел в яндексе biggrin.gif
user posted image

Спустя 9 часов, 1 минута, 29 секунд (20.01.2010 - 09:21) 287_08 написал(а):
Надо две картинки, ода будет с сердечком и с тортиками, а вторая с парнем и девушкой. Относительно месяца ЭТОТ парень и девка перемещаются по картинке влево и вправо.
Вопрос в том, что для каждого кто захочет такую линейку, надо записывать данные в базу и раз в сутки запускать скрипт, который будет эти картинки обновлять. Ну еще и текст высчитывать.
Вот такой я думаю алгоритм..
__ если будет много юзверей, то будет много и картинок, а это объем памяти на винте, и какой-нибудь злоумышленник может столько этих картинок себе поназаписать. Впринцыпе не столь дело страшно, потому что картинка весит 5 килобайт))

Спустя 2 часа, 28 минут, 41 секунда (20.01.2010 - 11:49) Gradus написал(а):
287_08,php умеет работать с картинками делаете из 2 картинок одну.А координаты от первой до второй будет храниться в базе.И будет одна картинка для всех.

Спустя 33 минуты, 42 секунды (20.01.2010 - 12:23) Guest написал(а):
Я так и хочу сделать из двух одну, так же через эту библиотеку я добавлю тект вниз картинки. Надо будет написать скрипт, который считывает из базы данных параметры этих картинок, и делает новые.
Для каждого пользователя буде своя картинка, возможно и не одна))

Спустя 1 минута, 47 секунд (20.01.2010 - 12:25) 287_08 написал(а):
Блин от гостя отписался

Спустя 1 час, 36 минут, 56 секунд (20.01.2010 - 14:02) Gradus написал(а):
не понял зачем каждому создавать картинки если можно использовать одну на всех.
Вот кстати статья в помощ http://www.softtime.ru/article/index.php?id_article=38

Спустя 42 минуты, 9 секунд (20.01.2010 - 14:44) 287_08 написал(а):
Так на форуме то будет ссылка на картинку стоять. А картинка уже готовая должна быть

Спустя 10 минут, 37 секунд (20.01.2010 - 14:55) arlamar написал(а):
287_08
смысл держать готовые картинки? что по крону будешь их лепить что ли? такие картинки, как я понимаю, лепятся на лету. то есть <img src="blablabla/getline.php?line_id=348" />
и вот ты должен в getline.php найти запись в базе с ИД 348 оттуда взять base_image, даты и т.д. и слепить нужную картинку...

Спустя 2 минуты, 11 секунд (20.01.2010 - 14:57) Семён написал(а):
Вы чё рёхнулись? ph34r.gif
base64 делается с содержанием начальной даты отсчёта, текста, картинки. никаких записей в БД!

Спустя 12 минут, 15 секунд (20.01.2010 - 15:09) arlamar написал(а):
Цитата
Вы чё рёхнулись?
base64 делается с содержанием начальной даты отсчёта, текста, картинки. никаких записей в БД!

ну можно было как то и попроще сказать... если бы внимательно почитал этот топик то понял, что я вообще понятия не имею о линейках для форума)

ну так объясни же нам как засунуть всё(картинку, текст, дату) в base64 и хранить?

Спустя 4 часа, 12 минут, 55 секунд (20.01.2010 - 19:22) 287_08 написал(а):
<img src="blablabla/getline.php?line_id=348" />
Это getline.php, примет данные, сформирует картинку и через echo выдаст уже адрес на картинку? Что-то этот момент я не понял до конца

Спустя 2 часа, 33 минуты, 50 секунд (20.01.2010 - 21:56) Lex_R написал(а):
287_08
getline.php выдает не ссылку на картинку, а саму картинку. Вы GD когда-нибудь использовали?
Посмотрите примеры как создаются картинки с помощью этой библиотеки и вам станет понятнее.

Спустя 12 часов, 17 минут, 48 секунд (21.01.2010 - 10:14) Семён написал(а):
Генерируешь линейку в соответствии с GET параметрами, (с rewrite-модом будет красивше):
название_сайта.ru/id_фона/начало_отсчёта/конец_отсчёта/доп_текст/userline.jpg
в итоге скрипт получит данные и создаст изображение нанеся туда всё что ты отразишь в URI
используя base64 можно загнать всё в 1 параметр, а затем разобрать его.
Никаких БД, никаких отдельных файлов (хотя что-то придётся придумать)

Спустя 1 час, 21 минута (21.01.2010 - 11:35) Gradus написал(а):
Цитата
Вы чё рёхнулись? ph34r.gif
base64 делается с содержанием начальной даты отсчёта, текста, картинки. никаких записей в БД!

да чёто не допёрло действительно можной просто обойтись get запросом smile.gif

Спустя 10 часов, 6 минут, 19 секунд (21.01.2010 - 21:41) Семён написал(а):
Цитата (Gradus @ 21.01.2010 - 12:35)
Цитата
Вы чё рёхнулись? ph34r.gif
base64 делается с содержанием начальной даты отсчёта, текста, картинки. никаких записей в БД!

да чёто не допёрло действительно можной просто обойтись get запросом smile.gif

wink.gif

Спустя 1 день, 10 часов, 51 минута, 49 секунд (23.01.2010 - 08:33) 287_08 написал(а):
Представьте форум, у которого посещаемость большая очень. И все время при просмотре будет генерироваться линейка, это ж какая нагрузка на сервак? Вот поэтому я хочу сделать чтобы скрипт создавал картинки ночью. Первую партию в час ночи по Москве к примеру, вторую партию в полвторого.

Спустя 3 часа, 48 минут, 18 секунд (23.01.2010 - 12:21) sergeiss написал(а):
Цитата (287_08 @ 23.01.2010 - 09:33)
Представьте форум, у которого посещаемость большая очень. И все время при просмотре будет генерироваться линейка, это ж какая нагрузка на сервак? Вот поэтому я хочу сделать чтобы скрипт создавал картинки ночью. Первую партию в час ночи по Москве к примеру, вторую партию в полвторого.

Но тогда тебе потребуется хранить эти картинки на сервере. Что потребует сколько-то места. Много юзеров - много картинок - много места занять "запросто так".
При генерировании картинок "на лету" да, будут тратиться ресурсы процессора. Не так уж и много в данном случае... Все равно же у тебя не будет слишком уж много обращений. Но зато не будет впустую заниматься место.

Вот моя тема http://phpforum.ru/index.php?showtopic=22888&hl= на этом форуме. Посмотри на досуге. И обрати внимание на то, что там не то, чтобы несколько картинок наклдывались - там вообще картинка строится "с нуля" на основе предоставленных данных. И шустро строится, вобщем-то.
И там еще есть ссылки на темы, "связанные" с этой (всего было 3 взаимосвязанных темы).

Спустя 1 час, 15 минут, 41 секунда (23.01.2010 - 13:37) Guest написал(а):
Спс, я сам ее с нуля строю. Сначала картинка линейки, затем если надо циферки, потом марку, потом если хотят то картинки всякие светофоров...

Спустя 3 часа, 40 минут, 8 секунд (23.01.2010 - 17:17) 287_08 написал(а):
Следущая проблема в том, что текст получается некрасивым и непонятным. Вот пока что черновой код:

<?


/*
$img - путь к нашему файлу
$srcWidth - длина нашего файла
$srcHeight - ширина нашего файла
$otstup - отступ по краям картинки
$num_part - количество точек
$koordinata - координаты наших цифорок, массив
$srcWidthK - длина отрезка под
$dlina_otrezka - расстояние между цифрами
$mes - определяет какой сегодня месяц
$logoImage - картинка машины
$text_logo - текст на картинке
*/

$koordinata = array();
$img = "./k/fon.png";
$otstup = 30;
$num_part = 12;
$mes = date (n)-1;

$text_logo = "моей машинке уже много";


$srcImage = ImageCreateFromPNG($img); // открываем файл
$srcWidth = ImageSX ($srcImage); // считываем длину файла в пикселях
$srcHeight= ImageSY ($srcImage); // считываем высоту файла в пикселях
$srcWidthK = $srcWidth - ($otstup + $otstup);
$dlina_otrezka = $srcWidthK / ($num_part-1);


$black = ImageColorAllocate ($srcImage, 0, 0, 0); // цвет для линейки
$logoImage = ImageCreateFromPNG("./k/9.png");

$S_text = ($srcWidth/2);
echo $S_text. "<hr>";
if ($mes<($num_part/2))
{
imagettftext ($srcImage, 12, 0, $S_text, 30,$black, "./k/times.TTF", $text_logo); // добавляем текст
} else {
imagettftext ($srcImage, 8, 0,0, 30,$black, "./k/times.TTF", $text_logo); // добавляем текст
}



$koordinata[1] =$otstup; // координата один не вычисляется а задается отступом
for ($i = 2; $i<=$num_part; $i++) {
$koordinata[$i] = $koordinata[$i-1] + $dlina_otrezka;
}

$logoImage = ImageCreateFromPNG("./k/9.png");
$logoWidth = ImageSX($logoImage);
$logoHeight = ImageSY($logoImage);
imagecopy($srcImage, $logoImage, $koordinata[$mes],0, 0, 0, $logoWidth, $logoHeight);

for ($i = 1; $i<=$num_part; $i++) {

imagettftext ($srcImage, 8, 0, $koordinata[$i], 70,$black, "./k/OCRAEXT.TTF", $i); // добавляем текст
echo $koordinata[$i] . " - " .$i. " <br>";
}

imageJPEG($srcImage,"./k/g.jpg",100);
imagedestroy ($srcImage);
?>


<img src="./k/g.jpg" width="" height="" alt="" border="2">






Спустя 3 часа, 51 минута, 33 секунды (23.01.2010 - 21:08) Joker написал(а):
Я так и не понел для чего эта линейка? что за циферки 1 2 3 4 5 6 7 8 9 10 11 12

для чего они?? в чом её предназначение?

дайте ссылку почитать или напишите. я искал мне канцтовары находит только...

Спустя 28 минут, 10 секунд (23.01.2010 - 21:37) sergeiss написал(а):
Цитата (Joker @ 23.01.2010 - 22:08)
Я так и не понял для чего эта линейка?

Это показометр чего-нибудь. Сколько человек находится на сайте (со времени регистрации), сколько он не пьёт, и т.д. и т.п. smile.gif

287_08 - ты "поиграйся" с размером текста. Мне кажется, просто маловат размерчик. Или, может быть, имеет смысл попробовать взять другой шрифт?

Спустя 10 часов, 11 минут, 2 секунды (24.01.2010 - 07:48) 287_08 написал(а):
Да я уже как только не игрался, большой шрифт все равно кривой. Ставил вывод не на ПНГ, а на Джипег с максимальным качеством, размер файла увеличивается, а качество букв нет. Находил похожую тему в нете, там советуют каждую букву отдельной картинкой вставлять, но это ж увеличение нагрузки..

Спустя 4 часа, 26 минут, 58 секунд (24.01.2010 - 12:15) sergeiss написал(а):
А я не понял... Ты пробовал разные шрифты для больших букв или нет? Не по размеру, а именно типы шрифтов разные?

Спустя 2 часа, 10 минут, 52 секунды (24.01.2010 - 14:25) 287_08 написал(а):
И стандартные шрифты пробовал (Times) и с засечками и без. Ненятные буквы везде выходят. По ходу единственный вариант каждую букву делать картинкой

Спустя 8 часов, 31 минута, 46 секунд (24.01.2010 - 22:57) sergeiss написал(а):
И еще... Смотрим по логике:
- сначала вывод текста (заголовка)
- затем копирование картинки
- опять вывод текста, только уже подписи.

Подписи получаются нормально... Попробуй порядок действий поменять! Сначала вставь картинку, а уже затем выводи все тексты.

Спустя 2 дня, 9 часов, 37 минут, 45 секунд (27.01.2010 - 08:35) 287_08 написал(а):
Проблема можна сказать решилась, только через ОПУ. Создаю отдельные рисуночки с текстом и потом туда их засовываю. Надо с этим скриптиком побаловаться чуток, думаю все получится.

Спустя 1 час, 27 минут, 46 секунд (27.01.2010 - 10:03) Семён написал(а):
Для линеек помоему самое рационально использовать Tahoma

Спустя 1 месяц, 4 дня, 8 часов, 56 минут, 1 секунда (1.03.2010 - 18:59) 287_08 написал(а):
Вот забросил, решил дописать. С картинками разобрался, сейчас встал вопрос считать эти даты.
Получилось вот что... Неохото было писать множество условий и я разобрал на шесть видов отдельных, и вот что получилось:
$day = 29;
$month = 03;
$year = 2009;


$day_now = date(d);
$month_now = date(n);
$year_now = date(Y);


/*1*/
if ($day_now == $day and $month_now == $month ) {
$day_result = 0;
$month_result = 0;
$year_result = $year_now - $year;
}
/*2*/
if ($day_now == $day and $month_now > $month ) {
$day_result = 0;
$month_result = $month_now - $month;
$year_result = $year_now - $year;
}
/*3*/
if ($day_now == $day and $month_now < $month ) {
$day_result = 0;
$month_result = 12 - ($month-$month_now);
$year_result = $year_now - $year -1;
}
/*4*/
if ($day_now > $day and $month_now == $month ) {
$day_result = $day_now - $day;
$month_result = 0;
$year_result = $year_now - $year;
}
/*5*/
if ($day_now < $day and $month_now == $month ) {
$day_result = 30 - ($day - $day_now);
$month_result = 0;
$year_result = $year_now - $year -1;
}
/*6*/
if ($day_now < $day and $month_now < $month ) {
$day_result = 30 - ($day - $day_now);
$month_result =12 - ($month-$month_now) - 1;
$year_result = $year_now - $year -1;
}
/*7*/
if ($day_now < $day and $month_now > $month ) {
$day_result = 30 - ($day - $day_now);
$month_result =($month_now-$month) - 1;
$year_result = $year_now - $year -1;
}

/*9*/
if ($day_now > $day and $month_now < $month ) {
$day_result = $day_now - $day;
$month_result =12 - ($month-$month_now);
$year_result = $year_now - $year - 1;
}

if ($day_now > $day and $month_now > $month ) {
$day_result = $day_now - $day;
$month_result =$month_now-$month;
$year_result = $year_now - $year;
}




$day_text = " дней";
if ($day_result==1 or $day_result==21 or $day_result==31) {$day_text = " день";}
if ($day_result==2 or $day_result==3 or $day_result==4 or $day_result==22 or $day_result==23 or $day_result==24) {$day_text = " дня";}

$month_text = " месяцев";
if ($month_result==1) {$month_text = " месяц";}
if ($month_result==2 or $month_result==3 or $month_result==4) {$month_text = " месяца";}

$year_text = " лет";
if ($year_result==1) {$year_text = " год";}
if ($year_result==2 or $year_result==3 or $year_result==4) {$year_text = " года";}



echo "Моей машине " .$year_result . $year_text . ", " . $month_result . $month_text . " и " . $day_result . $day_text;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.