/**
  * Add new notification
  *
  * @param $user_id
  * @param $review_id
  */
 public static function addOne($user_id, $review_id)
 {
     $obj = new self();
     $obj->from_array(array('user_id' => $user_id, 'review_id' => $review_id, 'created' => time()));
     $obj->save();
     return $obj;
 }
Example #2
0
 /**
  * Add new Queue_Item to queue
  *
  * @param string $method
  * @param array $args = array()
  */
 public static function add($method, $args = array())
 {
     $new_item = new self();
     $new_item->from_array(array('body' => array('method' => $method, 'args' => $args)))->send();
 }
 /**
  * Update user's directories
  *
  * @param       $user_id
  * @param       $profile_id
  * @param       $directories_ids
  * @param array $additions
  *
  * @return array
  */
 public static function update_user_dir($user_id, $profile_id, $directories_ids, $additions = array())
 {
     $errors = array();
     $obj = new self();
     $table = $obj->table;
     $obj = new self();
     $old_options = array();
     foreach ($obj->where(array('user_id' => $user_id, 'profile_id' => $profile_id))->get() as $old_option) {
         $old_options[$old_option->directory_id] = $old_option->to_array();
     }
     $sql = "DELETE FROM {$table} WHERE user_id = {$user_id} AND profile_id = {$profile_id}";
     $obj->db->query($sql);
     if (empty($directories_ids)) {
         return;
     }
     $notify = empty($additions['notify']) ? 0 : 1;
     foreach ($directories_ids as $dir_id => $link) {
         $directory = new DM_Directory($dir_id);
         if (!$directory->exists()) {
             $errors[] = 'Directory #' . $dir_id . '(' . $link . ') doesn\'t exist';
             continue;
         }
         try {
             $directory_parcer = Directory_Parser::factory($directory->type);
         } catch (Exception $e) {
             $errors[] = 'Directory\'s #' . $directory->id . '(' . $directory->name . ') parser doesn\'t configured';
             continue;
         }
         if (!$directory_parcer->valid_url($link)) {
             $errors[] = 'Invalid url for directory ' . $directory->name;
             continue;
         }
         if (empty($old_options[$dir_id]) || $link !== $old_options[$dir_id]['link']) {
             Review::deleteByUserDirectory($user_id, $dir_id);
         }
         $new_settings = new self();
         $new_settings->from_array(array('user_id' => $user_id, 'profile_id' => $profile_id, 'link' => $link, 'directory_id' => $dir_id, 'notify' => $notify));
         $new_settings->save();
     }
     return $errors;
 }
Example #4
0
 /**
  * Run validation rules on each passed custom form
  * return each model in array and errors if exist
  * 
  * @param $feeds (array) - key - form block id, value - array('title' => 'new title', 'link' => 'new link')
  * @return array (errors (array), models(array))
  */
 public static function validate_rss_custom_pack($feeds)
 {
     $errors = array();
     $models = array();
     foreach ($feeds as $feed_key => $feed_value) {
         $rss_feed = new self();
         $rss_feed->from_array($feed_value, array('title', 'link'));
         $rss_feed->validate();
         if (!$rss_feed->valid) {
             foreach ($rss_feed->error->all as $err_key => $err_value) {
                 $errors[$feed_key][$err_key] = $err_value;
             }
         }
         $models[] = $rss_feed;
     }
     return array($errors, $models);
 }
Example #5
0
 /**
  * Validate a form
  * Check Description / URL / post type and social networks fields
  *
  * @access public
  * @param $feeds
  * @return array
  */
 public static function validate_post($feeds)
 {
     $errors = array();
     $category_slug = $feeds['attachment_type'];
     $feeds['title'] = 'from ' . clear_domain(site_url());
     $post = new self();
     $post->from_array($feeds, array('description', 'url', 'posting_type', 'category_id'));
     if (!$post->posting_type) {
         $post->posting_type = 'immediate';
     }
     $post->validate();
     if (!$post->valid) {
         foreach ($post->error->all as $err_key => $err_value) {
             $errors[$err_key] = $err_value;
         }
     }
     if (isset($feeds['url'])) {
         if (!empty($feeds['url'])) {
             if (filter_var($feeds['url'], FILTER_VALIDATE_URL) === false || strstr($feeds['url'], '.') === false) {
                 $errors['url'] = lang('email_error');
             }
         }
     }
     if (!isset($feeds['post_to_socials'])) {
         $errors['post_to_groups[]'] = lang('socials_error');
     }
     if (isset($feeds['posting_type'])) {
         //validate Schedule date
         if ($feeds['posting_type'] != 'immediate') {
             $scheduled_errors = self::_validate_scheduled_data($feeds);
             $errors = array_merge($errors, $scheduled_errors);
         }
     }
     if ($category_slug == 'photos') {
         if (empty($feeds['image_name'])) {
             $errors['image_name'] = lang('image_error');
         }
     }
     if (!empty($feeds['post_to_socials']) && in_array('twitter', $feeds['post_to_socials'])) {
         $twitter_limit = array(1 => 140, 2 => 117, 3 => 94);
         $input_category = 1;
         $file = !empty($feeds['image_name']) || isset($feeds['file_name']);
         $link = !empty($feeds['url']);
         if ($file && $link) {
             $input_category = 3;
         } elseif ($file || $link) {
             $input_category = 2;
         }
         if (mb_strlen($feeds['description']) > $twitter_limit[$input_category]) {
             $errors['description'] = lang('twitter_error');
         }
     }
     if (!empty($feeds['post_to_socials']) && in_array('linkedin', $feeds['post_to_socials'])) {
         if (mb_strlen($feeds['description']) > 400) {
             $errors['description'] = lang('linkedin_error');
         }
     }
     if ($category_slug == 'videos') {
         $video_errors = self::_validate_video($feeds);
         $errors = array_merge($errors, $video_errors);
     } else {
         if (empty($feeds['url']) && isset($feeds['post_to_socials']) && in_array('linkedin', $feeds['post_to_socials'])) {
             $errors['url'] = lang('url_error');
         }
     }
     return $errors;
 }