Your IP : 216.73.216.85


Current Path : /home/smartconb/www/armencom33/components/com_eventgallery/src/Controller/
Upload File :
Current File : /home/smartconb/www/armencom33/components/com_eventgallery/src/Controller/SingleimageController.php

<?php
/**
 * @package     Sven.Bluege
 * @subpackage  com_eventgallery
 *
 * @copyright   Copyright (C) 2005 - 2019 Sven Bluege All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */
namespace Svenbluege\Component\Eventgallery\Site\Controller;
use Joomla\CMS\Access\Access;
use Joomla\CMS\Factory;
use Joomla\CMS\Mail\MailHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Table\Table;
use Joomla\CMS\User\User;
use Svenbluege\Component\Eventgallery\Site\Library\Factory\FolderFactory;

defined('_JEXEC') or die;

class SingleimageController extends \Joomla\CMS\MVC\Controller\BaseController
{

    public function display($cachable = false, $urlparams = array())
    {
        $folder = $this->input->getString('folder', '');

        /**
         * @var FolderFactory $folderFactory
         */
        $folderFactory = FolderFactory::getInstance();
        $folder = $folderFactory->getFolder($folder);


        if ($folder == null) {
            throw new \Exception(\Joomla\CMS\Language\Text::_('COM_EVENTGALLERY_EVENT_NO_PUBLISHED_MESSAGE'), 404);
        }
        // we need to do this only if someone entered a password.
        // the views will protect themselfs
        $accessAllowed = $folder->isVisible();

        if (!$accessAllowed) {
            $cachable = false;
        }



        $viewLayout = $this->input->get('layout', 'default', 'string');

        if ('imagesetselection' == $viewLayout) {
            $cachable = false;
        }

        parent::display($cachable, $urlparams);
    }

    function saveReport($cachable = false, $urlparams = array()) {

        Session::checkToken() or jexit(\Joomla\CMS\Language\Text::_('JINVALID_TOKEN'));

        $app = Factory::getApplication();

        $model = $this->getModel('Singleimage', '');

        $form = $model->getMessageForm();

        $data = $this->input->post->getArray();
        $validationSuccessful = $model->validate($form, $data);

        if ($validationSuccessful) {

            $row = Factory::getApplication()->bootComponent('com_eventgallery')->getMVCFactory()->createTable('Message', 'Administrator');
            $row->bind($app->input->post->getArray());
            $result = $row->store();

            /**
             * @var Joomla\Registry\Registry $config
             * @var Joomla\Registry\Registry $params
             */
            $config = Factory::getConfig();
            $mailer = Factory::getMailer();
            $egConfig = \Svenbluege\Component\Eventgallery\Site\Library\Configuration\Main::getInstance();

            $subject = $config->get('sitename') . ' // ' . \Joomla\CMS\Language\Text::_('COM_EVENTGALLERY_MESSAGES_REPORT_MAIL_SUBJECT');
            $body = [];
            $body[] = "<b>" . \Joomla\CMS\Language\Text::_('COM_EVENTGALLERY_MESSAGES_EMAIL_LABEL') . ": </b> {$row->email}<br>";
            $body[] = "<b>" . \Joomla\CMS\Language\Text::_('COM_EVENTGALLERY_MESSAGES_MESSAGE_LABEL') . ": </b> {$row->message}<br>";
            $body[] = "<b>Folder: </b> {$row->folder}<br>";
            $body[] = "<b>File: </b> {$row->file}<br>";
            $body = implode("", $body);

            $mailer->setSubject(
                $subject
            );

            $mailer->isHtml(true);
            $mailer->Encoding = 'base64';
            $mailer->setBody($body);

            // Customer Mail
            $sender = array(
                $config->get('mailfrom'),
                $config->get('fromname'));

            $mailer->setSender($sender);

            $userids = Access::getUsersByGroup($egConfig->getGeneral()->getAdminUserGroupId());

            foreach ($userids as $userid) {
                $user = User::getInstance($userid);
                if ($user->sendEmail == 1) {
                    $mailadresse = MailHelper::cleanAddress($user->email);
                    $mailer->addRecipient($mailadresse);
                }
            }

            $send = $mailer->Send();

            if ($result && $send) {
                $app->enqueueMessage(\Joomla\CMS\Language\Text::_('COM_EVENTGALLERY_MESSAGES_REPORT_SAVE_SUCCESS'), 'info');
            } else {
                $app->enqueueMessage(\Joomla\CMS\Language\Text::_('COM_EVENTGALLERY_MESSAGES_REPORT_SAVE_FAILED'), 'error');
            }

            $folder = $app->input->getString('folder');
            $file = $app->input->getString('file');
            $app->redirect( Route::_("index.php?option=com_eventgallery&view=singleimage&layout=report&folder=" . $folder . "&file=" . $file));
        }

        return $this->display($cachable, $urlparams);
    }

    public function resetViewCache() {
        parent::$views = null;
    }

}