203 lines
4.8 KiB
PHP
203 lines
4.8 KiB
PHP
|
<?php
|
|||
|
|
|||
|
/**
|
|||
|
* The Legend of Z
|
|||
|
*
|
|||
|
* @author Oliver Hanraths <oliver.hanraths@uni-duesseldorf.de>
|
|||
|
* @copyright 2014 Heinrich-Heine-Universität Düsseldorf
|
|||
|
* @license http://www.gnu.org/licenses/gpl.html
|
|||
|
* @link https://bitbucket.org/coderkun/the-legend-of-z
|
|||
|
*/
|
|||
|
|
|||
|
namespace hhu\z\apis;
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* MailApi-implementation.
|
|||
|
*
|
|||
|
* This class runs and renders e‑mail text and subject.
|
|||
|
*
|
|||
|
* @author Oliver Hanraths <oliver.hanraths@uni-duesseldorf.de>
|
|||
|
*/
|
|||
|
class MailApi extends \nre\core\Api
|
|||
|
{
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Construct a new MailApi.
|
|||
|
*/
|
|||
|
public function __construct()
|
|||
|
{
|
|||
|
parent::__construct(
|
|||
|
new \hhu\z\requests\MailRequest(),
|
|||
|
new \hhu\z\responses\MailResponse()
|
|||
|
);
|
|||
|
|
|||
|
// Set ToplevelAgent
|
|||
|
$this->request->addParam(\nre\configs\AppConfig::$defaults['toplevel-mail']);
|
|||
|
$this->request->addParam(\nre\configs\AppConfig::$defaults['intermediate-mail']);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set linker instance for creating links.
|
|||
|
*
|
|||
|
* @param \nre\core\Linker $linker Linker instance for creating links
|
|||
|
*/
|
|||
|
public function setLinker(\nre\core\Linker $linker)
|
|||
|
{
|
|||
|
$this->request->setLinker($linker);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Use a ToplevelAgent for HTML-mail
|
|||
|
*
|
|||
|
* @param bool $html Whether to use HTML or not
|
|||
|
*/
|
|||
|
public function setHTML($html=true)
|
|||
|
{
|
|||
|
// Save params
|
|||
|
$params = $this->request->getParams(1);
|
|||
|
|
|||
|
// Set ToplevelAgent
|
|||
|
$this->request->clearParams();
|
|||
|
if($html) {
|
|||
|
$this->request->addParam(\nre\configs\AppConfig::$defaults['toplevel-htmlmail']);
|
|||
|
}
|
|||
|
else {
|
|||
|
$this->request->addParam(\nre\configs\AppConfig::$defaults['toplevel-mail']);
|
|||
|
}
|
|||
|
|
|||
|
// Restore params
|
|||
|
if(!empty($params)) {
|
|||
|
$this->addParams($params);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set the Action for the message to render.
|
|||
|
*
|
|||
|
* @param string $messageAgent Agent to handle the message
|
|||
|
*/
|
|||
|
public function setMessage($messageAgent)
|
|||
|
{
|
|||
|
// Save params
|
|||
|
$params = $this->request->getParams(3);
|
|||
|
|
|||
|
// Set messageAgent
|
|||
|
$this->request->clearParams(2);
|
|||
|
$this->request->addParam($messageAgent);
|
|||
|
|
|||
|
// Restore params
|
|||
|
if(!empty($params)) {
|
|||
|
$this->addParams($params);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Set additional params to pass to the Action.
|
|||
|
*
|
|||
|
* @param array $params Additional params to set
|
|||
|
*/
|
|||
|
public function setParams($params)
|
|||
|
{
|
|||
|
// Add placeholder params
|
|||
|
for($i=3; $i<count($this->request->getParams()); $i++) {
|
|||
|
$this->request->addParam(null);
|
|||
|
}
|
|||
|
|
|||
|
// Set params
|
|||
|
call_user_func_array(
|
|||
|
array(
|
|||
|
$this->request,
|
|||
|
'addParams'
|
|||
|
),
|
|||
|
$params
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Return the subject set by the Controller.
|
|||
|
*
|
|||
|
* @return string Subject set by Controller
|
|||
|
*/
|
|||
|
public function getSubject()
|
|||
|
{
|
|||
|
return $this->response->getSubject();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Run mailtext generation.
|
|||
|
*
|
|||
|
* This method runs the generation of mailtext.
|
|||
|
*
|
|||
|
* @return \Exception Occured exception or null
|
|||
|
*/
|
|||
|
public function run()
|
|||
|
{
|
|||
|
// Set response
|
|||
|
$this->response->clearParams();
|
|||
|
foreach($this->request->getParams() as $param) {
|
|||
|
$this->response->addParam($param);
|
|||
|
}
|
|||
|
|
|||
|
// Run
|
|||
|
try {
|
|||
|
$exception = parent::run();
|
|||
|
|
|||
|
|
|||
|
return $exception;
|
|||
|
}
|
|||
|
catch(\nre\Exception $e) {
|
|||
|
return $e;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Render output.
|
|||
|
*
|
|||
|
* @return string Rendered output
|
|||
|
*/
|
|||
|
public function render()
|
|||
|
{
|
|||
|
// Generate output
|
|||
|
parent::render();
|
|||
|
|
|||
|
|
|||
|
// Return output
|
|||
|
return $this->response->getOutput();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* Add multiple request params.
|
|||
|
*
|
|||
|
* @param array $params Request params to add
|
|||
|
*/
|
|||
|
private function addParams($params)
|
|||
|
{
|
|||
|
call_user_func_array(
|
|||
|
array(
|
|||
|
$this->request,
|
|||
|
'addParams'
|
|||
|
),
|
|||
|
$params
|
|||
|
);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
?>
|