Membuat Script PHP Untuk Auto Published Artikel Dengan Cron Jobs

01.38 / Diposting oleh BEN~BEN MAXGNET INDO / komentar (0)



Ada seorang sahabat saya yang bekerja sebagai web desainer dan programmer di sebuah majalah Islami bertanya: “Bagaimana cara membuat script PHP untuk membuat artikel terjadwal yang nantinya akan dipublish secara otomatis?”. Dalam emailnya, beliau juga menjelaskan secara detail mekanismenya. Misalkan ada seseorang menulis sebuah artikel di web. Namun dia ingin agar artikel tersebut nantinya akan muncul pada tanggal tertentu sesuai yang diinginkannya.

OK… di sini saya akan menjelaskan cara membuat script auto publish tersebut. Selanjutnya script ini nanti akan dijalankan menggunakan Cron Jobs. Wah apa itu Cron Jobs? Bagi yang masih awam dengan istilah ini.. Cron Jobs adalah fitur yang ada di web hosting yang nantinya dapat digunakan untuk menjalankan suatu proses terjadwal (on schedule) secara otomatis. Terjadwal di sini bisa setiap jam, menit, hari, minggu, dan bulan. Nah… dengan bantuan Cron Jobs ini nanti, kita akan menjalankan script untuk mempublish otomatis artikel sesuai tanggal yang telah ditentukan.

Sebagai contoh misalkan kita memiliki sebuah tabel untuk menyimpan artikel di web sebagai berikut:

CREATE TABLE article (

id int(11) AUTO_INCREMENT,
title varchar(30),
author varchar(30),
publishDate date,
statusPublish int,
PRIMARY KEY(id)
);

dengan field ‘id’ adalah menyatakan kode unik dari artikel, ‘title’ menyatakan judul artikel, ‘author’ adalah nama penulis dan ‘publishDate’ menyatakan tanggal publikasi artikel tersebut. Lalu… ada pula field bernama ’statusPublish’. Buat apa ya field tersebut? Nah.. field ini nanti akan diisi dengan suatu bilangan 0 atau 1. Bila suatu artikel bernilai 0 artinya artikel tersebut belum dipublish. Sedangkan bila diisi dengan 1 maka artikel akan terpublish. Anda bisa pula menggunakan pembeda keadaan tersebut dengan bilangan yang lain (tidak harus 0 dan 1).

Nah.. ide untuk mempublish atau belum adalah di field ’statusPublish’ dan ‘publishDate’ ini. Setelah suatu artikel disimpan atau diposting, maka secara default nilai ’statusPublish’ akan bernilai 0 terlebih dahulu. Kemudian jika telah mencapai tanggal tertentu sesuai ‘publishDate’ nya maka secara otomatis berubah menjadi 1. Untuk mengubah ’statusPublish’ ini nantinya kita gunakan suatu script yang dijalankan secara otomatis dengan Cron Jobs. Dah paham ya idenya?? Simpel bukan? :-)

OK.. sekarang kita buat script PHP nya.

publish.php




// koneksi ke mysql

mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");

// mengubah status publish menjadi 1 jika publishDate = tanggal sekarang

$query = "UPDATE article SET statusPublish = 1 WHERE publishDate = CURDATE()";
$hasil = mysql_query($query);

?>

Simpel ya scriptnya?? Selanjutnya bagaimana menjalankan script publish.php di atas menggunakan Cron Jobs? Ini dia caranya:

  • Masuklah ke dalam CPanel
  • Masuklah ke Cron Jobs dalam CPanel. Biasanya menu ini terletak di bagian paling bawah CPanel (di bagian Advanced)
  • Pilihlah ‘Every Days’ pada bagian ‘Days’ untuk menjalankan Cron Jobs setiap hari
  • Tulislah perintah
    php -q /home/usernameAnda/public_html/.../publish.php
    pada bagian ‘Command to Run’. Perintah tersebut digunakan untuk menjalankan script PHP dengan nama script ‘publish.php’. Jangan sampai salah dalam menuliskan path menuju scriptnya.
  • Klik tombol Save Crontab

Setelah semua setting Cron Jobs selesai, maka script publish.php itu akan dijalankan setiap hari secara otomatis. Anda bisa pula menambahkan setting setiap jam berapa untuk menjalankan script tersebut dalam Cron Jobs.

Selesai deh artikelnya.. silakan dicoba ya. Mudah-mudahan berhasil.