Seite 1 von 3
Re: [v1.2.0] Neues (altes) Addon: Slice Status aka Slice On/
Verfasst: 26. Nov 2012, 13:13
von RexDude
jdlx hat geschrieben:Evtl. nicht beim install (oder zumindest nicht ungefragt), aber ein replace wäre imho sinnvoller als irgendwelcher compat code -> issisch bloat..
ja, hast recht. vielleicht so: wenn slice_onoff da ist dann autom. die die werte ins neue slice_status format kopieren, so dass die bestehenden artikelstati für slice_status erhalten bleiben. so zieht man dem slice_onoff die daten zumindest nicht unter dem arsch weg
Re: [v1.2.0] Neues (altes) Addon: Slice Status aka Slice On/
Verfasst: 26. Nov 2012, 14:10
von ds
RexDude hat geschrieben:vielleicht so: wenn slice_onoff da ist dann autom. die die werte ins neue slice_status format kopieren, so dass die bestehenden artikelstati für slice_status erhalten bleiben.
Yay, das wäre perfekt!
Re: [v1.2.0] Neues (altes) Addon: Slice Status aka Slice On/
Verfasst: 26. Nov 2012, 14:27
von RexDude
Re: [v1.2.0] Neues (altes) Addon: Slice Status aka Slice On/
Verfasst: 27. Nov 2012, 10:57
von RexDude
Hey, ich frage mich gerade ob ich dem Addon auch ne eigene Seite im Backend spendieren soll als nächstes. Es ist zwar momentan nur ein Parameter den man einstellen kann (AJAX on/off) aber vielleicht ist es schon mal ganz net wenn das Addon auch im Addon Menü auftaucht. Was meint ihr?
Re: [v1.2.0] Neues (altes) Addon: Slice Status aka Slice On/
Verfasst: 27. Nov 2012, 11:09
von ds
RexDude hat geschrieben:Hey, ich frage mich gerade ob ich dem Addon auch ne eigene Seite im Backend spendieren soll als nächstes. Es ist zwar momentan nur ein Parameter den man einstellen kann (AJAX on/off) aber vielleicht ist es schon mal ganz net wenn das Addon auch im Addon Menü auftaucht. Was meint ihr?
Nur meine Meinung, weil du danach gefragt hast: Ich würde AJAX immer verwenden (gar nicht konfigurierbar machen) und im Sinne von KISS keine Backend-Seite einrichten.
Aber hey: Es ist dein Addon, und jede Form von Entwicklung für die Community ist eine gute Tat
Re: [v1.2.0] Neues (altes) Addon: Slice Status aka Slice On/
Verfasst: 27. Nov 2012, 14:04
von RexDude
Ich steh auch auf KISS bin aber auch ein Freund von möglichst hoher Konfigurierbarkeit, so dass ich die Dinge meinen Wünschen anpassen kann ohne gross im Code herumwühlen zu müssen.
Neu in Version 1.2.1:
* Automatischer Import von slice_onoff Daten bei Installation
Download:
https://github.com/RexDude/slice_status/downloads
Update Hinweis:
https://github.com/RexDude/slice_status ... ice_status
@Dirk: läufts?
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 20. Dez 2012, 13:45
von RexDude
Neu in Version 1.2.2:
* Import-Meldung wird nun auch unter Redaxo 4.3 angezeigt
* Autom. Cache löschen bei Install/Deinstall
Download ab jetzt immer hier:
http://www.redaxo.org/de/download/addons/?addon_id=1022
...da der Download-Bereich unter GitHub gekickt wurde.
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 20. Dez 2012, 23:33
von ds
Jetzt bin ich auch endlich dazu gekommen, es einzusetzen. Funktioniert großartig. Hat problemlos die Daten vom vorherigen Slice_OnOff übernommen.
Danke!
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 8. Jan 2013, 09:50
von Rex_Fan
Hallo,
habe mir das aktuelle addon installiert, leider tut sich bei mir bei Klick auf den On/off Button nichts.
Hier die Fehlermeldung aus Chrome:
Code: Alles auswählen
GET http://localhost/redaxo/index.php?function=updateslicestatus&new_status=0&slice_id=48&article_id=9&clang=0 404 (Not Found) jquery.min.js:130
c.extend.ajax jquery.min.js:130
updateSliceStatus slice_status.js:52
(anonymous function) /webseite/redaxo/index.php?page=content&article_id=9&mode=edit&clang=0&a256_article_name=reside (1):1
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 8. Jan 2013, 11:23
von RexDude
Hi und vielen Dank für die Bugmeldung!
So wie es aussieht habe ich bei dem Ajax-Call nicht bedacht, dass man Redaxo ja auch in einem Unterordner laufen lassen kann.
Wenn du Bock hast tausch doch mal die Zeile 54 aus /webseite/files/addons/slice_status/slice_status.js:
Code: Alles auswählen
url: '/redaxo/index.php?function=updateslicestatus&new_status=' + newStatus + '&slice_id=' + sliceID + '&article_id=' + articleID + '&clang=' + cLang + '',
mit dieser hier aus:
Code: Alles auswählen
url: window.location.pathname + '?function=updateslicestatus&new_status=' + newStatus + '&slice_id=' + sliceID + '&article_id=' + articleID + '&clang=' + cLang + '',
Gehts dann bei dir?
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 8. Jan 2013, 11:37
von Rex_Fan
gleich getestet - damit klappts wie eh und je
Tolles Addon - toller support!
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 8. Jan 2013, 11:47
von RexDude
Freut mich! Und wieder ist das Addon ein Stück "reifer" geworden. Ich werde in GitHub ein Issue anlegen mit dem Bug und bei der nächsten Version ist dieser dann bereinigt.
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 12. Feb 2013, 10:39
von Tizian
hallo dude,
danke für das add-on.
gibt es eine möglichkeit, den on/off-status aus dem modul heraus anzusprechen?
oder ist die implementierung der timer-funktion schon weiter fortgeschritten?
danke und
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 12. Feb 2013, 10:52
von RexDude
hey dude,
ja geht:
per js/ajax:
Code: Alles auswählen
updateSliceStatus(articleID, cLang, sliceID, curStatus)
mit curStatus wird der funktion der aktuelle status mitgegeben. in der funktion wird dann geswitcht.
per php:
Code: Alles auswählen
rex_slice_status::updateSliceStatusInDB($articleID, $cLang, $sliceID, $newStatus);
$newStatus: hier wird dann wohl irgendwie schon der neue status mit angegeben
viel spaß bei switchen
der rexdude
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 12. Feb 2013, 14:24
von Tizian
damn, dude, thx,
so i had to give it a try… but stuck.
versuche es in dieses modul einzubauen:
Code: Alles auswählen
<?php
$articleID = '';
$articleID = REX_ARTICLE_ID;
$sliceID = '';
$sliceID = REX_SLICE_ID;
$text = '';
$text = htmlspecialchars_decode("REX_VALUE[1]");
$text = str_replace("<br />","",$text);
$text = rex_a79_textile($text);
$text = str_replace("###"," ",$text);
// Wenn Bild eingefuegt wurde, Code schreiben
$file = "";
if ("REX_FILE[1]" != "") {
$file = '<img class="image" src="index.php?rex_resize=220w__'."REX_FILE[1]".'" alt="'.$title.'" />';
}
$jahr_von = 'REX_VALUE[5]';
$monat_von = 'REX_VALUE[6]';
$tag_von = 'REX_VALUE[7]';
$jahr_bis = 'REX_VALUE[8]';
$monat_bis = 'REX_VALUE[9]';
$tag_bis = 'REX_VALUE[10]';
if ( $jahr_von != ''
&& $monat_von != ''
&& $tag_von != ''
&& $jahr_bis != ''
&& $monat_bis != ''
&& $tag_bis != '') {
$von = mktime( 0, 0, 0, $monat_von, $tag_von, $jahr_von);
$bis = mktime( 0, 0, 0, $monat_bis, $tag_bis, $jahr_bis);
$jetzt = time();
if( $jetzt > $von && $jetzt < $bis) {
// hier machen was immer du willst, wenn der Artikel im Bereich von VON und BIS ist
echo $file;
echo chr(10);
echo $text;
}
else {
// hier machen was immer du willst, wenn der Artikel NICHT im Bereich von VON und BIS ist
rex_slice_status::updateSliceStatusInDB($articleID, $cLang, $sliceID, $newStatus);
}
if ($REX['REDAXO']) {
if( $jetzt > $von && $jetzt < $bis) {
$state = '<span style="color: #00aa00;">online</color>';
} else {
$state = '<span style="color: #aa0000;">offline</color>';
}
echo 'Artikel aufgrund der Datumseinstellungen '.$state;
echo 'Artikel ID:'.$articleID; //Test
echo 'Slice ID:'.$sliceID; //Test
}
}
?>
muss das ganze über eine aktion angetriggert werden?
danke und
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 12. Feb 2013, 14:57
von RexDude
dude, nette variablen namen: $von, $bis
Code: Alles auswählen
rex_slice_status::updateSliceStatusInDB($articleID, $cLang, $sliceID, $newStatus);
hier fällt halt schon mal auf das $clang und $newStatus gar net vor dem Funktionsaufruf gesetzt werden (hab zumindest in dem codeschnipsel nix entdeckt). Also bevor du die Funktion aufrufst setzte die Parameter für entspr. Variablen und gib die auch mal mit nem echo alle vorher aus, damit du siehst dass alles passt was du da an die Funktion übergibst
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 12. Feb 2013, 15:05
von Tizian
hier fällt halt schon mal auf das $clang und $newStatus gar net vor dem Funktionsaufruf gesetzt werden
…nee, schon klar. ich stehe nur mit dem funktionsaufruf auf dem schauch – wie rufe ich die auf? und wo? und wie?
danke im voraus…
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 12. Feb 2013, 15:14
von RexDude
du rufst das baby da auf wo es das slice online/offline setzen soll. ich empfehl dir mal nen nackten funktion aufruf, d.h. in deiner modul ausgabe ganz oben
rex_slice_status::updateSliceStatusInDB(1, 1, 1, 0);
sollte den ersten slice des ersten artikels der sprache 1 auf off stellen. zum testen.
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 13. Feb 2013, 09:18
von Tizian
danke!
leider geht es nur unzureichend hiermit:
<?php
$articleID = '';
$articleID = REX_ARTICLE_ID;
$sliceID = '';
$sliceID = REX_SLICE_ID;
$text = '';
$text = htmlspecialchars_decode("REX_VALUE[1]");
$text = str_replace("<br />","",$text);
$text = rex_a79_textile($text);
$text = str_replace("###"," ",$text);
// Wenn Bild eingefuegt wurde, Code schreiben
$file = "";
if ("REX_FILE[1]" != "") {
$file = '<img class="image" src="index.php?rex_resize=220w__'."REX_FILE[1]".'" alt="'.$title.'" />';
}
$jahr_von = 'REX_VALUE[5]';
$monat_von = 'REX_VALUE[6]';
$tag_von = 'REX_VALUE[7]';
$jahr_bis = 'REX_VALUE[8]';
$monat_bis = 'REX_VALUE[9]';
$tag_bis = 'REX_VALUE[10]';
if ( $jahr_von != ''
&& $monat_von != ''
&& $tag_von != ''
&& $jahr_bis != ''
&& $monat_bis != ''
&& $tag_bis != '') {
$von = mktime( 0, 0, 0, $monat_von, $tag_von, $jahr_von);
$bis = mktime( 0, 0, 0, $monat_bis, $tag_bis, $jahr_bis);
$jetzt = time();
if( $jetzt > $von && $jetzt < $bis) {
// hier machen was immer du willst, wenn der Artikel im Bereich von VON und BIS ist
rex_slice_status::updateSliceStatusInDB($articleID, 1, $sliceID, 1);
echo $file;
echo chr(10);
echo $text;
} else {
// hier machen was immer du willst, wenn der Artikel NICHT im Bereich von VON und BIS ist
rex_slice_status::updateSliceStatusInDB($articleID, 1, $sliceID, 0);
}
if ($REX['REDAXO']) {
if( $jetzt > $von && $jetzt < $bis) {
$state = '<span style="color: #00aa00;">online</color>';
} else {
$state = '<span style="color: #aa0000;">offline</color>';
}
echo 'Artikel aufgrund der Datumseinstellungen '.$state;
echo '<br />Artikel ID:'.$articleID;
echo '<br />Slice ID:'.$sliceID;
}
}
?>
beim einstellen im backend geht es, im frontend wird bei einem datums-/statuswechsel jedoch folgende fehlermeldung angezeigt:
Fatal error: Call to undefined function rex_deleteCacheArticleContent() in /Applications/MAMP/kita/redaxo/include/addons/slice_status/classes/class.rex_slice_status.inc.php on line 85
auch im backend war einmal cache löschen notwendig, bzw. das erneute aufrufen der artikelseite/des slice.
eine idee?
danke
Re: [v1.2.2] Slice Status aka Slice On/Off
Verfasst: 13. Feb 2013, 22:53
von RexDude
Hi,
es sieht so aus als ob das Frontend die rex_deleteCacheArticleContent() nicht kennt. Deshalb musst du den rex_slice_status::updateSliceStatusInDB in eine If-Abfrage fürs Backend packen.
Code: Alles auswählen
if ($REX['REDAXO']) {
rex_slice_status::updateSliceStatusInDB($articleID, 1, $sliceID, 0);
}
Dann sollte kein Fehler mehr kommen.
>> auch im backend war einmal cache löschen notwendig, bzw. das erneute aufrufen der artikelseite/des slice.
Ja weil beim erneuten Aufrufen der Artikel neu geschrieben wird, der zuvor gelöscht wurde. Man kann ihn natürlich auch neu generieren lassen anstelle nur löschen. Aber du musst ja so oder so neu auf die Seite gehen um dir das Ergebniss anzeiugen zu lassen. Wenn du aber im Backend meinst, dass du gleich das Ergebnis haben willst nach Block speichern, so würde das fast nur mit Ajax gehen denke ich. Also Klick auf "Speichern", Ajax Call, Seite läd neu, Slice wird dann bereits offline angezeigt.
Re: [v1.2.5] Slice Status aka Slice On/Off
Verfasst: 17. Feb 2013, 17:59
von RexDude
Neue Version 1.2.5:
-$REX['MEDIA_ADDON_DIR'] wird genutzt wenn vorhanden
-Changelog hinzugefügt
-Dateirechte korrekt eingestellt
-PHP-Funktion updateSliceStatusInDB in updateSliceStatus geändert
-Fixed #8: Slice Status gibt nun Fehlermeldung aus wenn status DB-Feld nicht gefunden
-Fixed #7: Ajax Mode läuft jetzt auch wenn REDAXO in einem Unterordner installiert wurde
-Funktionen in statische Klasse rex_slice_status verschoben
Coming soon:
-Einstellungsseite im Backend
@Tizian: Bitte beachte, dass ich in dieser Version updateSliceStatusInDB in updateSliceStatus geändert hab
Re: [v1.2.5] Slice Status aka Slice On/Off
Verfasst: 17. Feb 2013, 22:10
von ds
RexDude hat geschrieben:Neue Version 1.2.5: …
Chapeau mal wieder!
Re: [v1.2.5] Slice Status aka Slice On/Off
Verfasst: 17. Feb 2013, 22:30
von RexDude
ds hat geschrieben:Chapeau mal wieder!
Gracias
Und Danke auch allen, die Bugs gemeldet haben
Re: [v1.2.5] Slice Status aka Slice On/Off
Verfasst: 19. Feb 2013, 09:25
von Tizian
danke dude,
leider funktioniert die zeitgesteuerte schaltung bis jetzt nur vom backend aus.
wird der status offline für ein datum in der zukunft eingestellt – und dieses datum dann erreicht – wird der status leider nicht übernommen, wenn der artikel im frontend aufgerufen wird…
im backend wird der status im modul zwar richtig angezeigt –
Code: Alles auswählen
$state = '<span style="color: #00aa00;">online</color>';
} else {
$state = '<span style="color: #aa0000;">offline</color>';
}
echo 'Artikel aufgrund der Datumseinstellungen '.$state;
der status vom addon dann aber auch erst nach aufruf des slice umgeschaltet.
Re: [v1.2.5] Slice Status aka Slice On/Off
Verfasst: 19. Feb 2013, 09:50
von RexDude
hey dude,
wird der status leider nicht übernommen, wenn der artikel im frontend aufgerufen wird…
naja, kein wunder wenn du hier dann sowas machen musst:
Code: Alles auswählen
if ($REX['RADAXO']) { rex_slice_status::updateSliceStatus(...); }
Wenn du es schaffst, dass die Funktion "rex_deleteCacheArticleContent" auch im Frontend verfügbar wird, dann müsste es eigentlich gehen. Evtl. kannst du versuchen mal ganz blauäugig die "function_rex_generate.inc.php" ausm REDAXO-Core im Frontend zu includen (Abfrage von oben dann wieder raus.).
Code: Alles auswählen
include_once($REX['INCLUDE_PATH'] . '/functions/function_rex_generate.inc.php');
Wenn das funzt bau ichs im Addon direkt ein