| Альфа |
06.08.2009 16:22
Сообщение #440 |
![]() Активный участник Группа: Админы Сообщений: 343 Регистрация: 04.07.2009 |
Добавление и изменение смайликов: 1. Смайлики хранятся в папке /корневая_директория_сайта/engine/data/emoticons. Соответственно, в нее нужно добавить новых картинок формата .gif (и с таким же расширением). 2. В админ-панели сайта заходим на страницу "Настройка системы->Настройки вывода новостей". В поле "смайлики" через запятую вписываем названия файлов загруженных картинок (без расширения). Желательно, чтобы названия файлов соответствовали смыслу смайликов, поскольку в текст сообщений они будут вставляться в виде :smile_name: 3. В файлах /корневая_директория_сайта/engine/modules/bbcode.php, /корневая_директория_сайта/engine/inc/inserttag.php, /корневая_директория_сайта/engine/ajax/bbcode.php можно при необходимости изменить размеры окна смайликов и количество столбцов.
Настройка wysiwyg-интерфейса для тем и ответов на форуме: 0. Для wysiwyg-интерфейса (кнопочки текстового редактора, вставки картинок, цитат, спойлеров и прочей мути) в этом движке используется пакет js-утилит Tiny MCE. О его возможностях, подключении и настройке можно почитать на офсайте. Вообще, обычно его настройки интуитивно понятны всем, мало-мальски знающим java script. 1. Настройка панелей этих кнопочек производится в файле /корневая_директория_сайта/engine/forum/sources/components/wysiwyg.php. Там инициализируются панельки для быстрого и полного ответа (написания/редактирования темы, редактирования ответа) на форуме. В этом файле можно изменить набор кнопок для этих панелек и добавить свои. Для создания новой кнопки надо положить ее картинку в папку /корневая_директория_сайта/engine/editor/jscripts/tiny_mce/themes/advanced/img/ (на самом деле, пофиг, куда ее класть, главное -- правильно прописать путь), указать путь к ней и, как минимум, написать обработчик события onclick. (В файле с соответсвующими комментариями приведены совершенно прозрачные примеры добавления нестандартных кнопок, характерных только для движка DLE -- dle_code, dle_hide, dle_mp3 и т. д.) 2. После того, как эта кнопка будет правильно работать и вставлять в редактируемый текст некий BB-тэг, например, вида [какая-то_хрень=черт-те_что] , надо обеспечить его правильное распознавание движком, обработку, перевод в html и обратно при необходимости. Это делается в файле /корневая_директория_сайта/engine/forum/classes/parse.class.php. Здесь интересны функции BB_Parse и decodeBBCodes. Первая из них перегоняет ВВ-тэги в html, вторая выполняет обратную функцию. По аналогии с уже описанными в файле обработчиками известных ВВ-тэгов можно написать свой практически любой степени сложности. 3. После того, как на странице появляется правильный html-код, нужно обеспечить его визуальное отображение в приемлемом виде. Для этого достаточно правки стилевого файла \\корневая_директория_сайта\\templates\\ваш_скин\\forum\\dle-forum.css |
| Альфа |
07.08.2009 14:44
Сообщение #455 |
![]() Активный участник Группа: Админы Сообщений: 343 Регистрация: 04.07.2009 |
Решение проблемы с неправильными концевыми слэшами в названиях тем на главной странице форума Неправильное сокращение названий тем, в которых присутствуют кавычки, возможно, возникает из-за некорректного сочетания кодировок интерфейса движка и БД. Во всяком случае, очень похоже, что из поля f_last_title таблицы PREFIX_forum_forums строка выбирается не полностью, а обрезанной по экранирующий слэш перед первым метасимволом, требующим экранирования (например, кавычкой). Или она сразу неправильно туда записывается (проверить!) В результате получаем такое неправильное сокращение тем: Симптоматическое решение: в файле /корневая_директория_сайта/engine/forum/sources/components/functions.php находим "урезание" строки заголовка:
if ($forum_config['last_abc']) { if (strlen($title) > $forum_config['last_abc']) { $title = substr($title, 0, $forum_config['last_abc']).'...'; } }
и проверяем, не повис ли на конце строки после этой операции слэш (эту проверку можно, по сути, делать сразу после извлечения строки из БД, т. к., по видимому, он есть там изначально, если вообще есть). Если повис, избавляемся от него, заменив многоточием:
if ((strrpos($title,'\\')==strlen($title)-1) or (!strlen($title))) $title=substr($title,0,strlen($title)-2).'...';
UPD: да, оно фиговато вставляется в БД с самого начала. Что там делают эти функции $db->safesql и $parse->process, постараюсь разобраться позже. Можно решить проблему так: в файле /корневая_директория_сайта/engine/forum/action/addpost.php находим строку $topic_title = $db->safesql($parse->process(trim($topic_title))); комментируем или удаляем ее и вместо этого пишем: $topic_title = addslashes(htmlspecialchars(strip_tags (trim($topic_title)))); в большинстве случаев эта очистка строки сработает нормально (у нее есть нюансы, но не критичные). После этого заголовки тем с кавычками выводятся на главной странице форума корректно. UPD: функция $parse->process, как можно догадаться, живет в файле /корневая_директория_сайта/engine/forum/classes/parse_classes.php, понаписано в ней много всего на первый взгляд правильного, ковыряться, почему на выходе получается некрасиво, не хочется.
Слэши пеед метасимволами также появляются на других страницах форума (предпросмотр ответа, в частности). Здесь, по-моему, просто забыли почистить извлеченную из БД строку функцией stripslashes (проверить!) Найду, где лечится, и напишу подробно. |
| Альфа |
11.08.2009 17:33
Сообщение #502 |
![]() Активный участник Группа: Админы Сообщений: 343 Регистрация: 04.07.2009 |
Лишние слэши при предпросмотре темы на форуме лечатся в файле /корневая_директория//engine/forum/ajax/post_preview.php закомментированием проверки на magic_quotes (что-то как-то она тут не совсем корректно работает, imho):
//if( function_exists( "get_magic_quotes_gpc" ) && get_magic_quotes_gpc() ) |
| katsuk |
11.08.2009 19:35
Сообщение #503 |
![]() Активный участник Группа: Админы Сообщений: 436 Регистрация: 30.06.2009 |
Здорово! :) Одним багом меньше
А можешь сделать чтобы смайлик :) преобразовывался в
Да, кстати, еще раньше была кнопочка типа "новые новости", как на форуме новые сообщения, только в новостях... Было бы хорошо, если бы ты ее прикрутила обратно. Ну и календарег тоже не помешал бы, все равно в левой панели места полно |
| Альфа |
12.08.2009 09:16
Сообщение #504 |
![]() Активный участник Группа: Админы Сообщений: 343 Регистрация: 04.07.2009 |
Хорошо, будем посмотреть. тест замены смайлов (пишется код замены сочетания точечек и скобочек на соотв. html в функции BB_Parse файлика /корневая_директория_сайта/engine/forum/classes/parse.class.php) Календарик вернула. Насчет кнопки "новые новости" в замешательстве. Посмотрю. |
| katsuk |
31.01.2010 19:32
Сообщение #890 |
![]() Активный участник Группа: Админы Сообщений: 436 Регистрация: 30.06.2009 |
Ань, а что сломалась вставка ссылок и смайликов?... |
| Альфа |
05.02.2010 10:43
Сообщение #913 |
![]() Активный участник Группа: Админы Сообщений: 343 Регистрация: 04.07.2009 |
смайлы Вроде, работает http://forum.pripyat.com/ |
| katsuk |
05.02.2010 16:38
Сообщение #918 |
![]() Активный участник Группа: Админы Сообщений: 436 Регистрация: 30.06.2009 |
|
| Альфа |
05.02.2010 16:47
Сообщение #920 |
![]() Активный участник Группа: Админы Сообщений: 343 Регистрация: 04.07.2009 |
Боюсь, это траблы с настройками браузера... Похоже, как будто отключены "активные сценарии", как они их называют. |


