EmailsController

Extends \AdminHttpViewController

Class EmailsController

PHP controller that handles the admin/emails page operations. You can also use it to perform email operations from JavaScript by providing encoded JSON arrays with email information from other pages.

category

System

package

AdminHttpViewControllers

Methods

__construct

__construct(\HttpContextReaderInterface $httpContextReader, \HttpResponseProcessorInterface $httpResponseProcessor, \ContentViewInterface $defaultContentView) 
inherited

Arguments

$httpContextReader

\HttpContextReaderInterface

$httpResponseProcessor

\HttpResponseProcessorInterface

$defaultContentView

\ContentViewInterface

Invokes an action method by the given action name.

_callActionMethod(string $actionName) : \HttpControllerResponseInterface
inherited
Throws
\LogicException

If no action method of the given name exists.

Arguments

$actionName

string

Name of action method to call, without 'action'-Suffix.

Response

\HttpControllerResponseInterface

Response message.

Returns the expected $_POST value by the given key name.

_getPostData(string $keyName) : string|null
inherited

This method is the object oriented layer for $_POST[$keyName].

Arguments

$keyName

string

Expected key of post parameter.

Response

string|null

Either the expected value or null, of not found.

Creates and returns a key value collection which represent the global $_POST array.

_getPostDataCollection() : \KeyValueCollection
inherited

Returns the expected $_GET value by the given key name.

_getQueryParameter(string $keyName) : mixed|null
inherited

This method is the object oriented layer for $_GET[$keyName].

Arguments

$keyName

string

Expected key of query parameter.

Response

mixed|null

Either the expected value or null, of not found.

Creates and returns a key value collection which represent the global $_GET array.

_getQueryParametersCollection() : \KeyValueCollection
inherited

Returns the expected $_SERVER value by the given key name.

_getServerData(string $keyName) : string|null
inherited

This method is the object oriented layer for $_SERVER[$keyName].

Arguments

$keyName

string

Expected key of server parameter.

Response

string|null

Either the expected value or null, of not found.

Get the table order clause in string.

_getTableOrder(array $rule) : string

Since the EmailsController handles the page main table it needs to take care of many operations such as filtering, limiting and ordering. This method will return the correct order string for each table, but needs to be updated if there is a change in the column order.

link

http://www.datatables.net/manual/server-side

Arguments

$rule

array

Contains the DataTables order data.

Response

string

Returns the order by value to be used by the CI query builder.

Renders and returns a template file.

_render(string $templateFile, array $contentArray) : string
inherited

Arguments

$templateFile

string

Template file to render.

$contentArray

array

Content array which represent the variables of the template.

Response

string

Rendered template.

Check if the $_POST['pageToken'] or $_GET['pageToken'] variable is provided and if it's valid.

_validatePageToken(string $customExceptionMessage = null) 
inherited

