function postCreate(Request $request)
 {
     $data = $request->all();
     //Registra una nueva cuenta de videocloud
     $account = new VideoCloudAccount();
     $account->email = $data["email"];
     $account->token = $data["token"];
     $account->player = $data["player"];
     $date = new DateUtil(DateUtil::getCurrentTime());
     $account->date = $date->getCurrentTime();
     $account->end = $date->addMonths(1);
     $account->save();
     return redirect()->back()->with(UI::message(UI::MESSAGE_TYPE_SUCCESS, "Cuenta creada exitosamente"));
 }
예제 #2
0
 function postReportProblem(Request $request)
 {
     $extensions = array("png", "jpg", "jpeg");
     $data = $request->all();
     if (!isset($data[Report::ATTR_TYPE]) || !isset($data[Report::ATTR_DESCRIPTION])) {
         return redirect()->back();
     }
     $report = new Report();
     $report->user_id = Auth::user()->id;
     $report->type = $data[Report::ATTR_TYPE];
     $report->date = DateUtil::getCurrentTime();
     $report->description = Util::trimText(strip_tags($data[Report::ATTR_DESCRIPTION]), 500);
     $report->image = null;
     if ($request->hasFile(Report::ATTR_IMAGE)) {
         $image = $request->file(Report::ATTR_IMAGE);
         $extension = strtolower($image->getClientOriginalExtension());
         //Valida la extension del archivo
         if (!in_array($extension, $extensions)) {
             return redirect()->back()->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Extension de archivo no permitida, no es una imagen valida."));
         }
         //Valida el tamaño del archivo
         if ($image->getSize() > 2000000) {
             return redirect()->back()->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Tamaño del archivo excesivo. Maximo 2MB"));
         }
         //Almacena la imagen subida por el usuario en la carpeta temporal
         $filename = DateUtil::getTimeStamp() . "." . $extension;
         $image->move(Auth::user()->getPathUploads(), $filename);
         $report->image = url(Auth::user()->getPathUploads() . $filename);
     }
     $report->save();
     return redirect("browser")->with(UI::modalMessage("¡Gracias por tu reporte!", "Tus comentarios acerca de tu experencia ayudan a mejorar la plataforma de Bandicot. Nos pondremos en contacto contigo por correo electrónico si necesitamos saber más detalles del problema.", "Cerrar"));
 }
예제 #3
0
 /** Recibe una peticion Ajax para actualiza la foto de perfil de un usuario
  * 
  * @param Request $request
  * @return type
  */
 function ajaxUpdateAvatar(Request $request)
 {
     if (!$request->ajax() || !Auth::check()) {
         return json_encode(array());
     }
     $extensions = array("png", "jpg", "jpeg");
     $avatar = $request->file("upload-avatar");
     $extension = strtolower($avatar->getClientOriginalExtension());
     //Valida la extension del archivo
     if (!in_array($extension, $extensions)) {
         return json_encode(array("error" => "Extension de archivo no permitida"));
     }
     //Valida el tamaño del archivo
     if ($avatar->getSize() > 2000000) {
         return json_encode(array("error" => "Tamaño del archivo excesivo"));
     }
     //Almacena la imagen subida por el usuario en la carpeta temporal
     $filename = DateUtil::getTimeStamp() . "." . $extension;
     $temp = Auth::user()->getPathTemporal();
     $avatar->move($temp, $filename);
     //Crear carpeta de usuario predeterminada
     $image = new Image(url($temp . $filename));
     $url_avatar = $image->createCopy(200, 200, DateUtil::getTimeStamp(), public_path(Auth::user()->getPathUploads()), false);
     //Elimina el archivo temporal
     unlink(Util::convertUrltoPath(url($temp . $filename)));
     //Registra el nuevo avatar en la base de datos
     $user = User::findOrNew(Auth::user()->id);
     //Si el usuario tiene definido un avatar, lo elimina
     if (!is_null($user->avatar)) {
         unlink(Util::convertUrltoPath($user->avatar));
     }
     $user->avatar = $url_avatar;
     $user->save();
     return json_encode(array("url" => $url_avatar));
 }
