(Больших под ширину блога, маленьких по их истинному размеру.)
Пример:
Делалось для того, чтобы большие изображения не покидали пределов блока тела сообщения блога.
Еще удобство в том, что можно их просмотреть в текущем блоге все поочередно как галерею.
Все делалось на версии 1.7
Хак маленький и несложный.
UPD: Как заметил Keep — при при апдейте jquery, перестает работать lightbox. Проверил, если обновить lightbox — делу это не помогает. Зато при даунгрейде fancybox — до 1.2.5 — работает и то и другое. Возможно при обновлении jquery что-то еще перестало работать, и это пока незаметно. Перепишу тогда статью для 1.2.5. версии — т.е. идущей с дистрибутивом Instant. Переписал.
Загружаем архив Fancybox на геглекоде, Распаковываем его.
Нам понадобятся файлы
И все изображения из папки fancybox/fancybox/
Создадим например папку /includes/jquery/fancybox/ в которую все и скопируем.
Переносим нужные файлы в соответствии с нижеприведенным кодом, где указаны пути.
Далее добавляем в /templates/_default_/template.php перед </head>
В файле /includes/bbcode/bbcode.lib.php
В функции img_2html
вместо
вставляем
В шаблоне в style.css — добавляем
Тестировалось только на Firefox 3.6.15 и Opera 11.01.
Скриншоты тут скорее неуместны, лучше посмотреть пример по вышеприведенной ссылке.
upd спустя 11 дней: Или никто не ставил или оно волшебным образом у всех работало )
Обнаружил, что одинаковых строк в bb_code.lib.php — две, заменять надо было вторую, та которая с "else", а не "if (!$zoom)". Статью обновил. Не всегда спустя время — удается четко воссоздать пошагово свои действия, вот и получаются такие косяки.
Да, решений подобного этому — уйма, всегда рад альтернативным решениям, менее громоздким и грациозным.
Пример:
Группе, к которой вы принадлежите, запрещено просматривать этот скрытый текст
Делалось для того, чтобы большие изображения не покидали пределов блока тела сообщения блога.
Еще удобство в том, что можно их просмотреть в текущем блоге все поочередно как галерею.
Все делалось на версии 1.7
Хак маленький и несложный.
UPD: Как заметил Keep — при при апдейте jquery, перестает работать lightbox. Проверил, если обновить lightbox — делу это не помогает. Зато при даунгрейде fancybox — до 1.2.5 — работает и то и другое. Возможно при обновлении jquery что-то еще перестало работать, и это пока незаметно. Перепишу тогда статью для 1.2.5. версии — т.е. идущей с дистрибутивом Instant. Переписал.
Загружаем архив Fancybox на геглекоде, Распаковываем его.
Нам понадобятся файлы
fancybox/fancybox/jquery.fancybox-1.2.5.css fancybox/fancybox/jquery.fancybox-1.2.5.js
Создадим например папку /includes/jquery/fancybox/ в которую все и скопируем.
Переносим нужные файлы в соответствии с нижеприведенным кодом, где указаны пути.
Далее добавляем в /templates/_default_/template.php перед </head>
<script type="text/javascript" src="/includes/jquery/fancybox/jquery.fancybox-1.2.5.pack.js"></script> <script type="text/javascript" src="/includes/jquery/fancybox/jquery.fancybox-1.2.5.js"></script> <link rel="stylesheet" type="text/css" href="/includes/jquery/fancybox/jquery.fancybox-1.2.5.css" media="screen" /> <script type="text/javascript"> // <![CDATA[ $(document).ready(function() { $("a[rel=example_group]").fancybox({ 'titlePosition' : 'over', 'overlayColor' : '#000', 'overlayOpacity' : 0.9, 'hideOnOverlayClick' : true, 'hideOnContentClick' : false, 'titleShow' : true, 'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + '</span>'; } }); }); // ]]> </script>
В функции img_2html
вместо
} else { return '<div class="bb_img" style="'.$div_style.'"><img src="'.htmlspecialchars($src).'" '.$attr.' /></div>'; }
else { return '<span class="hoverbox" title="Нажмите левую кнопку мыши для просмотра изображения"><a rel="example_group" href="'.htmlspecialchars($src).'" title=""><img src="'.htmlspecialchars($src).'" alt=""/></a></span>'; }
/** Стиль Fancybox **/ .hoverbox img { background: #fff; color: inherit; vertical-align: top; max-width: 600px; /** Максимальная ширина при после которой будет идти ресайз - например ширина блога**/ min-width: 100px; /** Минимальная ширина изображения, порога далее которого уменьшаться оно не будет**/ border-color: #ddd #bbb #aaa #ccc; border-style: solid; border-width: 1px; padding: 3px; margin: 1px; }
Скриншоты тут скорее неуместны, лучше посмотреть пример по вышеприведенной ссылке.
upd спустя 11 дней: Или никто не ставил или оно волшебным образом у всех работало )
Обнаружил, что одинаковых строк в bb_code.lib.php — две, заменять надо было вторую, та которая с "else", а не "if (!$zoom)". Статью обновил. Не всегда спустя время — удается четко воссоздать пошагово свои действия, вот и получаются такие косяки.
Да, решений подобного этому — уйма, всегда рад альтернативным решениям, менее громоздким и грациозным.
Реклама #
Keep 13 лет назад #
Алхимик 13 лет назад #
Алхимик 13 лет назад #
Zau4man 13 лет назад #
Спасибо! Вечером прикручу.
Алхимик 13 лет назад #
Уверен после непродолжительного копания решение бы тоже нашлось - как описал Захар.
Захар 13 лет назад #
Захар 13 лет назад #
например для стенки в профиле это будет выглядеть так
13 лет назад #
У меня вот такое есть
.usr_profile_block{
clear:both;
margin-top:10px;
padding-top:10px;
border-top:1px solid #C3D6DF;
margin-left:10px;
што нужно изменить?
fact 13 лет назад #
EVV 13 лет назад #
И мне интересно. Подскажите пожалуйста.
Алхимик 13 лет назад #
Через max/min-width тут по сути и регулируется максимальная/минимальная ширина, просто кроме всего прочего - нажав на изображение его становится видно на весь экран сразу, без манипуляций с копипастой. А, что напомнил про высоту - это благодарю, полезное замечание. А то ведь могут и вставить прозрачную картинку в 1px по ширине и over 9000px по высоте и думай потом - чем прогневил богов )
Естественно покопавшись еще больше в движке может чего более интересного и придумал бы. Но такую-же схему использую на форуме phpbb - и она не вызывала нареканий пользователей. Если пользователь ходит по сайтам в режиме [Paranoia] с отключенной JavaScript - то картинка просто откроется в этом-же окне.
По хорошему счету - авторесайз изображения по ширине соответствующего блока должен идти в шаблоне по дефолту. Тогда и не будет постройки велосипедов на гусеничном ходу )
Захар 13 лет назад #
Алхимик 13 лет назад #
EVV 13 лет назад #