[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 2
Seite 2 von 3

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

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 19. Feb 2013, 10:29
von Tizian
leider nein…

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 19. Feb 2013, 11:52
von RexDude
sorry, ich kann mich hier aus zeitgründen gerade leider net mehr vertiefen...

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 19. Feb 2013, 12:15
von Tizian
schade, vielleicht später wieder?

auf jedenfall danke bis hierher und für das lebensnotwendige add-on.

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 19. Feb 2013, 20:57
von RexDude
ok, also hab nochmal versucht mich reinzudenken und ich glaube du brauchst halt noch ne abfrage im frontend. und zwar musst du pro slice checken ob da ein on/off datum vorliegt und wenn der slice dann nicht dem status entspricht, dem er laut datum entsprechen sollte (vergleich mit aktuellem datum), musst du ihn eben per updateSliceStaus Funktion switchen. oder?

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 12. Mär 2013, 14:30
von Tizian
hi,
hier macht meine programmierkenntnis leider noch nicht mit.

hier noch mal konkret gefragt: gibt es eine einfache programmierung, die in dieser abfrage klärt, ob slices im artikel online sind und wenn nicht den artikel wie leer betrachtet?

Code: Alles auswählen

   $spalte = $this->getArticle(2); 
   if ($spalte == '') {       
      $article= OOArticle::getArticleById($this->article_id);
      $parent = $article->getParentTree();
      $reverse = array_reverse($parent); 
      foreach($reverse as $cat) {          
         $neuer_art = new article($cat->getId());       
           $neueespalte = $neuer_art->getArticle(2);          
         if ($neueespalte =='') { 
$art = new rex_article();
      $art->setArticleId($REX['START_ARTICLE_ID']); 
      $art->setClang($REX['CUR_CLANG']); 
      $spalte = $art->getArticle(2);
         } else {          
            $neuer_art_spalte = new article($cat->getId());
            $neuer_art_spalte->setClang($REX['CUR_CLANG']); 
            $spalte = $neuer_art_spalte->getArticle(2);
            break; 
         }
      }
   } else { }
   print $spalte;
danke.

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 12. Mär 2013, 16:42
von RexDude
das müsste dir eigentlich weiterhelfen:

Code: Alles auswählen

if (!isset($REX['FETCHED_SLICE_STATUS'])) {
    $REX['FETCHED_SLICE_STATUS'] = rex_slice_status::fetchSliceStatus();
}

if ($REX['FETCHED_SLICE_STATUS'][3] == 1) {
    // slice mit id = 3 ist online
} else {
    // slice mit id = 3 ist offline
}

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 4. Apr 2013, 13:09
von madiko
Hallo RexDude,

ich bin begeistert: AddOn via github heruntergeladen, entzippt, hochgeladen, installiert und aktiviert - fertig! Ausprobiert. Funktioniert! Einfach perfekt -- und das innerhalb von 5 min. :-)

Vielen herzlichen Dank für das klasse Feature sagt
Franziska

-------------------------
madiko. effizient. ökologisch. sozial.
www.madiko.com

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 4. Apr 2013, 13:25
von RexDude
Hallo Franziska,

ja schön, das freu mich aber :))) Hast auch direkt die neuste Version entdeckt....bin noch nicht dazu gekommen die nämlich hier wieder bekannt zu machen. Zur 2.0.0 kommen nur noch ein paar glitzekleine Änderungen hinzu, dann geb ichs auch hier an dieser Stelle wieder bekannt :)

Also danke für dein freundliches Feedback, das motiviert sehr so weiterzumachen... :D

LG,
RexDude

Re: [v1.2.5] Slice Status aka Slice On/Off

Verfasst: 4. Apr 2013, 13:30
von RexDude
@dirk: falls du die aktuellste version abcheckst: ich habe extra für dich einen hinweis in der config.inc.php hinterlassen, wie du die backendpage wegbekommst, falls du die nicht haben willst ;)

Re: [v2.0.0] Slice Status aka Slice On/Off

Verfasst: 24. Apr 2013, 23:33
von RexDude
neue version: 2.0.0

changelog und download wie immer über den ersten post dieses threads

Re: [v2.0.0] Slice Status aka Slice On/Off

Verfasst: 27. Jun 2013, 13:39
von iceman-fx
Addon funktioniert leider nicht.
Habe es soeben mal in r4.5 installiert (aktuelle Version) und getestet.

Das Umschalten per Ajax hat keine Wirkung - Slice bleibt trotzdem online, obwohl er als offline im BE angezeigt wird.

Kann dies jemand nachvollziehen?


Nachtrag 1: in der DB wird der Status korrekt gesetzt
Nachtrag 2: der EX Punkt SLICE_SHOW wird nicht ausgeführt (rex_register_extension('SLICE_SHOW', 'rex_slice_status::sliceShow');)
Nachtrag 3: wenn in der Liveversion direkt der Slidestatus gewechselt wird, klappt es - nur nicht wenn es in der AV erfolgt und dann als LV freigegeben wird.

Re: [v2.0.0] Slice Status aka Slice On/Off

Verfasst: 1. Jul 2013, 08:25
von iceman-fx
Ich nutze jetzt wieder das originale Slide On/Off, welches nach wie vor einwandfrei bei mir läuft (auch unter rex4.5).

Re: [v2.0.1] Slice Status aka Slice On/Off

Verfasst: 1. Aug 2013, 16:56
von RexDude
Der Bug den iceman-fx im Zusammenhang mit dem Version Addon reported hat sollte ab Version 2.0.1 gefixt sein.

### Version 2.0.2 - 26. September 2013

* Performance erhöht beim Umschalten der Slices im Ajax-Mode.

### Version 2.0.1 - 31. Juli 2013

* Fixed #14: Problem mit dem Version Addon behoben

Re: [v2.0.1] Slice Status aka Slice On/Off

Verfasst: 3. Sep 2013, 13:14
von tobin
Beim Versuch: Slice Status v2.0.1 zu installieren, kam folgende Meldung:

"AddOn "slice_status-master" konnte aus folgendem Grund nicht installiert werden:
Es wurde kein Grund angegeben."

REDAXO: 4.3.2
PHP: 5.2.12
MySQL: 5.1.32

Tja was soll ich dazu schreiben? Hat jemand eine Idee?
Grüße,
Stephan

Re: [v2.0.1] Slice Status aka Slice On/Off

Verfasst: 3. Sep 2013, 13:30
von RexDude
Ordnername in "slice_status" umbennenen bitte. Steht auch in der Readme unter Hinweise. Und ab 4.5 wird man von REDAXO mit einer besseren Fehlermeldung beglückt ;)