Skip to content

Галерея: как отсортировать альбомы по названию альбома по умолчанию?

В настройках категории в админцентре нет опции сортировки альбомов по названию альбома:

e11c8d5eda8c.jpg

 

В настройках категории на фронте такая опция есть:

6a286759243e.jpg

 

Как сделать так, чтобы или в админцентре появилась такая же настройка, как на фронте, либо чтобы на фронте по умолчанию была сортировка по названию альбома, независимо от выбора в админцентре?

Edited by Zero108

Featured Replies

/applications/gallery/modules/front/gallery/browse.php

			$table->sortBy	= \IPS\Request::i()->sortby ? $table->sortBy : $album->_sortBy;

Заменить на:

			$table->sortBy  = \IPS\Request::i()->sortby ? $table->sortBy : 'image_caption';
		$table->sortDirection  = \IPS\Request::i()->sortdirection ? $table->sortDirection : 'asc';

  • Author

На работает. Сортирует по умолчанию по Newest Image (первая строка в сортировке на фронте).

Нужно, чтобы при открытии категории на фронте показывалась сортировка по имени альбома (Album Title). И при этом сортировка на фронте работала, то есть можно было бы сортировать дальше по своему жалению.

 

Также подскажите, пожалуйста, как сделать сортировку изображений в альбоме по titlу по принципу A-Z по умолчанию. В настоящее время если выбрать в настройках альбома сортировку по Title, то на фронте изображения сортируются по принципу Z-A. Если потом на фронте кликнуть в вып. списке на сортировку по Title, то сортировка становится A-Z.

Edited by Zero108

Там же, найти:

			/* Build table */
		$table = new \IPS\gallery\Image\Table( 'IPS\gallery\Image', $category->url(), array( array( 'image_album_id=?', 0 ) ), $category );
		$table->limit = 50;
		$table->tableTemplate = array( \IPS\Theme::i()->getTemplate( 'browse' ), 'imageTable' );
		$table->rowsTemplate = array( \IPS\Theme::i()->getTemplate( 'browse' ), $this->getTableRowsTemplate() );
		$table->title = \IPS\Member::loggedIn()->language()->pluralize( \IPS\Member::loggedIn()->language()->get('num_images'), array( $category->count_imgs ) );

Заменить на:

			/* Build table */
		$table = new \IPS\gallery\Image\Table( 'IPS\gallery\Image', $category->url(), array( array( 'image_album_id=?', 0 ) ), $category );
		$table->limit = 50;
		$table->sortBy  = \IPS\Request::i()->sortby ? $table->sortBy : 'image_caption';
		$table->sortDirection  = \IPS\Request::i()->sortdirection ? $table->sortDirection : 'asc';
		$table->tableTemplate = array( \IPS\Theme::i()->getTemplate( 'browse' ), 'imageTable' );
		$table->rowsTemplate = array( \IPS\Theme::i()->getTemplate( 'browse' ), $this->getTableRowsTemplate() );
		$table->title = \IPS\Member::loggedIn()->language()->pluralize( \IPS\Member::loggedIn()->language()->get('num_images'), array( $category->count_imgs ) );

Это сортировка картинок в категории.

 

Поправил то, что раньше написал, это касается как раз сортировки картинок в альбоме, т.е. это по второму Вашему вопросу ответ.

 

Сортировка альбомов - найти:

			$albums	= new \IPS\gallery\Album\Table( NULL, $category );
		$albums->title = 'albums';
		$albums->classes = array( 'ipsDataList_large' );
		$albums	= ( $category->hasAlbums() ) ? (string) $albums : NULL;

Заменить на:

			$albums	= new \IPS\gallery\Album\Table( NULL, $category );
		$albums->sortBy = \IPS\Request::i()->sortby ? $albums->sortBy : 'album_name';
		$albums->sortDirection  = \IPS\Request::i()->sortdirection ? $albums->sortDirection : 'asc';
		$albums->title = 'albums';
		$albums->classes = array( 'ipsDataList_large' );
		$albums	= ( $category->hasAlbums() ) ? (string) $albums : NULL;

Ещё, раз поправил. все три правки, переделайте. Они рабочие были, но я там дыру нарисовал. С новыми подходами ips к вопросам безопасности иногда просто голова кругом...

  • Author
Это сортировка картинок в категории.

 

Я не писал про сортировку картинок в категории. Я писал про сортировку альбомов в категории и про сортировку картинок в альбоме. :)

  • Author

Спасибо, все работает.

Create an account or sign in to comment

Account

Navigation

Search

Search

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.