[gelöst] wöchentlich wechselnder content

Fragen/Tipps allgemeiner Art.

Re: wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 13. Feb 2012, 20:28

Doku zu cronjob gibt es bisher nicht.
Also ich habe gerade mal getestet, bei mir funktioniert es. Der Code wird immer beim ersten Aufruf montags ausgeführt, wenn du aber selbst auf "Ausführen" klickst, wird er sofort ausgeführt und du solltest auch die Veränderung sehen können.
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: wöchentlich wechselnder content

Beitragvon beyben » 13. Feb 2012, 20:31

gebe mir die sachen gerade als modul aus.. hoffe das funktioniert da ueberhaupt - kann aber sonst nicht sehen, wo der haengt. dort hat er scheinbar ein problem mit: rex_articleStatus

gibt es da auch eine global loesung?
ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 13. Feb 2012, 20:37

Kann ich nicht nachvollziehen. Wenn ich den Code bei mir in ein Modul packe, wird er auch erfolgreich ausgeführt.
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: wöchentlich wechselnder content

Beitragvon beyben » 14. Feb 2012, 09:45

nochmal ich... hier erstmal der cronjob, so wie er bei mir funktioniert:
Code: Alles auswählen
<?php

global $REX;

$categoryId = 35; // hier die Id der Kategorie setzen
$articles = OOArticle::getArticlesOfCategory($categoryId);
$previous = null;
foreach($articles as $art)
{
  if($previous)
  {
    foreach($REX['CLANG'] as $clangId => $clangName)
    {
    rex_articleStatus($previous->getId(), $clangId, false);
    rex_articleStatus($art->getId(), $clangId, true);
    }
    break;
  }
  if($art->isOnline())
  {
    $previous = $art;
  }
}
?>


zwei probleme ergeben sich gerade beim testen:
1. wenn der letzte artikel erreicht ist, passiert nix, muesste ihm also im artikel-array als letztes den startartikel noch mitgeben...
2. wie verhaelt sich hier der startartikel? kann ich den normal on-off setzen? oder besser ausklammern?

ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 14. Feb 2012, 10:11

beyben hat geschrieben:1. wenn der letzte artikel erreicht ist, passiert nix, muesste im also im array der artikel als letztes den startartikel noch mitgeben...

Ich dachte, dass soll so sein, dass immer nur neue Artikel nachgeschoben werden. Ja, dann kannst du zum Beispiel den ersten Artikel hinten dran hängen. Oder du machst dann doch die Variante (aus der PN) mit foreach($articles as $i => $art), brichst die Schleife beim ersten Online-Artikel ab, und schaust dann danach ob $articles[$i+1] existiert, ansonsten nimmst du den ersten Artikel.

beyben hat geschrieben:2. wie verhaelt sich hier der startartikel? kann ich den normal on-off setzen? oder besser ausklammern?

Im Moment wird er mit berücksichtigt, also wenn der online ist, wird er offline gestellt, und der Nachfolger online. Wenn du das nicht möchtest, dann den ausschließen im foreach.
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: wöchentlich wechselnder content

Beitragvon beyben » 3. Mär 2012, 09:53

na hi und dank euch erstmal - eine kleine frage noch zum verstaendnis mit cronjob. die 'umgebung(frontend/backend)' im backend ist der ausloeser fuer den php-code, ist das richtig?

hier der code ohne startartikel - den brauche ich eh zum weiterleiten auf die erste kategorie, die 'aktuelle karte' - und den zusatz, das array um den zweiten artikel am ende des arrays zu erweitern:

Code: Alles auswählen
<?php

global $REX;

$categoryId = 14; // hier die Id der Kategorie setzen
$articles = OOArticle::getArticlesOfCategory($categoryId);
$i = count($articles);
$i = ++$i;
$erwei = $articles[1];
$articles[$i] = $erwei;
$previous = null;
foreach($articles as $art)
{
  if($previous)
  {
    foreach($REX['CLANG'] as $clangId => $clangName)
    {
    rex_articleStatus($previous->getId(), $clangId, false);
    rex_articleStatus($art->getId(), $clangId, true);
    }
    break;
  }
  $sa = $art->isStartArticle();
  if($art->isOnline() && $sa == '0' )
  {
  $previous = $art;
  }
}
?>


