Plugin Quick comment cho WordPress
5 phút dành cho giới thiệu
Plugin Quick comment cho WordPress dĩ nhiên là để… đem tính năng Quick comment vào cho WordPress. Cụ thể hơn thì plugin này bao gồm 2 module:
Một cho phép người đọc blog gửi quick comment. Module này thường đặt trên sidebar (giống Yahoo! 360):
Bài viết được gửi hôm 08.03.08 · Mang các từ khóa plugin, quick comment, wordpress · Phản hồi [23]
Quick comment cho WordPress
Bài viết này để quảng cáo cho plugin tiếp theo của tớ - “Quick comment cho WordPress”.
Một trong những vấn đề mà tớ nghĩ nhiều người thắc mắc khi chuyển từ Yahoo! 360 sang WordPress, đó là sự thiếu vắng của Quick comment. Chê Yahoo! 360 gì thì chê, nhưng nói chung tớ vẫn cho Quick comment là một tính năng hay, bởi không phải lúc nào người đọc blog cũng muốn comment vào một bài viết cụ thể. Đôi khi người ta chỉ muốn nhận xét, góp ý về theme blog, hoặc nhắn gửi gì đó với chủ nhân blog.
Tớ dạo một vòng quanh vài blog WordPress, “để xem người ta giải quyết vấn đề này thế nào”, thì thấy thường tính năng này được mô phỏng bằng 1 trong 2 dạng: dùng shoutbox hoặc dành riêng một bài viết đặt tên kiểu Guestbook cho mọi người comment.
Bài viết được gửi hôm 07.03.08 · Mang các từ khóa quick comment, wordpress · Phản hồi [5]
jgrabber hay câu chuyện về một trong những project của tớ
Sở thích của tớ là code, và thường thì tớ hay có nhiều ý tưởng đủ thú vị để mình bỏ ra ít nhất vài ngày và biến nó thành hiện thực. Một trong những ý tưởng đó là jgrabber - project mà tớ tự hào là đã đi đủ hết mọi giai đoạn: từ nằm trong đầu đến thực hiện rồi ra mắt, kế đó được cập nhật liên tục trong một thời gian và… bỏ lửng đấy cho chết còng queo.
Tính đến jgrabber đã “thoi thóp” khoảng nửa năm, và chiều nay nếu không tình cờ chat với một người muốn tớ phát triển tiếp thì có lẽ phải khoảng ngần đó thời gian nữa tớ mới thăm lại xem project này đã “đi” thật chưa.
Bài viết này coi như để “tưởng nhớ” một project với hơn 600 nghìn lượt sử dụng…
Bài viết được gửi hôm 05.03.08 · Mang các từ khóa code, jgrabber · Phản hồi [2]
Từ Lightbox đến Slimbox
Như đã nhắc đến trong bài viết Blog và những thứ thừa thãi, sau khi nhận thấy thư viện prototype.js được include 2 lần trong thẻ <head>, tớ đóng cửa blog và tu sửa lại toàn bộ. Plugin to bự Lightbox đã được thay bằng một plugin nhẹ hơn hẳn dựa trên mootools - Slimbox . Về cơ bản, Slimbox tạo hiệu ứng không khác gì Lightbox, nhưng có một điểm rất bất tiện: Nếu như với Lightbox tớ chỉ việc activate plugin và không phải sửa sang gì trong nội dung các bài viết thì ở Slimbox, mặc định tớ cần phải thêm attribute rel=”lightbox” vào tất cả các link muốn áp dụng hiệu ứng.
Bài viết được gửi hôm 04.03.08 · Mang các từ khóa code, lightbox, slimbox, wordpress · Phản hồi [3]
Làm back end trong CakePHP
Một trong những phần việc tớ luôn phải làm mỗi khi thực hiện một mini project bằng CakePHP là tạo khu vực back end để quản lý dữ liệu trong database. Trong bài viết này tớ muốn chia sẻ một chút kinh nghiệm liên quan, để giúp bạn phần nào giảm bớt được thời gian tìm kiếm thông tin nếu mới bắt đầu làm quen với Cake.
Tớ giả định bạn sử dụng Cake phiên bản 1.2 beta. Phiên bản 1.1 tớ không còn dùng nên không rõ những điều tớ viết có áp dụng với nó hay không.
1. Tách biệt front end và back end
a. Admin routing
Việc đầu tiên là tách biệt front end và back end thông qua admin routing. Chỉ việc uncomment dòng code Configure::write(’Routing.admin’, ‘admin’); trong file config/core.php là bạn đã có thể sử dụng tính năng này.
Với giá trị Routing.admin là ‘admin’, các action mang tiền tố ‘admin_’ trong các controller của bạn sẽ được coi là thuộc back end. Nghĩa là thay vì truy cập action đó bằng URL /controller/action, bạn sẽ sử dụng URL /admin/controller/action. Tương tự, nếu Routing.admin mang giá trị ‘acp’, các action của bạn sẽ cần có dạng acp_add, acp_edit, acp_delete…
b. Layout
Thường thì khu vực front end và back end sẽ mang layout khác nhau. Để thay đổi layout, tớ đặt điều kiện kiểm tra vào function beforeFilter() trong file app_controller.php:
function beforeFilter() {
if (strpos($this->action, 'admin_') !== false) {
$this->layout = 'admin';
}
}
Không thuộc back end đồng nghĩa với action sẽ mang layout ‘default’.
Và nếu tớ không nhầm thì ngoài cách kiểm tra tiền tố, bạn còn có thể kiểm tra xem $this->params['admin'] có tồn tại hay không để xác định phạm vi action hiện tại.
c. Dashboard
Không biết bạn thế nào, chứ tớ hay làm thêm một controller mang tên dashboard, coi đó là điểm đến ngay khi người dùng phía back end login. Controller này không gắn với table nào trong database, tuy nhiên có thể sử dụng dữ liệu của các table khác (để hiển thị thông số thống kê chẳng hạn). Tớ khai báo biến $uses trong file dashboard_controller.php như thế này:
class DashboardController extends AppController {
var $name = 'Dashboard';
var $uses = array('User', 'Group');
}
Sau đó, tớ thêm một dòng vào file config/routes.php để gắn URL /admin với trang dashboard:
Router::connect('/admin', array('controller' => 'dashboard', 'action' => 'index', 'admin' => 1));
d. URL
Ở View, khi bạn đặt liên kết tới action nào, thường có thể sử dụng HTML helper:
echo $html->link('View this post', array('controller' => 'posts', 'action' => 'view', $post['Post']['id']))
Nếu đó là action phía back end, bạn cần sửa sang lại một chút:
echo $html->link('Edit this post', array('controller' => 'posts', 'action' => 'edit', $post['Post']['id'], 'admin' => 1))
Nhớ thay ‘admin’ bằng giá trị Routing.admin mà bạn đặt từ trước.
(Còn tiếp)
Bài viết được gửi hôm 03.03.08 · Mang các từ khóa cakephp, code · Phản hồi [4]
