Jump to content
View in the app

A better way to browse. Learn more.

IPBMafia.ru - поддержка Invision Community, релизы, темы, плагины и приложения

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

вывод изображений в профиле по категориям

Featured Replies

Posted

Всем привет!

Профиль / Контент / Изображения - здесь выводятся все фото, добавленные пользователем. Но все они идут без категорий.

Попробовал поковырять шаблоны, два варианта:

Вариант 1
gallery / front / browse / imageTable

вывод здесь:

<ol class='ipsPad ipsList_reset ipsClear ipsGrid ipsGrid_collapsePhone ipsType_center cGalleryPatchwork_list' data-controller='gallery.front.browse.list' data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='core.patchwork.imageList' data-ipsPhotoLayout-minHeight='300' id='elTable_{$table->uniqueId}' data-role='tableRows'>
	{template="tableRowsThumbs" group="browse" app="gallery" params="$table, $headers, $rows"}
</ol>

попробовал заменить на это:

{{foreach $rows as $row}}
  {{ $groupedImages[$row->category_id][] = $row; }}
{{endforeach}}

{{foreach $groupedImages as $category_id => $rows }}
  <ol class='ipsPad ipsList_reset ipsClear ipsGrid ipsGrid_collapsePhone ipsType_center cGalleryPatchwork_list' data-controller='gallery.front.browse.list' data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='core.patchwork.imageList' data-ipsPhotoLayout-minHeight='300' id='elTable_{$table->uniqueId}' data-role='tableRows'>
    {template="tableRowsThumbs" group="browse" app="gallery" params="$table, $headers, $rows"}
  </ol>          
{{endforeach}}

Все норм, бьется на категории, но только на первой странице.
Если жмем в пагинаторе вторую страницу - фото грузятся уже без дробления, все подряд в куче.

Вариант 2
gallery / front / browse / tableRowsThumbs

Сделал подобную манипуляцию, но с переменной $images.
Также норм на 1 странице, на второй грузятся все фото, разбитые на категории - но в 25 экземплярах! То есть выводит 625 фото...

Причем из ajax приходит все норм, разбито, и всего 25 штук. Это js уже множит это...

Хотелось бы помощи, наверняка решение простое в 1 строку, но я вообще не знаком с js фреймворком IPS (

 

 

39 минут назад, demvlg сказал:

Проблема решена, можно закрыть

Если не трудно то прошу озвучить решение, возможно ы будущем кому-то из пользователей поможет

  • Author

Пример для отображения с плавающими первьюхами

gallery / front / browse / imageTable

			<ol class='ipsPad ipsList_reset ipsClear ipsGrid ipsGrid_collapsePhone ipsType_center cGalleryPatchwork_list' data-controller='gallery.front.browse.list' data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='core.patchwork.imageList' data-ipsPhotoLayout-minHeight='300' id='elTable_{$table->uniqueId}' data-role='tableRows'>
				{template="tableRowsThumbs" group="browse" app="gallery" params="$table, $headers, $rows"}
			</ol>

заменить на

			<div data-role='tableRows'>
            	{template="tableRowsThumbs" group="browse" app="gallery" params="$table, $headers, $rows"}
          	</div>

gallery / front / browse / tableRowsThumbs

добавить в начале шаблона

{{ $groupedImage = []; }}

{{foreach $images as $image}}
	{{ $groupedImages[$image->category_id][] = $image; }}
{{endforeach}}

{{foreach $groupedImages as $category_id => $grImages}}

	{{if \IPS\Request::i()->app == 'core'}}
		{{ $category_name = \IPS\Member::loggedIn()->language()->get( 'gallery_category_' . $category_id ); }}
       	<h3 class="htitle" data-category-id="{$category_id}">{$category_name}</h3>
	{{endif}}

	<ol class='ipsPad ipsList_reset ipsClear ipsGrid ipsGrid_collapsePhone ipsType_center cGalleryPatchwork_list' data-controller='gallery.front.browse.list' data-ipsPhotoLayout data-ipsPhotoLayout-itemTemplate='core.patchwork.imageList' data-ipsPhotoLayout-minHeight='400' id='elTable_{$table->uniqueId}_{$image->category_id}'>

заменить

{{foreach $images as $image}}

на

        {{foreach $grImages as $image}}

добавить в конце шаблона

	</ol>

{{endforeach}}

 

если ктото соберет это в плагин - будет супер, я скилом по их сборке не владею )

Корректно не получится собрать плагин, придется большие куски кода заменять целиком, т.к. дурацкая система IPS не позволяет заменять php вставки, такие как {{foreach $grImages as $image}}, или отдельно добавлять не парные html теги.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.