protected function getOptions() { $styleId = (int) $this->form->getValue('id'); if ($styleId) { $styleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleObject($styleId); $defaultStyleObject = JUDirectoryFrontHelperTemplate::getDefaultTemplateStyle(); if ($defaultStyleObject->template_id == $styleObject->template_id) { return array_merge(parent::getOptions(), JHtml::_('contentlanguage.existing')); } else { return parent::getOptions(); } } else { return array_merge(parent::getOptions()); } }
public function delete($pk = null) { $db = JFactory::getDbo(); $k = $this->_tbl_key; $pk = is_null($pk) ? $this->{$k} : $pk; $this->load($pk); if ($this->home == 1 || $this->default == 1) { $this->setError(JText::_('COM_JUDIRECTORY_CAN_NOT_DELETE_DEFAULT_TEMPLATE_STYLE')); return false; } $defaultStyleObject = JUDirectoryFrontHelperTemplate::getDefaultTemplateStyle(); $query = $db->getQuery(true); $query->update('#__judirectory_categories'); $query->set('style_id = -2'); if ($defaultStyleObject->template_id != $this->template_id) { $query->set('template_params = ""'); } $query->where('parent_id = 0'); $query->where('style_id = ' . $pk); $db->setQuery($query); $db->execute(); $query = $db->getQuery(true); $query->select('id'); $query->from('#__judirectory_categories'); $query->where('style_id = ' . $pk); $db->setQuery($query); $categoryArrayAssignedToStyle = $db->loadColumn(); $query = $db->getQuery(true); $query->update('#__judirectory_categories'); $query->set('style_id = -1'); $query->where('parent_id != 0'); $query->where('style_id = ' . $pk); $db->setQuery($query); $db->execute(); foreach ($categoryArrayAssignedToStyle as $categoryIdAssignedToStyle) { $styleObjectOfCategory = JUDirectoryFrontHelperTemplate::getTemplateStyleOfCategory($categoryIdAssignedToStyle); if ($styleObjectOfCategory->template_id != $this->template_id) { $query = $db->getQuery(true); $query->update('#__judirectory_categories'); $query->set('template_params = ""'); $query->where('id = ' . $categoryIdAssignedToStyle); $db->setQuery($query); $db->execute(); $query = $db->getQuery(true); $query->update('#__judirectory_listings AS listing'); $query->set('listing.template_params = ""'); $query->join('', '#__judirectory_listings_xref AS listingxref ON listing.id = listingxref.listing_id AND listingxref.main = 1'); $query->where('listing.style_id = -1'); $query->where('listingxref.cat_id = ' . $categoryIdAssignedToStyle); $db->setQuery($query); $db->execute(); JUDirectoryFrontHelperTemplate::removeTemplateParamsOfInheritedStyleCatListing($categoryIdAssignedToStyle); } } $query = $db->getQuery(true); $query->select('listing.id'); $query->select('listingxref.cat_id AS cat_id'); $query->from('#__judirectory_listings AS listing'); $query->join('', '#__judirectory_listings_xref AS listingxref ON listing.id = listingxref.listing_id AND listingxref.main = 1'); $query->where('listing.style_id = ' . $pk); $db->setQuery($query); $listingObjectListAssignedToStyle = $db->loadObjectList(); $catArrayResetTemplateParams = array(); foreach ($listingObjectListAssignedToStyle as $listingObject) { $styleObjectOfCategory = JUDirectoryFrontHelperTemplate::getTemplateStyleOfCategory($listingObject->cat_id); if ($styleObjectOfCategory->template_id != $this->template_id) { $catArrayResetTemplateParams[] = $listingObject->cat_id; } } $catArrayResetTemplateParams = array_unique($catArrayResetTemplateParams); if (is_array($catArrayResetTemplateParams) && count($catArrayResetTemplateParams)) { $query = $db->getQuery(true); $query->update('#__judirectory_listings AS listing'); $query->join('', '#__judirectory_listings_xref AS listingxref ON listing.id = listingxref.listing_id AND listingxref.main = 1'); $query->set('listing.template_params = ""'); $query->set('listing.style_id = -1'); $query->where('listingxref.cat_id IN (' . implode(',', $catArrayResetTemplateParams) . ')'); $query->where('listing.style_id = ' . $pk); $db->setQuery($query); $db->execute(); } return parent::delete($pk); }
public function saveCategoryPrepareTemplateParams($pk, $table, &$data) { $app = JFactory::getApplication(); if ($pk > 0) { $oldTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleOfCategory($table->id); if ($data['style_id'] == -2) { $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getDefaultTemplateStyle(); } elseif ($data['style_id'] == -1) { $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleOfCategory($data['parent_id']); if ($table->style_id == -1) { if ($table->parent_id != $data['parent_id']) { if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) { if ($data['changeTemplateStyleAction'] == 1) { $data['style_id'] = $oldTemplateStyleObject->id; $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleObject($data['style_id']); $app->enqueueMessage(JText::sprintf('COM_JUDIRECTORY_INHERITED_TEMPLATE_STYLE_HAS_BEEN_CHANGED_TO_X', $newTemplateStyleObject->title ? $newTemplateStyleObject->title : JText::_("COM_JUDIRECTORY_NONE")), 'Notice'); } } } } } else { $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleObject($data['style_id']); } } if (isset($data['template_params']) && is_array($data['template_params'])) { $registry = new JRegistry(); $registry->loadArray($data['template_params']); $data['template_params'] = (string) $registry; } if ($pk > 0) { if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) { $data['template_params'] = ''; } } }
public function saveListingPrepareTemplateParams(&$data, $pk, $isNew, $newMainCatId) { $removeTemplateParams = false; if (!$isNew) { $oldTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleOfListing($pk); $styleId = $data['style_id']; if ($styleId == -2) { $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getDefaultTemplateStyle(); } elseif ($styleId == -1) { $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleOfCategory($newMainCatId); } else { $newTemplateStyleObject = JUDirectoryFrontHelperTemplate::getTemplateStyleObject($styleId); } if ($oldTemplateStyleObject->template_id != $newTemplateStyleObject->template_id) { $data['template_params'] = ""; $removeTemplateParams = true; } } if (!$removeTemplateParams && isset($data['template_params']) && is_array($data['template_params'])) { $registry = new JRegistry(); $registry->loadArray($data['template_params']); $data['template_params'] = $registry->toString(); } }