IDS Connect v2.2 - Menü-Integration, ADL-Hooks, Admin-Erweiterung
- Menü unter Einkauf > Lieferantenbestellungen statt eigenes Top-Menü - ADL-Buttons auf Produkt-Lieferantenpreisen per Hook (pricesuppliercard) - Admin-Seite: Großhändler-Schnellübersicht mit Version-Check - Dashboard: Shop-öffnen-Button (LI-Action) - Neue Datei: class/actions_idsconnect.class.php Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d91f9dbc9a
commit
5f5a389809
27 changed files with 307 additions and 42 deletions
0
.gitignore
vendored
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
28
CHANGELOG.md
Normal file → Executable file
28
CHANGELOG.md
Normal file → Executable file
|
|
@ -9,6 +9,34 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## v2.2 - Menü-Integration, ADL-Hooks & Admin-Erweiterung (19.02.2026)
|
||||||
|
|
||||||
|
### Menü unter Einkauf/Lieferantenbestellungen
|
||||||
|
- **Kein eigenes Top-Menü mehr**: IDS Connect ist jetzt unter Einkauf > Lieferantenbestellungen > IDS Connect eingegliedert
|
||||||
|
- Untermenüs (Großhändler, Transaktionslog) als Level 2/3 unter dem IDS Connect Eintrag
|
||||||
|
- Bessere Integration in den normalen Dolibarr-Workflow
|
||||||
|
|
||||||
|
### ADL-Buttons auf Produkt-Lieferantenpreisen (Hook)
|
||||||
|
- **Neue Datei**: `class/actions_idsconnect.class.php` - Hook-Klasse für `pricesuppliercard`
|
||||||
|
- Zeigt ADL-Button (externer Link) direkt in der Lieferantenpreis-Tabelle auf Produktkarten
|
||||||
|
- Button nur sichtbar wenn Lieferant mit IDS Connect Großhändler verknüpft UND Lieferanten-Artikelnummer vorhanden
|
||||||
|
- Spalte erscheint nur wenn mindestens ein aktiver IDS-Supplier existiert
|
||||||
|
- Gecachte DB-Abfragen für Performance (static-Cache pro Request)
|
||||||
|
|
||||||
|
### Admin Setup-Seite erweitert
|
||||||
|
- **Großhändler-Schnellübersicht**: Tabelle mit allen konfigurierten Großhändlern direkt auf der Einstellungsseite
|
||||||
|
- Zeigt Name, URL, IDS-Version, Status (Aktiv/Inaktiv, Testmodus) pro Großhändler
|
||||||
|
- **Version prüfen**: Button pro Großhändler für SV-Action (Schnittstellenversion)
|
||||||
|
|
||||||
|
### Dashboard
|
||||||
|
- **Shop öffnen**: Neuer LI-Button (Login-Info) neben dem WKE-Button auf der Übersichtsseite
|
||||||
|
|
||||||
|
### Sprachdateien
|
||||||
|
- `IdsconnectShowInShop` - Tooltip für ADL-Button in Preistabelle
|
||||||
|
- `IdsconnectCheckVersion` - Button für Schnittstellenversion prüfen
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v2.1 - WKS-Flow & URL-Handling (18.02.2026)
|
## v2.1 - WKS-Flow & URL-Handling (18.02.2026)
|
||||||
|
|
||||||
### WKS (Warenkorb senden) - Live getestet mit Sonepar
|
### WKS (Warenkorb senden) - Live getestet mit Sonepar
|
||||||
|
|
|
||||||
10
README.md
10
README.md
|
|
@ -24,11 +24,10 @@ Ermöglicht den direkten Wareneinkauf aus Dolibarr heraus über den Shop des Gro
|
||||||
- **OCI-Format**: SAP Open Catalog Interface (`NEW_ITEM-*` POST-Felder) wird ebenfalls erkannt
|
- **OCI-Format**: SAP Open Catalog Interface (`NEW_ITEM-*` POST-Felder) wird ebenfalls erkannt
|
||||||
- **Transaktionslog**: Alle IDS-Aktionen werden protokolliert mit XML, Status, Fehlermeldungen
|
- **Transaktionslog**: Alle IDS-Aktionen werden protokolliert mit XML, Status, Fehlermeldungen
|
||||||
|
|
||||||
### Implementiert, nicht getestet
|
### Implementiert
|
||||||
|
- **ADL (Artikel Deep-Link)**: Direkt zu einem Artikel im Shop springen - per Hook als Button in der Lieferantenpreis-Tabelle auf Produktkarten
|
||||||
- **ADL (Artikel Deep-Link)**: Direkt zu einem Artikel im Shop springen
|
- **LI (Login-Info)**: Shop direkt öffnen (Button auf Dashboard)
|
||||||
- **LI (Login-Info)**: Login-Informationen abfragen
|
- **SV (Schnittstellenversion)**: IDS Connect Version des Shops abfragen (Button auf Admin-Seite)
|
||||||
- **SV (Schnittstellenversion)**: IDS Connect Version des Shops abfragen
|
|
||||||
|
|
||||||
## Was noch fehlt
|
## Was noch fehlt
|
||||||
|
|
||||||
|
|
@ -123,6 +122,7 @@ Dolibarr → Lieferantenbestellung anlegen
|
||||||
| `class/idsconnect.class.php` | Kern-Klasse: Formular-Builder, XML-Parser, XML-Generator |
|
| `class/idsconnect.class.php` | Kern-Klasse: Formular-Builder, XML-Parser, XML-Generator |
|
||||||
| `class/idssupplier.class.php` | Großhändler-Konfiguration (URL, Login, Passwort) |
|
| `class/idssupplier.class.php` | Großhändler-Konfiguration (URL, Login, Passwort) |
|
||||||
| `class/idslog.class.php` | Transaktionslog (CRUD, Status-Updates) |
|
| `class/idslog.class.php` | Transaktionslog (CRUD, Status-Updates) |
|
||||||
|
| `class/actions_idsconnect.class.php` | Hook: ADL-Buttons auf Produkt-Lieferantenpreisen |
|
||||||
| `callback.php` | HOOKURL-Empfänger (NOLOGIN) |
|
| `callback.php` | HOOKURL-Empfänger (NOLOGIN) |
|
||||||
| `launch.php` | Formular-Generator für Shop-Weiterleitung |
|
| `launch.php` | Formular-Generator für Shop-Weiterleitung |
|
||||||
| `mockserver.php` | Test-Shop (NOLOGIN, nur Testmodus) |
|
| `mockserver.php` | Test-Shop (NOLOGIN, nur Testmodus) |
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,57 @@ print $langs->trans("IdsconnectSecurityInfoText");
|
||||||
print '</div>';
|
print '</div>';
|
||||||
|
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Großhändler-Schnellübersicht mit Versionscheck
|
||||||
|
// ============================================================
|
||||||
|
dol_include_once('/idsconnect/class/idssupplier.class.php');
|
||||||
|
$supplierObj = new IdsSupplier($db);
|
||||||
|
$allSuppliers = $supplierObj->fetchAll(0);
|
||||||
|
|
||||||
|
if (is_array($allSuppliers) && count($allSuppliers) > 0) {
|
||||||
|
print '<br>';
|
||||||
|
print '<table class="noborder centpercent">';
|
||||||
|
print '<tr class="liste_titre">';
|
||||||
|
print '<th>'.$langs->trans("IdsconnectSuppliers").'</th>';
|
||||||
|
print '<th>'.$langs->trans("IdsconnectSupplierUrl").'</th>';
|
||||||
|
print '<th>'.$langs->trans("IdsconnectSupplierVersion").'</th>';
|
||||||
|
print '<th>'.$langs->trans("Status").'</th>';
|
||||||
|
print '<th class="right">'.$langs->trans("Action").'</th>';
|
||||||
|
print '</tr>';
|
||||||
|
|
||||||
|
foreach ($allSuppliers as $sup) {
|
||||||
|
print '<tr class="oddeven">';
|
||||||
|
print '<td>';
|
||||||
|
print '<a href="'.DOL_URL_ROOT.'/custom/idsconnect/supplier_card.php?id='.$sup->id.'">';
|
||||||
|
print '<strong>'.htmlspecialchars($sup->label).'</strong>';
|
||||||
|
print '</a>';
|
||||||
|
print ' <span class="opacitymedium">('.htmlspecialchars($sup->ref).')</span>';
|
||||||
|
print '</td>';
|
||||||
|
print '<td class="tdoverflowmax300">'.htmlspecialchars($sup->ids_url).'</td>';
|
||||||
|
print '<td>'.htmlspecialchars($sup->ids_version).'</td>';
|
||||||
|
print '<td>';
|
||||||
|
if ($sup->active) {
|
||||||
|
print '<span class="badge badge-status4">'.$langs->trans("Enabled").'</span>';
|
||||||
|
} else {
|
||||||
|
print '<span class="badge badge-status8">'.$langs->trans("Disabled").'</span>';
|
||||||
|
}
|
||||||
|
if ($sup->testmode) {
|
||||||
|
print ' <span class="badge badge-warning">Test</span>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
print '<td class="right nowrap">';
|
||||||
|
if ($sup->active) {
|
||||||
|
print '<a class="butAction butActionSmall" href="'.DOL_URL_ROOT.'/custom/idsconnect/launch.php?supplier_id='.$sup->id.'&ids_action=SV&token='.newToken().'" target="_blank">';
|
||||||
|
print $langs->trans("IdsconnectCheckVersion");
|
||||||
|
print '</a>';
|
||||||
|
}
|
||||||
|
print '</td>';
|
||||||
|
print '</tr>';
|
||||||
|
}
|
||||||
|
print '</table>';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
print dol_get_fiche_end();
|
print dol_get_fiche_end();
|
||||||
|
|
||||||
llxFooter();
|
llxFooter();
|
||||||
|
|
|
||||||
0
callback.php
Normal file → Executable file
0
callback.php
Normal file → Executable file
0
cart_review.php
Normal file → Executable file
0
cart_review.php
Normal file → Executable file
195
class/actions_idsconnect.class.php
Executable file
195
class/actions_idsconnect.class.php
Executable file
|
|
@ -0,0 +1,195 @@
|
||||||
|
<?php
|
||||||
|
/* Copyright (C) 2026 Eduard Wisch <data@data-it-solution.de>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file class/actions_idsconnect.class.php
|
||||||
|
* \ingroup idsconnect
|
||||||
|
* \brief Hook-Klasse für IDS Connect (ADL-Buttons auf Produkt-Lieferantenpreisen)
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once DOL_DOCUMENT_ROOT.'/core/class/commonhookactions.class.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hook-Aktionen für IDS Connect
|
||||||
|
*/
|
||||||
|
class ActionsIdsconnect extends CommonHookActions
|
||||||
|
{
|
||||||
|
/** @var DoliDB */
|
||||||
|
public $db;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
public $error = '';
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
public $errors = array();
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
public $results = array();
|
||||||
|
|
||||||
|
/** @var string HTML-Output für Hooks */
|
||||||
|
public $resprints;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param DoliDB $db Database handler
|
||||||
|
*/
|
||||||
|
public function __construct($db)
|
||||||
|
{
|
||||||
|
$this->db = $db;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Spaltenüberschrift in der Lieferantenpreis-Tabelle
|
||||||
|
*
|
||||||
|
* @param array $parameters Hook-Parameter
|
||||||
|
* @param object $object Produkt-Objekt
|
||||||
|
* @param string $action Aktuelle Aktion
|
||||||
|
* @param HookManager $hookmanager Hook-Manager
|
||||||
|
* @return int 0=weiter
|
||||||
|
*/
|
||||||
|
public function printFieldListTitle($parameters, &$object, &$action, $hookmanager)
|
||||||
|
{
|
||||||
|
if (strpos($parameters['currentcontext'], 'pricesuppliercard') === false) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spalte nur anzeigen wenn mindestens ein aktiver IDS-Supplier existiert
|
||||||
|
if (!$this->hasActiveIdsSuppliers()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
global $langs;
|
||||||
|
$langs->load("idsconnect@idsconnect");
|
||||||
|
|
||||||
|
print '<td class="center" title="'.dol_escape_htmltag($langs->trans("IdsconnectDeepLink")).'">'.img_picto($langs->trans("ModuleIdsconnectName"), 'fa-plug').'</td>';
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ADL-Button pro Zeile in der Lieferantenpreis-Tabelle
|
||||||
|
*
|
||||||
|
* @param array $parameters Hook-Parameter (id_pfp, id_fourn, prod_id)
|
||||||
|
* @param object $object Produkt-Objekt
|
||||||
|
* @param string $action Aktuelle Aktion
|
||||||
|
* @param HookManager $hookmanager Hook-Manager
|
||||||
|
* @return int 0=weiter
|
||||||
|
*/
|
||||||
|
public function printFieldListValue($parameters, &$object, &$action, $hookmanager)
|
||||||
|
{
|
||||||
|
if (strpos($parameters['currentcontext'], 'pricesuppliercard') === false) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Keine Spalte wenn keine IDS-Supplier existieren
|
||||||
|
if (!$this->hasActiveIdsSuppliers()) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
global $user, $langs;
|
||||||
|
$langs->load("idsconnect@idsconnect");
|
||||||
|
|
||||||
|
$html = '<td class="center nowrap">';
|
||||||
|
|
||||||
|
if ($user->hasRight('idsconnect', 'use')) {
|
||||||
|
$id_pfp = $parameters['id_pfp'];
|
||||||
|
$pfpMap = $this->getPfpMap($parameters['prod_id']);
|
||||||
|
$idsMap = $this->getIdsSupplierMap();
|
||||||
|
|
||||||
|
if (isset($pfpMap[$id_pfp])) {
|
||||||
|
$fk_soc = $pfpMap[$id_pfp]['fk_soc'];
|
||||||
|
$ref_fourn = $pfpMap[$id_pfp]['ref_fourn'];
|
||||||
|
|
||||||
|
if (isset($idsMap[$fk_soc]) && !empty($ref_fourn)) {
|
||||||
|
$supplier_id = $idsMap[$fk_soc];
|
||||||
|
$url = DOL_URL_ROOT.'/custom/idsconnect/launch.php';
|
||||||
|
$url .= '?supplier_id='.((int) $supplier_id);
|
||||||
|
$url .= '&ids_action=ADL';
|
||||||
|
$url .= '&artikelnr='.urlencode($ref_fourn);
|
||||||
|
$url .= '&token='.newToken();
|
||||||
|
|
||||||
|
$html .= '<a href="'.dol_escape_htmltag($url).'" target="_blank"';
|
||||||
|
$html .= ' class="classfortooltip" title="'.dol_escape_htmltag($langs->trans("IdsconnectShowInShop")).'">';
|
||||||
|
$html .= img_picto($langs->trans("IdsconnectShowInShop"), 'fa-external-link-alt', 'style="color: #0077b6;"');
|
||||||
|
$html .= '</a>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= '</td>';
|
||||||
|
print $html;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IDS-Supplier-Map laden (fk_soc => supplier_id), gecacht
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function getIdsSupplierMap()
|
||||||
|
{
|
||||||
|
static $map = null;
|
||||||
|
if ($map !== null) {
|
||||||
|
return $map;
|
||||||
|
}
|
||||||
|
|
||||||
|
$map = array();
|
||||||
|
$sql = "SELECT rowid, fk_soc FROM ".$this->db->prefix()."idsconnect_supplier";
|
||||||
|
$sql .= " WHERE active = 1 AND fk_soc IS NOT NULL AND fk_soc > 0";
|
||||||
|
$sql .= " AND entity IN (".getEntity('idsconnect').")";
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
while ($obj = $this->db->fetch_object($resql)) {
|
||||||
|
$map[$obj->fk_soc] = $obj->rowid;
|
||||||
|
}
|
||||||
|
$this->db->free($resql);
|
||||||
|
}
|
||||||
|
return $map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Product-Fournisseur-Price-Map laden (pfp_id => {fk_soc, ref_fourn}), gecacht pro Produkt
|
||||||
|
*
|
||||||
|
* @param int $prod_id Produkt-ID
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function getPfpMap($prod_id)
|
||||||
|
{
|
||||||
|
static $cache = array();
|
||||||
|
$prod_id = (int) $prod_id;
|
||||||
|
if (isset($cache[$prod_id])) {
|
||||||
|
return $cache[$prod_id];
|
||||||
|
}
|
||||||
|
|
||||||
|
$cache[$prod_id] = array();
|
||||||
|
$sql = "SELECT rowid, fk_soc, ref_fourn FROM ".$this->db->prefix()."product_fournisseur_price";
|
||||||
|
$sql .= " WHERE fk_product = ".$prod_id;
|
||||||
|
$resql = $this->db->query($sql);
|
||||||
|
if ($resql) {
|
||||||
|
while ($obj = $this->db->fetch_object($resql)) {
|
||||||
|
$cache[$prod_id][$obj->rowid] = array(
|
||||||
|
'fk_soc' => $obj->fk_soc,
|
||||||
|
'ref_fourn' => $obj->ref_fourn,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$this->db->free($resql);
|
||||||
|
}
|
||||||
|
return $cache[$prod_id];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prüft ob mindestens ein aktiver IDS-Supplier existiert (gecacht)
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
private function hasActiveIdsSuppliers()
|
||||||
|
{
|
||||||
|
return count($this->getIdsSupplierMap()) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
0
class/idsconnect.class.php
Normal file → Executable file
0
class/idsconnect.class.php
Normal file → Executable file
0
class/idslog.class.php
Normal file → Executable file
0
class/idslog.class.php
Normal file → Executable file
0
class/idssupplier.class.php
Normal file → Executable file
0
class/idssupplier.class.php
Normal file → Executable file
|
|
@ -82,6 +82,7 @@ class modIdsconnect extends DolibarrModules
|
||||||
'hooks' => array(
|
'hooks' => array(
|
||||||
'data' => array(
|
'data' => array(
|
||||||
'ordersuppliercard',
|
'ordersuppliercard',
|
||||||
|
'pricesuppliercard',
|
||||||
),
|
),
|
||||||
'entity' => '0',
|
'entity' => '0',
|
||||||
),
|
),
|
||||||
|
|
@ -164,89 +165,72 @@ class modIdsconnect extends DolibarrModules
|
||||||
$r++;
|
$r++;
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
// Menüs
|
// Menüs - Unter Einkauf/Vertrieb > Lieferantenbestellungen
|
||||||
// ============================================================
|
// ============================================================
|
||||||
$this->menu = array();
|
$this->menu = array();
|
||||||
$r = 0;
|
$r = 0;
|
||||||
|
|
||||||
// Top-Menü
|
// IDS Connect Haupteintrag unter Lieferantenbestellungen (Level 1)
|
||||||
$this->menu[$r++] = array(
|
$this->menu[$r++] = array(
|
||||||
'fk_menu' => '',
|
'fk_menu' => 'fk_mainmenu=commercial,fk_leftmenu=orders_suppliers',
|
||||||
'type' => 'top',
|
|
||||||
'titre' => 'ModuleIdsconnectName',
|
|
||||||
'prefix' => img_picto('', $this->picto, 'class="pictofixedwidth valignmiddle"'),
|
|
||||||
'mainmenu' => 'idsconnect',
|
|
||||||
'leftmenu' => '',
|
|
||||||
'url' => '/idsconnect/idsconnectindex.php',
|
|
||||||
'langs' => 'idsconnect@idsconnect',
|
|
||||||
'position' => 1000 + $r,
|
|
||||||
'enabled' => 'isModEnabled("idsconnect")',
|
|
||||||
'perms' => '$user->hasRight("idsconnect", "read")',
|
|
||||||
'target' => '',
|
|
||||||
'user' => 0,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Links-Menü: Übersicht
|
|
||||||
$this->menu[$r++] = array(
|
|
||||||
'fk_menu' => 'fk_mainmenu=idsconnect',
|
|
||||||
'type' => 'left',
|
'type' => 'left',
|
||||||
'titre' => 'IdsconnectOverview',
|
'titre' => 'ModuleIdsconnectName',
|
||||||
'prefix' => img_picto('', 'fa-home', 'class="pictofixedwidth valignmiddle paddingright"'),
|
'prefix' => img_picto('', $this->picto, 'class="pictofixedwidth valignmiddle paddingright"'),
|
||||||
'mainmenu' => 'idsconnect',
|
'mainmenu' => 'commercial',
|
||||||
'leftmenu' => 'idsconnect_overview',
|
'leftmenu' => 'idsconnect',
|
||||||
'url' => '/idsconnect/idsconnectindex.php',
|
'url' => '/idsconnect/idsconnectindex.php',
|
||||||
'langs' => 'idsconnect@idsconnect',
|
'langs' => 'idsconnect@idsconnect',
|
||||||
'position' => 1000 + $r,
|
'position' => 500 + $r,
|
||||||
'enabled' => 'isModEnabled("idsconnect")',
|
'enabled' => 'isModEnabled("idsconnect")',
|
||||||
'perms' => '$user->hasRight("idsconnect", "read")',
|
'perms' => '$user->hasRight("idsconnect", "read")',
|
||||||
'target' => '',
|
'target' => '',
|
||||||
'user' => 0,
|
'user' => 0,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Links-Menü: Großhändler
|
// Großhändler (Level 2 unter IDS Connect)
|
||||||
$this->menu[$r++] = array(
|
$this->menu[$r++] = array(
|
||||||
'fk_menu' => 'fk_mainmenu=idsconnect',
|
'fk_menu' => 'fk_mainmenu=commercial,fk_leftmenu=idsconnect',
|
||||||
'type' => 'left',
|
'type' => 'left',
|
||||||
'titre' => 'IdsconnectSuppliers',
|
'titre' => 'IdsconnectSuppliers',
|
||||||
'prefix' => img_picto('', 'fa-building', 'class="pictofixedwidth valignmiddle paddingright"'),
|
'prefix' => img_picto('', 'fa-building', 'class="pictofixedwidth valignmiddle paddingright"'),
|
||||||
'mainmenu' => 'idsconnect',
|
'mainmenu' => 'commercial',
|
||||||
'leftmenu' => 'idsconnect_suppliers',
|
'leftmenu' => 'idsconnect_suppliers',
|
||||||
'url' => '/idsconnect/supplier_list.php',
|
'url' => '/idsconnect/supplier_list.php',
|
||||||
'langs' => 'idsconnect@idsconnect',
|
'langs' => 'idsconnect@idsconnect',
|
||||||
'position' => 1000 + $r,
|
'position' => 500 + $r,
|
||||||
'enabled' => 'isModEnabled("idsconnect")',
|
'enabled' => 'isModEnabled("idsconnect")',
|
||||||
'perms' => '$user->hasRight("idsconnect", "read")',
|
'perms' => '$user->hasRight("idsconnect", "read")',
|
||||||
'target' => '',
|
'target' => '',
|
||||||
'user' => 0,
|
'user' => 0,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Links-Menü: Großhändler anlegen
|
// Großhändler anlegen (Level 3 unter Großhändler)
|
||||||
$this->menu[$r++] = array(
|
$this->menu[$r++] = array(
|
||||||
'fk_menu' => 'fk_mainmenu=idsconnect,fk_leftmenu=idsconnect_suppliers',
|
'fk_menu' => 'fk_mainmenu=commercial,fk_leftmenu=idsconnect_suppliers',
|
||||||
'type' => 'left',
|
'type' => 'left',
|
||||||
'titre' => 'IdsconnectNewSupplier',
|
'titre' => 'IdsconnectNewSupplier',
|
||||||
'mainmenu' => 'idsconnect',
|
'mainmenu' => 'commercial',
|
||||||
'leftmenu' => 'idsconnect_supplier_new',
|
'leftmenu' => 'idsconnect_supplier_new',
|
||||||
'url' => '/idsconnect/supplier_card.php?action=create',
|
'url' => '/idsconnect/supplier_card.php?action=create',
|
||||||
'langs' => 'idsconnect@idsconnect',
|
'langs' => 'idsconnect@idsconnect',
|
||||||
'position' => 1000 + $r,
|
'position' => 500 + $r,
|
||||||
'enabled' => 'isModEnabled("idsconnect")',
|
'enabled' => 'isModEnabled("idsconnect")',
|
||||||
'perms' => '$user->hasRight("idsconnect", "config")',
|
'perms' => '$user->hasRight("idsconnect", "config")',
|
||||||
'target' => '',
|
'target' => '',
|
||||||
'user' => 0,
|
'user' => 0,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Links-Menü: Transaktionslog
|
// Transaktionslog (Level 2 unter IDS Connect)
|
||||||
$this->menu[$r++] = array(
|
$this->menu[$r++] = array(
|
||||||
'fk_menu' => 'fk_mainmenu=idsconnect',
|
'fk_menu' => 'fk_mainmenu=commercial,fk_leftmenu=idsconnect',
|
||||||
'type' => 'left',
|
'type' => 'left',
|
||||||
'titre' => 'IdsconnectLog',
|
'titre' => 'IdsconnectLog',
|
||||||
'prefix' => img_picto('', 'fa-list-alt', 'class="pictofixedwidth valignmiddle paddingright"'),
|
'prefix' => img_picto('', 'fa-list-alt', 'class="pictofixedwidth valignmiddle paddingright"'),
|
||||||
'mainmenu' => 'idsconnect',
|
'mainmenu' => 'commercial',
|
||||||
'leftmenu' => 'idsconnect_log',
|
'leftmenu' => 'idsconnect_log',
|
||||||
'url' => '/idsconnect/log_list.php',
|
'url' => '/idsconnect/log_list.php',
|
||||||
'langs' => 'idsconnect@idsconnect',
|
'langs' => 'idsconnect@idsconnect',
|
||||||
'position' => 1000 + $r,
|
'position' => 500 + $r,
|
||||||
'enabled' => 'isModEnabled("idsconnect")',
|
'enabled' => 'isModEnabled("idsconnect")',
|
||||||
'perms' => '$user->hasRight("idsconnect", "read")',
|
'perms' => '$user->hasRight("idsconnect", "read")',
|
||||||
'target' => '',
|
'target' => '',
|
||||||
|
|
|
||||||
0
css/idsconnect.css
Normal file → Executable file
0
css/idsconnect.css
Normal file → Executable file
|
|
@ -119,6 +119,9 @@ if (is_array($suppliers) && count($suppliers) > 0) {
|
||||||
print '<a class="butAction butActionSmall" href="'.DOL_URL_ROOT.'/custom/idsconnect/launch.php?supplier_id='.$sup->id.'&ids_action=WKE&token='.newToken().'" target="_blank">';
|
print '<a class="butAction butActionSmall" href="'.DOL_URL_ROOT.'/custom/idsconnect/launch.php?supplier_id='.$sup->id.'&ids_action=WKE&token='.newToken().'" target="_blank">';
|
||||||
print $langs->trans("IdsconnectReceiveCart");
|
print $langs->trans("IdsconnectReceiveCart");
|
||||||
print '</a> ';
|
print '</a> ';
|
||||||
|
print '<a class="butAction butActionSmall" href="'.DOL_URL_ROOT.'/custom/idsconnect/launch.php?supplier_id='.$sup->id.'&ids_action=LI&token='.newToken().'" target="_blank">';
|
||||||
|
print $langs->trans("IdsconnectOpenShop");
|
||||||
|
print '</a> ';
|
||||||
}
|
}
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
|
|
|
||||||
2
langs/de_DE/idsconnect.lang
Normal file → Executable file
2
langs/de_DE/idsconnect.lang
Normal file → Executable file
|
|
@ -74,6 +74,8 @@ IdsconnectOpenShop = Shop öffnen
|
||||||
IdsconnectSendCart = Warenkorb senden
|
IdsconnectSendCart = Warenkorb senden
|
||||||
IdsconnectReceiveCart = Warenkorb empfangen
|
IdsconnectReceiveCart = Warenkorb empfangen
|
||||||
IdsconnectDeepLink = Artikel im Shop anzeigen
|
IdsconnectDeepLink = Artikel im Shop anzeigen
|
||||||
|
IdsconnectShowInShop = Im Shop anzeigen
|
||||||
|
IdsconnectCheckVersion = Version prüfen
|
||||||
|
|
||||||
#
|
#
|
||||||
# Launcher / Bestätigung
|
# Launcher / Bestätigung
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,8 @@ IdsconnectOpenShop = Open Shop
|
||||||
IdsconnectSendCart = Send Cart
|
IdsconnectSendCart = Send Cart
|
||||||
IdsconnectReceiveCart = Receive Cart
|
IdsconnectReceiveCart = Receive Cart
|
||||||
IdsconnectDeepLink = Show Article in Shop
|
IdsconnectDeepLink = Show Article in Shop
|
||||||
|
IdsconnectShowInShop = Show in Shop
|
||||||
|
IdsconnectCheckVersion = Check Version
|
||||||
|
|
||||||
#
|
#
|
||||||
# Launcher / Confirmation
|
# Launcher / Confirmation
|
||||||
|
|
|
||||||
0
launch.php
Normal file → Executable file
0
launch.php
Normal file → Executable file
0
log_detail.php
Normal file → Executable file
0
log_detail.php
Normal file → Executable file
0
log_list.php
Normal file → Executable file
0
log_list.php
Normal file → Executable file
0
mockserver.php
Normal file → Executable file
0
mockserver.php
Normal file → Executable file
0
sql/llx_idsconnect_log.key.sql
Normal file → Executable file
0
sql/llx_idsconnect_log.key.sql
Normal file → Executable file
0
sql/llx_idsconnect_log.sql
Normal file → Executable file
0
sql/llx_idsconnect_log.sql
Normal file → Executable file
0
sql/llx_idsconnect_supplier.key.sql
Normal file → Executable file
0
sql/llx_idsconnect_supplier.key.sql
Normal file → Executable file
0
sql/llx_idsconnect_supplier.sql
Normal file → Executable file
0
sql/llx_idsconnect_supplier.sql
Normal file → Executable file
0
supplier_card.php
Normal file → Executable file
0
supplier_card.php
Normal file → Executable file
0
supplier_list.php
Normal file → Executable file
0
supplier_list.php
Normal file → Executable file
0
tab_supplierorder.php
Normal file → Executable file
0
tab_supplierorder.php
Normal file → Executable file
0
test_connection.php
Normal file → Executable file
0
test_connection.php
Normal file → Executable file
Loading…
Reference in a new issue