* @link https://TableTopElite.com */ namespace TheTempusProject\Controllers\Admin; use TheTempusProject\Houdini\Classes\Issues; use TheTempusProject\Houdini\Classes\Views; use TheTempusProject\Houdini\Classes\Components; use TheTempusProject\Bedrock\Functions\Input; use TheTempusProject\Bedrock\Functions\Check; use TheTempusProject\Classes\Forms; use TheTempusProject\Classes\AdminController; use TheTempusProject\Models\Sourcebooks as SourcebooksModel; use TheTempusProject\Houdini\Classes\Navigation; class Sourcebooks extends AdminController { protected static $sourcebooks; public function __construct() { parent::__construct(); self::$title = 'Admin - D&D Sourcebooks'; self::$sourcebooks = new SourcebooksModel; $view = Navigation::activePageSelect( 'nav.admin', '/admin/sourcebooks' ); Components::set( 'ADMINNAV', $view ); } public function index( $data = null ) { Views::view( 'dnd.admin.sourcebooks.list', self::$sourcebooks->paginatedList() ); } public function view( $id = null ) { $data = self::$sourcebooks->findById( $id ); if ( $data == false ) { Issues::add( 'error', 'Sourcebook not found.' ); return $this->index(); } Views::view( 'dnd.admin.sourcebooks.view', $data ); } public function create() { Components::set( 'privacyDropdown', Views::simpleView('dnd.forms.privacyDropdown') ); Components::set( 'versionDropdown', Views::simpleView('dnd.forms.versionDropdown') ); if ( !Input::exists( 'submit' ) ) { return Views::view( 'dnd.admin.sourcebooks.create' ); } if ( !Forms::check( 'createSourcebook' ) ) { Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] ); return Views::view( 'dnd.admin.sourcebooks.create' ); } if ( self::$sourcebooks->create( Input::post( 'name' ), Input::post( 'privacy' ), Input::post( 'version' ), Input::post( 'sourceType' ), Input::post( 'year' ), Input::post( 'amazonUrl' ), Input::post( 'description' ), Input::post( 'shortDescription' ) ) ) { Issues::add( 'success', 'Sourcebook created' ); return $this->index(); } else { Issues::add( 'error', 'There was an error creating your sourcebook.' ); return Views::view( 'dnd.admin.sourcebooks.create' ); } } public function edit( $id = null ) { $data = self::$sourcebooks->findById( $id ); if ( false == $data ) { return $this->index(); } Components::set( 'privacyDropdown', Views::simpleView('dnd.forms.privacyDropdown', $data) ); Components::set( 'versionDropdown', Views::simpleView('dnd.forms.versionDropdown', $data) ); if ( !Input::exists( 'submit' ) ) { return Views::view( 'dnd.admin.sourcebooks.edit', $data ); } if ( !Forms::check( 'editSourcebook' ) ) { Issues::add( 'error', [ 'There was an error with your request.' => Check::userErrors() ] ); return Views::view( 'dnd.admin.sourcebooks.edit', $data ); } if ( self::$sourcebooks->update( $id, Input::post( 'title' ), Input::post( 'suggestion' ), Input::post( 'approved' ) ) ) { Issues::add( 'success', 'Sourcebook updated' ); } else { return Views::view( 'dnd.admin.sourcebooks.edit', $data ); } } public function delete( $data = null ) { if ( Input::exists( 'submit' ) ) { $data = Input::post( 'SB_' ); } if ( !self::$sourcebooks->delete( $data ) ) { Issues::add( 'error', 'There was an error with your request.' ); } else { Issues::add( 'success', 'Sourcebook has been deleted' ); } $this->index(); } }