Разделы

jHtmlArea - MM виджет для IntroText



Выпала свободная минутка… в час ночи :D и решил воплотить идею прикручивания легкого WYSIWYG редактор на поле IntroText (использовал jHtmlArea — как вы догадались).
Честно давно не гуглил на эту тему — возможно что-то подобное уже есть или даже конкретно это… но пофик, интереснее самому разобраться :)
Сделал наиболее просто — кастомный виджет для ММ.

Установка
Скачайте архив (по ссылке ниже), распакуйте его в папку assets/plugins/managermanager/widgets/jhtmlarea/.
В файле/чанке с правилами для ММ пропишите
mm_widget_jhtmlarea('introtext', array('width'=>'515px', 'height'=>'150px'));

Кстати да — сделал возможность изменить размер поля introtext, наконец-то его можно сделать полноценным :)
Сохраните и… поправьте неприятную рюшку в /manager/media/style/MODxCarbon/style.css строка 471 — закомментируйте
li {
	padding: 0;
	margin: 0;
	/*list-style: disc outside url(images/misc/li.gif);*/
}
ибо уж очень list-style похабит все, вариант не самый лучший, но сейчас не было времени и желания разбираться «кто виноват» :)
Всё теперь можете наслаждаться.
(похоже в Эво 1.0.4 это уже не требуется)

Для пытливых умов #1
Сейчас там не полный набор кнопок
вот это код максимально полного стандартного набора, кстати погуглив вы легко узнаете как сделать свои кастомные кнопки.
[["html"],["bold","italic","underline","strikethrough","|","subscript","superscript"],["increasefontsize","decreasefontsize"],["orderedlist","unorderedlist"],["indent","outdent"],["justifyleft","justifycenter","justifyright"],["link","unlink","image","horizontalrule"],["p","h1","h2","h3","h4","h5","h6"],["cut","copy","paste"]]

куда вставить этот код вы увидите на 54 строке файла assets/plugins/managermanager/widgets/jhtmlarea/jhtmlarea.php.

Для пытливых умов #2
Там ещё почти реализована функция красивого колор-пикера. Просто мне сейчас нет необходимости и времени её прикручивать, но кому надо может доразбираться.

СКАЧАТЬ (обновленный виджет 13.06.2010)
  • +7
  • 9 февраля 2010, 03:24
  • iJack

Комментарии (19)

RSS свернуть / развернуть
0
Спасибо, надо попробовать. После статьи на хабре, тоже появилась мысль прикрутить этот редактор. Только я хотел его приделывать к web-интерфейсу в связке с CakeMODx.
avatar

ivc

  • 9 февраля 2010, 06:26
0
Да, я тоже был сподвигнут статьей на Хабре. Осталось теперь разобраться как прикручивается «большой» редактор на поле *контент* и воплотить свою задумку с elRTE — уж шибко он мне нравится :)
avatar

iJack

  • 9 февраля 2010, 11:50
0
Что такое CakeMODx? :)
avatar

antonkuzmin

  • 9 февраля 2010, 14:22
+1
Здесь на сайте http://community.modx-cms.ru/blog/research/235.html
И на форуме modxcms.com CakeMODx
avatar

ivc

  • 9 февраля 2010, 14:57
0
А причем тут CakeMODx-то? )
avatar

pitbull

  • 10 марта 2010, 18:29
0
Да особо не причем. Я так в сообщении и написал, что хотел использовать этот редактор для web-интерфейса, т.е. не для админки. У меня на одном из сайтов для наполнения каталога товаров используется CakeMODx, чтобы создавать/редактировать/удалять страницы (подразделы, разделы) каталога. Вот я и думал прикрутить визивиг для добавления описания товара. Но, что-то до сих пор руки не дошли.
avatar

ivc

  • 10 марта 2010, 18:41
0
Скажите пожалуйста, iJack, для какой версии MODx этот плагин подходит? Так как у меня в Evo 1.0.2 не работает:
ManagerManager: An error has occurred: TypeError - jhtml.width("515px").height("150px").htmlarea is not a function

Второй раз пробую ставить, но один и тот же результат опять.
avatar

atomoc

  • 15 апреля 2010, 19:46
0
хм… да я так его сделал и забыл это плагин, всякое может быть. Но пробовал на 1.0.2 и версия самой системы врядли критична.
Здесь похоже ява скрипт почему то не подключился к странице.
А jHtmlArea-0.7.0.min.js точно есть в /assets/plugins/managermanager/widgets/jHtmlArea/js/ и jQuery подключено?
В иделае гляньте прямо в исходном коде сгенерированной страниц в админке подключились ли правильно (с правильными путями) ява скрипты.
avatar

iJack

  • 15 апреля 2010, 20:40
0
ввожу в поле поиска jHtmlArea-0.7.0.min.js так вообще не видит. Я даже думаю вот что: как вообще он может подключиться? Если кроме как в чанке правил mm только лишь прописаны ширина и высота. Не уж то плагин не нужно создавать?
avatar

atomoc

  • 15 апреля 2010, 21:09
0
Это не плагин, а виджет для ManagerManager (типа плагин для плагина :) ), так что если у вас включен ManagerManager, то это все что нужно.
Плохо значит ищите, если ошибка вылазит, то и код быть обязан, там почти в самом низу (у меня там) должно быть что-то типа
$j("head").append(' <script src="ХХХХХХХ/assets/plugins/managermanager/widgets/jHtmlArea/js/jHtmlArea.ColorPickerMenu-0.7.0.min.js" type="text/javascript"></scr'+'ipt> '); 
$j("head").append(' <link href="ХХХХХХХ/assets/plugins/managermanager/widgets/jHtmlArea/css/jHtmlArea.ColorPickerMenu.css" rel="stylesheet" type="text/css" /> '); 
что у вас там за адреса?

Кстати возможный баг заметил (хотя у меня с ним работало :) ). Попробуйте поправить в \assets\plugins\managermanager\widgets\jhtmlarea\jhtmlarea.php
в строка 44 и 46 уберите слэш из
$modx->config['base_url'].'/assets/plugins/...
чтобы стало
$modx->config['base_url'].'assets/plugins/...
avatar

iJack

  • 15 апреля 2010, 23:19
0
Поменял название jhtmlarea на jHtmlArea для папки с плагином, теперь:
Warning: include_once(/home/myhost/data/www/myhost.ru/site.ru/assets/plugins/managermanager/widgets/jHtmlArea/jHtmlArea.php) [function.include-once]: failed to open stream: No such file or directory in /home/myhost/data/www/myhost.ru/site.ru/assets/plugins/managermanager/mm.inc.php  on line 73

Warning: include_once() [function.include]: Failed opening '/home/myhost/data/www/myhost.ru/site.ru/assets/plugins/managermanager/widgets/jHtmlArea/jHtmlArea.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/home/myhost/data/www/myhost.ru/site.ru/manager/includes/') in /home/myhost/data/www/myhost.ru/site.ru/assets/plugins/managermanager/mm.inc.php on line 73

Fatal error: Call to undefined function mm_widget_jhtmlarea() in /home/myhost/data/www/myhost.ru/site.ru/assets/plugins/managermanager/mm.inc.php(367) : eval()'d code on line 28

В самом низу пишет, без просмотра исходного кода.
avatar

atomoc

  • 16 апреля 2010, 10:52
0
Эм… а зачем вы меняли название?
Вобщем-то я это на локалхосте на Винде тестировал — тут все по-барабану, а для Unix сервера регистр имеет значение, а в коде/названиях я вроде бы везде «маленькие» буквы использовал.
avatar

iJack

  • 18 апреля 2010, 20:09
0
Понятно. Нашёл решение, пусть не такое красивое но тоже ничего, на этом же сайте.
avatar

atomoc

  • 18 апреля 2010, 20:33
0
а поделится ?:) лишняя ссылочка не помешает
avatar

Dmi3y

  • 18 апреля 2010, 22:35
+1
секунду… вот
avatar

atomoc

  • 18 апреля 2010, 23:01
0
да, то же самое выдает:
ManagerManager: An error has occurred: TypeError - jhtml.width("515px").height("150px").htmlarea is not a function


так и не победил :) также пытался два раза поставить на разные проекты, в итоге воспользовался вариантом по ссылке выше.
avatar

SDee

  • 18 мая 2010, 01:12
0
хм… постараюсь на днях пересмотреть код
avatar

iJack

  • 19 мая 2010, 11:45
0
Ну как победил кто-нибудь проблему?
avatar

SDee

  • 4 июня 2010, 16:01
0
Да уж, наконец то выдалось свободных пару часов. Посмотрел виджет на предмет описанных неполадок и почему-то он у меня работал и устанавливался в той версии что я выложил. Но я нашел пару возможных «затычек».

Попробуйте скачать обновленную версию. Я устанавливал её на свежескаченную Эво 1.0.4 и всё заводилось с пол оборота — скопировать содержимое архива в папку assets/plugins/managermanager/widgets/jhtmlarea/, прописать вызов виджета в чанке mm_demo_rules, всё.
avatar

iJack

  • 13 июня 2010, 15:02

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.