egroupware_official/addressbook/sitemgr/class.module_addressbook_contactform.inc.php
2016-12-09 14:09:06 +01:00

140 lines
4.2 KiB
PHP

<?php
/**
* Addressbook - Sitemgr contact form
*
* @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package addressbook
* @copyright (c) 2007-15 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
use EGroupware\Api;
use EGroupware\Api\Acl;
/**
* SiteMgr contact form for the addressbook
*
*/
class module_addressbook_contactform extends sitemgr_module
{
/**
* Constructor
*
* @return module_addressbook_contactform
*/
function __construct()
{
$this->i18n = true;
$this->arguments = array(); // get's set in get_user_interface
$this->title = lang('Contactform');
$this->description = lang('This module displays a contactform, that stores direct into the addressbook.');
$this->etemplate_method = 'addressbook.addressbook_contactform.display';
}
function get_content (&$arguments,$properties)
{
$parent = parent::get_content($arguments, $properties);
//Make sure that recaptcha keys are set before include it
if (($recaptcha = sitemgr_module::get_recaptcha()))
{
$extra .= '<script src="https://www.google.com/recaptcha/api.js" type="text/javascript"></script>'."\n";
return $extra.$parent;
}
// fallback to basic captcha
return $parent;
}
/**
* Reimplemented to add the addressbook translations and fetch the addressbooks only if needed for the user-interface
*
* @return array
*/
function get_user_interface()
{
Api\Translation::add_app('addressbook');
$uicontacts = new addressbook_ui();
$default = $fields = array(
'org_name' => lang('Company'),
'org_unit' => lang('Department'),
'n_fn' => lang('Prefix').', '.lang('Firstname').' + '.lang('Lastname'),
'sep1' => '----------------------------',
'email' => lang('email'),
'tel_work' => lang('work phone'),
'tel_cell' => lang('mobile phone'),
'tel_fax' => lang('fax'),
'tel_home' => lang('home phone'),
'url' => lang('url'),
'sep2' => '----------------------------',
'adr_one_street' => lang('street'),
'adr_one_street2' => lang('address line 2'),
'adr_one_locality' => lang('city').' + '.lang('zip code'),
'sep3' => '----------------------------',
);
foreach($uicontacts->customfields as $name => $data)
{
$fields['#'.$name] = $data['label'];
}
$fields += array(
'sep4' => '----------------------------',
'note' => lang('message'),
'sep5' => '----------------------------',
'captcha' => lang('Verification'),
);
$this->i18n = True;
$this->arguments = array(
'arg1' => array(
'type' => 'select',
'label' => lang('Addressbook the contact should be saved to').' ('.lang('The anonymous user needs add rights for it!').')',
'options' => array(
'' => lang('None'),
)+$uicontacts->get_addressbooks(Acl::ADD) // add to not show the accounts!
),
'arg4' => array(
'type' => 'textfield',
'label' => lang('Email addresses (comma separated) to send the contact data'),
'params' => array('size' => 80),
),
'arg6' => array(
'type' => 'textfield',
'label' => lang('Subject for email'),
'params' => array('size' => 80),
'default' => lang('Contactform'),
'i18n' => True,
),
'arg2' => array(
'type' => 'select',
'label' => lang('Contact fields to show'),
'multiple' => true,
'options' => $fields,
'default' => $default,
'params' => array('size' => 9),
),
'arg3' => array(
'type' => 'textfield',
'label' => lang('Message after submitting the form'),
'params' => array('size' => 80),
'default' => lang('Thank you for contacting us.'),
'i18n' => True,
),
'arg5' => array(
'type' => 'textfield',
'label' => lang('Custom eTemplate for the contactform'),
'params' => array('size' => 40),
'default' => 'addressbook.contactform',
),
'arg7' => array(
'type' => 'checkbox',
'label' => lang('Send emailcopy to receiver'),
'params' => array('size' => 1),
),
);
return parent::get_user_interface();
}
}