Bonjour.
Je suis encore en apprentissage dans la création de composants Joomla. Je suis en train de développer un composant de slideshow. Le composant requiert seulement la partie backend. J'ai 2 tables: slides et categories.
Mon problème est que dans l'espace d'administration de Joomla, lorsque je clique sur "Nouveau" pour créer un nouveau slide, le formulaire ne s'affiche pas.
Voici la vue par défaut:
Et voici celle qui s'affiche lorsque je clique sur "Nouveau":
controller.php
controllers/slides.php
views/slide/view.html.php
views/slide/tmpl/form.php
Je suis encore en apprentissage dans la création de composants Joomla. Je suis en train de développer un composant de slideshow. Le composant requiert seulement la partie backend. J'ai 2 tables: slides et categories.
Mon problème est que dans l'espace d'administration de Joomla, lorsque je clique sur "Nouveau" pour créer un nouveau slide, le formulaire ne s'affiche pas.
Voici la vue par défaut:
Et voici celle qui s'affiche lorsque je clique sur "Nouveau":
controller.php
Code PHP:
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.controller');
class SkitterController extends JController
{
function display()
{
$view =& $this->getView('slides', 'html');
$model =& $this->getModel('slides');
$view->setModel($model, true);
$view->display();
}
}
Code PHP:
defined( '_JEXEC' ) or die( 'Restricted access' );
class SkitterControllerSlides extends SkitterController
{
/**
* constructor (registers additional tasks to methods)
* @return void
*/
function __construct()
{
parent::__construct();
$this->registerTask('add', 'edit');
}
/**
* display the edit form
* @return void
*/
function edit()
{
JRequest::setVar( 'view', 'slide' );
JRequest::setVar( 'layout', 'form' );
JRequest::setVar('hidemainmenu', 1);
parent::display();
}
/**
* save a record (and redirect to main page)
* @return void
*/
function save()
{
$model = $this->getModel('slide');
if ($model->store($post)) {
$msg = JText::_( 'Slide Saved!' );
} else {
$msg = JText::_( 'Error Saving Slide' );
}
// Check the table in so it can be edited.... we are done with it anyway
$link = 'index.php?option=com_skitter';
$this->setRedirect($link, $msg);
}
/**
* remove record(s)
* @return void
*/
function remove()
{
$model = $this->getModel('slide');
if(!$model->delete()) {
$msg = JText::_( 'Error: One or More Slides Could not be Deleted' );
} else {
$msg = JText::_( 'Slide(s) Deleted' );
}
$this->setRedirect( 'index.php?option=com_skitter', $msg );
}
/**
* cancel editing a record
* @return void
*/
function cancel()
{
$msg = JText::_( 'Operation Cancelled' );
$this->setRedirect( 'index.php?option=com_skitter', $msg );
}
}
Code PHP:
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.view');
class SkitterViewSlide extends JView
{
function display($tpl = null)
{
$slide =& $this->get('Data');
$isNew = ($slide->id < 1);
$text = $isNew ? JText::_('New') : JText::_('Edit');
JToolBarHelper::title(JText::_('Slide').': <small>[ ' . $text . ' ]</small>');
JToolBarHelper::save();
if ($isNew) {
JToolBarHelper::cancel();
} else {
// for existing items the button is renamed `close`
JToolBarHelper::cancel('cancel', 'Close');
}
$this->assignRef('slide', $slide);
parent::display($tpl);
}
}
Code PHP:
<?php defined('_JEXEC') or die('Restricted access'); ?>
<form action="index.php" method="post" name="adminForm" id="adminForm">
<div class="col100">
<fieldset class="adminform">
<legend><?php echo JText::_( 'Details' ); ?></legend>
<table class="admintable">
<tr>
<td width="100" align="right" class="key">
<label for="greeting">
<?php echo JText::_( 'Label' ); ?>:
</label>
</td>
<td>
<input class="text_area" type="text" name="label" size="32" maxlength="250" value="<?php echo $this->slide->label;?>" />
</td>
</tr>
</table>
</fieldset>
</div>
<div class="clr"></div>
<input type="hidden" name="option" value="com_skitter" />
<input type="hidden" name="id" value="<?php echo $this->slide->id; ?>" />
<input type="hidden" name="task" value="" />
<input type="hidden" name="controller" value="slides" />
</form>
Commentaire