HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/PopupEmbedController.php
<?php

namespace App\Http\Controllers;

use App\Tag;
use Datatables;
use App\PopupEmbed;
use App\TypeAction;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\UtilController;
use App\PopupTags;
use DB;

class PopupEmbedController extends Controller
{
  private $util;

  public function __construct()
  {
    $this->util = new UtilController();
  }

  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function index()
  {
    return view('popup_embed.popup');
  }

  public function indexAdd()
  {
    $typeActions = TypeAction::where('active', true)->get();
    $multiselectItems = Tag::where('active', true)->get();
    return view('popup_embed.addPopup', compact('typeActions'))->with('multiselectItems', $multiselectItems);
  }

  public function indexEdit($id)
  {
    $popup = PopupEmbed::find($id);
    $typeActions = TypeAction::where('active', true)->get();
    $multiselectItems = Tag::where('active', true)->get();
    $multiselectSelection = PopupTags::select('tag_id')->where('popup_id', $id)->get();

    return view('popup_embed.editPopup', compact('typeActions', 'popup'))
      ->with('multiselectItems', $multiselectItems)
      ->with('multiselectSelection', $multiselectSelection);
  }

  /**
   * Show the form for creating a new resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function create(Request $request)
  {
    $data = $request->all();
    if ($data['type_action_id'] == '0')
      $data['type_action_id'] = null;

    $popup = PopupEmbed::create($data);

    if ($request["tags"] != null) {
      foreach ($request["tags"] as $tagId) {
        PopupTags::create([
          'tag_id' => $tagId,
          'popup_id' => $popup->id
        ]);
      }
    }

    if ($popup) {
      return array('r' => true, 'd' => array('id' => $popup->id), 'm' => trans('messages.screen_popup_tag14'));
    } else {
      return array('r' => false, 'd' => null, 'm' => trans('messages.screen_popup_tag15'));
    }
  }

  public function saveImage(Request $request)
  {
    $id = $request->id;
    $extension = $request->file('image')->getClientOriginalExtension();
    $filenametostore = $id . '.' . $extension;
    Storage::disk('s3')->put(config('s3.popups') . $filenametostore, fopen($request->file('image'), 'r+'), 'public');

    $status = PopupEmbed::where('id', $id)->update(['image' => $filenametostore]);
    if ($status) {
      return array('r' => true, 'd' => null, 'm' => trans('messages.screen_popup_tag14'));
    } else {
      return array('r' => false, 'd' => null, 'm' => trans('messages.screen_popup_tag15'));
    }
  }

  /**
   * Store a newly created resource in storage.
   *
   * @param  \Illuminate\Http\Request  $request
   * @return \Illuminate\Http\Response
   */
  public function store(Request $request)
  {
    //
  }

  /**
   * Display the specified resource.
   *
   * @param  int  $id
   * @return \Illuminate\Http\Response
   */
  public function show($id)
  {
    //
  }

  /**
   * Show the form for editing the specified resource.
   *
   * @param  int  $id
   * @return \Illuminate\Http\Response
   */
  public function edit($id)
  {
    //
  }

  /**
   * Update the specified resource in storage.
   *
   * @param  \Illuminate\Http\Request  $request
   * @param  int  $id
   * @return \Illuminate\Http\Response
   */
  public function update(Request $request)
  {
    $tags = $request["tags"];
    $request->request->remove('tags');
    $popupId = $request["popup_id"];

    $data = $request->except('popup_id');
    if (!isset($data['id']))
      $data['id'] = $popupId;
    if ($data['type_action_id'] == '0')
      $data['type_action_id'] = null;

    if (PopupEmbed::where('id', $popupId)->update($data)) {
      if ($tags != null) {
        foreach ($tags as $tagId) {
          PopupTags::create([
            'tag_id' => $tagId,
            'popup_id' => $popupId
          ]);
        }
      } else {
        PopupTags::where('popup_id', $popupId)->delete();
      }

      return array('r' => true, 'd' => array('id' => $request["popup_id"]), 'm' => trans('messages.screen_popup_tag16'));
    } else {
      return array('r' => false, 'd' => null, 'm' => trans('messages.screen_popup_tag17'));
    }
  }

