Моему заказчику потребовалось вставлять дополнительные картинки в каталог оборудования, в описание позиций, и чтобы при клике на картинку она увеличивалась.
Возиться с загрузкой картинок по FTP он не захотел.
В итоге смастерил конструкцию, позволяющую вставлять фото (предварительно загруженные в стандартную галерею) в любое место позиции каталога (в визуальном редакторе) путём копирования наименования фото из предлагаемого списка.
Для увеличения изображения используется стандартный lightbox.
Чтобы не "потеряться" среди обилия альбомов, используется древовидный раскрывающийся список.
Решение колченогое, но рабочее, на другое не было времени.
Последовательность действий:
1. В файле admin/components/catalog/backend.php:
Перед кодом:
Вставляем:
2. В файле admin/css/styles.css в любом месте пишем:
3. В файл components/catalog/frontend.php:
После кода:
Вставляем:
4. В файле filters/f_replace/filter.php:
Код:
Меняем на:
5. В админке фильтр "Автозамена / Фильтр ссылок" должен быть включен.
Для добавления фото в любом месте описания позиции каталога (где используется визуальный редактор), выбираем вкладку "Вставка фото"
выбираем из списка нужный альбом, нужное фото
и копируем код {Фото=Название фото} в нужное место.
Результат:
При клике увеличивается:
Предварительно, конечно, эти фото нужно загрузить в любой альбом, или создать новый. Если не нужно, чтобы загружаемые фото показывались в фотогалерее сайта, укажите в настройках данного альбома "не публиковать".
ВАЖНО: При загрузке изображений не должно быть картинок с одинаковыми наименованиями.
Почти по аналогии (с небольшими изменениями) можно устроить вставку фото и в статьи и новости. Если кому будет интересно, распишу дополнительно.
Возиться с загрузкой картинок по FTP он не захотел.
В итоге смастерил конструкцию, позволяющую вставлять фото (предварительно загруженные в стандартную галерею) в любое место позиции каталога (в визуальном редакторе) путём копирования наименования фото из предлагаемого списка.
Для увеличения изображения используется стандартный lightbox.
Чтобы не "потеряться" среди обилия альбомов, используется древовидный раскрывающийся список.
Решение колченогое, но рабочее, на другое не было времени.
Последовательность действий:
1. В файле admin/components/catalog/backend.php:
Перед кодом:
{/tabs}
{tab=Вставка фото} Выберите альбом: <div style="border:1px solid #999;height:500px;overflow:scroll;"> <ul id="dropMenu"> <? $sqlw = "SELECT * FROM cms_photo_albums"; $resultw = $inDB->query($sqlw); while($itemw = $inDB->fetch_assoc($resultw)){ $xxx = $itemw['id']; $sqlwx = "SELECT * FROM cms_photo_files WHERE album_id='$xxx'"; $resultwx = $inDB->query($sqlwx); if ($inDB->num_rows($resultwx)){ echo '<li class="menuCat"><span>'; echo 'Фотоальбом: '.$itemw['title'].'</span>'; echo '<ul>'; while($itemwx = $inDB->fetch_assoc($resultwx)){ echo '<li><span>'; echo '<img src="/images/photos/small/'.$itemwx['file'].'" alt="" >'; $new = $itemwx['title']; echo '<div class="tfoto">{ФОТО='.$new.'}</div>'; echo '</span></li>'; } echo '</ul></li>'; } } ?> </ul> </div> <script type="text/javascript"> // Made by Aleko (http://studioad.ru) plus=""; // Путь к иконке плюс minus=""; // Путь к иконке минус dropMenu();function dropMenu(){var c,d,e,j,i;c=new Array();d=document.getElementsByTagName('*');e=new RegExp("(^|\\b)menuCat(\\b|$)");j=0;for(i=0;i<d.length;i++){if(e.test(d[i].className)){c[j]=d[i];j++}}for(i=0;i<c.length;i++){var f=c[i].getElementsByTagName("span")[0];f.onclick=function(){var a,b;a=this.parentNode;b=a.getElementsByTagName("ul")[0];if(b.style.display=="block"){a.style.backgroundImage="url("+plus+")";b.style.display="none"}else{a.style.backgroundImage="url("+minus+")";b.style.display="block"}}}}; </script>
.tfoto{width:100px;font-size:12px;float:right;padding-top:24px;padding-right:20px;} #dropMenu, #dropMenu ul {list-style:none;margin:0px;padding:0px;} .menuCat {padding-left:12px;} .menuCat span {cursor:pointer;font-weight:bold;} .menuCat ul {display:none;}
После кода:
//PROCESS FILTERS, if neccessary if ($cat['filters']){ $filters = $inCore->getFilters(); if ($filters){ foreach($filters as $id=>$_data){ require_once $_SERVER['DOCUMENT_ROOT'].'/filters/'.$_data['link'].'/filter.php'; $_data['link']($field); } } }
//PROCESS FILTERS $inCore->processFilters($field); //HIGHLIGHT USER LAST SEARCH QUERY IF NECCESSARY $regex = '/('.$_SESSION['squery'].')\s*(.*?)/i'; foreach ($matches as $elm) { $field = preg_replace( $regex, '<span class="search_match">'.$_SESSION['squery'].'</span>', $field ); } }
Код:
$link = '<a href="/photos/photo'.$photo['id'].'.html" title="'.$photo_title.'">'.$photo_title.'</a>';
$link = '<div><a class="lightbox-enabled" rel="lightbox" href="/images/photos/medium/'.$photo['file'].'" target="_blank"><img src="/images/photos/small/'.$photo['file'].'" alt="'.$photo['title'].'" ></a></div>';
Для добавления фото в любом месте описания позиции каталога (где используется визуальный редактор), выбираем вкладку "Вставка фото"
выбираем из списка нужный альбом, нужное фото
и копируем код {Фото=Название фото} в нужное место.
Результат:
При клике увеличивается:
Предварительно, конечно, эти фото нужно загрузить в любой альбом, или создать новый. Если не нужно, чтобы загружаемые фото показывались в фотогалерее сайта, укажите в настройках данного альбома "не публиковать".
ВАЖНО: При загрузке изображений не должно быть картинок с одинаковыми наименованиями.
Почти по аналогии (с небольшими изменениями) можно устроить вставку фото и в статьи и новости. Если кому будет интересно, распишу дополнительно.
Реклама #
oll 13 лет назад #
GNabi 13 лет назад #
большая просьба: увелись, пожалуйста, статью... ))
Спасибо!
abasia 13 лет назад #
maia 13 лет назад #
Alexneva 13 лет назад #
Евгений Фоменко 12 лет назад #
Alexneva 12 лет назад #