noch eine frage; entspricht das array[1] immer dem artikel mit der prio 2?
dank euch und ein sonniges wochenende...
ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 3. Mär 2012, 11:48

Hi,

beyben hat geschrieben:die 'umgebung(frontend/backend)' im backend ist der ausloeser fuer den php-code, ist das richtig?

Ja genau. Wenn du z. B. nur Frontend auswählst, wird der Job nur bei Frontend-Aufrufen ausgelöst.

beyben hat geschrieben:noch eine frage; entspricht das array[1] immer dem artikel mit der prio 2?

Ja. Allerdings muss der Startartikel nicht immer Prio 1 haben, den kann man an eine beliebige Position schieben. Ich denke aber trotzdem, dass das so ok ist, wie du es gelöst hast, da wohl schon keiner den Startartikel verschieben wird.

Gruß, Gregor
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: wöchentlich wechselnder content

Beitragvon beyben » 4. Mär 2012, 13:04

hi gregor - dank dir, dann habe ich das jetzt auch durch das thema... angenehm-sonniges restwochenende..

ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: [gelöst] wöchentlich wechselnder content

Beitragvon beyben » 20. Mär 2012, 09:52

na hi. noch eine frage - wenn am montag kein aufruf der seite erfolgt, wird dann trotzdem z.b. am dienstag beim ersten besucher umgestellt? der cronJob wurde gestern nicht ausgefuehrt, vondaher die verstaendnisfrage...

dank euch
ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: [gelöst] wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 20. Mär 2012, 10:51

So ist es gedacht, falls das nicht funktioniert, ist es ein Bug. Nur wenn eine ganze Woche niemand auf die Seite geht, dann wird nicht beim nächsten Aufruf der Cronjob direkt zwei Mal ausgeführt, sondern nur ein Mal.
Ich werde mir das nochmal anschauen.
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: [gelöst] wöchentlich wechselnder content

Beitragvon beyben » 20. Mär 2012, 11:40

hab dank fuer die schnelle antwort - anhand der logs sieht man, das die im maerz noch garnicht ausgeloest worden sind.... habe das ganze auch auf php-code stehen, da muss url-aufruf ausgewaehlt sein, oder? mist....

ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: [gelöst] wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 20. Mär 2012, 11:44

Nein, "PHP-Code" ist schon richtig, und bedeutet einfach, dass PHP-Code ausgeführt werden soll. Bei "URL-Aufruf" würde in dem festgelegten Intervall eine URL aufgerufen werden.
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: [gelöst] wöchentlich wechselnder content

Beitragvon beyben » 20. Mär 2012, 11:58

ah - ok - dank dir
ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Re: [gelöst] wöchentlich wechselnder content

Beitragvon Gregor.Harlan » 23. Mär 2012, 12:24

Also ich habe nun noch mal bisschen rumprobiert, und bei mir werden wöchentliche Cronjobs auch ausgeführt, wenn sie dran sind und Montag schon vorbei ist.
Ich vermute, dass bei dir irgendetwas anderes noch nicht passt, wenn der Job nicht ausgeführt wird. Aktiviert ist er aber, oder?
Zuletzt geändert von Gregor.Harlan am 25. Mär 2012, 10:19, insgesamt 1-mal geändert.
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: [gelöst] wöchentlich wechselnder content

Beitragvon beyben » 25. Mär 2012, 09:45

ja, ist aktiviert. hatte es aber nur auf frontend stehen... sollte aber auch richtig sein.
ich warte mal montag morgen ab...

ben
beyben
 
Beiträge: 270
Registriert: 30. Nov 2006, 13:04

Vorherige

Zurück zu Allgemeines [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast