Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
evsmash/widgets / libs / Http / Admin / Forms.php
Size: Mime:
<?php

namespace Evsmash\Widgets\Http\Admin;

use Evsmash\Core\Http\Base;

use Evsmash\Core\Helpers\Redirect;
use Evsmash\Core\Input\Post;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Services\Mail;
use Evsmash\Core\Simpy\Element;
use Evsmash\Core\System\Exception;

use Evsmash\Widgets\Form;

class Forms extends Base {

	// index
	public function index() {

		// available
		if(!cfg('evsmash-widgets-forms-save')) {
			Exception::notexists('forms', 'index');
		}

		// elements
		$elements = Form::params()->paginate(Route::limit(100));

		// bar
		$bar = [
			'search' => true,
			'summary' => $elements
		];

		// view
		$this->viewTitle('Forms data');
		$this->view(compact(['elements', 'bar']));

	}

	// answer
	public function answer() {

		// available
		if(!cfg('evsmash-widgets-forms-answer')) {
			Exception::notexists('forms', 'index');
		}

		// element
		$element = Element::check(new Form);

		// message
		$message = '';
		$message .= "\n\n\n---\n";
		$message .= cfg('evsmash-widgets-forms-answer-footer')."\n\n";

		// data
		$data_raw = unserialize($element->data);
		if(isset($data_raw[t('Message')])) {
			$message .= "---\n";
			$message .= $data_raw[t('Message')];
		}

		// assign
		$element->message = $message;

		// view
		$this->view(compact(['element']));

	}

	// answer send
	public function answerSend() {

		// validate
		Post::validate(['email' => 'req|email', 'message' => 'req|max:10000']);

		// message
		$message = nl2br(Post::get('message', 'cleanlines'));

		// mail
		$mail = new Mail;
		$mail->title = 'Answer';
		$mail->title_domain = true;
		$mail->msg = $message;
		$mail->send(Post::get('email'));

		// redirect
		Redirect::msg('Sent');
		Redirect::to('/forms');

	}

	// delete
	public function delete() {

		Element::delete(new Form);

	}

}