Единый редактор с ББ-кодами
заменяет WYSYWIYG редактор, в статьях, в УК и в конфиге блогов на стандартный редактор с ББ-кодами (справедливо и для админки), как на форуме…с некоторым наращиванием функционала…
без изменений в структуре БД…
Публикую то, что сделано на данный момент…
Работает как и заявлено в анонсе…
добавлены теги выравнивания и альтернативного текста для изображений загружаемых с компа…
что менялось
в файле /core/classes/page.class.php в функции
public static function getBBCodeToolbar($field_id, $images=0, $placekind='forum'){
<a class="usr_bb_button" href="javascript:void(0)" onclick="$(\'#smilespanel_'.$field_id.'\').slideToggle(\'slow\')" title="Вставить смайл"> <img src="/includes/bbcode/images/smiles.png" alt="Вставить смайл" /> </a>'; if ($placekind=='blogs'){ $html .= '<a class="usr_bb_button" href="javascript:addTagCut(\''.$field_id.'\')" title="Вставить конец анонса (кат)"> <img src="/includes/bbcode/images/cut.png" alt="Вставить конец анонса (кат)" /> </a>'; } if ($images){ $html .= '<a class="usr_bb_button" href="javascript:addTagVideo(\''.$field_id.'\')" title="Вставить видео"> <img src="/includes/bbcode/images/video.png" alt="Вставить видео" /> </a> <a class="usr_bb_button" href="javascript:addTagAudio(\''.$field_id.'\')" title="Вставить mp3"> <img src="/includes/bbcode/images/audio.png" alt="Вставить mp3" /> </a> <a class="usr_bb_button" href="javascript:addTagImage(\''.$field_id.'\')" title="Вставить картинку из Сети"> <img src="/includes/bbcode/images/image_link.png" alt="Вставить картинку из Сети" /> </a>'; if ($inUser->id) { $users_cfg = $inCore->loadComponentConfig('users'); if ($users_cfg['sw_photo']){ $html .= '<a class="usr_bb_button" href="javascript:addAlbumImage(\''.$field_id.'\')" title="Вставить фото из личных альбомов"> <img src="/includes/bbcode/images/albumimage.png" alt="Вставить фото из личных альбомов" /> </a>'; } $html .= '<a class="usr_bb_button" href="javascript:addImage(\''.$field_id.'\')" title="Загрузить и вставить фото"> <img src="/includes/bbcode/images/image.png" alt="Загрузить и вставить фото" /> </a> <div class="usr_bb_button" id="imginsert_'.$field_id.'" style="display:none"> <strong>Загрузить фото:</strong> <input type="file" id="attach_img_'.$field_id.'" name="attach_img_'.$field_id.'"/> <input type="button" name="goinsert" value="Вставить" onclick="loadImage(\''.$field_id.'\', \''.session_id().'\', \''.$placekind.'\')" /> </div> <div class="usr_bb_button" id="imgloading_'.$field_id.'" style="display:none"> Загрузка изображения... </div>'; if ($users_cfg['sw_photo']){ $html .= '<div class="usr_bb_button" id="albumimginsert_'.$field_id.'" style="display:none"> <strong>Вставить фото:</strong> '.cmsUser::getPhotosList($inUser->id).' <input type="button" name="goinsert" value="Вставить" onclick="insertAlbumImage(\''.$field_id.'\')" /> </div>'; } } } $html = cmsCore::callEvent('GET_BBCODE_BUTTON', $html); return $html; } /** * Возвращает html-код панели со смайлами * @param string $for_field_id * @return html */ public static function getSmilesPanel($for_field_id){ $html = '<div class="usr_msg_smilebox" id="smilespanel_'.$for_field_id.'" style="display:none">'; if ($handle = opendir(PATH.'/images/smilies')) { while (false !== ($file = readdir($handle))) { if ($file != '.' && $file != '..' && strstr($file, '.gif')){ $tag = str_replace('.gif', '', $file); $dir = '/static/smiles/'; $html .= '<a href="javascript:addSmile(\''.$tag.'\', \''.$for_field_id.'\');"><img src="'.$dir.$file.'" /></a> '; } } closedir($handle); } $html .= '</div>'; return $html; }
<input type="submit" name="submit" value="{$LANG.SAVE}" style="font-size:18px" />
<input type="submit" name="send" value="{$LANG.SAVE}" style="font-size:18px" />
файл /includes/bbcode/bbcode.lib.php — в архиве…
файл /core/ajax/imginsert.php — в архиве…
ну и собственно файлы плагина тоже в архиве, в соответствии с расположением в нужных директориях…
АРХИВ
— в моих файлахкому интересно подключайтесь к тестированию и к разработке… )
Реклама #
Савонарола 12 лет назад #
st.Puh 12 лет назад #
• Mike • 12 лет назад #
st.Puh 12 лет назад #
• Mike • 12 лет назад #
для тех кто не читал, поясню — это экспериментальная версия, не для рабочих проектов, и соответственно для тех, кто хотел, чтобы на сайте был один редактор на основе стандартного с ББ-кодами
в “другую сторону” в сторону WYSIWYG везде, так же начата работа, но пока еще всё сырое для того чтобы публиковать даже альфа-релиз… )
picaboo 12 лет назад #
Anonim 12 лет назад #
• Mike • 12 лет назад #
например, есть два варианта: одна кнопка и четыре кнопки; вопрос: где выбор более простой и интуитивный?
ну и, если есть “всё”, то что выбрать?
по существу…
в мэйле каким способом осуществляется переключение? в профиле в настройках для каждого? или в редакторе, непосредственно при редактировании?
• Mike • 12 лет назад #
letsgo 12 лет назад #
Anonim 12 лет назад #
Савонарола 12 лет назад #
spacer 12 лет назад #
Редактор нужен единый. Возможно в 2-х вариантах (с урезанных функционалом), чтобы в комментариях не озорничали.
Единственное, что мне не нравится, это то, что в BB изображения не обтекаются текстом, нельзя выставить "margin". Вот если бы можно было на кнопоки "расположить слева" автоматически выставлять правый маржин 15 пикселов, а при "расположить справа", левый, соответственно и обтекание, было бы удобно. А если по центру, значит без обтекания.
p.S. Подскажите, пожалуйста, как удалить кнопочку "H1" из панельки, чтобы пользователи не злоупотребляли?
• Mike • 12 лет назад #
на данный момент так и происходит, флоат лефт с правым мержином и наоборот, обтекание специально убрано, так как визуализация зависит от размеров изображения, например, при загрузке пикчи по ширине в 600 пикселей в шаблоне остается около 80 пикселей свободных для текста, чтобы не порождать подобных проблем было отключено добавлением дива с двойной очисткой…
центр в данной редакции сделать не удастся из-за обратного парсинга из свойства флоат…
как удалить кнопочку "H1" из панельки…
/core/classes/page.class.php функция public static function getBBCodeToolbar($field_id, $images=0, $placekind='forum'){
ищем строку:
spacer 12 лет назад #
spacer 12 лет назад #
Ну нужная же штуковина для соблюдения всяких там авторских прав.
• Mike • 12 лет назад #
по обтеканию: если общая ширина материала например 700 пикселей а изображение загружено 600 для текста просто мало места остается, не красиво и нечитаемо…
обратный парсинг это когда html коды заменяются обратно бб-кодами
например код для изображения <img style="float:left....
превращается в
spacer 12 лет назад #
Зачем тогда маржин, если нет обтекания ни в каком варианте выравнивания?
А центровка вообще из текущего ВВ-редактора выпадет? (Сейчас же он есть.)
• Mike • 12 лет назад #
spacer 12 лет назад #
Мне просто трудно представить, зачем, по большому счету, нужен флоат, если все-равно нет обтекания. Пусть все изображения становятся по центру и юзеру меньше действий и лишних опций.
• Mike • 12 лет назад #
это типа бета релиза, много еще не так как будет…
Lana 12 лет назад #
Ни в админке, ни при редактировании юзером.
Не могли бы вы проверить, хотя может у меня что-то не так, но ставила на 1.9 - первоисточник.
В форуме нормально вставляет.
Кстати окошки - выравнивание и текст - не очевидно, допустим я не хочу вводить выравнивание - первая реакция "Отмена", "Отмена" (а не Ок) - повисает Загрузка...
• Mike • 12 лет назад #
с выравниванием и отменой пока так, их по идее нужно переносить рядом с другими кнопками при самой загрузке (там где обзор и вставить) да и делать нужно через классы (стили) а не в код вставлять, сделаю постепенно, просто общую концепцию не хотелось нарушать поэтому пока через промты (окошки для ввода)
• Mike • 12 лет назад #
spacer 12 лет назад #
"Число строк", "Число столбцов", "Вставить"
• Mike • 12 лет назад #
iLoveNY 12 лет назад #
iLoveNY 12 лет назад #
• Mike • 12 лет назад #
первый параметр передает функции id текстового блока, второй доступность кнопок в секции if ($images..., третий место вызова, например forum, blogs и т.д.
смотрите в коде компонентов, как происходит вызов этой функции и какие параметры передаются и настраивайте “под себя”…
picaboo 12 лет назад #
• Mike • 12 лет назад #
picaboo 12 лет назад #
• Mike • 12 лет назад #
И скорее всего в будущем произойдёт полный отказ от бб-кодов, поэтому я работаю и в другом направлении — в сторону единого html редактора на основе sceditor 1.3.7…
• Mike • 12 лет назад #