Author Topic: 0.2_stable Add Identity Button ausblenden  (Read 3021 times)

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
0.2_stable Add Identity Button ausblenden
« on: January 21, 2009, 05:07:49 AM »
Hallo ich hab eine kleine Frage ich suche nach einer Möglichkeit den Add Identity bzw Neuer Absender Button bei den Identitäten auszublenden so wie es auch geschieht wenn die $rcmail_config['identities_level'] var auf zb. 2 gesetzt ist.

Grund die User sollen natürlich Identitäten anlegen können jedoch nur 3 Alias Identitäten also global habe ich $rcmail_config['identities_level']  auf 0 so das der Button angezeigt wird und der User neue Identitäten anlegen kann hat der User aber schon 3 Aliase soll er keine neue Identität anlegen können und der Button verschwinden.

Ich finde einfach nicht wo und wie dies definiert wird und ist wo ich eine kleine if anweisung einhängen muss um dies umzusetzten.

Eine funktion zum Identitäten zählen habe ich schon per

$sql_result 
$USER->list_identities();
 
	
while(
$row $DB->fetch_assoc($sql_result))
   
	
{
   
	
$origin_idents[] = $row;
   
	
}
$idents count($origin_idents[]);


Evtl. kann mir ja wer helfen bin für jeden Denkanstoß und Tipp dankbar

Offline rosali

  • Hero Member
  • *****
  • Posts: 2,533
0.2_stable Add Identity Button ausblenden
« Reply #1 on: January 21, 2009, 05:42:24 AM »
Der "Code" ist in ./skins/default/templates/identities.html:

Code: [Select]

<roundcube:button command=&quot;add&quot; type=&quot;input&quot; label=&quot;newidentity&quot; class=&quot;button&quot; condition=&quot;config:identities_level:0<2&quot; />


Es handelt sich hierbei um eine RoundCube XML Notation. Du müsstest also irgendwo, wo das globale Konfigurations Array $CONFIG verfügbar ist eingreifen mit z.B. $CONFIG['addidentiybut'] = TRUE. Die XML Notation müsste dann lauten:

Code: [Select]




Außerdem muss die richtige Stelle gefunden werden, sodass das Flag gesetzt wird bevor das Template geparsed wird.

So oder zumindest so ähnlich müsste es klappen - nicht getestet, sondern nur so eine Idee ins Blaue!
Regards,
Rosali
__________________
MyRoundcube Project (commercial)

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
0.2_stable Add Identity Button ausblenden
« Reply #2 on: January 21, 2009, 06:16:48 AM »
Danke rosali hab es etwas anders gelöst ... in der main.inc.php
eine neue var die die max anzahl der Identitäten bereistellt hinzufügen.
$rcmail_config['max_identities'] = 4;

in der identities.inc oben einfügen
define('MAX_IDENTITIES'intval($RCMAIL->config->get('max_identities'0)));

und
$OUTPUT->send('identities');
durch
$sql_result $USER->list_identities();
while(
$row $DB->fetch_assoc($sql_result))
 
	
{
 
	
$origin_idents[] = $row;
 
	
}
if(
count($origin_idents) < MAX_IDENTITIES)
$OUTPUT->send('identities');
else
$OUTPUT->send('identities_noadd');

ersetzten

dann das template identities.html ändern und Zeile
löschen und als neue Datei speichern unter dem namen identities_noadd.html

und zu guter letzt um illegale versuche identitäten anzulegen zu unterbinden
die save_identity.inc bearbeiten oben
define('MAX_IDENTITIES'intval($RCMAIL->config->get('max_identities'0)));
$sql_result $USER->list_identities();
 
	
while(
$row $DB->fetch_assoc($sql_result))
   
	
{
   
	
$origin_idents[] = $row;
   
	
}
einfügen und
// insert a new identity record
else if (IDENTITIES_LEVEL 2)

durch
// insert a new identity record
else if (IDENTITIES_LEVEL and count($origin_idents) < MAX_IDENTITIES)

ersetzten.

fertig.

Edit: wer will kann auch die edit_identity.inc noch anpassen so würde es bei einem illegalen versuch schon eher stoppen.

oben
define('MAX_IDENTITIES'intval($RCMAIL->config->get('max_identities'0)));
hinzufügen
und
// add-identity
else {
if (
IDENTITIES_LEVEL 1) {

durch
// add-identity
else {
$sql_result $USER->list_identities();
while(
$row $DB->fetch_assoc($sql_result))
 
	
{
 
	
$origin_idents[] = $row;
 
	
}

  if (
IDENTITIES_LEVEL or count($origin_idents) >= MAX_IDENTITIES) {

ersetzten.

Ist sicher bisserl umständlich aber eine andere Lösung hab ich nicht gefunden.
« Last Edit: January 21, 2009, 06:34:17 AM by lacri »