예제 #4
0
 static function add($chapter_id, $video_id)
 {
     $log = new ChapterVideoID();
     $log->chapter_id = $chapter_id;
     $log->video_id = $video_id;
     $log->date = DateUtil::getCurrentTime();
     $log->save();
 }
예제 #5
0
 /**
  * Verifica el estado Premium del usuario y su tiempo. 
  */
 public function checkStatePremium($request)
 {
     $description = "<p class='caption'>Lamentamos informarte que el tiempo de cuenta premium para disfrutar sin limites en bandicot se ha terminado. Queremos agradecerte por usar nuestra plataforma y pasar tu tiempo con nosotros.</p>" . "<h2 class='text-center' style='margin-top: 45px;margin-bottom: 30px;'>¿Quieres continuar sin limitaciones con una cuenta premium?</h2>" . "<div class='text-center'><img style='width: 23%;' src='" . url("assets/images/logo-premium.png") . "'/><br/><br/><a href='" . url("premium") . "' class='btn btn-primary'><span class='glyphicon glyphicon-arrow-up'></span> ¡Actualizar a cuenta premium!</a></div>";
     if (Auth::user()->role == User::ROLE_SUSCRIPTOR_PREMIUM) {
         $time = DateUtil::difSec(DateUtil::getCurrentTime(), Auth::user()->premium_to);
         if ($time <= 0) {
             Auth::user()->role = User::ROLE_SUSCRIPTOR;
             Auth::user()->save();
             $request->session()->put(UI::modalMessage("<span class='glyphicon glyphicon-time'></span> ¡Tu tiempo de cuenta premium se ha terminado!", $description, "Cerrar"));
         }
     }
 }
예제 #6
0
 /** Recibe una peticion ajax para agregar a favoritos una produccion (ajax/user/favorites/add/production)
  * 
  * @param Request $request
  * @return type
  */
 function ajax_addProductionToFavorites(Request $request)
 {
     if (!$request->ajax()) {
         return;
     }
     $data = $request->all();
     //Verifica si la produccion ya se encuentra en favoritos
     if (Production::inFavorites($data["production_id"])) {
         return json_encode(array(false));
     }
     Auth::user()->favorites()->attach($data["production_id"], array(User::ATTR_FAVORITES_PIVOT_DATE => DateUtil::getCurrentTime()));
     return json_encode(array(true));
 }
예제 #7
0
 /** Alimenta la cola de procesamiento de producciones
  * 
  * @return boolean
  */
 public function feedQueue()
 {
     //El repositorio de datos debe ser cargado
     if (!count($this->dataRepository) > 0) {
         return false;
     }
     foreach ($this->dataRepository as $data) {
         $queue = new QueueProductions();
         if (QueueProductions::existsByLink($data[1])) {
             continue;
         }
         $queue->name = $data[0];
         $queue->link = $data[1];
         $queue->date_creation = DateUtil::getCurrentTime();
         $queue->save();
     }
 }
