kphp Опубликовано 6 октября, 2019 Жалоба Поделиться Опубликовано 6 октября, 2019 1. Заходим в system Открыть Файл init.php Ищем: include ENGINE_DIR.'/classes/templates.php'; Ниже ставим include ENGINE_DIR.'/classes/Masonry.php'; ищем: if($config['gzip'] == 'yes') include ENGINE_DIR.'/modules/gzip.php'; Ниже ставим $masonry = new Masonry(); 2. Заходим в templates\Default\js Открыть Файл main.js Ищем: var url_next_id = 1; Ниже ставим function set_collage(id){ var collage = document.getElementById(id); var images = collage.getElementsByTagName('img'); //Маленький набор опций: averageRowHeight - примерная высота строки; gap - отступы между картинками; var options = {averageRowHeight: 175, gap: 3}; var widths = [], rows = [], rowNumber = 0, index = 0, k = 0; //Записываем в массив ширину каждой картинки при одинаковой высоте for(var i = 0; i < images.length; i++){ widths.push(Math.round(images[i].width / images[i].height * options.averageRowHeight)); } //Функция суммы элементов массива Array.prototype.sum = function(){ return this.reduce( function(prev,current){ return +current + prev; }, 0); } //Разбиение оизображений на строки обичным деление общей ширины всех картинок на ширину контейнера while(rowNumber < Math.ceil(widths.sum() / collage.clientWidth)){ rows[rowNumber] = []; //Как только общая ширина картинок превысила ширину контейнера переходим на следующую строку while(index < widths.length && rows[rowNumber].sum()+(rows[rowNumber].length * options.gap) < collage.clientWidth + options.gap){ rows[rowNumber].push(widths[index]); index++; //Если на последнюю строку осталось одно изображение, то дописываем его в "предпоследнюю" if(index == widths.length - 1){ rows[rowNumber].push(widths[index]); rowNumber++; break; } } rowNumber++; } index = 0; //Непосредственно изменение масштаба картинок (пропорционально, без обрезания изображений) for(var i = 0; i < rows.length; i++){ for(var j = 0; j < rows[i].length; j++){ // Если ширина строки больше/меньше ширины контейнера - соответственно // уменьшаем/увеличиваем до ширины контейнера с учетем отступов между картинками k = (collage.clientWidth - ((rows[i].length - 1) * options.gap)) / rows[i].sum(); images[index].style.width = rows[i][j] * k + 'px'; images[index].style.height = k * options.averageRowHeight + 'px'; if(j < rows[i].length - 1) images[index].style.marginRight = options.gap + 'px'; if(i < rows.length - 1) images[index].style.marginBottom = options.gap + 'px'; index++; } } } 3. Заходим в templates\Default Открыть файл main.tpl ищем: <script type="text/javascript" src="{theme}/js/reg.js"></script> Ниже ставим <script type="text/javascript" src="{theme}/js/masonry.pkgd.js"></script> 4. Заходим в system\classes Открыть там файл wall.php Ищем: $attach_result .= '<div class="clear"></div>'; Ниже ставим $masonry_array_images = array(); Ищем: //Фото со стены юзера } elseif($attach_type[0] == 'photo_u'){ if($row_wall['tell_uid']) $attauthor_user_id = $row_wall['tell_uid']; else $attauthor_user_id = $row_wall['author_user_id']; if($attach_type[1] == 'attach' AND file_exists(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}")){ if($cnt_attach == 1) $attach_result .= "<div class="page_photo cursor_pointer page_num{$row_wall['id']}" onClick="groups.wall_photo_view('{$row_wall['id']}', '{$attauthor_user_id}', '{$attach_type[1]}', '{$cnt_attach}', 'photo_u')"><img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/attach/{$attauthor_user_id}/{$attach_type[2]}" align="left" /></div>"; else $attach_result .= "<img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}" style="margin-top:3px;margin-right:3px" align="left" onClick="groups.wall_photo_view('{$row_wall['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')" class="cursor_pointer page_num{$row_wall['id']}" height="{$rodImHeigh}" />"; $cnt_attach++; } elseif(file_exists(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}")){ if($cnt_attach < 2) $attach_result .= "<div class="page_photo cursor_pointer page_num{$row_wall['id']}" onClick="groups.wall_photo_view('{$row_wall['id']}', '{$attauthor_user_id}', '{$attach_type[1]}', '{$cnt_attach}', 'photo_u')"><img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/{$attach_type[1]}" align="left" /></div>"; else $attach_result .= "<img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}" style="margin-top:3px;margin-right:3px" align="left" onClick="groups.wall_photo_view('{$row_wall['id']}', '{$row_wall['tell_uid']}', '{$attach_type[1]}', '{$cnt_attach}')" class="cursor_pointer page_num{$row_wall['id']}" />"; $cnt_attach++; } $resLinkTitle = ''; Заменить на эта //Фото со стены юзера } elseif($attach_type[0] == 'photo_u'){ if($row_wall['tell_uid']) $attauthor_user_id = $row_wall['tell_uid']; else $attauthor_user_id = $row_wall['author_user_id']; $masonry_array_images[] = $config['home_url']."uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}"; if($attach_type[1] == 'attach' AND file_exists(ROOT_DIR."/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}")){ if($cnt_attach == 1) $attach_result .= "<div class="profile_wall_attach_photo cursor_pointer page_num{$row_wall['id']}" onClick="groups.wall_photo_view('{$row_wall['id']}', '{$attauthor_user_id}', '{$attach_type[1]}', '{$cnt_attach}', 'photo_u')"><img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/attach/{$attauthor_user_id}/{$attach_type[2]}" align="left" /></div>"; else $attach_result .= "<img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/attach/{$attauthor_user_id}/c_{$attach_type[2]}" style="margin-top:3px;margin-right:3px" align="left" onClick="groups.wall_photo_view('{$row_wall['id']}', '', '{$attach_type[1]}', '{$cnt_attach}')" class="cursor_pointer page_num{$row_wall['id']}" height="{$rodImHeigh}" />"; $cnt_attach++; } elseif(file_exists(ROOT_DIR."/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}")){ if($cnt_attach < 2) $attach_result .= "<div class="profile_wall_attach_photo cursor_pointer page_num{$row_wall['id']}" onClick="groups.wall_photo_view('{$row_wall['id']}', '{$attauthor_user_id}', '{$attach_type[1]}', '{$cnt_attach}', 'photo_u')"><img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/{$attach_type[1]}" align="left" /></div>"; else $attach_result .= "<img id="photo_wall_{$row_wall['id']}_{$cnt_attach}" src="/uploads/users/{$attauthor_user_id}/albums/{$attach_type[2]}/c_{$attach_type[1]}" style="margin-top:3px;margin-right:3px" align="left" onClick="groups.wall_photo_view('{$row_wall['id']}', '{$row_wall['tell_uid']}', '{$attach_type[1]}', '{$cnt_attach}')" class="cursor_pointer page_num{$row_wall['id']}" />"; $cnt_attach++; } $resLinkTitle = ''; автор неизвестен [Модуль] вывод блоков виде кирпичной кладки.rar 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения