In-Portal Developers Guide

This is a wiki-based Developers Guide for In-Portal Open Source CMS. The purpose of this guide is to provide advanced users, web developers and programmers with documentation on how to expand, customize and improve the functionality and the code the In-Portal software. Please consider contributing to our documentation writing effort.

K4:Список с вкладками

From In-Portal Developers Guide

Revision as of 16:12, 28 February 2009 by Root (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search
Работа со списками Работа со списками
Статьи в этой категории

Список с вкладками - распространённый элемент в K4. Например, в In-Commerce это список заказов (orders). В In-Auction это списки Listings и журнал запросов к eBay. Данные для нескольких вкладок берутся из одной и той же основной таблицы. Отличаются лишь некоторые настройки:

  • фильтры
  • набор отображаемых полей
  • кнопки на панели инструментов

Так как вкладки получаются очень похожими, то рекомендуется для них всех использовать по сути один и тот же шаблон. То есть, на каждую вкладку делается отдельный шаблон, состоящий лишь из одной строки. Например:

<inp2:m_include t="in-auction/listings/listing_list" special="failed" grid="Failed"/>

Где t - общий для всех вкладок шаблон. При этом в параметрах передаются special и название списка (ключ в опции Grids в Unit Configs). Переменный special позволяет задать для каждого списка свои фильтры в методе SetCustomQuery соответствующего event handler-а. Для каждого значения переменной grid в unit config можно задать свой набор отображаемых полей. Если на разных вкладках нужны разные кнопки на панели инструментов, то это можно сделать, применив в общем шаблоне проверку значения special. Например:

<inp2:m_if check="m_Param" name="special" equals_to="completed|failed|sold|unsold">
	a_toolbar.AddButton(
		new ToolBarButton(
			'archive',
			'<inp2:m_phrase label="la_ToolTip_Archive" escape="1"/>',
			function() {
				submit_event('l-ebay.<inp2:m_Param name="special"/>', 'OnArchive');
			}
		)
	);
</inp2:m_if>