При переходе с WordPress на Instant я лишился одного замечательного плагина для увеличения картинок по клику без перезагрузки страницы — auto-highslide. Решил реализовать эту полезность для своих статей и на Инстанте.
1. В файле /components/content/frontend.php после
добавить
2. В файле template.php используемой темы оформления в head добавить
3. Разархивировать и положить в корень сайта highslide.zip
Можно положить и не в корень, но тогда поменяйте пути до файлов в пункте 2.
Буду рад, если кому-то пригодится.
UPD: метод, описанный выше, работает только если при вставке картинки указывать в качестве ссылки — ее оригинал. Если подобное вас не совсем устраивает, и на своем сайте вы привыкли просто вставлять картинки, задавая размеры уменьшенной копии, то используйте ниже описанный способ (сразу хочу предостеречь тех, кто на своем сайте размещает кнопки или баннеры на другие ресуры — способом, описанным ниже, вы отрежете себе такую возможность, ссылки на баннерах будут вызывать javascript, поэтому при нажатии будет осуществлен не переход по ссылке, а увеличение картинки):
1. В файле /components/content/frontend.php после
добавить
2. В файле template.php используемой темы оформления в head добавить
3. Разархивировать и положить в корень сайта highslide.zip
Можно положить и не в корень, но тогда поменяйте пути до файлов в пункте 2.
1. В файле /components/content/frontend.php после
$article_content = $cfg['readdesc'] ? $article['description'].$article['content'] : $article['content'];
$pattern = "/<a(.*?)href=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>(.*?)<\/a>/i"; $replacement = '<a$1href=$2$3.$4$5 class="highslide-image" onclick="return hs.expand(this);"$6>$7</a>';
<script type="text/javascript" src="/highslide/highslide-with-html.packed.js"></script> <script type="text/javascript"> hs.graphicsDir = "/highslide/graphics/"; hs.outlineType = "rounded-white"; hs.outlineWhileAnimating = true; hs.showCredits = false; </script>
Можно положить и не в корень, но тогда поменяйте пути до файлов в пункте 2.
Буду рад, если кому-то пригодится.
UPD: метод, описанный выше, работает только если при вставке картинки указывать в качестве ссылки — ее оригинал. Если подобное вас не совсем устраивает, и на своем сайте вы привыкли просто вставлять картинки, задавая размеры уменьшенной копии, то используйте ниже описанный способ (сразу хочу предостеречь тех, кто на своем сайте размещает кнопки или баннеры на другие ресуры — способом, описанным ниже, вы отрежете себе такую возможность, ссылки на баннерах будут вызывать javascript, поэтому при нажатии будет осуществлен не переход по ссылке, а увеличение картинки):
1. В файле /components/content/frontend.php после
$article_content = $cfg['readdesc'] ? $article['description'].$article['content'] : $article['content'];
$pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i"; $replacement = '<a href=$2$3.$4$5 class="highslide-image" onclick="return hs.expand(this);"><img$1src=$2$3.$4$5 $6></a>';
<script type="text/javascript" src="/highslide/highslide-with-html.packed.js"></script> <script type="text/javascript"> hs.graphicsDir = "/highslide/graphics/"; hs.outlineType = "rounded-white"; hs.outlineWhileAnimating = true; hs.showCredits = false; </script>
Можно положить и не в корень, но тогда поменяйте пути до файлов в пункте 2.
Превью вещица хорошая
можно взглянуть на демо?
Ну, вот, например, тут картинки в статье есть: http://new.linux-easy.ru/blog/articles/pervyj-test-ustanovki-lmde.html
Простите, с телефона пишу.
Принцип:
- Ищем все выражения вида:
Чтобы доработать скрипт, мне нужно посидеть и практически методом тыка (конечно же, с использованием мануалом по preg_replace) написать правильный шаблон поиска и замену найденного. Если время будет, займусь.
Сделал, проверяйте...
Честно говоря, у меня на это ушло всего 2 минуты, сам не ожидал. Если работать будет, отпишитесь, я дополню сам пост, внесу в него и этот способ.
P.S. У Вас же сейчас сделано увеличение при наведении.
под аватаркой отправить сообщение там))) *
вместо строки
Код PHP:
$article_content = preg_replace($pattern, $replacement, $article_content);
нужно писать
Код PHP:
$article['content'] = preg_replace($pattern, $replacement, $article['content']);
Спасибо del что помог разобраться
У меня в файле /components/content/frontend.php нет такой строки $article_content = $cfg['readdesc'] ? $article['description'].$article['content'] : $article['content'];
Версия CMS 1.10.
Так же еще один вопрос, этот скрипт будет увеличивать картинки на форуме, в объявлениях или только в статьях?
2. Правки касаются компонента content, как Вы могли догадаться по месту расположения файла, а значит кроме статей эти правки ничего не затрагивают.
P.S. Я не использую новую версию движка, поэтому не могу помочь разобраться в данном вопросе более детально.
Строк, как в посте выше тоже нет, поэтому и спрашивал..
Все работает, но у меня такой вопрос, картинка открывается в отдельном окне, а как сделать чтобы она увеличивалась в том же?