Hallo zusammen,
beim aktuellen Projekt mit Redaxo 4.6.1 gibt es mehrere Redakteure. Nun soll im Backend möglichst pro Slice angezeigt werden, welcher Benutzer wann letztmalig Änderungen vorgenommen hat. Die Daten liegen ja in rex_article_slice vor, gibt es bereits eine Lösung/ein AddOn, was dies ermöglicht? Meine bisherige Suche hat nichts dazu ergeben.
Es grüßt
greyhound
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Re: updateuser im Backend sichtbar machen?
Mittlerweile habe ich es hinbekommen, daß per EP "ART_SLICE_MENU" die Information im Slice Menü ausgegeben wird:
in einem bereits bestehenden AddOn sowie folgender Funktion:
Somit stehen die Angaben dann an erster Stelle, vor dem "Editieren"-Link
Code: Alles auswählen
if ($REX['REDAXO'])
require $REX['INCLUDE_PATH'].'/addons/'.$mypage.'/functions/functions.inc.php';
rex_register_extension('ART_SLICE_MENU', 'EPArtSliceMenu');
Code: Alles auswählen
function EPArtSliceMenu($params){
if ($GLOBALS['REX']['REDAXO']){
if ($params['function']!='edit'){
$slice=OOArticleSlice::getArticleSliceById($params['slice_id']);
array_splice($params['subject'], 0, 0,$slice->getValue('updateuser').' | '.strftime('%d.%m.%y %H:%M',$slice->getValue('updatedate')).' ');
return $params['subject'];
}
}
}
Re: updateuser im Backend sichtbar machen?
Ein Use Case für ein Plugin für das Backend Utilities Addon.
Also falst du net weisst wohin mit dem Code
Also falst du net weisst wohin mit dem Code
Re: updateuser im Backend sichtbar machen?
Schönes Ding, könnte ich ab und an auch mal gebrauchen. Danke fürs Teilen!greyhound hat geschrieben:Mittlerweile habe ich es hinbekommen, daß per EP "ART_SLICE_MENU" die Information im Slice Menü ausgegeben wird:in einem bereits bestehenden AddOn sowie folgender Funktion:Code: Alles auswählen
if ($REX['REDAXO']) require $REX['INCLUDE_PATH'].'/addons/'.$mypage.'/functions/functions.inc.php'; rex_register_extension('ART_SLICE_MENU', 'EPArtSliceMenu');
Somit stehen die Angaben dann an erster Stelle, vor dem "Editieren"-LinkCode: Alles auswählen
function EPArtSliceMenu($params){ if ($GLOBALS['REX']['REDAXO']){ if ($params['function']!='edit'){ $slice=OOArticleSlice::getArticleSliceById($params['slice_id']); array_splice($params['subject'], 0, 0,$slice->getValue('updateuser').' | '.strftime('%d.%m.%y %H:%M',$slice->getValue('updatedate')).' '); return $params['subject']; } } }
Da gibts nur ein Problem:
Ich habe wie beschrieben die Funktion im AddOn hinterlegt (AddOn-Ordner/functions/functions.inc.php) und dann im Ausgabemodul den Extension-Point registriert. Und ich sehe absolut keine Veränderung zu vorher. Es wirft keinen Fehler, aber es zeigt die gewünschte Information auch nirgendwo etwas zusätzlich an
Ich habe das AddOn "SliceStatus" noch nebenbei am Laufen, könnte das ein Problem sein?
Getestet mit Redaxo 4.6.2.
Re: updateuser im Backend sichtbar machen?
Prüf erstmal ob deine Funktion überhaupt aufgerufen wird, z.B. in dem du ein echo und dein ein exit; reinsetzt gleich zu beginn der funktion.
Re: updateuser im Backend sichtbar machen?
Was genau meinst Du mit "Ausgabemodul"? Den EP registriere ich in der config.inc.php meines AddOns.dpf_dd hat geschrieben:Ich habe wie beschrieben die Funktion im AddOn hinterlegt (AddOn-Ordner/functions/functions.inc.php) und dann im Ausgabemodul den Extension-Point registriert.
Ansonsten, wie RexDude schon sagt, teste mal aus, ob die functions-Datei generell und die Funktion im Besonderen eingebunden und aufgerufen werden.
Es grüßt
greyhound
Re: updateuser im Backend sichtbar machen?
Erstmal danke für deine Antwort. Ich habe mir das jetzt alles nochmal angeschaut und kann den Fehler eingrenzen:greyhound hat geschrieben:Was genau meinst Du mit "Ausgabemodul"? Den EP registriere ich in der config.inc.php meines AddOns.dpf_dd hat geschrieben:Ich habe wie beschrieben die Funktion im AddOn hinterlegt (AddOn-Ordner/functions/functions.inc.php) und dann im Ausgabemodul den Extension-Point registriert.
Ansonsten, wie RexDude schon sagt, teste mal aus, ob die functions-Datei generell und die Funktion im Besonderen eingebunden und aufgerufen werden.
Es grüßt
greyhound
In der "Liveversion" klappt es, in der "Arbeitsversion" nicht... (Ich bnutze das AddOn "versions")
Es wäre also geil, wenn man in der config.php noch eine Abfrage hätte, ob man sich in der Live- oder Arbeitsversion befindet. In "versions" ist aber nichts dokumentiert? Gibts da eine Möglichkeit, die ich nur noch nicht kenne? Wäre ja prinzipiell auch für andere Dinge praktikabel, wenn ich per Variable zwischen Live- und Arbeitsversion unterscheiden könnte...
EDIT:
Mittlerweile habe ich herausgefunden, dass man das abfragen kann:
Code: Alles auswählen
$version_id = rex_request("rex_set_version");
# => Liveversion == 0 - Arbeitsversion == 1
Resultat: Ich bekomme die Anzeige in der LIVE-Version - in der Arbeitsversion wird nichts hinzugefügt. Klappt aber nur 1x - sobald ich nach vorgenommenen z.B: Seiteneinstellungen auf "Inhalt" klicke, um wieder zur Modulanischt zu wechseln => alles ist wieder weg. Ich wechsle dann in die Liveversion und kopiere das Zeuch in die Arbeitsversion => alles wieder da...
Sehr strange das Ganze o.O
Re: updateuser im Backend sichtbar machen?
Sorry muss das mal pushen:
Was ist zu tun, um deinen o.g. Code mit dem AddOn "versions" kompatibel zu machen. Ich suche hier immernoch nach einer Lösung... *liebguck*
Was ist zu tun, um deinen o.g. Code mit dem AddOn "versions" kompatibel zu machen. Ich suche hier immernoch nach einer Lösung... *liebguck*
Re: updateuser im Backend sichtbar machen?
Habe mir das auf einer Demoinstanz mit Versions vorgenommen, so sollte es gehen:dpf_dd hat geschrieben:Was ist zu tun, um deinen o.g. Code mit dem AddOn "versions" kompatibel zu machen. Ich suche hier immernoch nach einer Lösung... *liebguck*
Code: Alles auswählen
function EPArtSliceMenu($params){
if ($GLOBALS['REX']['REDAXO']){
if ($params['function']!='edit'){
$version=rex_request("rex_set_version");
if ($version==1 || $version=='')
$slice=OOArticleSlice::getArticleSliceById($params['slice_id'],$params['clang'],1);
else
$slice=OOArticleSlice::getArticleSliceById($params['slice_id']);
array_splice($params['subject'], 0, 0,$slice->getValue('updateuser').' | '.strftime('%d.%m.%y %H:%M',$slice->getValue('updatedate')).' ');
return $params['subject'];
}
}
}
Re: updateuser im Backend sichtbar machen?
Ja ist denn heut scho' Weihnachten?
Eine kleine Änderung noch, aber das ist triial und sollte sofort auffallen...
Vielen lieben Dank Greyhound - das funktioniert tadellos
EDIT: Irgendwie flutscht es noch nicht. Manchmal hängt es nach wie vor in der LIVE-Version... Hier mal ein Auszug aus der Error-Log:
Das ist die Zeile beginnend mit array_splice...
Muss jetzt erstmal schlafen und bin dann erst Mittwoch wieder da -.- Dennoch danke
Eine kleine Änderung noch, aber das ist triial und sollte sofort auffallen...
Code: Alles auswählen
# nicht ganz korrekt
if ($version==1 || $version=='')
# so muss es aussehen
if ($version==1 || $version=='0')
EDIT: Irgendwie flutscht es noch nicht. Manchmal hängt es nach wie vor in der LIVE-Version... Hier mal ein Auszug aus der Error-Log:
Code: Alles auswählen
[fcgid:warn] [pid 15811] mod_fcgid: stderr: PHP Fatal error: Call to a member function getValue() on a non-object in functions.inc.php on line 12, referer:
Muss jetzt erstmal schlafen und bin dann erst Mittwoch wieder da -.- Dennoch danke
Re: updateuser im Backend sichtbar machen?
Das hatte ich schon bewusst so gesetzt, da es bei mir nur so funktioniert hat.. Öffnet man den Artikel über die Struktur direkt, ist die Arbeitsversion sichtbar, jedoch liefert rex_request("rex_set_version") in dem Moment einen leeren String zurück. Wechselt man dann die Version, wird entweder 1 oder 0 zurückgegeben.dpf_dd hat geschrieben:Eine kleine Änderung noch, aber das ist triial und sollte sofort auffallen...
Re: updateuser im Backend sichtbar machen?
Ah, verstehe. Klar, leuchtet jetzt auch ein. GIbt aber trotzdem noch ein Problem: Wenn ich in der Live-Version den ctype wechsle, dann verschwinden meine Moduleblöcke, die da eigentlich angezeigt werden sollten. Passiert aber nur in der Liverversion. Beim ersten Laden ist alles da, aber beim Surfen durch die ctypes ist dann finito
Re: updateuser im Backend sichtbar machen?
OK, neues Jahr, neues Glück... Das Problem ist aktuell noch offen
Folgende Fehleranalyse bisher... Weiter komme ich leider nicht, da brauche ich Hilfe...
Kurzum: Bei Verwendung von Ctypes gibt es scheinbar keinen Weg, jederzeit absolut eindeutig festzustellen, ob man sich nun in der Live- oder Arbeitsversion befindet. Ich mags kaum glauben, aber rex_request("rex_set_version") scheint nicht der Weisheit letzter Schuss zu sein...
Wer hat noch zwei Cent zum Einwerfen?
Folgende Fehleranalyse bisher... Weiter komme ich leider nicht, da brauche ich Hilfe...
Code: Alles auswählen
$version = rex_request("rex_set_version");
/*
Probleme:
Wird ein Artikel im Backend aufgerufen, dann lädt die Standardansicht, also die Arbeitsversion
=> $version = "" (weder 0 noch 1)
Stelle ich nun auf "Liverversion" => Seite lädt neu, Liveversion jetzt eingestellt
=> $version = "1" (so wie es sein muss)
Stelle ich nun wieder auf "Arbeitsversion" => Seite lädt neu, Arbeitsversion jetzt eingestellt
=> $version = "0" (so wie es sein muss)
Egal ob Live- oder Arbeitsversion, folgendes passiert beim Wechsel der Ctypes
=> $version = "" (weder 0 noch 1)
*/
Wer hat noch zwei Cent zum Einwerfen?
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: updateuser im Backend sichtbar machen?
Hej,
du verwendest rex_request verkehrt. Da fehlt der zweite Parameter und um es übersichtlicher zu halten auch der Default-Wert.
$version = rex_request('rex_set_version', 'bool', 0);
Damit fällt dieses Problem schon mal raus.
du verwendest rex_request verkehrt. Da fehlt der zweite Parameter und um es übersichtlicher zu halten auch der Default-Wert.
$version = rex_request('rex_set_version', 'bool', 0);
Damit fällt dieses Problem schon mal raus.
vg Thomas/*
Probleme:
Wird ein Artikel im Backend aufgerufen, dann lädt die Standardansicht, also die Arbeitsversion
=> $version = "" (weder 0 noch 1)
*/
Re: updateuser im Backend sichtbar machen?
Danke Thomas, das stimmt natürlich. Dafür bekomme ich jetzt keinen Wert, mehr wenn ich auf Liveversion umschalte. Also völlig egal wie ich rex_request("rex_set_version") verwende - bisher kenne ich keine Lösung, die mir IMMER eine 0 bzw. 1 ausgibt... Und ich vermute deswegen, dass es auch keine Lösung gibt
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: updateuser im Backend sichtbar machen?
$version sollte doch jetzt immer 1 oder 0 sein.
Re: updateuser im Backend sichtbar machen?
Also ich habe das exakt so eingefügt wie von dir geschrieben - das Problem ist einfach das er jetzt völligen Schwachsinn fabriziertThomas.Blum hat geschrieben:$version sollte doch jetzt immer 1 oder 0 sein.
Code: Alles auswählen
echo 'Version: '.rex_request("rex_set_version","bool", 0);
Aber jetzt wirds lustig: Wenn ich in der Arbeitsversion dann zwischen meinen beiden Ctypes wechsle, dann wird mir eine "0" zurückgegeben - also falsch. Ist auch logisch. Normal würde er einen Leerwert zurückgeben ("") - aber weil 0 als default definiert ist, zeigt es eben "0" an.
Ich kann aber eben nicht auf Live- und Arbeitsversion prüfen, wenn ich mal eine "1" und mal eine "0" (oder gar nichts bekomme)...
Wie gesagt. Sobald die Ctypes ins Spiel kommen ists scheinbar vorbei mit rex_request("rex_set_version") - und genau das ist mein Problem. Ich brauche nur eine Scheißvariable, mit der ich auf die Version abfragen kann - keine Ahnung warum ich der einzige bin der das nicht hinbekommt...!?
Kannst du mal bitte versuchen das zu reproduzieren? Also ein leeres Modul nur mit o.g. Codezeile als Ausgabe? Ein Template mit 2 Ctypes haste doch sicherlich iwo rumliegen...
- Thomas.Blum
- Entwickler
- Beiträge: 5063
- Registriert: 24. Aug 2004, 22:11
- Wohnort: Dresden
- Kontaktdaten: Website
Re: updateuser im Backend sichtbar machen?
Gib doch einfach einen Zugang. Hab grad keine Site mit version online.