Конечно в идеале сделать чтобы при загрузке изображения создавалась превьюшка, но наш визуальный редактор не делает превью как я понимаю, а точнее делает, но только "для себя" шириной в 100px, а нам разумеется хотелось бы управлять размером превьюшки, поэтому будем обходиться без нее.
1. Для начала нам необходимо перенести код highslide в шапку сайта, чтобы он срабатывал не только в детальном описании товара.
Открываем /core/tpl/user/ваш_шаблон/product_detailed.tpl.html
Вырезаем код:
<script type="text/javascript" src="data/{$smarty.const.TPL}/highslide.packed.js"></script> <script type="text/javascript"> <!-- hs.graphicsDir = 'data/{$smarty.const.TPL}/'; hs.outlineType = 'rounded'; hs.showCredits = false; hs.loadingOpacity = 1; hs.lang.restoreTitle = '{$smarty.const.STRING_HS_RESTORETITLE}'; hs.lang.loadingText = '{$smarty.const.STRING_HS_LOADINGTEXT}'; hs.lang.loadingTitle = '{$smarty.const.STRING_HS_LOADINGTITLE}'; hs.lang.focusTitle = '{$smarty.const.STRING_HS_FOCUSTITLE}'; hs.lang.fullExpandTitle = '{$smarty.const.STRING_HS_FULLEXPANDTITLE}'; //--> </script> {* Для эффекта затемнения всей страницы при развертывании большого фото раскомментируйте этот блок кода <script type="text/javascript"> hs.dimmingOpacity = 0.75; </script> <style type="text/css"> {literal} .highslide-dimming { background: #333333; position: absolute; } {/literal} </style> *}
если его оставить, то он будет дублироваться на страницах подробного описания, поэтому его лучше убрать.
Вставляем его в файл: /core/tpl/user/ваш_шаблон/head.tpl.html
перед закрывающимся тегом
</head>
Все (!!!) теперь увеличение работает на любой странице, если но к изображениям добавить код
<a href='ссылка на изображение' class='highslide' onclick='return hs.expand(this)'><img width="150" alt="" src="ссылка на изображение"></a>где width="150" - ширина превьюшки.
Разумеется вручную добавлять код при вставке каждой картинки это лишняя морока, поэтому попробуем автоматизировать процесс.
Открываем файл /core/functions/functions.php
и в самый конец файла, перед закрывающимся тегом
?>
вставляем функцию
function myhighslide($content) { preg_match_all('/<img[^>]*[">]/i', $content, $img ); preg_match_all('/(?<=src=\")[^\"]*[^\"]/i', $content, $out ); $i = 0; foreach ($out[0] as $value) { $image = "<a href=\'".$value."\' class=\'highslide\' onclick=\'return hs.expand(this)\'>".$img[0][$i]."</a>"; $content = str_replace($img[0][$i], $image, $content); $i++; } return $content; }
Далее для новостей открываем файл /core/includes/admin/sub/modules_news.php
ищем код
$NID = newsAddNews($_POST["add_date"], $_POST["title"], $_POST["textToPrePublication"], $_POST["textToPublication"], $_POST["textToMail"] );
и меняем его на
$textToPrePublication = myhighslide($_POST["textToPrePublication"]); $textToPublication = myhighslide($_POST["textToPublication"]); $NID = newsAddNews($_POST["add_date"], $_POST["title"], $textToPrePublication, $textToPublication, $_POST["textToMail"] );
и последнее
открываем файл /core/functions/news_function.php
ищем строку
db_query( "insert into ".NEWS_TABLE." ( add_date, title, textToPrePublication, textToPublication, textToMail, add_stamp ) ". " values( '".xEscSQL(dtDateConvert($add_date))."', '".xToText(trim($title))."', '".xEscSQL($textToPrePublication)."', '".xEscSQL($textToPublication)."', '".xEscSQL($textToMail)."', ".$stamp." ) ");меняем на
db_query( "insert into ".NEWS_TABLE." ( add_date, title, textToPrePublication, textToPublication, textToMail, add_stamp ) ". " values( '".xEscSQL(dtDateConvert($add_date))."', '".xToText(trim($title))."', '".$textToPrePublication."', '".$textToPublication."', '".xEscSQL($textToMail)."', ".$stamp." ) ");