Создание компонента демотиваторов на базе скрипта
#16
13 ноября 2011 в 17:01
fact Спасибо за оценку! Но к сожалению это не мои заслуги.
А демотиваторам я сразу нашел ему применение, мне будет очень кстати для одной задумки на сайте, но мне еще нужен будет слайдер фото, чтоб он брал фото из папки демотиваторов.
А демотиваторам я сразу нашел ему применение, мне будет очень кстати для одной задумки на сайте, но мне еще нужен будет слайдер фото, чтоб он брал фото из папки демотиваторов.
#17
14 ноября 2011 в 12:24
получилось?
#18
14 ноября 2011 в 22:56
Во, классно! Останется сделать свой tpl для данного альбома — и будет полноценный демотиватора альбом!
Попробовал прикрутить скрипт к галерее.
Пока получилось так — cms-i.ru/photos/1036
Логин и пароль — tester
Когда придумаю как реализовать кнопку "Демотивировать", опишу решение
А я все даже и не брался :(
Касательно кнопки — прикручиваете условие и направляете в другой шаблон
Сегодня в 11:39
Хотел было описать в блоге, но сейчас нет времени на оформление...
поэтому по-быстрому тут напишу.
1) Из архива catsite — uvsr.stu.ru/dm/root_dm.zip, берем копируем в корень сайта 2 файла шрифтов и dm.php
2) В файле dm.php первой строкой на всякий случай пишем
а вместо строки
пишем
3) В файле /components/photos/model.php
послевставить
4) Файл /templates/ШАБЛОН/components/com_photos_add1.tpl
Вместо
Вставить
5) Файл /templates/ШАБЛОН/components/com_photos_view.tpl
Вместо
Вставить
Вроде все…
поэтому по-быстрому тут напишу.
1) Из архива catsite — uvsr.stu.ru/dm/root_dm.zip, берем копируем в корень сайта 2 файла шрифтов и dm.php
2) В файле dm.php первой строкой на всякий случай пишем
а вместо строки
3) В файле /components/photos/model.php
после
$this->deletePhotoFile($photo_file, $uploaddir);
if ($album['title']=='Демотиваторы'){ include ("dm.php"); demotivator($uploadphoto,$_SESSION['icms']['mod']['title'],$_SESSION['icms']['mod']['description'],"instantcms.ru");}
4) Файл /templates/ШАБЛОН/components/com_photos_add1.tpl
Вместо
<tr> <td colspan="2" valign="top"> <input id="only_mod" name="only_mod" type="checkbox" value="1" onclick="mod_text()" /> <label for="only_mod">{$LANG.ADD_MULTY}</label></td> </tr>
{if $album.title != 'Демотиваторы'} <tr> <td colspan="2" valign="top"> <input id="only_mod" name="only_mod" type="checkbox" value="1" onclick="mod_text()" /> <label for="only_mod">{$LANG.ADD_MULTY}</label></td> </tr> {/if}
5) Файл /templates/ШАБЛОН/components/com_photos_view.tpl
Вместо
<a class="photo_add_link" href="/photos/{$album.id}/addphoto.html">{$LANG.ADD_PHOTO_TO_ALBUM}</a>
{if $pagetitle == 'Демотиваторы'} <a class="photo_add_link" href="/photos/{$album.id}/addphoto.html">Создать демотиватор</a> {else} <a class="photo_add_link" href="/photos/{$album.id}/addphoto.html">{$LANG.ADD_PHOTO_TO_ALBUM}</a> {/if}
Вроде все…
#20
14 ноября 2011 в 23:34
Кнопку "Демотивировать" я пока не делал — совершенно нет времени. К томуже с ней всё не так просто…Касательно кнопки — прикручиваете условие и направляете в другой шаблон
#21
15 ноября 2011 в 01:30
У кого нибудь получилось? Чет у меня вообще не хочет работать…
Пункт 1 и пункт 2 заменить на этот пункт:
В файл /includes/graphic.inc.php вставить следующее:
[hide]развернуть
Вставил куда сказано, попробовал на денвере. При загрузке картинки для демотивации выдало ошибку
Fatal error: Call to undefined function dm_win2utf() in Z:\home\test2.ru\www\includes\graphic.inc.php on line 20
это строка $slogan1 = dm_win2utf($slogan1);
Что не так?
В файл /includes/graphic.inc.php вставить следующее:
[hide]развернуть
// ========================================================================= function demotivator($image, $slogan1, $slogan2, $copyright) { // преобразование win в utf $slogan1 = dm_win2utf($slogan1); $slogan2 = dm_win2utf($slogan2); $copyright = dm_win2utf($copyright); // Открываем изображение switch($ext[2]) { case 6: {$img = ImageCreateFromBMP($image); break;} default : { return 2; } } // Получение размеров изображения // Размер черного прямоугольника, который будем рисовать $tx = $x * 0.1; $ty = $x * 0.1; $bx = $x + $tx; $by = $y + $ty; $dx= $x * 0.01; // Смещение. Необходимо для рисования рамки $dy= $x * 0.01; // Черный фон // Создаем новое изображение // Масштабирование // Расчет смещений для рисования рамки $x1 = $tx; $y1 = $ty; $x2 = $bx; $y2 = $y + $ty; // Цвета рамки, слоганов и копирайта // Рамки на изображении // Пишем слоганы, сначала с X=0, чтобы получить линейные размеры текста $s2 = ImageTTFText($img2, 0.035 * $bx, 0, $dx, $by + $ty + 0.08 * $bx, $col, "arial.ttf", $slogan2); // 1-й слоган не помещается в картинку - ошибка! if (($s1[2] - $s1[0]) > $bx + $tx) $sl1 = 1; $dx = (($bx + $tx) - ($s1[2] - $s1[0]))/2; // Смещение. Эта величина определяет центровку текста для 1-го слогана // Непосредственно текст. 1-й слоган $dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2; // Смещение. Эта величина определяет центровку текста для 2-го слогана // Непосредственно текст. 2-й слоган (таглайн) if ($dx < 0) { // Текст не умещается в картинку, масштабируем. $s = $s2[2] - $s2[0]; $size = (0.035 * $bx * $bx) /$s; $dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2; } else { $size = 0.035 * $bx; } // Copyright return 0; } // ========================================================================= // Преобразование win-1251 в UTF-8 // Взято с сайта: www.php.net, Автор: SiMM function dm_win2utf($string){ return $string; } else { $out = ''; else if ($ch >= 0xC0) if ($ch < 0xF0)
#23
15 ноября 2011 в 02:04
catsite,
А можно подробнее, куда вставить? после каких строк?В файл /includes/graphic.inc.php вставить следующее:
#25
15 ноября 2011 в 02:52
В начало, вы же функцию описываете
после этого прямо:
Вставил куда сказано, попробовал на денвере. При загрузке картинки для демотивации выдало ошибку
Fatal error: Call to undefined function dm_win2utf() in Z:\home\test2.ru\www\includes\graphic.inc.php on line 20
это строка $slogan1 = dm_win2utf($slogan1);
Что не так?
#26
15 ноября 2011 в 02:53
забыл конвертер, поправил пост, повторите действие снова
#27
15 ноября 2011 в 03:40
Не загружается фото…
#28
15 ноября 2011 в 03:59
Сейчас фото загружается, рамка накладывается, но текст не вставляется…Не загружается фото…
Вот что значит спешка… пропустил в инструкции строку подключения чужого кода в model.php ((
Подредактировал инструцию.
Впрочем, можно действительно как советует catsite вместо копирования и подключения кода перенести функции себе.
Алфей, строки могут быть пустыми если забыл скопировать шрифты
include ("dm.php");
Впрочем, можно действительно как советует catsite вместо копирования и подключения кода перенести функции себе.
Алфей, строки могут быть пустыми если забыл скопировать шрифты
#30
15 ноября 2011 в 11:48
что то я нашел только галлерею готовых демотиваторов, а самой кнопки сделать демотиватор так и не обнаружил.(( Кто нибудь покажет как это работает?))