J3.x

J3.x:Associações Multilingues/Programadores

< J3.x:Multilingual Associations
This page is a translated version of the page J3.x:Multilingual Associations/Developers and the translation is 100% complete.

Other languages:
English • ‎español • ‎français • ‎Nederlands • ‎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.

Advertisement