public function save_post_cal_attach() { $id = Input::get('post_id'); $count = \CalendarModel::where('post_id', $id)->count(); if ($count == 0) { $post = Post::find($id); $calendar = new \CalendarModel(); $calendar->post_id = $id; $calendar->event_date = $post->created_at; $field = \FeedFieldValue::join(\FeedField::getTableName(), \FeedField::getField('id'), '=', \FeedFieldValue::getField('feed_field_id'))->where(['post_id' => $id, \FeedField::getField('fkey') => 'hours'])->first(); if ($field) { $calendar->period = $field->value; } $calendar->save(); $postLangs = \PostLang::where('post_id', $id)->get(); foreach ($postLangs as $postLang) { $calendarLang = new CalendarLangModel(); $calendarLang->calendar_item_id = $calendar->id; $calendarLang->title = $postLang->title; $calendarLang->lang_id = $postLang->lang_id; $calendarLang->save(); } } else { $calendar = CalendarModel::where('post_id', $id)->get(); foreach ($calendar as $item) { CalendarLangModel::where('calendar_item_id', $item->id)->delete(); } CalendarModel::where('post_id', $id)->delete(); } }
/** * feed edit page * @param type $id */ public function getEdit($id) { User::onlyHas('feed-edit'); $this->data['feed'] = Feed::find($id); if (!$this->data['feed']) { throw new Exception('Feed not found #' . $id); } $this->data['fields'] = FeedField::orderBy(FeedField::getField('title'), 'asc')->get(); $this->data['fields_selected'] = FeedField::get_($id); $this->data['fields_selected_arr'] = []; foreach ($this->data['fields_selected'] as $field) { $this->data['fields_selected_arr'][] = $field->id; } $this->data['post_count'] = Feed::getPostCount($id); if ($this->data['feed']) { $this->layout->content = View::make('sections.feed.edit', $this->data); } else { App::abort(404); } }
public static function get_($feed_id) { return FeedField::join(FeedRel::getTableName(), FeedRel::getField('feed_field_id'), '=', FeedField::getField('id'))->where(FeedRel::getField('feed_id'), $feed_id)->select(FeedField::getField('*'))->distinct()->get(); }
public static function withDinamicFields($post) { $values_SQL = "(SELECT * FROM " . FeedFieldValue::getTableName() . " WHERE " . FeedFieldValue::getField("lang_id") . " IN (0," . WebAPL\Language::getId() . ") AND " . FeedFieldValue::getField("post_id") . " = {$post->id}) as sb"; $fields = FeedField::leftJoin(DB::raw($values_SQL), "sb.feed_field_id", "=", FeedField::getField("id"))->select(FeedField::getField("fkey"), "sb.value", FeedField::getField("get_filter"))->join(FeedRel::getTableName(), FeedRel::getField('feed_field_id'), '=', FeedField::getField('id'))->join(FeedPost::getTableName(), FeedPost::getField('feed_id'), '=', FeedRel::getField('feed_id'))->where(FeedPost::getField('post_id'), '=', $post->id)->remember(SettingsModel::one('cachelife'))->get(); foreach ($fields as $field) { if ($field->get_filter && method_exists('DinamicFields', $field->get_filter)) { $post[$field->fkey] = call_user_func(array('DinamicFields', $field->get_filter), $field, $post); } else { $post[$field->fkey] = $field->value; } } return $post; }