示例#1
0
 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();
     }
 }
示例#2
0
 public static function fileListValue($value, $entry, $lang_dependent, $field)
 {
     if ($lang_dependent) {
         $data = array('post_id' => $entry->post_id, 'feed_field_id' => $field->id, 'lang_id' => $entry->lang_id);
     } else {
         $data = array('post_id' => $entry->id, 'feed_field_id' => $field->id, 'lang_id' => 0, 'value' => 0);
     }
     FeedFieldValue::where($data)->delete();
     FeedFieldValue::insert($data);
     return Files::widget($lang_dependent ? 'doc_post_lang' : 'doc_post', $entry->id);
 }
示例#3
0
 public function postDelete()
 {
     $id = Input::get('id');
     $post = Post::find($id);
     if ($post->is_trash == 1) {
         PostLang::where('post_id', $id)->delete();
         FeedFieldValue::where('post_id', $id)->delete();
         Files::dropMultiple('post_cover', $id);
         Files::dropMultiple('doc_post_lang', $id);
         Files::dropMultiple('doc_post', $id);
         $post->delete();
         Log::warning("Drop post #{$id}");
     }
     return Redirect::to('feed');
 }
示例#4
0
 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;
 }