Page tree
Skip to end of metadata
Go to start of metadata

Mit der Klasse addon_tab kann auf Add-On-spezifische Tabellen zugegriffen werden.

1. Methoden

1.1. del_row_by_cond

Syntax: 

Bis V4.6: boolean del_row_by_cond(string $cond)

Ab V4.7: boolean del_row_by_cond(string $cond, bool $only_deletable = false)

Beschreibung:

 $cond ist eine WHERE-Klausel im SQL99-Standard. Ist $only_deletable TRUE, muss der Nutzer das Löschrecht besitzen. Zurückgegeben wird TRUE, wenn das Löschen erfolgreich war.

1.2. del_row_by_id

Syntax:

boolean del_row_by_id(int $id, boolean $only_deletable = false)

Beschreibung:

Ab V4.7. Löscht den Datensatz mit ID $id. Ist $only_deletable true, muss der Nutzer das Löschrecht besitzen. Zurückgegeben wird TRUE, wenn das Löschen erfolgreich war.

1.3. fetch_array

Syntax:

array fetch_array(result_set $result)

Beschreibung:

 Liefert zu dem aktuellen Eintrag im Result-Set $result ein assoziatives Array. Wenn kein Eintrag mehr vorhanden ist, wird FALSE zurückgegeben.

Beispiel:

$table  = new addon_tab('ressources_lendings');
$result = $table->get_row_by_cond('id>0');
while ($row = $table->fetch_array($result)) {
  crmapi::log_error($row);
}

1.4. get_count_by_cond

Syntax: 

Bis V4.6: int get_count_by_cond(string $cond)

Ab V4.7: int get_count_by_cond(string $cond, boolean $only_readable = false)

Beschreibung:

$cond ist eine WHERE-Klausel im SQL99-Standard.

Ist $only_readable TRUE, werden nur Datensätze mit Leserecht berücksichtigt. Zurückgegeben wird die Anzahl der Treffer.

Beispiel:

$table = new addon_tab('ressources_lendings');
$count = $table->get_count_by_cond('id>0');
crmapi::log_error($count);

1.5. get_delete_permission

Syntax:

boolean get_delete_permission(int $oid)

Beschreibung:

Ab V4.7. Liefert das Löschrecht des aktuellen Benutzers für den Datensatz mit ID $oid.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_delete_permission(1);
crmapi::log_error($perm);

1.6. get_multi_permissions

Syntax:

boolean get_multi_permissions(array $oids)

