J3.x

J3.x:Associações Multilingues/Programadores

From Joomla! Documentation

< J3.x:Multilingual Associations
This page is a translated version of the page J3.x:Multilingual Associations/Developers and the translation is 96% complete.
Other languages:
English • ‎Nederlands • ‎español • ‎français • ‎português • ‎中文(台灣)‎


Desenvolvedores/Programadores

Desenvolvedores/Programadores

Introdução

Se a sua extensão suportar associação e quiser que esteja disponível no Gestor de Associações, terá de desenvolver uma classe auxiliar (helper class).

Basicamente, terá de criar o ficheiro associations.php na directoria dos auxiliares de administrador do seu componente. Se o seu componente se chamar Exemplo a classe auxiliar dever-se-á chamar ExemploAssociationsHelper e esta classe irá ter que extender a classe JAssociationExtensionHelper.

Adicionar três variáveis protegidas

	/**
	 * The extension name
	 *
	 * @var     array   $extension
	 *
	 * @since   3.7.0
	 */
	protected $extension = 'com_example';

	/**
	 * Array of item types
	 *
	 * @var     array   $itemTypes
	 *
	 * @since   3.7.0
	 */
	protected $itemTypes = array('item');

	/**
	 * Has the extension association support
	 *
	 * @var     boolean   $associationsSupport
	 *
	 * @since   3.7.0
	 */
	protected $associationsSupport = true;


Adicionar três funções públicas

Método getAssociations

Esta função deverá devolver um array de items associados.

	/**
	 * Get the associated items for an item
	 *
	 * @param   string  $typeName  The item type
	 * @param   int     $id        The id of item for which we need the associated items
	 *
	 * @return  array
	 *
	 * @since   3.7.0
	 */
	public function getAssociations($typeName, $id)
	{
		// The code goes here.
	}

Método getItem

Esta função deverá devolver um objecto JTable para o tipo e id. Não esquecer de incluir algo como JTable::addIncludePath(__DIR__ . '/../tables'); para que a classe possa ser encontrada.

	/**
	 * Get item information
	 *
	 * @param   string  $typeName  The item type
	 * @param   int     $id        The id of item for which we need the associated items
	 *
	 * @return  JTable|null
	 *
	 * @since   3.7.0
	 */
	public function getItem($typeName, $id)
	{
		// The code goes here.
	}

Método getType

Esta função deverá devolver um array de tipos de item.

	/**
	 * Get information about the type
	 *
	 * @param   string  $typeName  The item type
	 *
	 * @return  array  Array of item types
	 *
	 * @since   3.7.0
	 */
	public function getType($typeName = '')
	{
		// The code goes here.
	}

Aqui poderá configurar a informação por tipo, a função devolve um array.

array(
	'fields'  => $fields,
	'support' => $support,
	'tables'  => $tables,
	'joins'   => $joins,
	'title'   => $title,
);

Para campos e suporte temos uma função modelo que define configurações padrão para que seja apenas necessário substituir o que é diferente na sua extensão. Por favor certifique-se de que $fields['title'] e $fields['state'] sejam definidos correctamente.

Exemplo de Implementação

Poderá encontrar um exemplo para integração de associações multilingues/multi-idioma num componente no github.

Para mais informação acerca da funcionalidade em si por favor dê uma vista de olhos no Pull Request para esta funcionalidade.

If you have problems implementing the side-by-side view in com̞_associations please have a look into the Github Issue.