私は、いくつかのテキストフィールドと画像を使用して、大部分のハローワールドチュートリアルに従って、joomla 用の単純な MVC コンポーネントを作成しています。
テキストフィールドは保存されますが、「ファイル」フィールドは保存されません。アイデアはありますか?
**Controller:**
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');
/**
* MJob Controller
*/
class MJobsControllerMJob extends JControllerForm
{
}
**Model:**
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla modelform library
jimport('joomla.application.component.modeladmin');
class MJobsModelMJob extends JModelAdmin
{
public function getTable($type = 'MJob', $prefix = 'MJobsTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
public function getForm($data = array(), $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_mjobs.mjob', 'mjob', array('control' => 'jform', 'load_data' => $loadData));
if (empty($form))
{
return false;
}
return $form;
}
protected function loadFormData()
{
// Check the session for previously entered form data.
$data = JFactory::getApplication()->getUserState('com_mjobs.edit.mjob.data', array());
if (empty($data))
{
$data = $this->getItem();
}
return $data;
}
}
**view.html.php:**
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// import Joomla view library
jimport('joomla.application.component.view');
class MJobsViewMJob extends JView
{
public function display($tpl = null)
{
// get the Data
$form = $this->get('Form');
$item = $this->get('Item');
// Check for errors.
if (count($errors = $this->get('Errors')))
{
JError::raiseError(500, implode('<br />', $errors));
return false;
}
// Assign the Data
$this->form = $form;
$this->item = $item;
// Set the toolbar
$this->addToolBar();
// Display the template
parent::display($tpl);
}
protected function addToolBar()
{
JRequest::setVar('hidemainmenu', true);
$isNew = ($this->item->id == 0);
JToolBarHelper::title($isNew ? JText::_('COM_MJOBS_MANAGER_MJOB_NEW') : JText::_('COM_MJOBS_MANAGER_MJOB_EDIT'));
JToolBarHelper::apply('mjob.apply');
JToolBarHelper::save('mjob.save');
JToolBarHelper::save2new('mjob.save2new');
JToolBarHelper::cancel('mjob.cancel', $isNew ? 'JTOOLBAR_CANCEL' : 'JTOOLBAR_CLOSE');
}
}
**VIEW (tmpl/edit.php):**
<?php
// No direct access
defined('_JEXEC') or die('Restricted access');
JHtml::_('behavior.tooltip');
echo "<b>MJOB EDIT START</b><br>";
?>
<form action="<?php echo JRoute::_('index.php?option=com_mjobs&layout=edit&id='.(int) $this->item->id); ?>"
method="post" enctype="multipart/form-data" name="adminForm" id="mjob-form">
<fieldset class="adminform">
<legend><?php echo JText::_( 'COM_MJOBS_MJOB_DETAILS' ); ?></legend>
<ul class="adminformlist">
<?php foreach($this->form->getFieldset('details') as $field): ?>
<li><?php echo $field->label;echo $field->input;?></li>
<?php endforeach; ?>
</ul>
</fieldset>
<div>
<input type="hidden" name="task" value="mjob.edit" />
<?php echo JHtml::_('form.token'); ?>
</div>
</form>