Beschreibung:

 Ab V4.7 Liefert die Rechte des aktuellen Benutzers für mehrere Datensätze.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_multi_permissions(array(1, 2, 3);
crmapi::log_error($perm);

1.7. get_oids_with_deletepermission

Syntax:

array get_oids_with_deletepermission($returnkeys = false)

Beschreibung:

Ab V4.7. Liefert die IDs aller Datensätze, die der Nutzer löschen kann.

Ist $returnkeys TRUE, wird ein Array zurückgegeben, in dem die Werte die IDs sind. Sonst werden die IDs als Keys verwendet.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_oids_with_deletepermission(false);
crmapi::log_error($perm);

1.8. get_oids_with_fullpermission

Syntax:

array get_oids_with_fullpermission($returnkeys = false)

Beschreibung:

Ab V4.7 Liefert die IDs aller Datensätze, auf die der Nutzer Vollzugriff.

Ist $returnkeys TRUE, wird ein Array zurückgegeben, in dem die Werte die IDs sind. Sonst werden die IDs als Keys verwendet.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_oids_with_fullpermission(false);
crmapi::log_error($perm);

1.9. get_oids_with_readpermission

Syntax:

array get_oids_with_readpermission($returnkeys = false)

Beschreibung:

Ab V4.7 Liefert die IDs aller Datensätze, die der Nutzer lesen kann.

Ist $returnkeys TRUE, wird ein Array zurückgegeben, in dem die Werte die IDs sind. Sonst werden die IDs als Keys verwendet.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_oids_with_readpermission(false);
crmapi::log_error($perm);

1.10. get_oids_with_writepermission

Syntax:

array get_oids_with_writepermission($returnkeys = false)

Beschreibung:

Ab V4.7 Liefert die IDs aller Datensätze, die der Nutzer ändern kann.

Ist $returnkeys TRUE, wird ein Array zurückgegeben, in dem die Werte die IDs sind. Sonst werden die IDs als Keys verwendet.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_oids_with_writepermission(false);
crmapi::log_error($perm);

1.11. get_read_permission

Syntax:

array get_read_permission(int $oid)

Beschreibung:

Ab V4.7 Gibt an, ob der Datensatz mit ID $oid gelesen werden kann.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_read_permission(2);
crmapi::log_error($perm);

1.12. get_rights

Syntax:

array get_rights(int $oid)

Beschreibung:

Ab V4.7 Liefert alles Berechtigungen für einen Datensatz.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_read_permission(2);
crmapi::log_error($perm);

1.13. get_row_by_cond

Syntax:

Bis V4.6: result_set get_row_by_cond(string $cond)

Ab V4.7: result_set get_row_by_cond(string $cond, array $placeholder = array(), boolean $only_readable = false)

Beschreibung:

Bis V4.6: $cond ist eine WHERE-Klausel im SQL99-Standard.

Ab V4.7: $cond ist eine WHERE-Klausel im SQL-Format. Bitte beachten Sie dazu die Hinweise.

Ab V4.7: $placeholder ist ein Array mit Platzhaltern. Bitte beachten Sie dazu die Hinweise.

Ab V4.7: Ist $only_readable true, werden nur Datensätze mit Leserecht berücksichtigt.

Zurückgegeben wird Datenbank-Result-Set.

Beispiel:

$table = new addon_tab('ressources_lendings');
$tab_result = $table->get_row_by_cond('lending>0');
 
$line = $table->fetch_array($tab_result);
while ($line) {
  //do something
    $line = $table->fetch_array($tab_result);
}

1.14. get_val_by_cond

Syntax: 

Bis V4.6: result_set get_val_by_cond(string $cols, string $cond)

Ab V4.7: result_set get_val_by_cond(string $cols, string $cond, array $placeholder = array(), boolean $only_readable = false)

Beschreibung:

$cols ist eine komma-separierte Liste der Spalten.

Bis V4.6: $cond ist eine WHERE-Klausel im SQL99-Standard.

Ab V4.7: $cond ist eine WHERE-Klausel im SQL-Format. Bitte beachten Sie dazu die Hinweise.

Ab V4.7: $placeholder ist ein Array mit Platzhaltern. Bitte beachten Sie dazu die Hinweise.

Ab V4.7: Ist $only_readable true, werden nur Datensätze mit Leserecht berücksichtigt.

1.15. get_write_permission

Syntax:

array get_read_permission(int $oid)

Beschreibung:

Ab V4.7 Gibt an, ob der Datensatz mit ID $oid geändert werden kann.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->get_write_permission(2);
crmapi::log_error($perm);

1.16. insert_row

Syntax:

int insert_row(array $values)

Beschreibung: 

Fügt einen Datensatz in die Tabelle ein. Die Daten werden als assoziatives Array übergeben, in dem die Keys den Spaltennamen entsprechen. Zurückgegeben wird die ID des Datensatzes bei Erfolg, sonst FALSE.

Beispiel:

$table = new addon_tab('ressources_lendings');
$data = array();
$data['ressource_id'] = '4';
$data['lender']       = 'thomas';
$data['lend_start']   = time();
$table->insert_row($data);

1.17. insert_update_row

Syntax:

bool insert_update_row(array $values)

Beschreibung: 

(Ab v4.10) Fügt einen Datensatz in die Tabelle ein oder aktualisiert diesen, wenn sonst ein Duplikat entstehen würde. Die Daten werden als assoziatives Array übergeben, in dem die Keys den Spaltennamen entsprechen. Bei Erfolg wird TRUE zurückgegeben.

Hinweis:

Damit diese Funktion Duplikate erkennt, muss wenigstens ein Unique-Index vorhanden sein. Ist kein Unique-Index vorhanden wird immer ein neuer Datensatz eingefügt!

Beispiel:

$table = new addon_tab('ressources_lendings');
$data = array();
$data['ressource_id'] = '4';
$data['lender']       = 'thomas';
$data['lend_start']   = time();
$table->insert_update_row($data);

1.18. save_group_rights

Syntax:

array save_group_rights(int $oid, int $gid, int $r, int $w, int $x)

Beschreibung: 

Ab V4.7 Speichert zu einem Datensatz die Gruppen-Zugriffsrechte.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->save_group_rights(2, 1, 1, 1, 1);
crmapi::log_error($perm);

1.19. save_user_rights

Syntax:

array save_user_rights(int $oid, int $uid, int $r, int $w, int $x)

Beschreibung: 

Ab V4.7 Speichert zu einem Datensatz die Benutzer-Zugriffsrechte.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->save_user_rights(2, 1, 1, 1, 1);
crmapi::log_error($perm);

1.20. set_acl

Syntax: 

array set_acl(int $oid, int $acl_id)

Beschreibung: 

Ab V4.7 Setzt zu einem Datensatz eine Zugriffsliste.

Beispiel:

$table = new addon_tab('ressources_lendings');
$perm = $table->set_acl(2, 1);
crmapi::log_error($perm);

1.21. update_row_by_cond

Syntax: 

Bis V4.6: boolean update_row_by_cond(string $cond, array $values)

Ab V4.7: boolean update_row_by_cond(string $cond, array $values, array $placeholder = array, boolean $only_writeable = false)

Beschreibung:

Aktualisiert Datensätze mit den Werten aus $values, die durch $cond ausgewählt werden. Die Daten werden als assoziatives Array übergeben, in dem die Keys den Spaltennamen entsprechen. Zurückgegeben wird bei Erfolg TRUE, sonst FALSE.

Ab V4.7: $placeholder kann eine Liste von Werten enthalten, die in die Bedingung und auch in die Werte eingesetzt werden.

Ab V4.7: Ist $only_writeable TRUE, werden nur Datensätze mit Schreibrecht durch den Nutzer berücksichtigt.

Beispiel:

$table = new addon_tab('ressources_lendings');
$data = array();
$data['ressource_id'] = '4';
$data['lender']       = 'thomas';
$data['lend_start']   = time();
$test = $table->update_row_by_cond('id>0', $data);

1.22. update_row_by_id

Syntax: 

Bis V4.6: boolean update_row_by_id(int $id, array $values)

Ab V4.7: boolean update_row_by_id(int $id, array $values, boolean $only_writeable = false)

Beschreibung:

Aktualisiert den Datensatz mit ID $id mit den Werten aus $values, die durch $cond ausgewählt werden. Die Daten werden als assoziatives Array übergeben, in dem die Keys den Spaltennamen entsprechen. Zurückgegeben wird bei Erfolg TRUE, sonst FALSE.

Ab V4.7: Ist $only_writeable true, werden nur Datensätze mit Schreibrecht durch den Nutzer berücksichtigt.

Beispiel:

$table = new addon_tab('ressources_lendings');
$data = array();
$data['ressource_id'] = '4';
$data['lender']       = 'thomas';
$data['lend_start']   = time();
$test = $table->update_row_by_id(5, $data);

2. Hinweise zu SQL

Im Allgemeinen wird der SQL99-Standard unterstützt. Es gibt folgende Einschränkungen:

  • Keine ` um Tabellennamen

  • Negationen müssen der Bedingung vorangestellt werden (z.B. "NOT name LIKE '%'" statt "name NOT LIKE '%'")

2.1. Platzhalter

In den Abfragen können Platzhalter verwendet werden. Das ist besonders empfohlen, wenn die Abfrage mehrmals mit unterschiedlichen Werten ausgeführt werden soll.

Beispiel:

$query = "realnumber=#realnumber OR company=#company OR id=#cid";
$placeholder = array('cid' => 1, 'realnumber' => "abc", 'company' => '0');
$table = new addon_tab('ressources_lendings');
$test = $table->get_row_by_cond($query, $placeholder);
 
// Ergibt diese Condition: realnumber='abc' OR company='0' OR id=1
  • No labels