"Eins ist toll", "zwei" => "Zwei ist noch besser");
/* attribute list for save action */
var $attributes= array("goFonDeliveryMode", "goFonForwarding", "goFonFormat",
"goFonHardware", "goFonPIN", "telephoneNumber");
var $objectclasses= array("goFonAccount");
function phoneAccount ($config, $dn= NULL)
{
plugin::plugin ($config, $dn);
/* Set phone hardware */
if (!isset($this->attrs['goFonHardware'])){
$this->goFonHardware= "automatic";
}
/* Preset voice format */
if (!isset($this->attrs['goFonFormat'])){
$this->goFonFormat= "wav";
}
/* Assemble phone numbers */
if (isset($this->attrs['telephoneNumber'])){
for ($i= 0; $i<$this->attrs['telephoneNumber']['count']; $i++){
$number= $this->attrs['telephoneNumber'][$i];
$this->phoneNumbers[$number]= $number;
}
}
/* Assemble forwarders */
if (isset($this->attrs['goFonForwarding'])){
for ($i= 0; $i<$this->attrs['goFonForwarding']['count']; $i++){
list($num, $v1, $v2) =split(';', $this->attrs['goFonForwarding'][$i]);
$this->forwarders[$num]= "$v1;$v2";
}
} else {
$this->forwarders= array("");
}
/* Set up has_mailAccount */
if (isset($this->attrs['objectClass'])){
if (in_array("gosaMailAccount", $this->attrs['objectClass'])){
$this->has_mailAccount= TRUE;
}
}
/* Load hardware list */
$ldap= $this->config->get_ldap_link();
$ldap->cd($this->config->current['BASE']);
$ldap->search("(objectClass=goFonHardware)", array('cn', 'description'));
while ($attrs= $ldap->fetch()){
$cn= $attrs['cn'][0];
if (isset($attrs['description'])){
$description= " - ".$attrs['description'][0];
} else {
$description= "";
}
$this->hardware_list[$cn]= "$cn$description";
}
/* Eventually colorize phones */
$ldap->cd($this->config->current['BASE']);
foreach ($this->hardware_list as $cn => $desc){
$ldap->search("(goFonHardware=$cn)", array('cn'));
if ($ldap->count() > 0){
$ldap->fetch();
if ($ldap->getDN() != $this->dn){
$this->used_hardware[$cn]= $ldap->getDN();
}
}
}
$this->hardware_list["automatic"]= _("automatic");
ksort($this->hardware_list);
}
function execute()
{
/* Do we need to flip is_account state? */
if (isset($_POST['modify_state'])){
$this->is_account= !$this->is_account;
}
/* Do we represent a valid account? */
if (!$this->is_account && $this->parent == NULL){
$display= " ".
_("This account has no phone extensions.")."";
$display.= back_to_main();
return($display);
}
$display= "";
/* Show tab dialog headers */
if ($this->parent != NULL){
if ($this->is_account){
$display= $this->show_header(_("Remove phone account"),
_("This account has phone features enabled. You can disable them by clicking below."));
} else {
$display= $this->show_header(_("Create phone account"),
_("This account has phone features disabled. You can enable them by clicking below."));
return ($display);
}
}
/* Add phone number */
if (isset($_POST["add_phonenumber"]) && $_POST['phonenumber']){
if (is_phone_nr($_POST['phonenumber'])){
$number= $_POST["phonenumber"];
$this->phoneNumbers[$number]= $number;
$this->is_modified= TRUE;
} else {
print_red(_("Please enter a valid phone number!"));
}
}
/* Remove phone number */
if (isset($_POST["delete_phonenumber"]) && isset($_POST["phonenumber_list"])){
foreach ($_POST['phonenumber_list'] as $number){
unset($this->phoneNumbers[$number]);
$this->is_modified= TRUE;
}
}
/* Check for forwarding action */
foreach ($this->forwarders as $nr => $fw){
/* Buttons pressed? */
if (isset($_POST["add_fw$nr"])){
$this->forwarders= $this->insert_after("", $nr, $this->forwarders);
}
if (isset($_POST["remove_fw$nr"])){
unset($this->forwarders[$nr]);
}
}
/* Prepare templating */
$smarty= get_smarty();
/* Transfer ACL's */
foreach($this->attributes as $val){
$smarty->assign($val."ACL", chkacl($this->acl, "$val"));
}
/* Fill arrays */
$smarty->assign ("goFonHardware", $this->goFonHardware);
$smarty->assign ("phoneNumbers", $this->phoneNumbers);
$hl= "\n";
$smarty->assign ("hardware_list", $hl);
/* Generate forwarder view */
$forwarder_list="";
$acl= chkacl($this->acl, "goFonForwaring");
foreach ($this->forwarders as $nr => $fw){
if ($fw == ""){
$number= ""; $timeout= "";
} else {
list($number, $timeout)= split(";", $fw);
}
$forwarder_list.= "