  public function updateImage(Request $request)
  {
    $id = $request->id;
    $extension = $request->file('image')->getClientOriginalExtension();
    $filenametostore = $id . '.' . $extension;
    Storage::disk('s3')->put(config('s3.popups') . $filenametostore, fopen($request->file('image'), 'r+'), 'public');
    $status = PopupEmbed::where('id', $id)->update(['image' => $filenametostore]);
    if ($status) {
      return array('r' => true, 'd' => null, 'm' => trans('messages.screen_popup_tag16'));
    } else {
      return array('r' => false, 'd' => null, 'm' => trans('messages.screen_popup_tag17'));
    }
  }

  /**
   * Remove the specified resource from storage.
   *
   * @param  int  $id
   * @return \Illuminate\Http\Response
   */
  public function destroy($popup_id)
  {
    if (PopupEmbed::where('id', $popup_id)->delete()) {
      return response(array("r" => true, "type" => "success", "title" => "", "m" => __('messages.deleted_successfully'), "data" => null));
    } else {
      return response(array("r" => false, "type" => "error", "title" => "Oops...", "m" => __('messages.error_removing'), "data" => null));
    }
  }

  public function activatePopup(Request $request)
  {
    $id = $request['id'];
    $state = $request['state'];

    $popup = PopupEmbed::find($id);
    $popup->active = $state;
    $popup->update();

    if ($popup) {
      return array('r' => true, 'd' => null, 'm' => trans('messages.screen_popup_tag18'));
    } else {
      return array('r' => false, 'd' => null, 'm' => trans('messages.screen_popup_tag19'));
    }
  }

  public function tableFilter()
  {
    DB::statement("SET sql_mode = ''");
    $obj = $obj = PopupEmbed::select(
      'popup_embeds.id',
      'popup_embeds.title',
      'popup_embeds.msj',
      'popup_embeds.type_action_id',
      'popup_embeds.value',
      'popup_embeds.text_button_ok',
      'popup_embeds.image',
      'popup_embeds.created_at',
      'popup_embeds.active',
      DB::raw('GROUP_CONCAT(DISTINCT(tags.name)) AS segmentation')
    )
      ->with('type_action')
      ->leftjoin('popup_tags', 'popup_embeds.id', '=', 'popup_tags.popup_id')
      ->leftjoin('tags', function ($join) {
        $join->on('tags.id', '=', 'popup_tags.tag_id')->where('tags.active', 1);
      })
      ->groupBy('popup_embeds.id');
    DB::statement("SET sql_mode = 'STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'");

    return Datatables::of($obj)
      ->editColumn('image', function ($obj) {
        if (!$obj->image) {
          return $this->util->generateEmptyImageColumn();
        } else {
          return $this->util->generateImageColumnRound(config('filesystems.disks.s3.url') . '/popups/' . $obj->image, $obj->title, 'logo' . $obj->id);
        }
      })
      ->editColumn('active', function ($obj) {
        if ($obj->active == 0) {
          return '<div class="switch"><label><div class="checkbox checbox-switch switch-success"> <label> No <input type="checkbox" onChange="chkPopup(' . $obj->id . ')" data-id="' . $obj->id . '" id="Checkactive' . $obj->id . '" name="Checkactivo" /> <span></span>Si </label></div> </label> </div>';
        } else {
          return '<div class="switch"><label> <div class="checkbox checbox-switch switch-success"> <label>   No <input type="checkbox" onChange="chkPopup(' . $obj->id . ')" data-id="' . $obj->id . '" id="Checkactive' . $obj->id . '" name="Checkactivo" checked="" /><span></span> Si </label> </div>  </label> </div>';
        }
      })
      ->editColumn('created_at', function ($obj) {
        return \Carbon\Carbon::parse($obj->created_at)->format('Y-m-d h:i:s A');
      })
      ->addColumn('actions', function ($obj) {
        return '
               <i class="fa fa-pencil iconMini" onClick="clickEditPopup(' . $obj->id . ')" data-id="' . $obj->id . '" data-toggle="tooltip" data-placement="bottom" title="Editar" style="cursor:pointer;"></i>
               <i class="fa fa-trash iconMini" onClick="clickDeletePopup(' . $obj->id . ')" data-id="' . $obj->id . '" data-toggle="tooltip" data-placement="bottom" title="Eliminar" style="cursor:pointer;"></i>
            ';
      })
      ->rawColumns(['active', 'actions', 'image'])
      ->make(true);
  }
}