Example: public function proceed(HttpContextInterface $httpContext) { parent::proceed($httpContext); // proceed http context from parent class if($_SERVER['REQUEST_METHOD'] === 'POST') { $this->_validatePageToken(); // CSRF Protection } }

Throws
\Exception

If the validation fails.

Arguments

$customExceptionMessage

string

(optional) You can specify a custom exception message.

[AJAX - GET] Server-side processing of the main emails table.

actionDataTable() : \JsonHttpControllerResponse

The data returned by this method will be used by the main table of the page which will display the emails records. DataTables will automatically make an AJAX request and display the returned data.

link

https://datatables.net/examples/ajax/objects.html

http://www.datatables.net/examples/server_side/simple.html

Response

\JsonHttpControllerResponse

Array that contains the table data.

Default action method.

actionDefault() : \HttpControllerResponseInterface
inherited

Every controller child class requires at least the default action method, which is invoked when the ::_getQueryParameterData('do') value is not separated by a trailing slash.

Every action method have to return an instance which implements the http controller response interface.

Response

\HttpControllerResponseInterface

[AJAX - POST] Remove email records from the database.

actionDelete() : \JsonHttpControllerResponse

Will remove all the email records inside the $_POST['collection'] variable.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

[AJAX - POST] Remove existing "tmp" attachment from the server.

actionDeleteAttachment() : \JsonHttpControllerResponse

This method requires an array present in the $postDataArray that contain the paths to the server "tmp" attachments to be removed. It will not remove attachments that reside in other directories because they might be used by other email records (e.g. forward existing email with attachments -> user might remove attachment that is used by the original email record causing problems to the system).

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

[AJAX - POST] Delete old attachment files from emails.

actionDeleteOldAttachments() : \JsonHttpControllerResponse

This method will filter the emails and remove their attachments on the provided date and before. This is necessary because the admin user needs a way to clean the old unnecessary files from the server and free some extra space. As an extra action this method will empty the "uploads/tmp" directory.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

[AJAX - POST] Delete old emails.

actionDeleteOldEmails() : \JsonHttpControllerResponse

This method will delete emails on the provided date and before.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

Download email attachment file.

actionDownloadAttachment() : \HttpControllerResponse|\AdminPageHttpControllerResponse

This method will provide the required headers for downloading the requested attachment file.

If the requested file is was not found then an error message will be displayed.

Response

\HttpControllerResponse|\AdminPageHttpControllerResponse

[AJAX - POST] Get email record by ID.

actionGet() : \JsonHttpControllerResponse

This method uses the provided $_POST['email_id'] value to fetch the data of the email and return it to the client. It is not used by the admin/emails page but might be useful in other pages.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

[AJAX] Get attachments size in MB

actionGetAttachmentsSize() : \JsonHttpControllerResponse

[AJAX - GET] Get shops email settings and configure the client accordingly.

actionGetEmailSettings() : \JsonHttpControllerResponse

[AJAX - POST] Queue email records into the database.

actionQueue() : \JsonHttpControllerResponse

The queue operation will save the email with a pending status. Queue operation will be executed for all the email records inside the $_POST['collection'] variable.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

[AJAX - POST] Sends and saves the provided email collection.

actionSend() : \JsonHttpControllerResponse

This method expects the $_POST['collection'] array to be present, containing email records to be send. Check the "EmailParser" class to see the expected JSON format.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

[AJAX - POST] Upload new attachment file to server.

actionUploadAttachment() : \JsonHttpControllerResponse

The $_FILES array contains information about the file that was uploaded. When an email file is uploaded it is stored in the "uploads/tmp" directory until the email is created and then is is moved to its own directory. The reason for this algorithm is that we do not want email attachments to be in one place altogether.

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

The $_POST array contains information about the file that was uploaded. When an email file is uploaded it is stored in the "uploads/tmp" directory until the email is created and then is is moved to its own directory. The reason for this algorithm is that we do not want email attachments to be in one place altogether.

actionUploadAttachmentWithFileManager() : \JsonHttpControllerResponse

Response

\JsonHttpControllerResponse

Returns a success response or exception information.

Searches the GXModules directory and admin/html directory for a template file, wich can be useed inside the AdminLayoutHttpControllerResponse object for the template parameter.

getTemplateFile(string $templateFile) : \ExistingFile
inherited
Throws
\Exception

if the path or file is not found

Arguments

$templateFile

string

The relative path and filename to search for

Response

\ExistingFile

containing absolute file path to the given template file

Processes a http response object which is get by invoking an action method.

proceed(\HttpContextInterface $httpContext) 
inherited

The action method is determined by the http context reader instance and the current request context. Re-implement this method in child classes to enable XSS and CSRF protection on demand.

see \HttpResponseProcessorInterface::proceed \HttpContextReaderInterface::getActionName
Throws
\LogicException

When no action method is found by the http context reader.

Arguments

$httpContext

\HttpContextInterface

Http context object which hold the request variables.

Makes sure that the admin status is currently given in session

validateCurrentAdminStatus() 
inherited
Throws
\LogicException

Properties

Used core emails operations.

emailService : \EmailServiceInterface

Used for parsing and encoding operations.

emailParser : \EmailParser
var

Type(s)

\EmailParser

Used for attachment files manipulation.

attachmentsHandler : \AttachmentsHandler
var

Type(s)

\AttachmentsHandler

httpContextReader

httpContextReader : \HttpContextReaderInterface
inherited

httpResponseProcessor

httpResponseProcessor : \HttpResponseProcessorInterface
inherited

contentView

contentView : \ContentViewInterface
inherited
var

Type(s)

\ContentViewInterface

queryParametersArray

queryParametersArray : array
inherited
var

Type(s)

array

postDataArray

postDataArray : array
inherited
var

Type(s)

array

Contain the assets needed to be included in the view HTML.

assets : \AssetCollectionInterface
inherited
var

Contain the assets needed to be included in the view HTML.

Type(s)

\AssetCollectionInterface

Server data.

serverDataArray : array
inherited
var

Server data.

Type(s)

array