Меняем картинку-счётчик в CNStats или пишем текст на PHP TTF шрифтами.

Решил значит поставить картинку с отображением счётчика. В скрипте статистики CNStats имеется картинка размером 88*31, которую можно менять под свой дизайн. Но тупо менять картинку button.png меня не устраивало, так как в дизайн не впишется. У меня стоят маленькие картиночки 80*15, и статистика должна соответствовать. Пришлось править код. Конечно ничего замудённого там нет(в некоторой степени спасибо программистам CNStats :) ).

Для того, что бы поменять отображения счётчика, нам нужен файл cnt-show.php, который находиться в корне статистики.

Открываем код и смотрим на строки 18-20, они то и выводят информацию на картинку, сверху вниз: просмотров всего, просмотров сегодня, хостов сегодня.

ImageString($_c6e5dff4, 2, 86-6 * strlen($STATS_CONF["t_hits"]), 1, $STATS_CONF["t_hits"], $_665648e9);
ImageString($_c6e5dff4, 1, 85-5 * strlen($STATS_CONF["hits"]), 13, $STATS_CONF["hits"], $_665648e9);
ImageString($_c6e5dff4, 1, 85-5 * strlen($STATS_CONF["hosts"]), 20, $STATS_CONF["hosts"], $_665648e9);

где

$_c6e5dff4,                           //- картинка "button.png"
2,                                    //- шрифт(0-5)
86-6 * strlen($STATS_CONF["t_hits"]), //- координата x
1,                                    //- координата y
$STATS_CONF["t_hits"],                //- строка
$_665648e9                            //- цвет

Ну и для того что бы подогнать вывод текста на изображение button.png нужно менять значения координат x, y.

Показ уникальных посетителей за сегодня.

Ну это ладно, дальше дело заключалось в том, что мне нужно было вывести не просмотров всего, просмотров сегодня, хостов сегодня, а количество уникальных пользователей. Экспериментальным путём было вычислено, что эта информация храниться в записи users в БД. Теперь для того что бы его выбрать, нужно изменить запрос на выбор из БД. Для этого в строчке 12 заменяем t_hits,hits,hosts на users.

$_6c09ff9d = mysql_query("SELECT t_hits,hits,hosts FROM " . $STATS_CONF["sqlprefix"] . "counter")or die(mysql_error());
на
$_6c09ff9d = mysql_query("SELECT users FROM " . $STATS_CONF["sqlprefix"] . "counter")or die(mysql_error());

И в коде, который выводит текст(цифры) на картинку — меняем $STATS_CONF["hosts"](ну или смотря какую строку вы изменять собрались) на $STATS_CONF["users"].

ImageString($_c6e5dff4, 1, 85-5 * strlen($STATS_CONF["hosts"]), 20, $STATS_CONF["hosts"], $_665648e9);
на
ImageString($_c6e5dff4, 1, 85-5 * strlen($STATS_CONF["users"]), 20, $STATS_CONF["users"], $_665648e9);

Пишем текст TTF шрифтом на PHP.

Сделав шаблонную картинку счётчика в Adobe Photoshop CS4, я использовал пиксельный шрифт Pixelation.ttf, но! сами цифры выводятся каким то обычным, не красивым шрифтом, который не очень то смориться. Для того, чтобы писать своим шрифтом TTF нужно изменить строчку вывода цифр на картинку.

ImageString($_c6e5dff4, 2, 86-6 * strlen($STATS_CONF["user"]), 1, $STATS_CONF["user"], $_665648e9);
на
ImageTTFText($_c6e5dff4, 5, 0, 58, 10, $_665648e9, 'Pixelation.ttf', $STATS_CONF["users"]);

Тут уже использована другая функция, ImageTTFText, в которой:

$_c6e5dff4,           //- картинка "button.png"
5,                    //- размер шрифта
0,                    //- угол наклона  шрифта
58,                   //- координата x
10,                   //- координата y
$_665648e9,           //- цвет
'Pixelation.ttf',     //- шрифт
$STATS_CONF["users"]  //- строка

Ну и вот отдельный пример, как писать своим TTF шрифтом на PHP.

header('Content-type: image/png');
$img = ImageCreateFromPng("img.png");
$black = ImageColorAllocate($img, 0, 0, 0);
 
ImageTTFText($img, 5, 0, 58, 10, $black, 'font.ttf', 'text');
 
ImagePNG($img);
ImageDestroy($img);

Ну вот воде и всё, кинул в архив исходники.

Монтаж/Демонтаж и установка пластиковых окон. Профессиональные мастера и только качественные материалы.


Интересные записи

2 комментария для “Меняем картинку-счётчик в CNStats или пишем текст на PHP TTF шрифтами.

  • 1
    ExDll
    января 12, 2009 15:21

    mike, спасибо. Не видел статью раньше(да в принципе как то и не искал, а надо было).
    Насчёт строк, и правда — нет…

  • 2
    mike
    января 12, 2009 15:03

    Это чисто по русски — изобрести велосипед.

    О том как изменить внешний вид счетчика подробно написано на официальном сайте: http://www.exdll.ru/out/ChdFQwtLGkVBFRxRV0xFVlVCQFJDVB4AVl4eShBLVl4RF1BHQktFQFkAXldUEhlaXENZR1RDHQpUUlZdFks=/

    Кроме того, нужно уточнить что в статье идет описание нуленной версии, так как в оригинальной весь код в одну строчку, и строк 18-20 там просто нету.

Написать комментарий