Модификации движка (Предложения по улучшению движка Intellect Board)

Разнообразная белиберда
Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Модификации движка

Сообщение uav1606 » 03.04.2014,13:32

Предложения по улучшению движка Intellect Board

Так как переезд на новый движок пока вроде не планируется, предлагаю мелкие доработки для этого.

Для начала, очень раздражает, что движок не преобразует ссылки на FTP и HTTPS в URL, в отличие от HTTP. Исправляется это очень просто:

нужно в parser.php после строчки:

Код: Выделить всё

$text = preg_replace("/(\s+)(http:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
добавить:

Код: Выделить всё

$text = preg_replace("/(\s+)(https:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);
$text = preg_replace("/(\s+)(ftp:\/\/[^\s\"'\[,!]+)([\s\"'\[,!]+)/is","$1 <a href=\"$2\" rel=\"nofollow\" target=_blank>$2</a> $3",$text);

Sozdatel
Advanced Member
Сообщения: 3560
Зарегистрирован: 15.04.2010,12:49

Вклад в сообщество

Сообщение Sozdatel » 03.04.2014,16:38

Предлагаю добавить поддержку вложенных картинок (как на других форумах).
Считаю это обоснованным, поскольку в последнее время на форуме регистрируется много новичков и школоты, причем далеко не все из них слышали про фотохостинг.
К тому же зачастую многие небольшие фотохостинги со временем закрываются и пропадают, и в результате какой-нибудь нужный скриншот или распиновка становятся недоступными для просмотра.

Сам движок изначально такую возможность поддерживает, так что проблем с реализацией возникнуть не должно.

Sozdatel
Advanced Member
Сообщения: 3560
Зарегистрирован: 15.04.2010,12:49

Вклад в сообщество

Сообщение Sozdatel » 03.04.2014,18:06

Или же в крайнем случае создать поддомен для изображений, например:
img.phantom.sannata.ru, установить на этот поддомен движок фотохостинга, а к редактору сообщений добавить форму с кнопкой "Обзор" из которой можно будет загрузить картинку прямо на сайт.

Вот как это будет выглядеть.

Изображение

Ссылка

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 03.04.2014,23:33

wdfm, согласен, с картинками уже давно что-то надо делать.
К сожалению, движок форума в этом отношении крайне неудобен. Во-первых, можно добавить только один файл на сообщение, а иногда нужно несколько картинок. Во-вторых, загруженная картинка отображается только в конце сообщения, что неудобно. В-третьих, движок как-то странно делает превью - в них портятся цвета. Поэтому, IMHO, тут нужно дорабатывать движок. Я над этим сейчас как раз думаю...


Из более простых нововведений предлагаю добавить тэг-спойлер, чтобы можно было скрывать "простыни" вроде таких.

Выглядеть это будет примерно так:

http://someforum.e3w.ru/forum/index.php?t=2

Что нужно сделать.

Первое, добавляем в конец parser.php после:

Код: Выделить всё

$text = preg_replace("/\[group=(\d+?)\](.*?)\[\/group\]/esi","check_group($1,\"$2\")",$text);
строчки:

Код: Выделить всё

 $text = str_replace("[spoiler]",'<div class="spoil">
<div class="smallfont"><input type="button" value="Спойлер - нажмите, чтобы показать скрытый текст" class="input-button" onclick="if (this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display != \'\') { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'\'; this.innerText = \'\'; this.value = \'Свернуть\'; } else { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'none\'; this.innerText = \'\'; this.value = \'Спойлер - нажмите, чтобы показать скрытый текст\'; }"/>
</div>
<div class="alt2">
<div style="display: none;">',$text);
  $text = str_replace("[/spoiler]",'</div>
</div>
</div>',$text);
Собственно, после этого тэг уже работает. Но можно ещё добавить его в панель инструментов.

Для этого:

1) Загружаем файл-значок для спойлера в папку forum/images.

Я использовал вот эту иконку:

http://dgmag.in/other/spoiler.png

2) Модифицируем файл forum/langs/ru/post.js (в конце):

Было:

Код: Выделить всё

...
['s','З','Тег [s] -- перечеркуный текст. Пример: [s]перечеркнутый[/s] (Alt+S)','Введите текст, который должен быть перечеркнут']
]
Стало:

Код: Выделить всё

...
['s','З','Тег [s] -- перечеркуный текст. Пример: [s]перечеркнутый[/s] (Alt+S)','Введите текст, который должен быть перечеркнут'],
['spoiler','Спойлер','Скрыть часть текста под спойлером','Введите текст, который должен быть скрыт']
]
Не забываем про запятую перед добавленной строкой!

