View file application/modules/Core/Form/Admin/Mail/Settings.php

File size: 4.96Kb
<?php

/**
 * SocialEngine
 *
 * @category   Application_Core
 * @package    Core
 * @copyright  Copyright 2006-2020 Webligo Developments
 * @license    http://www.socialengine.com/license/
 * @version    $Id: Settings.php 9747 2012-07-26 02:08:08Z john $
 * @author     Jung
 */

/**
 * @category   Application_Core
 * @package    Core
 * @copyright  Copyright 2006-2020 Webligo Developments
 * @license    http://www.socialengine.com/license/
 */
class Core_Form_Admin_Mail_Settings extends Engine_Form
{

  public function init()
  {

	$settings = Engine_Api::_()->getApi('settings', 'core');

	if( $settings->getSetting('user.support.links', 0) == 1 ) {
	  $moreinfo = $this->getTranslator()->translate(
        'More Info: <a href="%1$s" target="_blank"> KB Article</a>');
	} else {
	  $moreinfo = $this->getTranslator()->translate(
        '');
	}

    $description = vsprintf($moreinfo, array(
      'https://community.socialengine.com/blogs/597/36/mail-settings',
    ));

	// Decorators
    $this->loadDefaultDecorators();
	$this->getDecorator('Description')->setOption('escape', false);

    // Set form attributes
    $this->setTitle('Mail Settings');
	$this->setDescription($description);

    $this->addElement('Text', 'contact', array(
      'label' => 'Contact Form Email',
      'description' => 'Enter the email address you want contact form messages to be sent to.',
    ));

    // Element: mail_name
    $this->addElement('Text', 'name', array(
      'label' => 'From Name',
      'description' => 'Enter the name you want the emails from the system to come from in the field below.',
      'value' => 'Site Admin',
    ));

    // Element: mail_from
    $this->addElement('Text', 'from', array(
      'label' => 'From Address',
      'description' => 'Enter the email address you want the emails from the system to come from in the field below.',
      'value' => 'no-reply@' . $_SERVER['HTTP_HOST'],
    ));

    // Element: mail_count
    $this->addElement('Text', 'count', array(
      'label' => 'Mail Count',
      'description' => 'The number of emails to send out each time the Background Mailer task is run.',
      'validators' => array(
        array('Int', true),
        array('GreaterThan', true, array(0)),
      ),
    ));

    // Element: mail_queue
    $this->addElement('Radio', 'queueing', array(
      'label' => 'Email Queue',
      'description' => 'Utilizing an email queue, you can allow your website to throttle the emails being sent out to prevent overloading the mail server.',
      'required' => true,
      'multiOptions' => array(
        1 => 'Yes, enable email queue',
        0 => 'No, always send emails immediately',
      ),
     'value' => 1,
    ));

		if(Engine_Api::_()->core()->isAcpProSetting()) {
			// Element: mail_smtp
			$this->addElement('Radio', 'mail_smtp', array(
				'label' => 'Send through SMTP',
				'description' => 'Emails typically get sent through the web server using the PHP mail() function.  Alternatively you can have emails sent out using SMTP, usually requiring a username and password, and optionally using an external mail server.',
				'required' => false,
				'multiOptions' => array(
					0 => 'Use the built-in mail() function',
					1 => 'Send emails through an SMTP server',
				),
				'value' => 0,
			));

			// Element: mail_smtp_server
			$this->addElement('Text', 'mail_smtp_server', array(
				'label' => 'SMTP Server Address',
				'required' => false,
				'value' => '127.0.0.1',
			));

			// Element: mail_smtp_port
			$this->addElement('Text', 'mail_smtp_port', array(
				'label' => 'SMTP Server Port',
				'description' => 'Default: 25. Also commonly on port 465 (SMTP over SSL) or port 587.',
				'required' => false,
				'value' => '25',
				'validators' => array(
					'Int'
				),
			));
			$this->mail_smtp_port->getDecorator("Description")->setOption("placement", "append");

			// Element: mail_smtp_authentication
			$this->addElement('Radio', 'mail_smtp_authentication', array(
				'label' => 'SMTP Authentication?',
				'description' => 'Does your SMTP Server require authentication?',
				'required' => false,
				'multiOptions' => array(
					1 => 'Yes',
					0 => 'No',
				),
				'value' => 0,
			));

			// Element: mail_smtp_username
			$this->addElement('Text', 'mail_smtp_username', array(
				'label' => 'SMTP Username',
			));

			// Element: mail_smtp_password
			$this->addElement('Password', 'mail_smtp_password', array(
				'label' => 'SMTP Password',
				'description' => 'Leave blank to use previous.',
			));
			$this->mail_smtp_password->getDecorator("Description")->setOption("placement", "append");

			// Element: mail_smtp_ssl
			$this->addElement('Radio', 'mail_smtp_ssl', array(
				'label' => 'Use SSL or TLS?',
				'required' => false,
				'multiOptions' => array(
					'' => 'None',
					'tls' => 'TLS',
					'ssl' => 'SSL',
				),
				'value' => '',
			));
    }

    // Element: submit
    $this->addElement('Button', 'submit', array(
      'label' => 'Save Changes',
      'type' => 'submit',
      'ignore' => true,
    ));
  }

}