File: //home/cursos.ril.es/app/Http/Controllers/AdminMailsController.php
<?php
namespace App\Http\Controllers;
use App\Categorias;
use App\Cursos;
use App\ListaInteresados;
use App\Plantillas;
use App\User;
use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Mail;
class AdminMailsController extends Controller
{
public function index()
{
$plantillas = Plantillas::all();
return view('emails.gestorMails')->with('plantillas', $plantillas);
}
public function store(Request $request)
{
$plantilla = Plantillas::create(array('nombre' => $request->nombre, 'contenido' => $request->editor1));
redirect()->back();
}
public function sendMails()
{
$emails = Input::get( 'emails' );
$idCurso = Input::get( 'id' );
$idPlantilla = Input::get( 'idPlantilla' );
$plantilla = Plantillas::find($idPlantilla);
$alumnos = explode("|", $emails);
for($i=0;count($alumnos); $i++){
$user = User::where('email', $alumnos[$i])->get();
Mail::send('emails.plantilla', ['contenido' => $this->getTemplate($plantilla->id, $user[0]->id, $idCurso)], function($message) use ($user, $plantilla){
$message->to($user[0]->email, $user[0]->name)->from('rilprueba@gmail.com')->subject($plantilla->nombre);
});
}
return redirect('/admin/alumnoscursos/' . $idCurso);
}
public function sendPlantilla(){
$idPlantilla = Input::get( 'idPlantilla' );
$email = Input::get( 'email' );
$plantilla = Plantillas::find($idPlantilla);
Mail::send('emails.plantilla', ['contenido' => $plantilla->contenido], function($message) use ($email, $plantilla){
$message->to($email, "Prueba")->from('rilprueba@gmail.com')->subject($plantilla->nombre);
});
}
public function sendPlantillasCursos(){
$idCurso = Input::get( 'idCurso' );
$email = Input::get( 'email' );
$curso = Cursos::findOrFail($idCurso);
if (!empty($curso->mailAntes)) {
Mail::send('emails.plantilla', ['contenido' => $curso->mailAntes], function($message) use ($email, $curso){
$message->to($email, "Prueba")->from('rilprueba@gmail.com')->subject('Información ' . $curso->resumen);
});
}
if (!empty($curso->mailDespues)) {
Mail::send('emails.plantilla', ['contenido' => $curso->mailDespues], function ($message) use ($email, $curso) {
$message->to($email, "Prueba")->from('rilprueba@gmail.com')->subject('Gracias por asistir al ' . $curso->resumen);
});
}
}
public function editPlantilla(){
$idPlantilla = Input::get( 'idPlantilla' );
$plantilla = Plantillas::find($idPlantilla);
return $plantilla->contenido;
}
public function updatePlantilla(){
$idPlantilla = Input::get( 'idPlantilla' );
$contenido = Input::get( 'contenido' );
DB::table('plantillas')->where('id', $idPlantilla)->update(array('contenido' => $contenido));
}
public function sendAlumnosMails(){
$idPlantilla = Input::get( 'idPlantilla' );
$plantilla = Plantillas::find($idPlantilla);
$alumnos = User::all();
foreach($alumnos as $alumno){
Mail::send('emails.plantilla', ['contenido' => $plantilla->contenido], function($message) use ($alumno, $plantilla){
$message->to($alumno->email, $alumno->name)->from('rilprueba@gmail.com')->subject($plantilla->nombre);
});
}
return redirect('/admin/alumnos');
}
public function getTemplate($idPlantilla, $id, $idCurso)
{
$curso = Cursos::find($idCurso);
$categoria = Categorias::find($curso->idCategoria);
$user = User::find($id);
$plantilla = Plantillas::find($idPlantilla);
$contenido = $this->sortcode($plantilla->contenido, $user, $curso, $categoria);
return $contenido;
}
function sortcode($contenido, $user, $curso, $categoria)
{
$nombre = "[nombreAlumno]";
$nomcategoria = "[nombreCategoria]";
$descripcion = "[descripcion]";
$resumen = "[resumen]";
$fechaInicio = "[fechaInicio]";
$lugar = "[lugar]";
$horario = "[horario]";
$contenido = str_replace($nombre, $user->name, $contenido);
$contenido = str_replace($nomcategoria, $categoria->nombre, $contenido);
$contenido = str_replace($descripcion, $curso->descripcion, $contenido);
$contenido = str_replace($resumen, $curso->resumen, $contenido);
$contenido = str_replace($fechaInicio, $curso->fechaInicio, $contenido);
$contenido = str_replace($lugar, $curso->lugar, $contenido);
$contenido = str_replace($horario, $curso->horario, $contenido);
return $contenido;
}
public function sendMailsInteresados(){
$idCurso = Input::get( 'id' );
$idPlantilla = Input::get( 'idPlantilla' );
$plantilla = Plantillas::find($idPlantilla);
$listaInteresados = ListaInteresados::where('cursos_id', $idCurso)->get();
foreach($listaInteresados as $listint){
if($listint->puede == 0){
DB::table('lista_interesados')->where('cursos_id', $listint->cursos_id)->where('users_id', $listint->users_id)->update(array('intentos' => ($listint->intentos + 1)));
$user = User::find($listint->users_id);
Mail::send('emails.plantilla', ['contenido' => $this->getTemplate($plantilla->id, $user->id, $idCurso)], function($message) use ($user, $plantilla){
$message->to($user->email, $user->name)->from('rilprueba@gmail.com')->subject($plantilla->nombre);
});
}
}
return redirect('/admin/listainteresados/' . $idCurso);
}
}