diff --git a/list-virtual.php b/list-virtual.php index 8f24168b..bfdb9c55 100644 --- a/list-virtual.php +++ b/list-virtual.php @@ -99,16 +99,21 @@ if($fDomain) { # TODO: add search support for alias domains if (boolconf('alias_domain')) { - # Alias-Domains - # first try to get a list of other domains pointing - # to this currently chosen one (aka. alias domains) - $query = "SELECT $table_alias_domain.alias_domain,$table_alias_domain.target_domain,$table_alias_domain.modified,$table_alias_domain.active FROM $table_alias_domain WHERE target_domain='$fDomain' ORDER BY $table_alias_domain.alias_domain LIMIT $fDisplay, $page_size"; - if ('pgsql'==$CONF['database_type']) - { - $query = "SELECT alias_domain,target_domain,extract(epoch from modified) as modified,active FROM $table_alias_domain WHERE target_domain='$fDomain' ORDER BY alias_domain LIMIT $page_size OFFSET $fDisplay"; + $modified_field = 'modified'; + if ('pgsql'==$CONF['database_type']) { # TODO: do we really need the extract(epoch from modified) for pgsql? We ust gmstrftime anyway (see below) + $modified_field = 'extract(epoch from modified) as modified'; } + + $query = " + SELECT alias_domain,target_domain,$modified_field,active FROM $table_alias_domain + WHERE alias_domain='$fDomain' OR target_domain='$fDomain' + ORDER BY alias_domain + LIMIT $page_size OFFSET $fDisplay + "; + $result = db_query ($query); $tAliasDomains = array(); + $can_create_alias_domain = 1; if ($result['rows'] > 0) { while ($row = db_array ($result['result'])) @@ -119,29 +124,11 @@ if (boolconf('alias_domain')) { $row['active']=('t'==$row['active']) ? 1 : 0; } $tAliasDomains[] = $row; + if ($row['target_domain'] == $fDomain) $can_create_alias_domain = 0; } } - # now let's see if the current domain itself is an alias for another domain - $query = "SELECT $table_alias_domain.alias_domain,$table_alias_domain.target_domain,$table_alias_domain.modified,$table_alias_domain.active FROM $table_alias_domain WHERE alias_domain='$fDomain'"; - if ('pgsql'==$CONF['database_type']) - { - $query = "SELECT alias_domain,target_domain,extract(epoch from modified) as modified,active FROM $table_alias_domain WHERE alias_domain='$fDomain'"; - } - $result = db_query ($query); - $tTargetDomain = ""; - if ($result['rows'] > 0) - { - if($row = db_array ($result['result'])) - { - if ('pgsql'==$CONF['database_type']) - { - $row['modified']=gmstrftime('%c %Z',$row['modified']); - $row['active']=('t'==$row['active']) ? 1 : 0; - } - $tTargetDomain = $row; - } + # TODO: set $can_create_alias_domain = 0; if all domains (of this admin) are already used as alias domains } -} # # aliases @@ -457,11 +444,7 @@ $smarty->assign ('tDisplay_next', $tDisplay_next); if(sizeof ($tAliasDomains) > 0) $smarty->assign ('tAliasDomains', $tAliasDomains); -if(is_array($tTargetDomain)) -{ - $smarty->assign ('tTargetDomain', $tTargetDomain); - $smarty->assign ('PALANG_pOverview_alias_domain_target', sprintf($PALANG['pOverview_alias_domain_target'], $fDomain)); -} +$smarty->assign ('can_create_alias_domain', $can_create_alias_domain); $smarty->assign ('tAlias', $tAlias); $smarty->assign ('gen_show_status', $gen_show_status, false); $smarty->assign ('check_alias_owner', $check_alias_owner); diff --git a/templates/list-virtual_alias_domain.tpl b/templates/list-virtual_alias_domain.tpl index 4f0e7f29..fd00c392 100644 --- a/templates/list-virtual_alias_domain.tpl +++ b/templates/list-virtual_alias_domain.tpl @@ -1,54 +1,42 @@ {*** Domain Aliases ***} - + {if $tAliasDomains|@count>0 || $tTargetDomain|@count>1} {if $tAliasDomains|@count>0} {* -> HAT alias-domains *} {#tr_header#} - + + {foreach from=$tAliasDomains item=item} {#tr_hilightoff#} - + {if $item.alias_domain != $fDomain}{/if} + {/foreach} {/if} - {if $tTargetDomain|@count>1} {* IST alias-domain *} - - - - - - - {#tr_hilightoff#} - - - - - - {/if} {/if}

{$PALANG.pOverview_alias_domain_title}

{$PALANG.pOverview_alias_domain_title}

{$PALANG.pOverview_alias_domain_aliases}{$PALANG.pOverview_alias_address}{$PALANG.pOverview_alias_goto} {$PALANG.pOverview_alias_domain_modified} {$PALANG.pOverview_alias_domain_active}  
+ {if $item.alias_domain != $fDomain}{/if} {if $search eq ""} {$item.alias_domain} {else} {$item.alias_domain|replace:$search:"$search"} {/if} - {if $item.target_domain != $fDomain}{/if} + {if $search eq ""} + {$item.target_domain} + {else} + {$item.target_domain|replace:$search:"$search"} + {/if} + {if $item.target_domain != $fDomain}{/if} {$item.modified} {if $item.active==1}{$PALANG.YES}{else}{$PALANG.NO}{/if} {$PALANG.del}
{$PALANG_pOverview_alias_domain_target}{$PALANG.pOverview_alias_domain_modified}{$PALANG.pOverview_alias_domain_active} 
{$tTargetDomain.target_domain}{$tTargetDomain.modified} - {if $tTargetDomain.active==1} - {$PALANG.YES} - {else} - {$PALANG.NO} - {/if} - {$PALANG.del}
-{if $tTargetDomain|@count<2} +{if $can_create_alias_domain}

{$PALANG.pMenu_create_alias_domain}

{/if}