Deutsch| English
  #1  
Alt 14.06.2011, 09:32
Erfahrener Benutzer
 
Registriert seit: 16.03.2011
Beiträge: 176
Standard Datensatzliste bearbeiten (Jobqueue)

Hallo,

Ich möchte mir basierend auf der Jobqueue eine Anzeige der Nutzeraktionen im ISPConfig bauen.

Gibt es eine Möglichkeit die Daten aus dem data Feld der sys_datalog vor der Anzeige noch durch einen "Parser" zu schicken?

Die blanke Anzeige ist zu verwirrend. Ich würde das gerne etwas aufbereiten.

/LG mare
Mit Zitat antworten
  #2  
Alt 14.06.2011, 14:58
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Es handelt sich dabei ja um ein serialisiertes PHP Array, as kannst Du mit der PHP Funktion unserailize() wieder in ein Array zurück wandeln und dann die Daten beliebig als HTML aufbereiten.
Mit Zitat antworten
  #3  
Alt 14.06.2011, 18:18
Erfahrener Benutzer
 
Registriert seit: 16.03.2011
Beiträge: 176
Standard

Hallo Till,

Das habe ich hinbekommen und mir auch eine Detailsseite dazu gebaut.
Ich hätte gerne das array_diff_assoc zwischen new und alt in der Tabellenansicht und wollte eigentlich wissen, an welcher Stelle ich die Variable data noch bearbeiten kann bevor sie in der List ausgegeben wird.

/LG René
Mit Zitat antworten
  #4  
Alt 14.06.2011, 19:05
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Ich verstehe glaube ich nicht so ganz, was Du meinst. Du kannst doch Daten beliebig mit PHP ausgeben und auch zu einem beliebigen Zeitpunkt laden und bearbeiten. Der Inhalt von Data ist unveränderlich und gibt den alten und neuen Zustand der DTabelle bei einer Änderung wieder.
Mit Zitat antworten
  #5  
Alt 15.06.2011, 07:56
Erfahrener Benutzer
 
Registriert seit: 16.03.2011
Beiträge: 176
Standard

HI,

Ok, ich versuchs nochmal ;-)

Ich habe die Jobqueue genommen und als History umgebaut. Dabei kann man noch die Nutzer einschränken und auch die Volltextsuche im Feld data der sys_datalog funktioniert. (Um z.B: nach E-Mailadressen zu suchen.)
(liste.png)

In den Details werden dann die Daten des Array im DB Feld data angezeigt.
(details.png)

Meine Frage war jetzt, ob/wie/wo ich in der Listenansicht (liste.png) die Daten aus dem Feld sys_datalog.data vorher noch bearbeiten kann.
Wenn ich dort {tmpl_var name="data"} eintrage habe ich ja die Rohdaten.
Ich würde diese gerne für die Listenansicht aufbereiten und dann ausgeben.
Angehängte Grafiken
Dateityp: jpg details.jpg (5,1 KB, 10x aufgerufen)
Dateityp: jpg liste.jpg (15,7 KB, 6x aufgerufen)
Mit Zitat antworten
  #6  
Alt 15.06.2011, 08:24
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Das kannst Du durch überschreiben bzw. erweitern der Funktion prepareDataRow($rec) der Klasse listform_actions erreichen, von der die Listenansicht abgeleitet ist. Siehe dazu auch listform_actions.inc.php Datei in interface/lib/classes/
Mit Zitat antworten
  #7  
Alt 15.06.2011, 09:56
Erfahrener Benutzer
 
Registriert seit: 16.03.2011
Beiträge: 176
Standard

Hallo Till,

Volltreffer ;-)
Genau das meinte ich . Danke.

Allerdings bekomme ich bei einem

if ($key=="data") $tmp = unserialize(stripslashes($rec[$key]));
oder
if ($key=="data") $tmp = unserialize($rec[$key]);


die Fehlermeldung
unserialize(): Error at offset 5 of 3200 bytes in ...

in $rec[$key] steht
a:2:{s:3:"old";a:28{s:11:"mailuser_id";s:3:"183";s :10:"sys_userid";s:1:"1";s:11:" ............
Mit Zitat antworten
  #8  
Alt 15.06.2011, 11:24
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Welchen Datentyp hat die data Spalte in der mysql DB bei Dir? Möglicherweise ist die zu klein, falls Du nicht das aktuelle ISPConfig 3.0.3.3 einsetzt.
Mit Zitat antworten
  #9  
Alt 15.06.2011, 11:37
Erfahrener Benutzer
 
Registriert seit: 16.03.2011
Beiträge: 176
Standard

Ich habe die 3.0.3.3 als Basisversion im Einsatz.
Der Datensatztyp ist longtext.

Wenn ich (in der Detailansicht) die Daten direkt aus der DB lese und durchs unserialize schicke funktioniert es auch. Ich kann nur leider keinen Unterschied zwischen der direkten Ausgabe und dem $row[$key] sehen.
Mit Zitat antworten
  #10  
Alt 15.06.2011, 12:01
Administrator
 
Registriert seit: 08.08.2007
Beiträge: 8.817
Standard

Lass Dir am besten mal beides vor dem unserialize ausgeben, kopier es zeile unter zeile in einen text-editor und vergleiche sie mal. Es könnte sein dass die Daten bereits in der listform bzw. listform_actions Klasse "bearbeitet" worden sind.
Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an



Alle Zeitangaben in WEZ +2. Es ist jetzt 13:22 Uhr.


Powered by vBulletin® Version 3.8.1 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0