Решение данного хака принадлежит Max
Автор функции демотивирования Copyright © 6 авг. 2011. Kalabzin Maxim e-mail: sinsemilla@ngs.ru
Здесь представлено облагороженное решение с форума.
Данный хак позволяет создавать демотиваторы прямо на сайте в Альбоме "Демотиваторы" встроенного фотоальбома instantcms
Вот так выглядят созданные демотиваторы:
Вот так выглядит альбом:
Вот так выглядит создание демотиватора:
Итак, приступим к реализации.
Для начала скачайте 2 файла шрифтов и 1 php файл: dm.zip
Далее есть 2 варианта решения подключения функции демотивирования:
1. вариант — залить весь архив в корень.
1.1 В файле /components/photos/model.php в самом начале описательной части пишем:
1.2 в файле dm.php архива в самом вверху вставить:
2. вариант — заливаем в корень сайта только файлы шрифтов.
2.1 В самое начало файла /includes/graphic.inc.php после
вставить полностью скопированный код из файла dm.php архива
(в файле graphic.inc.php вообще желательно описывать все функции по работе с графикой)
Далее не зависимо от предыдущих вариантов:
3. Открываем файл /components/photos/model.php
После
Вставить
4. Занимаемся оформлением ссылки создания демотиватора:
Открыть файл /templates/ШАБЛОН/components/com_photos_view.tpl
Вместо:
Добавить условие:
5. Занимаемся оформлением загрузки демотиватора:
Открыть файл /templates/ШАБЛОН/components/com_photos_add1.tpl
Вместо:
Добавить условие:
6. Далее по желанию, чтобы все было как на картинке:
все тот же файл /templates/ШАБЛОН/components/com_photos_add1.tpl
Ищем следующие фразы и заменяем их конструкциями smarty {if...}...{else}...{/if}
{$LANG.PHOTO_DESC} заменить на {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Описание демотиватора{/if}
{$LANG.PHOTO_TITLE} >>>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_TITLE}{else}Заголовок{/if}
{$LANG.PHOTO_DESC} >>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Текст{/if}
Данную разметку:
На такую:
Основное решение закончено. Чтобы сделать пояснительную картинку, как у меня на сайте, создайте демотиватор, и вставьте его код после
Все, хак готов.
Теперь на сайте будет полноценный сервис демотиваторов в Альбоме "Демотиваторы" фотоальбома.
Да, кстати, если такого альбома у Вас еще нет, то создайте!
Обратите внимание! в третьем пункте instantcms.ru заменить на свой копирайт!
Автор функции демотивирования Copyright © 6 авг. 2011. Kalabzin Maxim e-mail: sinsemilla@ngs.ru
Здесь представлено облагороженное решение с форума.
Данный хак позволяет создавать демотиваторы прямо на сайте в Альбоме "Демотиваторы" встроенного фотоальбома instantcms
Вот так выглядят созданные демотиваторы:
Вот так выглядит альбом:
Вот так выглядит создание демотиватора:
Итак, приступим к реализации.
Для начала скачайте 2 файла шрифтов и 1 php файл: dm.zip
Далее есть 2 варианта решения подключения функции демотивирования:
1. вариант — залить весь архив в корень.
1.1 В файле /components/photos/model.php в самом начале описательной части пишем:
include ("dm.php");
2. вариант — заливаем в корень сайта только файлы шрифтов.
2.1 В самое начало файла /includes/graphic.inc.php после
вставить полностью скопированный код из файла dm.php архива
(в файле graphic.inc.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");}
Открыть файл /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}
Открыть файл /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}
все тот же файл /templates/ШАБЛОН/components/com_photos_add1.tpl
Ищем следующие фразы и заменяем их конструкциями smarty {if...}...{else}...{/if}
{$LANG.PHOTO_DESC} заменить на {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Описание демотиватора{/if}
{$LANG.PHOTO_TITLE} >>>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_TITLE}{else}Заголовок{/if}
{$LANG.PHOTO_DESC} >>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Текст{/if}
Данную разметку:
<textarea name="description" style="width:350px;" rows="5" id="description">{$mod.description}</textarea>
{if $album.title != 'Демотиваторы'} <textarea name="description" style="width:350px;" rows="5" id="description">{$mod.description}</textarea> {else} <textarea name="description" style="width:350px;" rows="1" id="description">{$mod.description}</textarea> {/if}
{$LANG.PHOTO_PLEASE_NOTE}</div>
{if $album.title == 'Демотиваторы'} Введите надписи, как на данном примере: <div> </div> <img src="/путь_к_картинке/картинка.jpg" width=250 align="center" /> <div> </div> {/if}
Теперь на сайте будет полноценный сервис демотиваторов в Альбоме "Демотиваторы" фотоальбома.
Да, кстати, если такого альбома у Вас еще нет, то создайте!
Обратите внимание! в третьем пункте instantcms.ru заменить на свой копирайт!
Реклама #
ByMind 12 лет назад #
{$LANG.PHOTO_DESC} заменить на {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Описание демотиватора{/if}
{$LANG.PHOTO_TITLE} >>>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_TITLE}{else}Заголовок{/if}
{$LANG.PHOTO_DESC} >>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Текст{/if}
чем отличаются первый и третий пункты?
GarikKR 12 лет назад #
lezginka.ru 12 лет назад #
Telema93 12 лет назад #
Александр 12 лет назад #
Kreator 12 лет назад #
Telema93 12 лет назад #
вот и ответ
fact 12 лет назад #
WALTERZ 12 лет назад #
fact 12 лет назад #
Если кому нужно точнее, то в com_photos_view_photo.tpl
после {if $is_author || $is_admin}
вместо
fact 12 лет назад #
fact 12 лет назад #
WALTERZ 12 лет назад #
Вместо
Rossoman 12 лет назад #
Вот ошибка: Fatal error: Cannot redeclare demotivator() (previously declared in /var/www/rossoman/data/www/sasovo.net/dm.php:43) in /var/www/rossoman/data/www/sasovo.net/dm.php on line 166
А вот кусок кода с 43 по 166 строки
Rossoman 12 лет назад #
В п. 1.1 нужно вставить
Telema93 12 лет назад #
Rossoman 12 лет назад #
Rossoman 12 лет назад #
Telema93 12 лет назад #
Rossoman 12 лет назад #
Или я чего то не понимаю?
Rossoman 12 лет назад #
п. 1.1 В файле /components/photos/model.php в самом начале описательной части пишем:
include ("dm.php");
п. 3 if ($album['title']=='Демотиваторы'){
include ("dm.php");
demotivator($uploadphoto,$_SESSION['icms']['mod']['title'],$_SESSION['icms']['mod']['description'],"instantcms.ru");}
Rossoman 12 лет назад #
Telema93 12 лет назад #
вставить в самый верх инклуд после строки f(!defined('VALID_CMS')) { die('ACCESS DENIED'
Rossoman 12 лет назад #
Rossoman 12 лет назад #
Telema93 12 лет назад #
также, неплохо видеть информацию по серверу
ошибку только у Вас выбивает, если заметили
Rossoman 12 лет назад #
Rossoman 12 лет назад #
Telema93 12 лет назад #
Rossoman 12 лет назад #
Буду весьма благодарен если поможете разобраться. Спасибо
Rossoman 12 лет назад #
Fatal error: Cannot redeclare demotivator() (previously declared in /var/www/rossoman/data/www/sasovo.net/dm.php:43) in /var/www/rossoman/data/www/sasovo.net/dm.php on line 166
Telema93 12 лет назад #
Telema93 12 лет назад #
Rossoman 12 лет назад #
п.1.1 ....
Далее не зависимо от предыдущих вариантов:
п.3
Rossoman 12 лет назад #
GarikKR 12 лет назад #
{$LANG.PHOTO_DESC} заменить на {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Описание демотиватора{/if}
{$LANG.PHOTO_TITLE} >>>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_TITLE}{else}Заголовок{/if}
{$LANG.PHOTO_DESC} >>>>> {if $album.title != 'Демотиваторы'}{$LANG.PHOTO_DESC}{else}Текст{/if}
чем отличаются первый и третий пункты?
Telema93 12 лет назад #
fact 12 лет назад #
Telema93 12 лет назад #
lezginka.ru 12 лет назад #
GarikKR 12 лет назад #
GarikKR 12 лет назад #
Telema93 12 лет назад #
странно, хотя грамотней все таки функции прописывать в спецфайл этих функций, чтоб потом найти их :)
да и скорость обработки уже подключенных функций будет быстрее, чем инклудинг, так как они уже в оперативке есть
Rossoman 12 лет назад #
Telema93 12 лет назад #
Это написал в самом конце, это вы невнимательны :)
Telema93 12 лет назад #
Да, кстати, если такого альбома у Вас еще нет, то создайте!
это Вы просто невнимательно прочитали :)
lezginka.ru 12 лет назад #
GarikKR 12 лет назад #
Telema93 12 лет назад #
Telema93 12 лет назад #
другое дело, если кто напишет что-то более лучшее - тогда в платности есть смысл (не используя скрипт из файла dm)
lezginka.ru 12 лет назад #
наваротить и за небольшую плату, например не только черный фон вокруг, но и другие - красный,цветочки,черепа и т.д.
для разного юмора разныое офрмление. размер текста(регулировка в админке - 1,2,3строки) оформление сделать в отдельно тпл файле и т.д.
я взял бы, готовый вариант, без замарочек
Romario 12 лет назад #
Вот скрин:
Rossoman 12 лет назад #
Igor 12 лет назад #
Telema93 12 лет назад #
скиньте настройки сервера в архиве в личку - посмотрю
Tagil-Rulit 12 лет назад #
Заранее спасибо за ответ.
Дастан 12 лет назад #
Tesper 12 лет назад #
Dost 12 лет назад #
Создаем папку в корне и загружаем в нее файлы шрифтов(arial.ttf и times.ttf). Прописываем везде пути к этим файлам в dm.php
У меня заработало.
vslava 12 лет назад #
Igor 12 лет назад #
Алфей 12 лет назад #
Igor 12 лет назад #
Helg 12 лет назад #
Почему-то вот этот кусок так и остается на сайте в таком виде? смs 1.9
Что-то не так сделал?
Helg 12 лет назад #
Точнее в других альбомах тоже пишет добавить демотиватор, но при нажатии включает добавлените фото а не демотиватора. и перестала работать ссылка добавить фото в разделе со всеми фотоальбомами. Вот как-то так...
Майкл 11 лет назад #
Майкл 11 лет назад #
Кто знает куда добавить нужно изменения, которык раньше были прописаны для файлы?
/components/photos/model.php
Майкл 11 лет назад #
Может автор всё таки подскажет как в 1.10.1 проделать тоже самое?
Заплюсуем однозначно)
Greener 11 лет назад #
Но мне кажется, что в 1.10 может и не работать (
Хотелось бы, конечно, хотя бы предварительно знать, подойдет это решение для новой версии, али нет...
Майкл 11 лет назад #
Я попробывал, но с некоторыми файлами не понял.