Форум русской поддержки Joomla!® CMS
04.12.2016, 16:16:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как автоматизировать процесс работы с таблицами?

 (Прочитано 116 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ferum1
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 49


« : 29.08.2016, 22:43:54 »

Приветсвую, коллеги!
Хочу создать приложение на Joomla, в этом приложении много таблиц. Таблиц много, но они похожи между собой, отличие только в названиях таблиц и их колонок, типы данных одинаковы. По существу необходимо писать однотипный код для работы с каждой таблицей (создать запись удалить и т.д.), можно ли написать универсальный код в котором бы менялось только название таблиц и столбцов?
Записан
alae
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 33


webalan.ru


« Ответ #1 : 30.08.2016, 02:12:00 »

Можно
передавать переменную название таблицы - а все остальное оставить как есть
в контроллер вынести из системных файлов сохранение, удаление и прочее
и там передавать переменную

пример удаления
переменная $kat = JRequest::getInt('kat'); = это будет номер таблицы


   public function delete()
   {
      
      // Check for request forgeries
      JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
          $kat = JRequest::getInt('kat');
      // Get items to remove from the request.
      $cid = JFactory::getApplication()->input->get('cid', array(), 'array');

      if (!is_array($cid) || count($cid) < 1)
      {
         JLog::add(JText::_($this->text_prefix . '_NO_ITEM_SELECTED'), JLog::WARNING, 'jerror');
      }
      else
      {
         // Get the model.
         $model = $this->getModel();

         // Make sure the item ids are integers
         jimport('joomla.utilities.arrayhelper');
         JArrayHelper::toInteger($cid);

         // Remove the items.
         if ($model->delete($cid))
         {
            $this->setMessage(JText::plural($this->text_prefix . '_N_ITEMS_DELETED', count($cid)));
         }
         else
         {
            $this->setMessage($model->getError(), 'error');
         }

         // Invoke the postDelete method to allow for the child class to access the model.
         $this->postDeleteHook($model, $cid);
      }

      $this->setRedirect(JRoute::_('index.php?option=' . $this->option . '&view=' . $this->view_list.'&kat='.$kat, false));
   }


пример таблицы
<?php
 
defined('_JEXEC') or die('Restricted access');

jimport('joomla.filter.input');

class Tableorder extends JTable
{
   function __construct(& $db) {
      $kat = JRequest::getInt('kat',1);
       
       
      parent::__construct('#__xxx_order'.$kat, 'id', $db);
   }
 
}
?>
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet