Ничего нового не расскажу и не открою, всё уже описано на форуме.
Просто выделю данный вариант в отдельную тему. Может кому-нибудь пригодиться.
Отдельно спасибо за подсказки kerk'у.
Очень давно хотел подключить HighSlide для стороннего имгхостинга "как здесь". Наконец-то нашел время.
Хотел подключить только HighSlide без использования
vBImghost. Правда другой дополнительный продукт пришлось поставить, но для меня не критично.
Важно сразу же отметить.
Кто не хочет редактировать файлы форума по каким-либо причинам, то увы данный вариант вам не подойдет.
1. Устанавливаем продукт -
Закрытие/редирект внешних ссылок
Необходим для того, чтобы у тега A появилось событие Onclick (JavaScript).
2. Загружаем себе на сервер библиотеку HighSlide.
В вложении темы имеется архив. Необходимо папку highslide загрузить себе на форум в папку clientscript.
3. Редактируем шаблон headinclude.
В самый вниз шаблона добавляем:
PHP Code:
<if condition="in_array(THIS_SCRIPT, array('showthread', 'showpost', 'private'))">
<link rel="stylesheet" type="text/css" href="clientscript/highslide/highslide.css" />
<script type="text/javascript" src="clientscript/highslide/highslide-full.js"></script>
<script type="text/javascript">
hs.graphicsDir = 'clientscript/highslide/graphics/';
hs.align = 'center';
hs.transitions = ['expand', 'crossfade'];
//hs.outlineType = 'glossy-dark';
//hs.wrapperClassName = 'dark';
hs.fadeInOut = true;
hs.showCredits = false;
hs.creditsText = 'Powered by Highslide JS';
hs.creditsTitle = 'Go to the Highslide JS homepage';
hs.creditsHref = 'http://highslide.com';
hs.lang = {
loadingText : 'Загружается...',
loadingTitle : 'Нажмите для отмены',
focusTitle : 'Нажмите чтобы поместить на передний план',
fullExpandTitle : 'Развернуть до оригинального размера',
fullExpandText : 'Оригинальный размер',
creditsText : 'Использует Highslide JS',
creditsTitle : 'Перейти на домашнюю страницу Highslide JS',
previousText : 'Предыдущее',
previousTitle : 'Предыдущее (стрелка влево)',
nextText : 'Следующее',
nextTitle : 'Следующее (стрелка вправо)',
moveTitle : 'Переместить',
moveText : 'Переместить',
closeText : 'Закрыть',
closeTitle : 'Закрыть (esc)',
resizeTitle : 'Изменить размер',
playText : 'Слайдшоу',
playTitle : 'Начать слайдшоу (пробел)',
pauseText : 'Пауза',
pauseTitle : 'Приостановить слайдшоу (пробел)',
number : 'Изображение %1 из %2',
restoreTitle : 'Нажмите чтобы закрыть изображение, нажмите и перетащите для изменения местоположения. Для просмотра изображений используйте стрелки.'
};
var galleryOptions = {
slideshowGroup: 'gallery',
//wrapperClassName: 'dark',
//outlineType: 'glossy-dark',
dimmingOpacity: 0.8,
align: 'center',
transitions: ['expand', 'crossfade'],
fadeInOut: true,
wrapperClassName: 'borderless floating-caption',
marginLeft: 100,
marginBottom: 80,
numberPosition: 'caption'
};
if(hs.addSlideshow) hs.addSlideshow({
slideshowGroup: 'gallery',
interval: 5000,
repeat: false,
useControls: true,
overlayOptions: {
className: 'text-controls',
position: 'bottom center',
relativeTo: 'viewport',
offsetY: -60
},
thumbstrip: {
position: 'bottom center',
mode: 'horizontal',
relativeTo: 'viewport'
}
});
hs.Expander.prototype.onInit = function() {
hs.marginBottom = (this.slideshowGroup == 'gallery') ? 150 : 15;
}
</script>
</if>
3. Редактируем повторно файл /includes/class_bbcode.php
Ищем функцию function handle_bbcode_url($text, $link)
Выше данной строки:
PHP Code:
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
Добавляем:
PHP Code:
$hs_class = '';
if(preg_match('/\[(img|IMG)\](.*)\[\/(img|IMG)\]/i', $text, $matches))
{
if(in_array(strtolower(file_extension(basename($rightlink))), array('jpg', 'jpeg', 'png', 'gif')) AND in_array(strtolower(file_extension(basename($matches[2]))), array('jpg', 'jpeg', 'png', 'gif')))
{
$text_has_img = true;
$hs_class = 'class="highslide" onclick="return hs.expand(this, galleryOptions);"';
}
}
Далее данную строку:
PHP Code:
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
Заменяем на:
PHP Code:
return "<a href=\"$rightlink\" $hs_class target=\"_blank\">$text</a>";
Сохраняем.
4. Настройки в панели администратора:
Панель администратора --> Основные настройки --> Настройки BB кодов --> Настройки ББ кодов
Вписываем разрешенные домены имгхостинга:
5. Делаем запрос.
Необходим для того, чтобы старые посты перекешировались иначе сразу в старых постах не будет работать HighSlide
Если таблицы НЕ имеют префикса:
PHP Code:
TRUNCATE TABLE postparsed
Если у таблицы имеется префикс:
PHP Code:
TRUNCATE TABLE префикс_postparsed
6. Результат:
Комментируем, добавляем свои наработки.
///
С наступающими праздниками.
Желаю всем новогоднего настроения.
Пусть все хлопоты и проблемы останутся в уходящем году.