Как стать автором
Обновить

Создаем счетчик-картинку

Время на прочтение2 мин
Количество просмотров2.5K

Всем привет! Сегодня я расскажу Вам, как создавать динамически такую картинку, как выше с использованием PHP. Все наверное задумывались, как такое реализовать. Мне кажется, если очень хорошо подумать, то нам на ум придет новая технология, которая сейчас внедряется, особенно с приходом HTML5. Это, как наверное многие уже догадались — SVG. Для тех, кто не знает, по сути, это — всего-лишь обыкновенная картинка, но записанная в виде подобия XML. Картинку можно получить двумя способами: нарисовать самому например в Inkscape или скачать уже готовую. Я воспользуюсь вторым методом, так как ни времени, ни художественного таланта у меня нет. Я буду делать на примере личных сообщений/почты, поэтому мне понадобяться две картинки, первая — сообщений нет, вторая — мы имеем некоторое количество новых сообщений. Скачаем картинки вот тут. old.svg — сообщений нет, new.svg сообщение есть.

Итак, перейдем к реализации. Нам понадобиться:
  • Некоторые знания PHP и HTML
  • Понимание, что такое шаблонизатор
  • Понимание, что такое SVG

Качаем вот отсюда шаблонизатор.
Как работает шаблонизатор? Работает он довольно легко. Указываем классу шаблон, инициализируем переменные, парсим, получаем готовый к выводу код.
Если в коде, то работает примерно так:
require_once('template.php'); // Подключаем шаблонизатор
$var = "Text";
$tpl->get_tpl('file.html');
$tpl->set_value('Var',$var);
$tpl->tpl_parse();

Таким же образом мы и будем работать с нашими картинками. Для начала откроем каринку new.svg например в блокноте. Найдем в самом конце файла строки:
<tspan
       sodipodi:role="line"
       id="tspan5273"
       x="71.75"
       y="11.791">1</tspan>

И поменяем на:
<tspan
       sodipodi:role="line"
       id="tspan5273"
       x="71.75"
       y="11.791">{MSG}</tspan>

Этими действиями мы добавили переменную в шаблон. Теперь, когда у нас есть шаблон картинки, мы переходим к самой функцией. Перед написанием, нужно осознавать, что у нас две картинки и нам нужно подумать какую вывести в зависимости от значения переменной. Потом подставить это значение в шаблон и получим простенький код:
		// Подключаем шаблонизатор
		require_once('template.php'); // Подключаем шаблонизатор
		
		$number = 1;
		
		if ($number == 1){ // Новое сообщение
			$tpl->get_tpl('imgs/new.svg');
			$tpl->set_value('MSG',$number);
			$tpl->tpl_parse();
			echo $tpl->html;
		}
		else{ // Сообщений нет
			$tpl->get_tpl('imgs/old.svg');
			$tpl->tpl_parse();
			echo $tpl->html;
		}

Учтем, что картинки лежат в поддериктории imgs, а шаблонизатор рядом со скриптом, в котором он подлючается.
Вот и все! Простое решение, простой проблемы.
P.S: Простите за картинку new.svg. Рисовать не умею, если не понравиться подправьте.
Теги:
Хабы:
+6
Комментарии22

Публикации

Изменить настройки темы

Истории

Ближайшие события