©Sergey Emelyanov 2025 | Alle Rechte vorbehalten
Sie möchten Bilder (z. B. Logos, Produktfotos) in Module wie Konten, Projekte oder Custom-Module integrieren? Vtiger erlaubt dies über ein verstecktes Feld imagename (UIType 69). So geht’s:
Erstellen Sie add_image_field.php im Ordner vtiger/scripts:
<?php
$Vtiger_Utils_Log = true;
chdir('../');
require_once('vtlib/Vtiger/Module.php');
require_once('vtlib/Vtiger/Block.php');
require_once('vtlib/Vtiger/Field.php');
// Zielmodul festlegen (z. B. „Accounts“ für Konten)
$module = Vtiger_Module::getInstance('Accounts');
// Block auswählen oder neu erstellen
$block = Vtiger_Block::getInstance('LBL_ACCOUNT_IMAGE', $module);
if (!$block) {
$block = new Vtiger_Block();
$block->label = 'LBL_ACCOUNT_IMAGE';
$module->addBlock($block);
}
// Bildfeld hinzufügen
$field = new Vtiger_Field();
$field->name = 'imagename';
$field->table = 'vtiger_account'; // Tabellenname des Moduls
$field->column = 'imagename';
$field->label = 'Logo';
$field->columntype = 'varchar(255)';
$field->uitype = 69; // Wichtig: UIType für Bilder
$field->displaytype = 1;
$field->quickcreate = 0; // Nicht im Schnellerfassungsformular
$field->masseditable = 0; // Nicht per Massenbearbeitung änderbar
$block->addField($field);
echo "Feld 'imagename' wurde erfolgreich hinzugefügt!";
Hinweis:
Accounts
und vtiger_account
mit dem Namen Ihres Zielmoduls.http://ihr-vtiger-server/scripts/add_image_field.php
.Standardmäßig zeigt Vtiger Bilder nicht in der Tabellenübersicht an. So beheben Sie das:
layouts/v7/modules/Vtiger/ListViewContents.tpl
.{/if}
ein (ca. Zeile 214):{else if $LISTVIEW_HEADER->get('uitype') eq '69'}
{foreach key=ITER item=IMAGE_INFO from=$LISTVIEW_ENTRY->getImageDetails()}
{if !empty($IMAGE_INFO.url)}
<img src="{$IMAGE_INFO.url}" alt="Logo" style="max-height: 40px;">
{/if}
{/foreach}
Achtung: Diese Änderung wird bei Vtiger-Updates überschrieben. Sichern Sie die Datei oder erstellen Sie ein Custom-Theme.
storage/
Schreibrechte hat.SELECT imagename FROM vtiger_account;
in der Datenbank.Ändern Sie die CSS-Klasse im Template-Code:
<img src="..." class="img-thumbnail" style="max-width: 100px;">
Nutzen Sie die Vtiger-REST-API:
$fileContent = base64_encode(file_get_contents('logo.jpg'));
$data = [
'imagename' => $fileContent,
'assigned_user_id' => '19x1' // Benutzer-ID
];
$response = $httpClient->post('https://vtiger-server/restapi/create', [
'headers' => ['Authorization' => 'Bearer ' . $accessToken],
'json' => $data
]);
Erstellen Sie eine Workflow-Task, um bei neuen Bildern automatisch:
Wichtig: Testen Sie Änderungen immer in einer Staging-Umgebung vor dem Live-Einsatz.
Haben Sie Fragen? Stellen Sie sie in den Kommentaren! 🚀
„Bilder sagen mehr als tausend Datensätze – mit diesem Trick wird Ihre CRM-Datenbank visuell ansprechender und informativer.“
©Sergey Emelyanov 2025 | Alle Rechte vorbehalten