Пример #1
0
 /**
  *
  */
 public function add_external_media()
 {
     $path = $this->input->post('path');
     $parent = $this->input->post('parent');
     $id_parent = $this->input->post('id_parent');
     if ($path && $parent && $id_parent) {
         // Clear the cache
         Cache()->clear_cache();
         $pattern = "/\\b(?:(?:https?|ftp):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]/i";
         preg_match($pattern, $path, $link);
         if (empty($link[0])) {
             $path = FALSE;
         } else {
             $path = $link[0];
         }
         if ($path != FALSE) {
             // Get the array of information concerning this service
             $provider = '';
             $info = $this->get_service_info($path);
             if (!is_null($info)) {
                 $path = $info['path'];
                 $provider = $info['provider'];
             }
             // DB Insert
             $id = $this->media_model->insert_media($path, $provider);
             $media = $this->media_model->get($id);
             // Event data
             $event_data = array('element' => $parent, 'id_element' => $id_parent, 'media' => $media);
             // Parent linking
             if (!$this->media_model->attach_media($parent, $id_parent, $id)) {
                 // Event
                 Event::fire('Media.link.external.error', $event_data);
                 $this->error(lang('ionize_message_media_already_attached'));
             } else {
                 // Event
                 Event::fire('Media.link.external.success', $event_data);
                 // Error Message
                 $this->callback = array(array('fn' => 'mediaManager.loadMediaList', 'args' => 'video'));
                 $this->response();
             }
         } else {
             $this->error(lang('ionize_message_operation_nok'));
         }
     } else {
         $this->error(lang('ionize_message_operation_nok'));
     }
 }