3) Модифицируем post.js в папках стилей forum/styles/имя_стиля/post.js

Для Gradient Blue это папка gradblue, к примеру. Т.е. forum/styles/gradblue/post.js

Модифицируем так (добавляем одну строчку):

Было:

Код: Выделить всё

...
        document.write('<img style="width: 26px; height: 26px;'+HAND+'"  src="'+dir+'table.png"  alt="'+codes_array[13][1]+'" onClick="custom(13,3);"  title="'+codes_array[13][2]+'">');
        document.write('<img alt="|" style="width: 26px; height: 26px;"  src="'+dir+'end.png" >');
...
Стало:

Код: Выделить всё

...
        document.write('<img style="width: 26px; height: 26px;'+HAND+'"  src="'+dir+'table.png"  alt="'+codes_array[13][1]+'" onClick="custom(13,3);"  title="'+codes_array[13][2]+'">');

        document.write('<img style="width: 26px; height: 26px;'+HAND+'"  src="'+dir+'spoiler.png"  alt="'+codes_array[19][1]+'" onClick="custom(19,3);"  title="'+codes_array[19][2]+'">');

        document.write('<img alt="|" style="width: 26px; height: 26px;"  src="'+dir+'end.png" >');
...
Собственно, всё.

Как это выглядит:

1. Свёрнутый:

Изображение

2. Развёрнутый:

Изображение

Sozdatel
Advanced Member
Сообщения: 3560
Зарегистрирован: 15.04.2010,12:49

Вклад в сообщество

Сообщение Sozdatel » 04.04.2014,08:25

uav1606 писал(а):Из более простых нововведений предлагаю добавить тэг-спойлер, чтобы можно было скрывать "простыни" вроде таких.
Мне кажется это не очень хорошая идея, так как данный форум посещают пользователи мобильных устройств (с браузеров уровня
Opera Mini), где страница каждый раз грузится заново при выборе того или иного элемента. Соответственно это может негативно отразиться на удобстве посещения сайта и приведет к увеличению затрат на мобильный трафик.
uav1606 писал(а):wdfm, согласен, с картинками уже давно что-то надо делать.
В качестве промежуточного решения, предлагаю сделать так.

