Patryk Mikel

Patryk Mikel Student,
Politechnika Śląska
w Gliwicach

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Zastanawiam się jak zrobiona jest funkcja publikowania postów w konkretnym czasie w Wordpressie, że np. chcę aby post był opublikowany jutro o 8.00 i klikam zapisz i on mi to automatycznie jutro o 8.00 rano opublikuje.

Może on tworzy jakiś plik Cron? Czy to jest zrobione tylko w PHP? A jeśli tak to jak można uruchomić dany kod o konkretnym czasie w swoim CMSie?
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Może zapisuje datę/czas od której post ma być wyświetlany, a potem wyświetla tylko te które tą datę mają mniejszą od bieżącej?

KISS

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Poprzednik w zasadzie odpowiedział na pytanie. Zasada jest prosta, wystarczą w zasadzie 3 pola w bazie - jedno określające publikację posta (pokazuj / nie pokazuj / pokazuj okresowo) oraz pozostałe dwa z datami "pokazuj od" oraz "pokazuj do".

W takiej konfiguracji można czegoś nie wyświetlać w ogóle, wyświetlać stale lub też w jakichś ramach czasowych (od, do, od/do). Jeśli uwzględnisz te wartości przy pobieraniu postów możesz bez problemów ustawiać wyświetlanie treści na stronie z dowolnym wyprzedzeniem. Nie jest do tego potrzebny żaden cron.

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Trzy pola w bazie:

published: bool - tak albo nie, z uwzglednieniem kolejnych dwoch pol:

publish_up & publish_down - timestamp/datetime okreslajace poczatek i koniec publikacji, ignorowane jesli published ustawiono na "0"Mateusz J. edytował(a) ten post dnia 27.04.10 o godzinie 00:29

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Mateusz J.:
Trzy pola w bazie:

published: bool - tak albo nie, z uwzglednieniem kolejnych dwoch pol:

publish_up & publish_down - timestamp/datetime okreslajace poczatek i koniec publikacji, ignorowane jesli published ustawiono na "0"Mateusz J. edytował(a) ten post dnia 27.04.10 o godzinie 00:29
nie lepiej zamiast 'published' walnąć sobie pole 'status' i tam móc dawać różne statusy dodania? ;) bardziej funkcjonalne moim zdaniem.
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Kamil Brenk:

nie lepiej zamiast 'published' walnąć sobie pole 'status' i tam móc dawać różne statusy dodania? ;) bardziej funkcjonalne moim zdaniem.

Chyba że nagle okaże się, że artykuł ma mieć dwa statusy na raz. Wszystko zależy od konkretnej aplikacji.
Adam Pawliczek

Adam Pawliczek Usability expert, UX
designer,
Interaction
specialist

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Kamil Brenk:
nie lepiej zamiast 'published' walnąć sobie pole 'status' i tam móc dawać różne statusy dodania? ;) bardziej funkcjonalne moim zdaniem.

Wersja ze statusem ON/OFF i datą DATA_START/DATA_END sam stosuję i uważam że to najlepsze rozwiązanie. Klienci też są zadowoleni, też tego oczekiwali, chociaż oczywiście nie obyło się bez telefonów: Panie Adamie, bo to zniknęło samo nagle... wczoraj jeszcze było... ;) Wszystko zależy też od aplikacji, ale nie wyobrażam sobie jakiejkolwiek bazy z rekordami bez statusu ON/OFF - gdzie dochodzi do sytuacji że admin dodaje nowy rekord a ten się od razu pojawia dla klienta, chociaż sam rekord jest jeszcze w obróbce.
Kurde, ale poruszamy rzeczy tak oczywiste i podstawowe, że aż się zdziwiłem jak zobaczyłem pomysł z cronem.
Łukasz Anwajler

Łukasz Anwajler Mobile & Web
Developer

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Michał Jarosz:

Chyba że nagle okaże się, że artykuł ma mieć dwa statusy na raz. Wszystko zależy od konkretnej aplikacji.

Można zapalać flagi (bitowo) i po sprawie.
Michał Jarosz

Michał Jarosz Frontend Developer &
Team Leader

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Łukasz Anwajler:

Można zapalać flagi (bitowo) i po sprawie.

Można. Doskonale się indeksuje.
Wiele innych sposobów też można.

Michał Jarosz:

Wszystko zależy od konkretnej aplikacji.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Kamil Brenk:
nie lepiej zamiast 'published' walnąć sobie pole 'status' i tam móc dawać różne statusy dodania? ;) bardziej funkcjonalne moim zdaniem.

Tak wlasnie jest w wordpressie wspomnianym na poczatku watku. Pole status; moze przyjmowac wartosci 'published', 'draft', 'private' i afaik 'revision'

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Published w wersji int (nie bool) jest o tyle lepszy że rozbudowywalny.

Najpierw stosujesz 0/1, a potem, jeśli zajdzie potrzeba dodajesz kolejne wartości i ew. ich słownik.

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

w wordpress istnieje cos na wzor wbudowanego crona, zobacz plik wp-cron.php

jako ciekawostka - w "wordpress 3.0 beta 1" typy postow mozna rozbudowywac dowolnie o definiowane przez uzytkownika, bardzo przydatna funkcjonalnosc!

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Piotr Likus:
Published w wersji int (nie bool) jest o tyle lepszy że rozbudowywalny.

Najpierw stosujesz 0/1, a potem, jeśli zajdzie potrzeba dodajesz kolejne wartości i ew. ich słownik.

bool na inta zawsze mozna zmienic, ale to juz bardziej filozoficzna dyskusja niż techniczna ;) chodzi o koncept

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Mateusz J.:
Piotr Likus:
Published w wersji int (nie bool) jest o tyle lepszy że rozbudowywalny.

Najpierw stosujesz 0/1, a potem, jeśli zajdzie potrzeba dodajesz kolejne wartości i ew. ich słownik.

bool na inta zawsze mozna zmienic, ale to juz bardziej filozoficzna dyskusja niż techniczna ;) chodzi o koncept

Oj, czasami taka banalna zmiana struktury potrafi być nie lada wyzwaniem. Oprócz tego że baza może być zbyt duża (http://www.goldenline.pl/forum/bazy-danych/1595274) dla zwykłego alterka to jeszcze w niektórych środowiskach trzeba przekompilować wszystkie powiązane programy (iSeries, COBOL).

konto usunięte

Temat: Wykonywanie funkcji/kodu w konkretnym czasie

Na szczescie to jest grupa PHP :P



Wyślij zaproszenie do