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());
     }
 }
Example #2
0
 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);
 }
Example #3
0
 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'] = '';
         }
     }
 }
Example #4
0
 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();
     }
 }