Нужно, чтобы администраторы зарегистрировали отдельный поддомен, например: img.phantom.sannata.ru, затем я им присылаю архив с движком, после чего они устанавливают в этот поддомен движок фотохостинга, скриншот которого я показывал выше, при этом прописав в настройках соответствующие данные для базы данных MYSQL.
После установки нужно зайти во вкладку Инструменты (http://xattab.tk/tools.php, скопировать исходный код и вставить его в исходный код редактора сообщений.

Таким образом можно легко встроить загрузку изображений прямо из редактора сообщений без риска испортить движок форума.

Вот как это примерно будет выглядеть:

Изображение

Ссылка: upload.xattab.tk

Sozdatel
Advanced Member
Сообщения: 3560
Зарегистрирован: 15.04.2010,12:49

Вклад в сообщество

Сообщение Sozdatel » 04.04.2014,08:51

Предвидя ответы, что мол это нагрузка на сервер, много места займет, отвечу, что задать максимальный размер изображения можно в панели администратора.

PC66
Full Member
Сообщения: 224
Зарегистрирован: 06.03.2014,16:20
Откуда: Краснодар

Сообщение PC66 » 04.04.2014,10:15

А можно просто ссылку воткнуть на панель bb-кодов на аплоадер (сторонний сервер). И не загружать сюда вообще.
In DOS we trust (:

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 04.04.2014,10:29

wdfm писал(а):Мне кажется это не очень хорошая идея, так как данный форум посещают пользователи мобильных устройств (с браузеров уровня Opera Mini), где страница каждый раз грузится заново при выборе того или иного элемента. Соответственно это может негативно отразиться на удобстве посещения сайта и приведет к увеличению затрат на мобильный трафик.
Сейчас вот проверил на эмуляторе Opera Mini - трафик при открытии спойлера составил 32 КБ. Не думаю, что это имеет какое-то значение.
Тем более, что практически на всех современных движках форумов есть спойлеры. Да и далеко не в каждой теме они будут.

Насчёт Вашей идеи с загрузчиком картинок - пока она мне кажется немного сложноватой. Лучше уж переделать уже имеющийся в движке форума механизм.
PC66 писал(а):А можно просто ссылку воткнуть на панель bb-кодов на аплоадер (сторонний сервер). И не загружать сюда вообще.
Как временное быстрое решение это было бы вполне неплохо.

Sozdatel
Advanced Member
Сообщения: 3560
Зарегистрирован: 15.04.2010,12:49

Вклад в сообщество

Сообщение Sozdatel » 04.04.2014,10:56

uav1606 писал(а):Как временное быстрое решение это было бы вполне неплохо.
То, что я предлагал это и есть аплоадер, код которого можно добавить в редактор сообщений, чтобы прямо из него можно было загружать картинки на сайт.
xattab.tk/tools.php

Ради эксперимента попробуйте вставить этот код в панель BB-кодов (там где вставка ссылок, изменение шрифтов и т.д).

[font=Courier]<iframe allowtransparency="yes" frameborder="0" scrolling="no" src="http://xattab.tk/index.php?module=iframeupload" style="height: 40px; width: 500px;">Ваш браузер не поддерживает технологию iFrames.</iframe>
[/font]

Аватара пользователя
uav1606
Advanced Member
Сообщения: 5969
Зарегистрирован: 16.01.2008,22:04
Откуда: Енакиево
Контактная информация:

Вклад в сообщество

Сообщение uav1606 » 04.04.2014,11:01

PC66, видимо, имел в виду просто ссылку на панели инструментов, а не форму загрузки. Причём ссылку на уже существующий хостинг картинок. Это немножко проще, чем то, что предлагаете Вы:
Нужно, чтобы администраторы зарегистрировали отдельный поддомен, например: img.phantom.sannata.ru, затем я им присылаю архив с движком, после чего они устанавливают в этот поддомен движок фотохостинга, скриншот которого я показывал выше, при этом прописав в настройках соответствующие данные для базы данных MYSQL.

Sozdatel
Advanced Member
Сообщения: 3560
Зарегистрирован: 15.04.2010,12:49

Вклад в сообщество

Сообщение Sozdatel » 04.04.2014,11:01

uav1606 писал(а):Насчёт Вашей идеи с загрузчиком картинок - пока она мне кажется немного сложноватой.
Прошу прощеня, я неправильно выразился. ПОд словом редактор сообщений я подразумевал именно панель BB-кодов, в которую предлагал добавить следующий код:


[font=Courier]<iframe allowtransparency="yes" frameborder="0" scrolling="no" src="http://xattab.tk/index.php?module=iframeupload" style="height: 40px; width: 500px;">Ваш браузер не поддерживает технологию iFrames.</iframe>
[/font]

После добавления должна появиться панель, с кнопками "Обзор" и "Загрузить", в которой можно выбрать изображение для загрузки на сайт прямо с компьютера.

Можете для проверки вставить этот код на своей тестовый форум, чтобы убедиться в работоспособности идеи.
http://someforum.e3w.ru/forum/index.php?t=2

Закрыто