[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Slice Status aka Slice On/Off - Seite 1
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
https://github.com/RexDude/slice_status/issues/4 :)

Kommt rein sobald ich bisschen Luft habe...

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("###","&#x20;",$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("###","&#x20;",$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(...); }
:P

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 :)