Example #1
0
 public function save($data)
 {
     $groupid = $data['groupid'];
     unset($data['groupid']);
     $table = $this->getTable();
     if ($data['id'] && $table->load($data['id'])) {
         $fieldClass = TZ_Portfolio_PlusFrontHelperExtraFields::getExtraField($data['id']);
         $data = $fieldClass->onSave($data);
     }
     if (parent::save($data)) {
         $pk = !empty($data['id']) ? $data['id'] : (int) $this->getState($this->getName() . '.id');
         // Insert field's groups
         TZ_Portfolio_PlusHelperExtraFields::insertFieldGroups($pk, $groupid);
         return true;
     }
     return false;
 }
Example #2
0
 public function getExtraFields()
 {
     $app = JFactory::getApplication();
     $articleId = $app->input->getInt('id', 0);
     $db = $this->getDbo();
     $query = $db->getQuery(true);
     if ($fieldGroups = TZ_Portfolio_PlusFrontHelperExtraFields::getFieldGroupsByArticleId($articleId)) {
         $fieldsCache = array();
         foreach ($fieldGroups as $i => $fieldGroup) {
             $fieldGroup->fields = array();
             $query->clear();
             $query->select("field.*, m.groupid");
             $query->from("#__tz_portfolio_plus_fields AS field");
             $query->join('LEFT', '#__tz_portfolio_plus_field_fieldgroup_map AS m ON field.id = m.fieldsid');
             $query->join('INNER', '#__tz_portfolio_plus_extensions AS e ON e.element = field.type')->where('e.type = ' . $db->quote('tz_portfolio_plus-plugin'))->where('e.folder = ' . $db->quote('extrafields'))->where('e.published = 1');
             $query->where("field.published = 1");
             $query->where("m.groupid = " . $fieldGroup->id);
             $query->order("field.ordering ASC");
             $db->setQuery($query);
             $_fields = $db->loadObjectList();
             if ($_fields) {
                 foreach ($_fields as $field) {
                     if (!in_array($field->id, $fieldsCache)) {
                         $fieldObj = TZ_Portfolio_PlusFrontHelperExtraFields::getExtraField($field, $articleId);
                         $fieldGroup->fields[] = $fieldObj;
                         $fieldsCache[] = $field->id;
                     }
                 }
             }
             if (!count($fieldGroup->fields)) {
                 unset($fieldGroups[$i]);
             }
         }
         return $fieldGroups;
     }
     return false;
 }