() translation by (you can also view the original English article)
Hai, dalam tutorial ini kita akan memperbarui status twitter kita melalui 'API Twitter' menggunakan CodeIgniter. Saya sarankan mengikuti langkah demi langkah, daripada mengabaikan tutorialnya. Mari kita gali!
Detail Tutorial
- Program: Kerangka PHP CodeIgniter
- Versi: 1.7.1
- Kesulitan: Tingkat Lanjutan
- Perkiraan Waktu Penyelesaian: 30 menit
1. Mengkonfigurasi CodeIgniter
Pada awalnya kita perlu mengedit beberapa pengaturan default dalam bagian konfigurasi CI.
Buka system/application/config/autoload.php dan edit yang berikut dari:
1 |
$autoload['libraries'] = array(''); |
menjadi:
1 |
$autoload['libraries'] = array('database'); |
Ini akan memuat database secara otomatis. Selanjutnya, buka database.php dan edit pengaturan koneksi database - nama
database Anda, pengguna dan kata sandi. Seperti nama kita akan menggunakan ci_twitter_api.
Sekarang buka config.php dan ubah base_url ke folder CI Anda. Folder saya disebut twitter_api.
Di folder itu adalah folder system saya. Jadi base_url saya adalah:
1 |
$config['base_url'] = "http://localhost/ci/twitter_api"; |
2. Mengisi Database
Karena kita akan bekerja dengan database, kita memerlukan beberapa data untuk dimainkan. Buka phpmyadmin atau
alat manajemen database favorit Anda dan buat database baru bernama ci_twitter_api. Sekarang kita akan membuat
tabel baru menggunakan kueri SQL berikut, tetapi perhatian, gunakan pengguna dan kredensial kata sandi Twitter Anda.
1 |
CREATE TABLE IF NOT EXISTS `accounts` ( |
2 |
`id` int(11) NOT NULL AUTO_INCREMENT, |
3 |
`username` varchar(120) NOT NULL, |
4 |
`password` varchar(32) NOT NULL, |
5 |
`active` int(11) NOT NULL, |
6 |
`last_message` varchar(140) NOT NULL, |
7 |
PRIMARY KEY (`id`) |
8 |
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; |
9 |
|
10 |
INSERT INTO `accounts` (`id`, `username`, `password`, `active`, `last_message`) VALUES |
11 |
(1, '<b>YOUR USERNAME</b>', '<b>YOUR PASSWORD</b>', 1, 'No message sent.'); |



Klik tombol OK di sebelah kanan dan kueri akan diproses. Sekarang struktur Anda untuk tabel
accounts akan terlihat mirip dengan gambar di bawah ini.



3. Membangun Model
Pergi ke system/application/models dan buat file baru bernama twitter_model.php.
Pertama, kita akan mendeklarasikan dua variabel global di bagian atas.
1 |
var $accounts_table = 'accounts'; |
2 |
var $update_url = 'http://twitter.com/statuses/update.xml'; |
Jadi $accounts_table merujuk ke tabel yang kita buat sebelumnya, dan $update_url adalah url yang akan kita gunakan
untuk memperbarui status kita. Jika Twitter mengubah URL pembaruan mereka, Anda hanya perlu mengeditnya satu kali di sini daripada setiap kali digunakan dalam kode.
Sekarang kita akan membuat metode pertama yang hanya akan mengembalikan akun pengguna aktif yang disimpan dalam database,
berdasarkan baris active dan value 1. Saya telah menambahkan ini karena beberapa orang memiliki dua atau lebih akun Twitter
.
1 |
class Twitter_model extends Model { |
2 |
|
3 |
// get the active twitter account from the database, by row active = 1
|
4 |
function getActiveAccount() |
5 |
{
|
6 |
return $this->db->get_where($this->accounts_table, array('active' => '1'))->row(); |
7 |
}
|
Kita hanya menggunakan active records
untuk mengambil akun aktif dan mengembalikan baris yang terpengaruh.
Langkah selanjutnya, kita akan membangun metode utama, metode update. Ini akan menggunakan
nama pengguna, kata sandi kita dan tentu saja pesan yang ingin kita kirim dan memperbarui status kita di Twitter. Selain itu,
ia akan menafsirkan HTTP_CODE yang dikembalikan oleh Twitter untuk memberitahu kita jika statusnya berhasil diperbarui
atau tidak.
1 |
// update twitter status and last message on success
|
2 |
function update_status($username, $password, $message) |
3 |
{
|
4 |
$ch = curl_init($this->update_url); |
5 |
|
6 |
curl_setopt($ch, CURLOPT_POST, 1); |
7 |
curl_setopt($ch, CURLOPT_POSTFIELDS, 'status='.urlencode($message)); |
8 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
9 |
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); |
10 |
|
11 |
curl_exec($ch); |
12 |
|
13 |
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); |
14 |
|
15 |
// if we were successfull we need to update our last_message
|
16 |
if ($httpcode == '200') |
17 |
{
|
18 |
$this->db->where('active', '1'); |
19 |
$this->db->update($this->accounts_table, array('last_message' => $message)); |
20 |
|
21 |
return TRUE; |
22 |
}
|
23 |
|
24 |
else
|
25 |
{
|
26 |
return FALSE; |
27 |
}
|
28 |
}
|
Pada pandangan pertama kode di atas mungkin terlihat sedikit rumit tetapi tidak sulit untuk dipahami. Bagian yang paling penting adalah
kita menggunakan cURL untuk berkomunikasi dengan Twitter. Ini adalah perpustakaan
yang sangat hebat yang memungkinkan kita mengirim dan menerima data HTTP POST dari Twitter.
Sekarang, curl_init menginisialisasi sesi cURL dan mengambil URL sebagai parameter - dalam kasus kita
URL pembaruan status dari API Twitter.
Dengan curl_setopt kita menetapkan beberapa opsi yang diperlukan untuk transfer cURL.
- CURLOPT_POST: Kita menetapkan ini ke '1' untuk menggunakan HTTP POST, yang sama seperti yang digunakan dalam formulir HTML.
- CURLOPT_POSTFIELDS: Opsi ini menerima Data POST yang ingin kita kirim. Dalam kasus kita
'status=' dan message kita. Kita perlu urlencode pesannya untuk dapat menggunakan karakter khusus seperti
'%&/". - CURLOPT_RETURNTRANSFER: Penting bagi kita untuk mengatur ini ke '1' karena ini akan mengembalikan transfer
sebagai string. String itu nantinya akan memberi tahu kita jika status berhasil diperbarui atau tidak. - CURLOPT_USERPWD: Opsi ini untuk otentikasi. Ini hanya mengambil nama pengguna dan kata sandi
twitter kita dalam format username:password.
1 |
curl_exec($ch); |
2 |
|
3 |
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); |
4 |
|
5 |
// if we were successfull we need to update our last_message
|
6 |
if ($httpcode == '200') |
7 |
{
|
8 |
$this->db->where('active', '1'); |
9 |
$this->db->update($this->accounts_table, array('last_message' => $message)); |
10 |
|
11 |
return TRUE; |
12 |
}
|
13 |
|
14 |
else
|
15 |
{
|
16 |
return FALSE; |
17 |
}
|
Pada bagian ini kita mengeksekusi transfer dengan curl_exec() dan mengambil HTTP_CODE
yang dikembalikan menggunakan curl_getinfo(CURLINFO_HTTP_CODE). HTTP_CODE ini memberi tahu kita jika pembaruan status telah selesai atau tidak.
Kode '200' berarti berhasil dan pembaruan telah selesai. Anda dapat melihat daftar lengkap kode status HTTP
di sini.
Jika kita mendapatkan '200' yang dikembalikan oleh Twitter, kita mengirim permintaan ke database kita yang memperbarui baris last_message kita, dan akhirnya
kita mengembalikan TRUE. Jika 200 tidak dikembalikan, kita hanya mengembalikan FALSE.
Untuk menyelesaikan twitter_model kita, kita akan membuat satu metode terakhir yang akan mendapatkan last message yang kita kirim. Kita membutuhkan
metode ini karena kita akan menampilkan pesan terbaru kita dalam sebuah view.
1 |
// get the last_message, by row active = 1
|
2 |
function getLastMessage() |
3 |
{
|
4 |
$this->db->select('last_message'); |
5 |
$last_message = $this->db->get_where($this->accounts_table, array('active' => '1'))->row()->last_message; |
6 |
|
7 |
return htmlspecialchars($last_message); |
8 |
}
|
Metode ini cukup sederhana. Ini memilih baris last_message dari akun aktif kita dan mengembalikannya
dikonversi dengan htmlspecialchars ke entitas HTML.
twitter_model.php kita sekarang terlihat seperti ini:
1 |
class Twitter_model extends Model { |
2 |
|
3 |
var $accounts_table = 'accounts'; |
4 |
var $update_url = 'http://twitter.com/statuses/update.xml'; |
5 |
|
6 |
// get the active twitter account from the database, by row active = 1
|
7 |
function getActiveAccount() |
8 |
{
|
9 |
return $this->db->get_where($this->accounts_table, array('active' => '1'))->row(); |
10 |
}
|
11 |
|
12 |
// update twitter status and last message on success
|
13 |
function update_status($username, $password, $message) |
14 |
{
|
15 |
$ch = curl_init($this->update_url); |
16 |
|
17 |
curl_setopt($ch, CURLOPT_POST, 1); |
18 |
curl_setopt($ch, CURLOPT_POSTFIELDS, 'status='.urlencode($message)); |
19 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
20 |
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password); |
21 |
|
22 |
curl_exec($ch); |
23 |
|
24 |
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); |
25 |
|
26 |
// if we were successfull we need to update our last_message
|
27 |
if ($httpcode == '200') |
28 |
{
|
29 |
$this->db->where('active', '1'); |
30 |
$this->db->update($this->accounts_table, array('last_message' => $message)); |
31 |
|
32 |
return TRUE; |
33 |
}
|
34 |
|
35 |
else
|
36 |
{
|
37 |
return FALSE; |
38 |
}
|
39 |
}
|
40 |
|
41 |
// get the last_message, by row active = 1
|
42 |
function getLastMessage() |
43 |
{
|
44 |
$this->db->select('last_message'); |
45 |
$last_message = $this->db->get_where($this->accounts_table, array('active' => '1'))->row()->last_message; |
46 |
|
47 |
return htmlspecialchars($last_message); |
48 |
}
|
49 |
}
|
4. Membangun Controller
Sekarang, masuk ke system/application/controllers dan buat file baru bernama twitter.php.
Mari menambahkan beberapa baris:
1 |
class Twitter extends Controller { |
2 |
|
3 |
function Twitter() |
4 |
{
|
5 |
parent::Controller(); |
6 |
|
7 |
$this->load->model('twitter_model'); |
8 |
}
|
Ini adalah constructor CI sederhana yang memuat twitter_model kita. Jadi itu akan tersedia bagi kita di seluruh controller.
Sekarang menuju ke metode index().
1 |
function index() |
2 |
{
|
3 |
$data['heading'] = 'Hi, send a tweet!'; |
4 |
$data['last_message'] = $this->twitter_model->getLastMessage(); |
5 |
$data['active_user'] = $this->twitter_model->getActiveAccount()->username; |
6 |
|
7 |
$this->load->view('header', $data); |
8 |
$this->load->view('index'); |
9 |
$this->load->view('footer'); |
10 |
}
|
Kita menyampaikan informasi seperti beberapa teks, pesan terakhir kita dan nama pengguna dari pengguna aktif ke array $data.
Berkat twitter_model kita, ini mudah untuk mengambil pesan terakhir dan nama pengguna yang aktif. Setidaknya kita memuat beberapa
view yang akan kita buat setelah kita menyelesaikan controller kita. Mari kita membangun metode update.
1 |
// updating our status on twitter ( new message )
|
2 |
function update() |
3 |
{
|
4 |
if ($this->input->post('submit')) |
5 |
{
|
6 |
$this->load->library('form_validation'); |
7 |
$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); |
8 |
$this->form_validation->set_rules('message', 'Message', 'trim|required|min_length[5]|max_length[140]'); |
9 |
|
10 |
if ($this->form_validation->run() == FALSE) |
11 |
{
|
12 |
$this->index(); |
13 |
}
|
14 |
|
15 |
else
|
16 |
{
|
17 |
$message = $this->input->post('message'); |
18 |
|
19 |
// get useraccount data
|
20 |
$account = $this->twitter_model->getActiveAccount(); |
21 |
$username = $account->username; |
22 |
$password = $account->password; |
23 |
|
24 |
// send a tweet
|
25 |
if ($this->twitter_model->update_status($username, $password, $message)) |
26 |
{
|
27 |
redirect('twitter'); |
28 |
}
|
29 |
|
30 |
else
|
31 |
{
|
32 |
$data['error'] = 'There was an error while updating your status'; |
33 |
|
34 |
$this->load->view('header', $data); |
35 |
$this->load->view('error'); |
36 |
$this->load->view('footer'); |
37 |
}
|
38 |
}
|
39 |
}
|
Ini mungkin membingungkan lagi tetapi kita akan melewatinya sebagian demi sebagian.
1 |
if ($this->input->post('submit')) |
2 |
{
|
3 |
$this->load->library('form_validation'); |
4 |
$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); |
5 |
$this->form_validation->set_rules('message', 'Message', 'trim|required|min_length[5]|max_length[140]'); |
6 |
|
7 |
if ($this->form_validation->run() == FALSE) |
8 |
{
|
9 |
$this->index(); |
10 |
}
|
Dengan $this->input->post('submit') kita memeriksa apakah formulir telah dikirim - yang akan kita buat nanti di file view utama kita
. Setelah itu, kita memuat perpustakaan form_validation karena kita ingin memastikan bahwa masukan tertentu memerlukan beberapa aturan,
seperti panjang minimum dan maksimum dari 5 dan 140 karakter. Selain itu kita memangkas ruang putih dengan trim dan
pengaturan field required karena kita tidak memerlukan pesan kosong. Fungsi set_rules mengambil, sebagai parameter pertama,
nama dari field, message kita (yang akan dibuat segera di view) dan sebagai parameter kedua nama manusia
untuk field ini, yang akan dimasukkan ke dalam pesan kesalahan (akan dilakukan dalam file view).
Kita memanggil $this->form_validation->run(), yang dapat mengembalikan TRUE atau FALSE. Jika aturan yang kita atur rusak
itu akan mengembalikan FALSE dan kita cukup memanggil metode index() kita. Dalam file view yang dipanggil oleh metode index()
pesan kesalahan akan ditampilkan setelah kita membuat view kita.
1 |
else
|
2 |
{
|
3 |
$message = $this->input->post('message'); |
4 |
|
5 |
// get useraccount data
|
6 |
$account = $this->twitter_model->getActiveAccount(); |
7 |
$username = $account->username; |
8 |
$password = $account->password; |
9 |
|
10 |
// send a tweet
|
11 |
if ($this->twitter_model->update_status($username, $password, $message)) |
12 |
{
|
13 |
redirect('twitter'); |
14 |
}
|
15 |
|
16 |
else
|
17 |
{
|
18 |
$data['error'] = 'There was an error while updating your status'; |
19 |
|
20 |
$this->load->view('header', $data); |
21 |
$this->load->view('error'); |
22 |
$this->load->view('footer'); |
23 |
}
|
24 |
}
|
Berkat twitter_model kita, sekali lagi sangat mudah untuk mengambil username dan password pengguna aktif saat ini.
Kami juga bisa melakukan $username = $this->twitter_model->getActiveAccount()->username tapi saya pikir untuk tutorial ini
sedikit lebih mudah dimengerti.
Menggunakan $this->twitter_model->update_status() kita memanggil metode yang akan "berbicara" ke Twitter. Ia memberi tahu Twitter
username, password, dan pesan kita. Jika status berhasil diperbarui, kita redirect, menggunakan redirect() dari helper url.
Jika ada yang salah, kita menetapkan pesan kesalahan dan memuat beberapa file view, yang akan dibuat pada langkah selanjutnya :).
Controller terlihat sekarang seperti ini:
1 |
class Twitter extends Controller { |
2 |
|
3 |
function Twitter() |
4 |
{
|
5 |
parent::Controller(); |
6 |
|
7 |
$this->load->model('twitter_model'); |
8 |
}
|
9 |
|
10 |
function index() |
11 |
{
|
12 |
$data['heading'] = 'Hi, send a tweet!'; |
13 |
$data['last_message'] = $this->twitter_model->getLastMessage(); |
14 |
$data['active_user'] = $this->twitter_model->getActiveAccount()->username; |
15 |
|
16 |
$this->load->view('header', $data); |
17 |
$this->load->view('index'); |
18 |
$this->load->view('footer'); |
19 |
}
|
20 |
|
21 |
// updating our status on twitter ( new message )
|
22 |
function update() |
23 |
{
|
24 |
if ($this->input->post('submit')) |
25 |
{
|
26 |
$this->load->library('form_validation'); |
27 |
$this->form_validation->set_error_delimiters('<div class="error">', '</div>'); |
28 |
$this->form_validation->set_rules('message', 'Message', 'trim|required|min_length[5]|max_length[140]'); |
29 |
|
30 |
if ($this->form_validation->run() == FALSE) |
31 |
{
|
32 |
$this->index(); |
33 |
}
|
34 |
|
35 |
else
|
36 |
{
|
37 |
$message = $this->input->post('message'); |
38 |
|
39 |
// get useraccount data
|
40 |
$account = $this->twitter_model->getActiveAccount(); |
41 |
$username = $account->username; |
42 |
$password = $account->password; |
43 |
|
44 |
// send a tweet
|
45 |
if ($this->twitter_model->update_status($username, $password, $message)) |
46 |
{
|
47 |
redirect('twitter'); |
48 |
}
|
49 |
|
50 |
else
|
51 |
{
|
52 |
$data['error'] = 'There was an error while updating your status'; |
53 |
|
54 |
$this->load->view('header', $data); |
55 |
$this->load->view('error'); |
56 |
$this->load->view('footer'); |
57 |
}
|
58 |
}
|
59 |
}
|
60 |
|
61 |
else
|
62 |
{
|
63 |
redirect('twitter'); |
64 |
}
|
65 |
}
|
66 |
}
|
5. Membuat View
Sekarang kita akan membuat file view kita. Buka system/application/views dan buat file-file berikut:
- header.php
- footer.php
- index.php
- error.php
header.php akan berisi informasi meta html dasar, tautan CSS kita, dan tag pembuka dari div utama kita,
#wrapper dan #main.
1 |
<!DOCTYPE html>
|
2 |
<html>
|
3 |
<head>
|
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
5 |
<link media="screen" rel="Stylesheet" type="text/css" href="<?php echo base_url(); ?>css/style.css" /> |
6 |
<title>Using the Twitter API with CodeIgniter</title> |
7 |
</head>
|
8 |
|
9 |
<body>
|
10 |
|
11 |
<div id="wrapper"> |
12 |
|
13 |
<div id="main"> |
Kita menggunakan base_url() yang kita konfigurasikan untuk mereferensikan file CSS kita, yang akan dibuat pada langkah berikutnya.
footer.php hanya berisi tag penutup kita.
1 |
</div><!--end main--> |
2 |
|
3 |
</div><!--end wrapper--> |
4 |
|
5 |
</body>
|
6 |
</html>
|
index.php adalah tempat berpesta.
1 |
<h3>
|
2 |
<?php echo $heading; ?> |
3 |
<span>
|
4 |
( account: <?php echo anchor('http://twitter.com/' . $active_user, $active_user); ?> ) |
5 |
</span>
|
6 |
</h3>
|
7 |
|
8 |
|
9 |
<?php echo form_error('message'); ?> |
10 |
|
11 |
<?php echo form_open('twitter/update', array('id' => 'update_form')); ?> |
12 |
<?php echo form_input(array('name' => 'message', 'maxlength' => '140')); ?> |
13 |
<?php echo form_submit('submit', 'update'); ?> |
14 |
<?php echo form_close(); ?> |
15 |
|
16 |
<div id="last_message"> |
17 |
<fieldset>
|
18 |
<legend>Last <span>sent by <b><?php echo $active_user ?></b></span></legend> |
19 |
<p><?php echo $last_message; ?></p> |
20 |
</fieldset>
|
21 |
</div><!--end last_message--> |
Semua variabel yang digunakan di sini dilewatkan melalui metode index() dari controller kita. Selain itu,
kita menggunakan helper form untuk membuat formulir html sederhana. Ingat, saya memberi tahu Anda
penanganan kesalahan untuk field pesan akan dilakukan di sini; form_error('message') melakukan sihirnya.
Di bawah formulir, kita menampilkan pesan terakhir yang dikirim oleh akun pengguna aktif.
Akhirnya error.php akan digunakan untuk file kesalahan kustom dalam hal pembaruan status tidak berhasil.
1 |
<h3><?php echo $error; ?></h3> |
2 |
|
3 |
<?php echo anchor('twitter', 'Go back and try again'); ?> |
6. Menambahkan beberapa CSS
Untuk membuatnya sedikit lebih cantik, kita akan menambahkan beberapa CSS. Pergi ke system/
dan buat folder css. Di dalam folder itu, buat file bernama style.css dan masukkan
kode berikut.
1 |
/* Reset CSS */
|
2 |
|
3 |
html, body, div, span, object, h1, h2, h3, h4, h5, h6, p, blockquote, pre, |
4 |
a, address, code, img, |
5 |
small, strong, dl, dt, dd, ol, ul, li, |
6 |
fieldset, form, label { |
7 |
margin: 0; |
8 |
padding: 0; |
9 |
border: 0; |
10 |
outline: 0; |
11 |
font-size: 100%; |
12 |
vertical-align: baseline; |
13 |
background: transparent; |
14 |
}
|
15 |
|
16 |
body { |
17 |
line-height: 1.5; |
18 |
font-family:Arial, sans-serif; |
19 |
margin:0; |
20 |
}
|
21 |
ol, ul, li { |
22 |
list-style: none; |
23 |
list-style-type:none; |
24 |
}
|
25 |
|
26 |
.clear { clear:both; } |
27 |
|
28 |
/* DEFAULTS */
|
29 |
|
30 |
h3 { |
31 |
color:#35CCFF; |
32 |
font-size:20px; |
33 |
}
|
34 |
|
35 |
/* CUSTOM */
|
36 |
|
37 |
#wrapper { |
38 |
width:900px; |
39 |
margin:0 auto; |
40 |
}
|
41 |
|
42 |
/* main */
|
43 |
|
44 |
#main { |
45 |
margin-top:50px; |
46 |
}
|
47 |
|
48 |
#main h3 span { |
49 |
font-size:14px; |
50 |
color:#cccccc; |
51 |
}
|
52 |
|
53 |
#main h3 a { |
54 |
color:#cccccc; |
55 |
}
|
56 |
|
57 |
/* form */
|
58 |
|
59 |
#update_form input { |
60 |
width:888px; |
61 |
padding:5px; |
62 |
border:1px solid #d3d3d3; |
63 |
display:block; |
64 |
}
|
65 |
|
66 |
#update_form input[type="submit"] { |
67 |
width:auto; |
68 |
margin-top:10px; |
69 |
background-color:#000000;; |
70 |
border:none; |
71 |
color:white; |
72 |
font-size:12px; |
73 |
font-weight:bold; |
74 |
cursor:pointer; |
75 |
padding:3px; |
76 |
}
|
77 |
|
78 |
div.error { |
79 |
display:block; |
80 |
background-color:#FB8A8A; |
81 |
border:1px solid #FF3B3B; |
82 |
padding:5px; |
83 |
color:#ffffff; |
84 |
width:50%; |
85 |
margin-bottom:30px; |
86 |
font-weight:bold; |
87 |
margin:0 auto 10px auto; |
88 |
text-align:center; |
89 |
}
|
90 |
|
91 |
/* last message */
|
92 |
|
93 |
#last_message fieldset { |
94 |
border:1px dashed #d3d3d3; |
95 |
padding:5px; |
96 |
margin-top:30px; |
97 |
}
|
98 |
|
99 |
#last_message fieldset p { |
100 |
padding:5px; |
101 |
font-size:18px; |
102 |
font-weight:normal; |
103 |
}
|
104 |
|
105 |
#last_message legend span { |
106 |
font-size:12px; |
107 |
}
|
Saya menggunakan CSS reset Eric Meyers untuk menetralisir tampilan di semua browser. Aplikasi Anda sekarang akan seperti gambar di bawah ini.



Big Finale
Mari kita uji aplikasi baru kita. Kita akan mengirimkan pesan dan menekan tombol update!



Setelah pembaruan dibuat:



Mari kita lihat Twitter :)



jika kita melanggar aturan validasi formulir dengan mencoba mengirim pesan kosong:



Kesimpulan
Saya sangat berharap bahwa saya membantu Anda sedikit dengan mempelajari CodeIgniter dan bagaimana menggunakan API Twitter yang hebat! Apakah Anda telah melakukan sesuatu yang berbeda? Jika ya, beritahu kami!
- Ikuti kami di Twitter, atau berlangganan Feed RSS Nettuts+ untuk tutorial dan artikel pengembangan web harian lainnya.