예제 #8
0
 static function newRecord($token, $payer_id, $transaction_id, $quantity)
 {
     $current_time = DateUtil::getCurrentTime();
     $user = Auth::user();
     $pay = new Payment();
     $pay->user_id = $user->id;
     $pay->method = Payment::METHOD_PAYPAL;
     $pay->mount = Payment::PAY_PRICE_PER_DAY * $quantity;
     $pay->quantity = $quantity;
     $pay->transaction_id = $transaction_id;
     $pay->ip = Util::getIP();
     $pay->user_agent = $_SERVER['HTTP_USER_AGENT'];
     $pay->date = $current_time;
     $pay->token = $token;
     $pay->payer_id = $payer_id;
     $pay->save();
     $user->role = User::ROLE_SUSCRIPTOR_PREMIUM;
     $user->premium_to = is_null($user->premium_to) ? (new DateUtil($current_time))->addDays($quantity) : (new DateUtil($user->premium_to))->addDays($quantity);
     $user->save();
 }
 /** Agrega una nueva produccion desde un link
  * 
  * @param Request $request
  * @return type
  */
 function ajaxAddFromIMDB(Request $request)
 {
     if (!$request->ajax()) {
         return;
     }
     $data = $request->all();
     $name = $data["name"];
     $link = $data["link"];
     if (QueueProductions::existsByLink($link, true)) {
         return json_encode(array("msg" => "<span class='glyphicon glyphicon-remove-circle'></span> " . $name . " Ya fue agregado y procesado anteriormente"));
     }
     $provider = new ProductionProvider($name, $link);
     $production_id = $provider->save();
     if (is_null($production_id)) {
         return json_encode(array("msg" => "<span class='glyphicon glyphicon-remove-circle'></span> " . $name . " El acceso a la información de la producción no fue posible intentalo de nuevo."));
     }
     //Verifica si ya existia en la cola de procesamiento, si es asi lo indica como procesado y si no, lo crea.
     if (QueueProductions::existsByLink($link)) {
         $queue = QueueProductions::where(QueueProductions::ATTR_LINK, $link)->get()[0];
         $queue->date_processed = DateUtil::getCurrentTime();
         $queue->production_id = $production_id;
         $queue->save();
         return json_encode(array("msg" => "<span class='glyphicon glyphicon-ok-circle'></span> " . $name . " Procesado con éxito"));
     } else {
         $queue = new QueueProductions();
         $queue->production_id = $production_id;
         $queue->name = $name;
         $queue->link = $link;
         $queue->date_creation = DateUtil::getCurrentTime();
         $queue->date_processed = DateUtil::getCurrentTime();
         $queue->save();
         return json_encode(array("msg" => "<span class='glyphicon glyphicon-ok-circle'></span> " . $name . " Agregado y procesado con éxito"));
     }
 }
