Ejemplo n.º 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();
     }
 }
Ejemplo n.º 2
0
 public static function get($feed_id, $post_id, $lang_id = 0, $in_form = 1)
 {
     $stmt = FeedField::join('apl_feed_rel', 'apl_feed_field.id', '=', 'apl_feed_rel.feed_field_id')->leftJoin('apl_feed_field_value', function ($join) use($post_id, $lang_id) {
         $join->on('apl_feed_field_value.feed_field_id', '=', 'apl_feed_field.id');
         $join->where('apl_feed_field_value.post_id', '=', (int) $post_id);
         if ($lang_id) {
             $join->where('apl_feed_field_value.lang_id', '=', (int) $lang_id);
         }
     })->select('apl_feed_field.*', 'apl_feed_field_value.value');
     if (is_array($feed_id)) {
         $stmt = $stmt->whereIn('apl_feed_rel.feed_id', $feed_id);
     } else {
         $stmt = $stmt->where('apl_feed_rel.feed_id', $feed_id);
     }
     if ($lang_id) {
         $stmt = $stmt->where('apl_feed_field.lang_dependent', 1);
     } else {
         $stmt = $stmt->where('apl_feed_field.lang_dependent', 0);
     }
     $stmt = $stmt->where('apl_feed_field.in_form', $in_form);
     return $stmt->distinct()->get();
 }
Ejemplo n.º 3
0
 public function postLangpostsave()
 {
     User::onlyHas('feedpost-edit');
     $response = array();
     $id = Input::get('id');
     $lang_id = Input::get('lang_id');
     // update PostLang records
     $postlang = Input::get('postlang');
     if ($postlang) {
         $response['PostLang'] = 1;
         foreach ($postlang as $plang_id => $plang) {
             $post_lang = PostLang::find($plang_id);
             if ($post_lang) {
                 $post_lang->title = $plang['title'];
                 $post_lang->uri = PostLang::uniqURI($plang_id, $plang['uri'] ? $plang['uri'] : $plang['title']);
                 $post_lang->text = $plang['text'];
                 $post_lang->enabled = isset($plang['enabled']) ? 1 : 0;
                 $post_lang->save();
                 Log::info("Edit PostLang (article) #{$plang_id}");
             } else {
                 throw new Exception("Undefined PostLang #{$plang_id} DATA: " . serialize($plang));
             }
         }
     }
     // update dinamic lang fields
     $dinamic_lang_fields = Input::get("dinamic_lang.{$lang_id}");
     FeedFieldValue::where('post_id', $id)->where('lang_id', $lang_id)->delete();
     if (is_array($dinamic_lang_fields) && $dinamic_lang_fields) {
         foreach ($dinamic_lang_fields as $field_id => $field_value) {
             $field = FeedField::find($field_id);
             $fieldValue = new FeedFieldValue();
             $fieldValue->feed_field_id = $field_id;
             $fieldValue->post_id = $id;
             $fieldValue->lang_id = $lang_id;
             if ($field->check_filter && method_exists('DinamicFields', $field->check_filter)) {
                 $fieldValue->value = call_user_func(array('DinamicFields', $field->check_filter), $field_value);
             } else {
                 $fieldValue->value = $field_value;
             }
             $fieldValue->save();
         }
     }
     return $response;
 }
Ejemplo n.º 4
0
 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();
 }
Ejemplo n.º 5
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;
 }