Statistiques

Compteur d'affichages des articles
1095560

6-Gestion des auteursLogo Joomla 2.5

 Pour gérer les auteurs de leur coté, il est nécessaire d'ajouter dans la partie administration les fichiers d'un composant standard.

administrator\components\com_livres\controllers\auteur.php
administrator\components\com_livres\controllers\auteurs.php
administrator\components\com_livres\models\auteur.php
administrator\components\com_livres\models\auteurs.php
administrator\components\com_livres\models\fields\modal\auteur.php
administrator\components\com_livres\models\forms\auteur.xml
administrator\components\com_livres\tables\auteur.php
administrator\components\com_livres\views\auteur
administrator\components\com_livres\views\auteurs
administrator\components\com_livres\views\auteur\index.html
administrator\components\com_livres\views\auteur\tmpl
administrator\components\com_livres\views\auteur\view.html.php
administrator\components\com_livres\views\auteur\tmpl\edit.php
administrator\components\com_livres\views\auteur\tmpl\edit_custom_fields.php
administrator\components\com_livres\views\auteur\tmpl\edit_metadata.php
administrator\components\com_livres\views\auteur\tmpl\edit_parameters.php
administrator\components\com_livres\views\auteur\tmpl\edit_publishing.php
administrator\components\com_livres\views\auteur\tmpl\index.html
administrator\components\com_livres\views\auteurs\index.html
administrator\components\com_livres\views\auteurs\tmpl
administrator\components\com_livres\views\auteurs\view.html.php
administrator\components\com_livres\views\auteurs\tmpl\default.php
administrator\components\com_livres\views\auteurs\tmpl\default_batch.php
administrator\components\com_livres\views\auteurs\tmpl\index.html
administrator\components\com_livres\views\auteurs\tmpl\modal.php

Il faudra aussi modifier:

administrator\components\com_livres\helpers\livres.php

Pour ne pas nous compliquer la vie, nous allons copier les répertoires et fichiers du composant Livres et les renommer soit en auteur soit en auteurs. Ce qui nous donne : 

