. */ use Alledia\OSMap\Factory; use Joomla\CMS\MVC\Model\AdminModel; use Joomla\CMS\Table\Table; defined('_JEXEC') or die(); class OSMapModelSitemap extends AdminModel { /** * @inheritDoc */ public function getTable($name = 'Sitemap', $prefix = 'OSMapTable', $options = []) { return Table::getInstance($name, $prefix, $options); } /** * @inheritDoc */ public function getForm($data = [], $loadData = true) { $form = $this->loadForm('com_osmap.sitemap', 'sitemap', ['control' => 'jform', 'load_data' => $loadData]); if (empty($form)) { return false; } return $form; } /** * @inheritDoc */ protected function loadFormData() { $data = Factory::getApplication()->getUserState('com_osmap.edit.sitemap.data', []); if (empty($data)) { $data = $this->getItem(); // Load some defaults for new sitemap $id = $data->get('id'); if (empty($id)) { $data->set('published', 1); $data->set('created', Factory::getDate()->toSql()); } // Load the menus if ($id) { $db = Factory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from('#__osmap_sitemap_menus') ->where('sitemap_id = ' . $db->quote($id)) ->order('ordering'); $menus = $db->setQuery($query)->loadObjectList(); $data->menus = []; foreach ($menus as $menu) { $data->menus[$menu->menutype_id] = [ 'priority' => $menu->priority, 'changefreq' => $menu->changefreq ]; } } } return $data; } }