Редактор на стене пользователя (вариант решения)

Под катом небольшой лайфхак по следам http://altocms.ru/1011.html#comment18672 Делал в шаблоне Experience, но уверен, что подойдёт для всех из коробки. Корректно работает на последней официальной версии (1.1.8).
Правим файл —
common\templates\skin\experience\tpls\actions\profile\action.profile.wall.tpl
тут просто заменяем весь код формы на:
<form class="wall-submit">
				{include file='commons/common.editor.tpl'
                 bTmp='false'
                 sImgToLoad='form_comment_text'
                 sSettingsTinymce='ls.settings.getTinymce()'
                 sSettingsMarkitup='ls.settings.getMarkitup()'}
                    <br/>
					{hook run='form_add_comment_begin'}
                    <textarea rows="4" id="form_comment_text" class="form-control js-editor-wysiwyg js-editor-markitup"></textarea>
					{hook run='form_add_comment_end'}
                    <div class="wall-controls">
                        <a class="btn btn-blue btn-big corner-no mat4"
                           onclick="ls.wall.add(jQuery('#form_comment_text').val(),0);window.location.reload();"
                           href="#">{$aLang.wall_add_submit}</a>		
                    </div>
            </form>

Перезагрузку страницы добавил для надёжности, форма отправляется и без этого, а вот подгружается контент не всегда, но после обновления всё на месте.
Собственно, этого достаточно, чтоб любой пользователь мог разместить на стене отформатированный текст с картинками, не владея навыками использования HTML-тегов (кстати, с тегами и без редактора можно оформлять стену: делаем черновик топика, копируем код, вставляем на стену).
Изображения на стене в данном случае будут просто картинками. Если хотим, чтоб они открывались в модалке и размещались а'ля фотосет, то правим второй файл —
common\templates\skin\experience\tpls\actions\profile\action.profile.wall_items.tpl
тут мы добавим два класса topic-text и alto-photoset к блоку контента записи на стене:
<div class="wall-text topic-text alto-photoset">
                    {$oWall->getText()}
                </div>

topic-text поместит загруженную картинку в ссылку на оригинал с атрибутом
rel="prettyPhoto[topic]"

а alto-photoset добавит к этому размещение картинок, как в фотосете топика и возможность пролистывать все картинки со стены в одном окне (без этого класса каждая картинка открывается по отдельности).
И наконец CSS. Если вы выбрали вариант topic-text и alto-photoset, то в файле common\templates\skin\experience\assets\css\style.min.css к селектору .panel-wall .wall-text добавьте правило display: inline-block;

Решение, конечно, костыльное, но оно работает.
Да, и не забудьте в кофиге увеличить максимальное количество символов для записи на стене. И в самом шаблоне (первый файл) поравить значение allowed: 250, на указанное в конфиге.
Всё.

Похожие статьи

  • Стена и настройки стены(Настройки профиля)
    Здравствуйте,вот у меня вопрос Кроме моего сайта на Алто больше не у кого пользователя не пользуются стеной? Например у меня на стенах столько спамят,что пользователи просят сделать настройки для стены. Вот например,...
  • Размер загружаемой картинки через редактор
    Всех приветствую! Когда загружаешь картинку в редакторе, то в ссылку автоматически добавляется параметр width="100%" <img src="http://moysait....
  • Наводим порядок в редакторе TinyMCE 4
    Простите, но я зае, намучался с этим встроенным TinyMCE 4.0. Поэтому разрешите выложить решения проблем, которые мучали лично меня, возможно и кого-то ещё. Какие были проблемы: 1) При вставке текста из другого...
  • Загрузка картинок в топик с обрезкой
    При загрузке изображений для фото профиля или аватара в окне работы с изображением есть функция обрезки. Но вот в загрузчике картинок при создании топиков такой возможности нет, что, на мой взгляд, не совсем удобно....

1 комментарий

0
Перезагрузку страницы добавил для надёжности, форма отправляется и без этого, а вот подгружается контент не всегда, но после обновления всё на месте.

Для подгрузки контента добавил
js-wall-reply-parent-text

Получается так:
<textarea rows="4" id="form_comment_text" class="form-control js-editor-wysiwyg js-editor-markitup js-wall-reply-parent-text"></textarea>
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.