예제 #10
0
 private function cron()
 {
     \Event::listen('cron.collectJobs', function () {
         /**
          * CRON: Alimentación de cola de producciones
          * DESCRIPCION: Alimenta la cola de producciones que se van a procesar
          * EJECUCION: Cada 3 minutos
          */
         \Cron::add(AutoProcess::CRON_PRODUCTIONS_FEED, '*/3 * * * *', function () {
             if (!AutoProcess::isActived(AutoProcess::CRON_PRODUCTIONS_FEED)) {
                 return "Desactivado";
             }
             $productionFeed = new ProductionFeed();
             //Carga datos de producciones (peliculas) en el repositorio
             $productionFeed->loadRepository();
             //Alimenta la cola de actualizaciones de peliculas
             $productionFeed->feedQueue();
             return count($productionFeed->dataRepository) . " Producciones cargadas en cola";
         });
         /**
          * CRON: Seguimiento de produccion
          * DESCRIPCION: Toma las producciones en cola indicadas y las procesa obtienendo todos los datos de la produccion
          * EJECUCION: Cada minuto
          */
         \Cron::add(AutoProcess::CRON_PRODUCTION_TRACK, '* * * * *', function () {
             if (!AutoProcess::isActived(AutoProcess::CRON_PRODUCTION_TRACK)) {
                 return "Desactivado";
             }
             $queue = QueueProductions::where(QueueProductions::ATTR_DATE_PROCESSED, null)->orderBy(QueueProductions::ATTR_ID, "ASC")->take(1)->get();
             foreach ($queue as $production) {
                 $provider = new ProductionProvider($production->name, $production->link);
                 $production_id = $provider->save();
                 //Indica el registro como procesado. Esto ocasiona que la produccion ya no se vuelva a actualizar, hasta una nueva cola.
                 $production->production_id = $production_id;
                 $production->date_processed = DateUtil::getCurrentTime();
                 $production->save();
                 return $production->name . " Agregado";
             }
             return "Sin cola";
         });
         /**
          * CRON: Seguimiento de persona
          * DESCRIPCION: Toma las personas indicadas y las procesa para obtener todos sus datos
          * EJECUCION: Cada minuto
          */
         \Cron::add(AutoProcess::CRON_PERSON_TRACK, '* * * * *', function () {
             if (!AutoProcess::isActived(AutoProcess::CRON_PERSON_TRACK)) {
                 return "Desactivado";
             }
             $queue = QueuePersons::where(QueuePersons::ATTR_DATE_PROCESSED, null)->orderBy(QueuePersons::ATTR_ID, "DESC")->take(1)->get();
             foreach ($queue as $person) {
                 $provider = new PersonProvider($person->name, $person->link);
                 $provider->save();
                 //Indica el registro como procesado. Esto ocasiona que la produccion ya no se vuelva a actualizar, hasta una nueva cola.
                 $person->date_processed = DateUtil::getCurrentTime();
                 $person->save();
                 return $person->name . " Agregado";
             }
             return "Sin cola";
         });
         /**
          * CRON: Envio de correo de notificacion de producciones disponibles
          * DESCRIPCION: Verifica todos las producciones en seguimientos por parte de los usuarios premium y cuando esten disponibles les envia un correo notificandoles
          * EJECUCION: Cada 12 horas
          */
         \Cron::add(AutoProcess::CRON_USER_PRODUCTION_TRACK_SEND_MAIL, '0 */12 * * *', function () {
             if (!AutoProcess::isActived(AutoProcess::CRON_USER_PRODUCTION_TRACK_SEND_MAIL)) {
                 return "Desactivado";
             }
             //Obtiene todos los usuarios premium
             $users = User::where(User::ATTR_ROLE, User::ROLE_SUSCRIPTOR_PREMIUM)->get();
             foreach ($users as $user) {
                 //Obtiene las producciones que siguen que ya se encuentran disponibles y que no sean notificado por correo
                 $productions = $user->tracks()->wherePivot(User::ATTR_TRACK_PIVOT_MAILED, 0)->where(Production::ATTR_STATE, Production::STATE_ACTIVE)->get();
                 if (count($productions) == 0) {
                     continue;
                 }
                 if (count($productions) > 1) {
                     $description_email = "<p>Este mensaje es para informate que varias producciones que te gustaria ver en nuestra plataforma ya se encuentran disponibles y las puedes ver cuando quieras.</p>" . "<div style='text-align:center;'>" . "<h2>Nuevas producciones disponibles para ti</h2>" . "</div>" . "<div style='text-align:center;'>";
                 } else {
                     $description_email = "<p>Este mensaje es para informate que una producción que te gustaria ver en nuestra plataforma ya se encuentran disponible y la puede ver cuando quieras.</p>" . "<div style='text-align:center;'>" . "<h2>Nueva producción disponible para ti</h2>" . "</div>" . "<div style='text-align:center;'>";
                 }
                 foreach ($productions as $production) {
                     //Notifica las producciones disponibles asociadas
                     $description_email .= "<a href='" . AutoProcess::URL_SITE . "production/" . $production->slug . "'><img width='192px' height='289px' style='margin: 0px 10px;' src='" . $production->image . "'></a>";
                     $production->pivot->mailed = 1;
                     $production->pivot->save();
                 }
                 $description_email .= "</div>";
                 //Envia el correo de notificacion del usuario
                 $email = new Email(count($productions) > 1 ? "¡Hay varias producciones que te gustaria ver que ya estan disponible!" : "¡Una producción que te gustaria ver ya esta disponible!", $user[User::ATTR_EMAIL], [Email::VAR_NAME => $user->name, Email::VAR_DESCRIPTION => $description_email]);
                 $email->queue();
             }
             return "Notificaciones realizadas (Si aplican)";
         });
         /**
          * CRON: Genera el sitemap.xml del sitio
          * EJECUCION: Cada Semana
          */
         \Cron::add(AutoProcess::CRON_GENERATE_SITEMAP, '0 0 * * 0', function () {
             //Url standards del sitio web
             $urls = array(AutoProcess::URL_SITE, AutoProcess::URL_SITE . "doc/terms", AutoProcess::URL_SITE . "doc/privacypolicy", AutoProcess::URL_SITE . "doc/cookies-policy", AutoProcess::URL_SITE . "doc/help", AutoProcess::URL_SITE . "catalogue");
             $file = fopen(public_path("sitemap.xml"), "w");
             fwrite($file, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" . PHP_EOL);
             fwrite($file, "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"> " . PHP_EOL);
             for ($i = 0; $i < count($urls); $i++) {
                 fwrite($file, "<url><loc>" . $urls[$i] . "</loc></url>" . PHP_EOL);
             }
             //Inserta las url de cada persona
             $persons = \App\System\Models\Person::whereNotNull(Person::ATTR_BIOGRAPHY)->get();
             foreach ($persons as $person) {
                 fwrite($file, "<url><loc>" . AutoProcess::URL_SITE . "person/" . $person->slug . "</loc></url>" . PHP_EOL);
             }
             //Inserta las url de todas las producciones
             $productions = Production::all();
             foreach ($productions as $production) {
                 fwrite($file, "<url><loc>" . AutoProcess::URL_SITE . "production/" . $production->slug . "</loc></url>" . PHP_EOL);
             }
             fwrite($file, "</urlset>" . PHP_EOL);
             fclose($file);
             return "Sitemap.xml generado (" . count($persons) . " Personas) (" . count($productions) . " Producciones)";
         });
         /**
          * CRON: Publica automaticamente una produccion programada
          * EJECUCION: Cada hora
          */
         \Cron::add(AutoProcess::CRON_PRODUCTION_AUTO_PUBLISH, '0 */4 * * *', function () {
             $productions = Production::where(Production::ATTR_STATE, Production::STATE_PROGRAMMED)->orderBy(Production::ATTR_UPDATED_AT, "ASC")->take(1)->get();
             foreach ($productions as $production) {
                 $production->state = Production::STATE_ACTIVE;
                 $production->save();
                 return $production->title . " Publicado";
             }
             return "No hay producciones programadas";
         });
     });
 }
 /** Recibe la peticion con una calificacion de un usuario (ajax/production/rating/post)
  * 
  * @param Request $request
  */
 function ajax_postRating(Request $request)
 {
     if (!$request->ajax()) {
         return json_encode(array());
     }
     $data = $request->all();
     if (ProductionRating::userIsRated($data["production_id"])) {
         return json_encode(array());
     }
     $rating = new ProductionRating();
     $rating->user_id = Auth::user()->id;
     $rating->production_id = $data["production_id"];
     $rating->rating = $data["rating"];
     $rating->date = DateUtil::getCurrentTime();
     $rating->save();
     return json_encode(array());
 }
예제 #12
0
 function save()
 {
     if (!$this->validate()) {
         return null;
     }
     $production = new Production();
     $production->title = $this->getTitle();
     $production->title_original = $this->getTitle_original();
     $production->year = $this->getYear();
     $production->slug = $this->getSlug();
     $production->description = $this->getDescription();
     $production->state = is_null($this->getRating_rel()) ? Production::STATE_COMING_SOON : Production::STATE_IN_WAIT;
     $production->rating_rel = $this->getRating_rel();
     $production->duration = $this->getDuration();
     $production->image = $this->getImage();
     $production->poster = $this->poster;
     $production->save();
     //CATEGORIAS DE LA PRODUCCION
     $categories = $this->categories;
     foreach ($categories as $category) {
         //Verifica si ya existe la categoria, si no existe la crea y la asigna a la produccion
         $cat = Term::searchByName($category);
         if (is_null($term = $cat)) {
             $term = new Term();
             $term->name = ucfirst(strtolower($category));
             $term->taxonomy_id = Production::TAXONOMY_ID;
             $term->slug = Util::createSlug($category);
             $term->save();
         }
         $production->terms()->attach($term->id);
     }
     //Relaciona un director con la producción a uno existente o lo crea sin o existe
     $director = $this->getDirector();
     $staff_director = is_null($person = Person::searchByName($director[0])) ? new Person() : $person;
     $staff_director->name = $director[0];
     $staff_director->slug = Util::createSlug($director[0]);
     $staff_director->save();
     if (count(DB::select("SELECT * FROM staff WHERE production_id='" . $production->id . "' && person_id='" . $staff_director->id . "'")) == 0) {
         $staff_director->productions()->attach($production->id, array(Person::ATTR_PIVOT_ROLE => Person::ROLE_DIRECTOR));
     }
     //Determina si el nombre del director se encuentra en cola para actualización, si no lo esta, lo agrega.
     if (is_null(QueuePersons::searchByNameInQueue($director[0]))) {
         $queue = new QueuePersons();
         $queue->person_id = $staff_director->id;
         $queue->name = $director[0];
         $queue->link = $director[1];
         $queue->date_creation = DateUtil::getCurrentTime();
         $queue->save();
     }
     //Relaciona los actores con la produccion a uno existente o lo crea sino existe
     $actors = $this->actors;
     foreach ($actors as $actor) {
         if (is_null($actor[0]) || !isset($actor[0]) || strlen($actor[0]) == 0) {
             continue;
         }
         $staff_actor = is_null($person = Person::searchByName($actor[0])) ? new Person() : $person;
         $staff_actor->name = $actor[0];
         $staff_actor->slug = Util::createSlug($actor[0]);
         $staff_actor->save();
         if (count(DB::select("SELECT * FROM staff WHERE production_id='" . $production->id . "' && person_id='" . $staff_actor->id . "'")) == 0) {
             $staff_actor->productions()->attach($production->id, array(Person::ATTR_PIVOT_ROLE => Person::ROLE_ACTOR));
         }
         //Determina si el nombre del actor/actriz se encuentra en cola para actualización, si no lo esta, lo agrega.
         if (is_null(QueuePersons::searchByNameInQueue($actor[0]))) {
             $queue = new QueuePersons();
             $queue->person_id = $staff_actor->id;
             $queue->name = $actor[0];
             $queue->link = $actor[1];
             $queue->date_creation = DateUtil::getCurrentTime();
             $queue->save();
         }
     }
     return $production->id;
 }
예제 #13
0
 public function postSetResetPassword(Request $request)
 {
     $data = $request->all();
     if (!isset($data[PasswordReset::ATTR_TOKEN]) || !isset($data[User::ATTR_EMAIL]) || strlen($data[PasswordReset::ATTR_TOKEN]) == 0 || strlen($data[User::ATTR_EMAIL]) == 0 || !isset($data["password"])) {
         return redirect("user/auth/recovery?request=send-mail&form=token")->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL])->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Error: Solicitud invalida"));
     }
     $email = $data[PasswordReset::ATTR_EMAIL];
     $token = $data[PasswordReset::ATTR_TOKEN];
     if (is_null($pet = PasswordReset::where(PasswordReset::ATTR_EMAIL, $email)->where(PasswordReset::ATTR_TOKEN, $token)->where(PasswordReset::ATTR_ACTIVE, Util::convertBooleanToInt(true))->get())) {
         return redirect("user/auth/recovery?request=send-mail&form=token")->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL])->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Error: Solicitud invalida"));
     }
     if (DateUtil::difSec($pet[0]->created_at, DateUtil::getCurrentTime()) > 60 * 60 * 2) {
         $pet[0]->active = Util::convertBooleanToInt(false);
         $pet->save();
         return redirect("user/auth/recovery?request=send-mail&form=token")->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL])->with(UI::message(UI::MESSAGE_TYPE_ERROR, "Error: El código de seguridad ha expirado. <a href='" . url("user/auth/recovery") . "'>¿Realizar una nueva solicitud?</a>"));
     }
     $user = User::where(User::ATTR_EMAIL, $email)->get()[0];
     $user->password = bcrypt($data["password"]);
     $user->save();
     return redirect("user/auth/login")->withInput()->with(UI::message(UI::MESSAGE_TYPE_SUCCESS, "Tu nueva contraseña ha sido establecida, ya puedes iniciar sesión"))->with(User::ATTR_EMAIL, $data[User::ATTR_EMAIL]);
 }
