Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
siv1987

Сортировка элементов в таблице

Рекомендованные сообщения

Камрады, кто знает можно ли таблице типа \IPS\Helpers\Table\Db сделать пользовательскую сортировку элементов на подобие нодов?

Поделиться сообщением


Ссылка на сообщение

Теоритически можно.

Если не особо принципиально, как будет сделано, то я бы добавил кнопку для сортировки + метод с формой, где использовал \IPS\Helpers\Form\Sort

  • Like 1
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

С таблицой наверное только так. Либо Table заменить на \IPS\Helpers\Tree\Tree

Поделиться сообщением


Ссылка на сообщение

Сделал два варианта - с Table и Tree, посмотрим какой больше зайдет.

$tree = new \IPS\Helpers\Tree\Tree(
	$url,
	\IPS\Member::loggedIn()->language()->addToStack( 'menu__smsverification_gateways_manage' ),
	/* Get Roots */
	function() use ( $url )
	{
		$rows = array();
		
		foreach( \IPS\Db::i()->select( '*', 'smsverification_gateways', null, 'position ASC' ) as $row )
		{
			$url = $url->setQueryString( [ 'id' => $row['id'] ] );
		
			$rows[ $row['id'] ] = \IPS\Theme::i()->getTemplate( 'trees', 'core' )->row( $url, $row['id'], \IPS\Member::loggedIn()->language()->addToStack( 'smsgateway_'.$row['gateway'] ), FALSE, 
				array(
					'edit'	=> array(
						'icon'		=> 'pencil',
						'title'		=> 'edit',
						'link'		=> $url->setQueryString( array( 'do' => 'edit' ) ),
						'data' 		=> array( 
							'ipDialog' => '',
							'ipsDialog-title' => \IPS\Member::loggedIn()->language()->addToStack('edit') 
						),
					),
					'delete'	=> array(
						'icon'		=> 'times-circle',
						'title'		=> 'delete',
						'link'		=> $url->setQueryString( array( 'do' => 'delete' ) ),
						'data'		=> array( 'delete' => '' )
					),
				), null, null, $row['position'], NULL, TRUE );
		}
		
		return $rows;
	},
	/* Get Row */
	function( )
	{
		
	},
	/* Get Row's Parent ID */
	function()
	{
		return NULL;
	},
	/* Get Children */
	function( $key )
	{
		return NULL;
	},
	/* Get Root Buttons */
	function() 
	{
		return array(
			'add'	=> array(
				'icon'		=> 'plus',
				'title'		=> 'smsverify_new_gateway',
				'link'		=> \IPS\Http\Url::internal( "app=smsverification&module=gateways&controller=manage&do=add" ),
				'data'		=> array( 
					'ipsDialog' => '',
					'ipsDialog-title' => \IPS\Member::loggedIn()->language()->addToStack('smsverify_new_gateway_title') 
				)
			),
		);
	},
	FALSE,
	TRUE,
	TRUE
);

 

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...