administrator\components\com_livres\access.xml
administrator\components\com_livres\config.xml
administrator\components\com_livres\controller.php
administrator\components\com_livres\controllers
administrator\components\com_livres\fichiers.txt
administrator\components\com_livres\helpers
administrator\components\com_livres\index.html
administrator\components\com_livres\language
administrator\components\com_livres\livres.php
administrator\components\com_livres\livres.xml
administrator\components\com_livres\models
administrator\components\com_livres\sql
administrator\components\com_livres\tables
administrator\components\com_livres\views
administrator\components\com_livres\controllers\auteur.php
administrator\components\com_livres\controllers\auteurs.php
administrator\components\com_livres\controllers\index.html
administrator\components\com_livres\controllers\livre.php
administrator\components\com_livres\controllers\livres.php
administrator\components\com_livres\helpers\index.html
administrator\components\com_livres\helpers\livres.php
administrator\components\com_livres\language\da-DK
administrator\components\com_livres\language\en-GB
administrator\components\com_livres\language\es-ES
administrator\components\com_livres\language\index.html
administrator\components\com_livres\language\pt-BR
administrator\components\com_livres\language\sv-SE
administrator\components\com_livres\language\da-DK\da-DK.com_livres.ini
administrator\components\com_livres\language\da-DK\da-DK.com_livres.sys.ini
administrator\components\com_livres\language\da-DK\index.html
administrator\components\com_livres\language\en-GB\en-GB.com_livres.ini
administrator\components\com_livres\language\en-GB\en-GB.com_livres.sys.ini
administrator\components\com_livres\language\en-GB\index.html
administrator\components\com_livres\language\es-ES\es-ES.com_livres.ini
administrator\components\com_livres\language\es-ES\es-ES.com_livres.sys.ini
administrator\components\com_livres\language\es-ES\index.html
administrator\components\com_livres\language\pt-BR\index.html
administrator\components\com_livres\language\pt-BR\pt-BR.com_livres.ini
administrator\components\com_livres\language\pt-BR\pt-BR.com_livres.sys.ini
administrator\components\com_livres\language\sv-SE\index.html
administrator\components\com_livres\language\sv-SE\sv-SE.com_livres.ini
administrator\components\com_livres\language\sv-SE\sv-SE.com_livres.sys.ini
administrator\components\com_livres\models\auteur.php
administrator\components\com_livres\models\auteurs.php
administrator\components\com_livres\models\fields
administrator\components\com_livres\models\forms
administrator\components\com_livres\models\index.html
administrator\components\com_livres\models\livre.php
administrator\components\com_livres\models\livres.php
administrator\components\com_livres\models\fields\filters.php
administrator\components\com_livres\models\fields\index.html
administrator\components\com_livres\models\fields\modal
administrator\components\com_livres\models\fields\modal\auteur.php
administrator\components\com_livres\models\fields\modal\index.html
administrator\components\com_livres\models\fields\modal\livre.php
administrator\components\com_livres\models\forms\auteur.xml
administrator\components\com_livres\models\forms\index.html
administrator\components\com_livres\models\forms\livre.xml
administrator\components\com_livres\sql\index.html
administrator\components\com_livres\sql\install.mysql.utf8.sql
administrator\components\com_livres\sql\uninstall.mysql.utf8.sql
administrator\components\com_livres\tables\auteur.php
administrator\components\com_livres\tables\index.html
administrator\components\com_livres\tables\livre.php
administrator\components\com_livres\views\auteur
administrator\components\com_livres\views\auteurs
administrator\components\com_livres\views\livre
administrator\components\com_livres\views\livres
administrator\components\com_livres\views\auteur\index.html
administrator\components\com_livres\views\auteur\tmpl
administrator\components\com_livres\views\auteur\view.html.php
administrator\components\com_livres\views\auteur\tmpl\edit.php
administrator\components\com_livres\views\auteur\tmpl\edit_custom_fields.php
administrator\components\com_livres\views\auteur\tmpl\edit_metadata.php
administrator\components\com_livres\views\auteur\tmpl\edit_parameters.php
administrator\components\com_livres\views\auteur\tmpl\edit_publishing.php
administrator\components\com_livres\views\auteur\tmpl\index.html
administrator\components\com_livres\views\auteurs\index.html
administrator\components\com_livres\views\auteurs\tmpl
administrator\components\com_livres\views\auteurs\view.html.php
administrator\components\com_livres\views\auteurs\tmpl\default.php
administrator\components\com_livres\views\auteurs\tmpl\default_batch.php
administrator\components\com_livres\views\auteurs\tmpl\index.html
administrator\components\com_livres\views\auteurs\tmpl\modal.php
administrator\components\com_livres\views\livre\index.html
administrator\components\com_livres\views\livre\tmpl
administrator\components\com_livres\views\livre\view.html.php
administrator\components\com_livres\views\livre\tmpl\edit.php
administrator\components\com_livres\views\livre\tmpl\edit_custom_fields.php
administrator\components\com_livres\views\livre\tmpl\edit_metadata.php
administrator\components\com_livres\views\livre\tmpl\edit_parameters.php
administrator\components\com_livres\views\livre\tmpl\edit_publishing.php
administrator\components\com_livres\views\livre\tmpl\index.html
administrator\components\com_livres\views\livres\index.html
administrator\components\com_livres\views\livres\tmpl
administrator\components\com_livres\views\livres\view.html.php
administrator\components\com_livres\views\livres\tmpl\default.php
administrator\components\com_livres\views\livres\tmpl\default_batch.php
administrator\components\com_livres\views\livres\tmpl\index.html
administrator\components\com_livres\views\livres\tmpl\modal.php

 

7-Modifications des fichiers

administrator\components\com_livres\controllers\auteur.php

ligne 17 : 

class LivresControllerLivre extends JControllerForm

 ==> 

class LivresControllerAuteur extends JControllerForm