예제 #14
0
 /** Recibe la peticion del estado de la transaccion realizada
  * 
  * @return type
  */
 public function getStatus()
 {
     // Get the payment ID before session clear
     $payment_id = \Session::get('paypal_payment_id');
     $payment_quantity = Session::get('payment_quantity');
     // clear the session payment ID
     Session::forget('paypal_payment_id');
     $payerId = isset($_GET['PayerID']) ? $_GET['PayerID'] : null;
     $token = isset($_GET['token']) ? $_GET['token'] : null;
     if (is_null($payerId) || is_null($token)) {
         return redirect()->back()->with(UI::modalMessage("Pago cancelado", "<div class='text-center'><img width='150px;' src='" . url('assets/images/sad.png') . "'><p style='font-size: 15pt;margin-top:20px;'>Parece ser que has cancelado el pago. ¿Quieres intentarlo de nuevo?</p></div>", "Cerrar"));
     }
     $payment = Payment::get($payment_id, $this->_api_context);
     $execution = new PaymentExecution();
     $execution->setPayerId($payerId);
     $result = $payment->execute($execution, $this->_api_context);
     if ($result->getState() == 'approved') {
         PayM::newRecord($token, $payerId, $payment_id, $payment_quantity);
         $date = new DateUtil(Auth::user()->premium_to);
         $message = view("ui/msg/contents/muchas-gracias-usuario")->with("date_premium", $date->getDay() . " de " . $date->getMonth() . " del " . $date->getYear())->render();
         $email = new Email("¡Gracias " . Auth::user()->name . " por tu aporte!", Auth::user()->email);
         $email->setDescription($message);
         $email->setName(Auth::user()->name);
         //Envia un correo de agredecimiento
         $email->queue();
         return redirect("user/contributions")->with(UI::modalMessage("Pago realizado. ¡Muchas gracias " . Auth::user()->name . "!", $message, "De nada, es un placer"));
     }
     return redirect()->back()->with(UI::modalMessage("ERROR", "<div class='text-center'><img width='150px;' src='" . url('assets/images/alert.png') . "'><p style='font-size: 15pt;margin-top:20px;'>Parece que hubo un problema al realizar el pago. ¿No tienes fondos?</p></div>", "Cerrar"));
 }
<?php

use App\System\Library\Complements\DateUtil;
use App\System\Library\Security\Hash;
$date = new DateUtil(DateUtil::getCurrentTime());
//Calcula el tiempo restante para que el usuario pueda ver otra pelicula
$coming_date = $date->addSeconds($time);
$isVideoMain = $production->haveVideoMain();
?>

<div class="page-header">
    <h1 class="text-center"><span class="glyphicon glyphicon-alert"></span> Lo sentimos no puedes reproducir este contenido</h1>
</div>
<p class="caption text-center">Tú tipo de cuenta, no te permite reproducir más de un contenido por día.</p>
<br/>
<div class="col-sm-6 text-center" style="padding-bottom: 20px;">
    <h3 class="text-center">Actualmente estabas viendo<br/>"{{$production->title}}"</h3>
    @if(!$isVideoMain)
    <h3 class="text-center">{{$chapter->name}}</h3>
    @endif
    <div class="col-sm-12">
        <img width="214" height="317"  class="img-rounded" src="{{$production->image}}">
    </div>
    <div class="col-sm-12" style="margin-top: 10px;">
        @if($isVideoMain)
        <a href="{{URL::to('production/'.$production->slug."/play")}}" class="btn btn-lg btn-success"><span class="glyphicon glyphicon-play-circle"></span> Continuar viendo</a>
        @else
        <a href="{{URL::to("production/".$production->slug."/play/".urlencode(Hash::encrypt($chapter->id))."/")}}" class="btn btn-lg btn-success"><span class="glyphicon glyphicon-play-circle"></span> Continuar viendo</a>
        @endif
    </div>
</div>
예제 #16
0
 function getMonth()
 {
     return DateUtil::getNameMonth(DateUtil::numberAdapt($this->month));
 }