ligne 78 :

 if ($user->authorise('core.edit', 'com_livres.livre.'.$recordId)) {

 =>

 if ($user->authorise('core.edit', 'com_livres.auteur.'.$recordId)) {

ligne 84 :

 if ($user->authorise('core.edit.own', 'com_livres.livre.'.$recordId)) {

 ==>

 if ($user->authorise('core.edit.own', 'com_livres.auteur.'.$recordId)) {

ligne 119 : 

$model = $this->getModel('Livre', '', array());

 ==> 

$model = $this->getModel('Auteur', '', array());

ligne 122 :

 $this->setRedirect(JRoute::_('index.php?option=com_livres&view=livres'.
$this->getRedirectToListAppend(), false));

==>

 $this->setRedirect(JRoute::_('index.php?option=com_livres&view=auteurs'.
$this->getRedirectToListAppend(), false));


administrator\components\com_livres\controllers\auteurs.php

ligne 19 :

 class LivresControllerLivres extends JControllerAdmin

 ==> 

class LivresControllerAuteurs extends JControllerAdmin

ligne 43 : 

public function getModel($name = 'Livre', $prefix = 'LivresModel', $config = array('ignore_request' => true))

==> 

public function getModel($name = 'Auteur', $prefix = 'LivresModel', $config = array('ignore_request' => true))


administrator\components\com_livres\models\auteur.php

 ligne 21 :

 class LivresModelLivre extends JModelAdmin

 ==> 

class LivresModelAuteur extends JModelAdmin

ligne 44 : 

return $user->authorise('core.delete', 'com_livres.livre.'.(int) $record->id);

==> 

return $user->authorise('core.delete', 'com_livres.auteur.'.(int) $record->id);

ligne 62 : 

return $user->authorise('core.edit.state', 'com_livres.livre.'.(int) $record->id);

==> 

return $user->authorise('core.edit.state', 'com_livres.auteur.'.(int) $record->id);

ligne 107: 

public function getTable($type = 'Livre', $prefix = 'LivresTable', $config = array())

==>

 public function getTable($type = 'Auteur', $prefix = 'LivresTable', $config = array())

ligne 151 :

 $form = $this->loadForm('com_livres.livre', 'livre', array('control' => 'jform', 'load_data' => $loadData));

==>

 $form = $this->loadForm('com_livres.auteur', 'auteur', array('control' => 'jform', 'load_data' => $loadData));

ligne 158 :

 if ($id = (int) $this->getState('livre.id')) { ==> if ($id = (int) $this->getState('auteur.id')) {

ligne 197 : 

$data = JFactory::getApplication()->getUserState('com_livres.edit.livre.data', array());

==> 

$data = JFactory::getApplication()->getUserState('com_livres.edit.auteur.data', array());

ligne 203 :

 if ($this->getState('livre.id') == 0) { ==> if ($this->getState('auteur.id') == 0) {

ligne 205 : 

$data->set('catid', JRequest::getInt('catid', $app->getUserState('com_livres.livres.filter.category_id')));

==> 

$data->set('catid', JRequest::getInt('catid', $app->getUserState('com_livres.auteurs.filter.category_id')));

administrator\components\com_livres\models\auteurs.php

ligne 18 :

 class LivresModelLivres extends JModelList

 ==> 

class LivresModelAuteurs extends JModelList

ligne 140 : 

$query->from('#__livres AS a');

 ==> 

$query->from('#__auteurs AS a');

ligne 240 :

 $query->join('INNER', '#__livres AS c ON c.created_by = u.id');

 ==> 

$query->join('INNER', '#__auteurs AS c ON c.created_by = u.id');

 administrator\components\com_livres\models\fields\modal\auteur.php

 ligne 19 :

 class JFormFieldModal_Livre extends JFormField

 ==> 

class JFormFieldModal_Auteur extends JFormField

ligne 27 : 

protected $type = 'Modal_Livre';

 ==> 

protected $type = 'Modal_Auteur';

ligne 42 :

 $script[] = ' function jSelectLivre_'.$this->id.'(id, title, catid, object) {';

 ==> 

$script[] = ' function jSelectAuteur_'.$this->id.'(id, title, catid, object) {';

ligne 53 : 

$link = 'index.php?option=com_livres&view=livres&layout=modal&tmpl=component&function=jSelectLivre_'.$this->id;

==> 

$link = 'index.php?option=com_livres&view=auteurs&layout=modal&tmpl=component&function=jSelectAuteur_'.$this->id;

ligne 58 : 

$query->from($db->quoteName('#__livres'));

 ==> 

$query->from($db->quoteName('#__auteurs'));

ligne 68 :

 $title = JText::_('COM_LIVRES_SELECT_AN_LIVRE');

 ==> 

$title = JText::_('COM_LIVRES_SELECT_AN_AUTEUR');

ligne 80 : 

$html[] = ' <a class="modal" title="'.JText::_('COM_LIVRES_CHANGE_LIVRE').'" href="'.$link.'" rel="{handler: \'iframe\', size: {x: 800, y: 450}}">'.JText::_('COM_LIVRES_CHANGE_LIVRE_BUTTON').'</a>';

==> 

$html[] = ' <a class="modal" title="'.JText::_('COM_LIVRES_CHANGE_AUTEUR').'" href="'.$link.'" rel="{handler: \'iframe\', size: {x: 800, y: 450}}">'.JText::_('COM_LIVRES_CHANGE_AUTEUR_BUTTON').'</a>';

administrator\components\com_livres\models\forms\auteur.xml

 Rien à changer

administrator\components\com_livres\tables\auteur.php

ligne 13 : 

class LivresTableLivre extends JTable

 ==> 

class LivresTableAuteur extends JTable

ligne 26 : 

parent::__construct('#__livres', 'id', $db);

 ==>

 parent::__construct('#__auteurs', 'id', $db);

ligne 149 : 

$table = JTable::getInstance('Livre','LivresTable');

 ==> 

$table = JTable::getInstance('Auteur','LivresTable');

 administrator\components\com_livres\views\auteur\view.html.php

 ligne 19 : 

class LivresViewLivre extends JView

 ==>

 class LivresViewAuteur extends JView

ligne 60 :

 JToolBarHelper::title(JText::_('COM_LIVRES_PAGE_'.($checkedOut ? 'VIEW_LIVRE' : ($isNew ? 'ADD_LIVRE' : 'EDIT_LIVRE'))), 'livre-add.png');

==>

 JToolBarHelper::title(JText::_('COM_LIVRES_PAGE_'.($checkedOut ? 'VIEW_AUTEUR' : ($isNew ? 'ADD_AUTEUR' : 'EDIT_AUTEUR'))), 'livre-add.png');

lignes 66 à 69 : 

JToolBarHelper::apply('livre.apply');
JToolBarHelper::save('livre.save');
JToolBarHelper::save2new('livre.save2new');
JToolBarHelper::cancel('livre.cancel');

==> 

JToolBarHelper::apply('auteur.apply');
JToolBarHelper::save('auteur.save');
JToolBarHelper::save2new('auteur.save2new');
JToolBarHelper::cancel('auteur.cancel');

lignes 76 et 77 : 

JToolBarHelper::apply('livre.apply');
JToolBarHelper::save('livre.save');

==>

JToolBarHelper::apply('auteur.apply');
JToolBarHelper::save('auteur.save');

ligne 81 : 

JToolBarHelper::save2new('livre.save2new'); 

==>

 JToolBarHelper::save2new('auteur.save2new');

ligne 88 :

 JToolBarHelper::save2copy('livre.save2copy');

 ==> 

JToolBarHelper::save2copy('auteur.save2copy');

ligne 91 : 

JToolBarHelper::cancel('livre.cancel', 'JTOOLBAR_CLOSE');

 ==>

 JToolBarHelper::cancel('auteur.cancel', 'JTOOLBAR_CLOSE');

administrator\components\com_livres\views\auteur\tmpl\edit.php

 ligne 24 :

 if (task == 'livre.cancel' || document.formvalidator.isValid(document.id('item-form'))) {

==>

 if (task == 'auteur.cancel' || document.formvalidator.isValid(document.id('item-form'))) {

ligne 36 :

 <legend><?php echo empty($this->item->id) ? JText::_('COM_LIVRES_NEW_LIVRE') : JText::sprintf('COM_LIVRES_EDIT_LIVRE', $this->item->id); ?></legend>

==> 

<legend><?php echo empty($this->item->id) ? JText::_('COM_LIVRES_NEW_AUTEUR') : JText::sprintf('COM_LIVRES_EDIT_AUTEUR', $this->item->id); ?></legend>

administrator\components\com_livres\views\auteur\tmpl\edit_custom_fields.php

 Rien à changer

administrator\components\com_livres\views\auteur\tmpl\edit_metadata.php

 Rien à changer

administrator\components\com_livres\views\auteur\tmpl\edit_parameters.php

 Rien à changer 

administrator\components\com_livres\views\auteur\tmpl\edit_publishing.php

 Rien à changer

administrator\components\com_livres\views\auteurs\view.html.php

ligne 19 : 

class LivresViewLivres extends JView

 ==> 

class LivresViewAuteurs extends JView

ligne 53 : 

JToolBarHelper::title(JText::_('COM_LIVRES_LIVRES_TITLE'), 'livre.png');

 ==> 

JToolBarHelper::title(JText::_('COM_LIVRES_AUTEURS_TITLE'), 'livre.png');

ligne 57 :

 JToolBarHelper::addNew('livre.add');

 ==> 

JToolBarHelper::addNew('auteur.add');

ligne 62 :

 JToolBarHelper::editList('livre.edit');

 ==> 

JToolBarHelper::editList('auteur.edit');

lignes 67 à 70 :

JToolBarHelper::publish('livres.publish', 'JTOOLBAR_PUBLISH', true);
JToolBarHelper::unpublish('livres.unpublish', 'JTOOLBAR_UNPUBLISH', true);
JToolBarHelper::divider();
JToolBarHelper::checkin('livres.checkin');

==>

JToolBarHelper::publish('auteurs.publish', 'JTOOLBAR_PUBLISH', true);
JToolBarHelper::unpublish('auteurs.unpublish', 'JTOOLBAR_UNPUBLISH', true);
JToolBarHelper::divider();
JToolBarHelper::checkin('auteurs.checkin');

ligne 75 :

 JToolBarHelper::deleteList('', 'livres.delete','JTOOLBAR_EMPTY_TRASH');

 ==> 

JToolBarHelper::deleteList('', 'auteurs.delete','JTOOLBAR_EMPTY_TRASH');

ligne 79 :

 JToolBarHelper::trash('livres.trash');

 ==>

 JToolBarHelper::trash('auteurs.trash');

administrator\components\com_livres\views\auteurs\tmpl\default.php

 ligne 24 : 

<form action="<?php echo JRoute::_('index.php?option=com_livres&view=livres');?>" method="post" name="adminForm" id="adminForm">

==> 

<form action="<?php echo JRoute::_('index.php?option=com_livres&view=auteurs');?>" method="post" name="adminForm" id="adminForm">

ligne 76 : 

<?php echo JHtml::_('grid.order', $this->items, 'filesave.png', 'livres.saveorder'); ?> 

==> 

<?php echo JHtml::_('grid.order', $this->items, 'filesave.png', 'auteurs.saveorder'); ?>

ligne 104 : 

$canEdit = $user->authorise('core.edit', 'com_livres.livre.'.$item->id);

 ==>

 $canEdit = $user->authorise('core.edit', 'com_livres.auteur.'.$item->id);

ligne 106 et 107 : 

$canEditOwn = $user->authorise('core.edit.own', 'com_livres.livre.'.$item->id) && $item->created_by == $userId;
$canChange = $user->authorise('core.edit.state', 'com_livres.livre.'.$item->id) && $canCheckin;

==> 

$canEditOwn = $user->authorise('core.edit.own', 'com_livres.auteur.'.$item->id) && $item->created_by == $userId;
$canChange = $user->authorise('core.edit.state', 'com_livres.auteur.'.$item->id) && $canCheckin;

ligne 115 : 

<?php echo JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, 'livres.', $canCheckin); ?>

==> 

<?php echo JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, 'auteurs.', $canCheckin); ?>

ligne 118 : 

<a href="/<?php echo JRoute::_('index.php?option=com_livres&task=livre.edit&id='.$item->id);?>">

==> 

<a href="/<?php echo JRoute::_('index.php?option=com_livres&task=auteur.edit&id='.$item->id);?>">

ligne 127 : 

<?php echo JHtml::_('jgrid.published', $item->state, $i, 'livres.', $canChange, 'cb', $item->publish_up, $item->publish_down); ?>

==> 

<?php echo JHtml::_('jgrid.published', $item->state, $i, 'auteurs.', $canChange, 'cb', $item->publish_up, $item->publish_down); ?>

lignes 135 à 141 :

<?php if ($listDirn == 'asc') : ?>
<span><?php echo $this->pagination->orderUpIcon($i, ($item->catid == @$this->items[$i-1]->catid), 'livres.orderup', 'JLIB_HTML_MOVE_UP', $ordering); ?></span>
<span><?php echo $this->pagination->orderDownIcon($i, $this->pagination->total, ($item->catid == @$this->items[$i+1]->catid), 'livres.orderdown', 'JLIB_HTML_MOVE_DOWN', $ordering); ?></span>
<?php elseif ($listDirn == 'desc') : ?>
<span><?php echo $this->pagination->orderUpIcon($i, ($item->catid == @$this->items[$i-1]->catid), 'livres.orderdown', 'JLIB_HTML_MOVE_UP', $ordering); ?></span>
<span><?php echo $this->pagination->orderDownIcon($i, $this->pagination->total, ($item->catid == @$this->items[$i+1]->catid), 'livres.orderup', 'JLIB_HTML_MOVE_DOWN', $ordering); ?></span>
<?php endif; ?>

==>

<?php if ($listDirn == 'asc') : ?>
<span><?php echo $this->pagination->orderUpIcon($i, ($item->catid == @$this->items[$i-1]->catid), 'auteurs.orderup', 'JLIB_HTML_MOVE_UP', $ordering); ?></span>
<span><?php echo $this->pagination->orderDownIcon($i, $this->pagination->total, ($item->catid == @$this->items[$i+1]->catid), 'auteurs.orderdown', 'JLIB_HTML_MOVE_DOWN', $ordering); ?></span>
<?php elseif ($listDirn == 'desc') : ?>
<span><?php echo $this->pagination->orderUpIcon($i, ($item->catid == @$this->items[$i-1]->catid), 'auteurs.orderdown', 'JLIB_HTML_MOVE_UP', $ordering); ?></span>
<span><?php echo $this->pagination->orderDownIcon($i, $this->pagination->total, ($item->catid == @$this->items[$i+1]->catid), 'auteurs.orderup', 'JLIB_HTML_MOVE_DOWN', $ordering); ?></span>
<?php endif; ?>

administrator\components\com_livres\views\auteurs\tmpl\default_batch.php

 Rien à changer

administrator\components\com_livres\views\auteurs\tmpl\modal.php

ligne 13 :

 $function = JRequest::getCmd('function', 'jSelectLivre'); 

==> 

$function = JRequest::getCmd('function', 'jSelectAuteur');

ligne 17 : 

<form action="<?php echo JRoute::_('index.php?option=com_livres&view=livres&layout=modal&tmpl=component&function='.$function);?>" method="post" name="adminForm" id="adminForm">

==> 

<form action="<?php echo JRoute::_('index.php?option=com_livres&view=auteurs&layout=modal&tmpl=component&function='.$function);?>" method="post" name="adminForm" id="adminForm">

 administrator\components\com_livres\helpers\livres.php

ajouter à partir de la ligne 34 :

JSubMenuHelper::addEntry(
JText::_('COM_LIVRES_SUBMENU_AUTEURS'),
'index.php?option=com_livres&view=auteurs',
$vName == 'auteurs');

 Comme je n'ai pas créer de fichier de langue française, j'utilise les fichiers anglais.

administrator\components\com_livres\language\en-GB\en-GB.com_livres.ini

Ajouter les définitions suivantes :

COM_LIVRES_SUBMENU_AUTEURS="Auteurs"

COM_LIVRES_AUTEURS_TITLE="Auteurs"

COM_LIVRES_PAGE_ADD_AUTEUR="Ajouter un auteur"

COM_LIVRES_NEW_AUTEUR="Nouveau"

COM_LIVRES_EDIT_AUTEUR="Edition"

COM_LIVRES_PAGE_EDIT_AUTEUR="Edition de l'auteur"

 

Nous avons maintenant la possibilité de gérer les livres et les auteurs dans notre interface d'administration.

Nous passerons à la pratique dans le prochain article.