Private Messages For WordPress

WordPress is going to be more and more popular blog platform. Unfortunately, there isn't a way to communicate between WordPress users until now. So I created the plugin Private Messages For WordPress for this purpose. The idea is taken from PM system of forums.

The Private Messages For WordPress allows users of WordPress blog send private messages (PM) to each other. Users will have their own inbox and outbox. Administrators of blog can control total numbers of items in mailbox of each user group (Administrator, Editor, Author, Constributor and Subscriber).

Installation

  1. Download the plugin
  2. (current version is 1.0)
  3. Upload pm4wp.php to the /wp-content/plugins/ directory
  4. Activate the plugin through the Plugins menu in WordPress
  5. Set the number of PM for each user role in the plugin option page (or you can use the default option)
  6. Now you will see a new menu Messages in the left. Just select Send for sending PM or check the Inbox and Outbox

Screenshots

(click to enlarge)

Option page:

Option page

Inbox:

Inbox

Outbox:

Outbox

Send page:

Send page

In this first version, I make this plugin work with default WordPress roles. I didn't check it with some user role management plugin, so that I'm not sure it works. Please inform me if you have problem with this.

So, please enjoy this plugin, and welcome any feedback!
Đọc tiếp →

Ngược chiều kim đồng hồ

Hôm nay nói chuyện với thằng bạn học kiến trúc, nhân dịp đi bơi thấy mấy người Nga đều bơi theo bên phải rồi khi quay đầu thì theo hướng ngược chiều kim đồng hồ (để về phía bên tay phải), nó nói rằng hướng ngược chiều kim đồng hồ này rất phổ biến, VD như các vận động viên khi chạy ở sân vận động cũng chạy theo chiều ngược chiều kim đồng hồ, hay đến cầu thang trong nhà cũng làm theo chiều đó, ...

Cầu thang theo chiều ngược chiều kim đồng hồ

Tôi cũng làm "1 phép thử" trên Google để xem nguyên nhân tại sao thì nhận được nhiều thông tin khá thú vị. VD như VNExpress có giải thích cách thiết kế cầu thang ngược chiều kim đồng hồ là theo thuyết phong thủy:

Cầu thang tạo ra được một tư thế khoẻ mạnh, vững chắc, duyên dáng (hình dáng của rồng) và được bố trí tại vị trí thanh long của ngôi nhà thì được coi là tốt nhất.

Cầu thang là yếu tố quan trọng của ngôi nhà. Vì thế, nó có sự liên hệ mật thiết với cửa cái. Theo quan niệm của phong thuỷ, vị trí cửa cái thường có xu hướng đặt ở giữa. Quỹ đạo vận động của tự nhiên của luồng khí luôn đi theo dạng hình xoắn chữ S (sinh khí đi theo đường vòng, ác khí đi theo đường thẳng).

Theo lẽ đó, sau khi luồng khí được dẫn qua cửa cái, luồng khí được nhẹ nhàng dẫn tới vị trí của thang theo nguyên lý hình xoắn S (ngược chiều kim đồng hồ). Khi đó, cầu thang sẽ tiếp đón và dẫn luồng khí lên phía trên theo chiều của nó (cầu thang phía bên phải sẽ thuận quan niệm truyền thống).

Về việc chạy theo chiều ngược chiều kim đồng hồ, tôi không tìm được 1 bài viết hoàn chỉnh nào, mà chỉ thấy 1 vài bài tại Yahoo! Hỏi đáp. Theo đó thì phần lớn mọi người đều nhất trí với lời giải thích rằng chạy như vậy sẽ giúp tim bớt phải chịu sức ép. Còn tại sao lại giảm sức ép thì không thấy được nói rõ lắm (có 1 vài lời giải thích nói do lực ly tâm, nhưng sơ sài và thiếu logic quá nên tôi cũng không hiểu).

Bão xoáy theo chiều ngược chiều kim đồng hồ
Cơn bão Isabel gây thiệt hại nặng nề nhất về người và của ở Mỹ năm 2003. Ảnh: NASA.

Ngoài ra, khi tìm kiếm, tôi cũng tìm được 1 vài thông tin thú vị, VD như lời giải thích cách nước rút từ bồn tắm như thế nào, hay tại sao bão lại xoáy theo chiều ngược chiều kim đồng hồ ở Bắc bán cầu? Cả 2 hiện tượng này đều có bản chất giống nhau và lời giải thích cũng giống nhau. Chúng đều chuyển động ngược chiều kim đồng hồ ở Bắc bán cầu và thuận chiều kim đồng hồ ở Nam bán cầu. Nguyên nhân gây nên hiện tượng đó là lực Coriolit (theo tên của 1 nhà bác học Pháp đã khám phá ra lực tác dụng lên các vật chuyển động trên bề mặt các quả cầu đang quay năm 1953).

Khi Trái Đất tự quay quanh trục, mọi địa điểm thuộc các vĩ độ khác nhau ở bề mặt Trái Đất (trừ hai cực) đều có vận tốc dài khác nhau và hướng chuyển động từ tây sang đông. Do vậy, các vật thể chuyển động trên bề mặt Trái Đất sẽ bị lệch hướng so với hướng ban đầu (vì phải giữ nguyên chuyển động thẳng hướng theo quán tính). Sự làm chệch hướng đó được gọi là lực Côriôlit. Ở bán cầu Bắc, vật chuyển động bị lệch về bên phải,ở bán cầu Nam bị lệch về bên trái theo hướng chuyển động.



Xét một vật thể chuyến động trên bề mặt trái đất từ phía xích đạo lên cực Bắc. Khi chuyển động lên các vĩ tuyến cao, theo định luật quán tính vật thể vẫn giữ nguyên tốc độ góc quay từ Tây sang Đông ở xích đạo. Kết quả là hướng chuyển động của nó tuy vẫn thẳng so với vũ trụ nhưng có dạng lệch sang phải so với hướng kinh tuyến. Ở bán cầu Nam hiện tượng cũng xảy ra tương tự như vậy nhưng hướng lệch về phía trái.

Tất cả các khối lượng chuyển động trên bề mặt trái đất đều chịu tác dụng của lực Coriôlit như: các dòng biển, các dòng sông, các khối khí...

còn đây là định nghĩa chi tiết hơn:

Lực quán tính tác dụng lên vật ( lực Coriolit), xuất hiện khi nó chuyển động tương đối trong một hệ quy chiếu quay. Được xác định bằng công thức , trong đó m và v là khối lượng và vận tốc tương đối, w - vận tốc góc của hệ. Lực Coriolit do Trái Đất quay làm sinh ra các hiện tượng: ở Bắc Bán Cầu, các dòng chảy đại dương chảy theo chiều thuận chiều kim đồng hồ, những đoạn sông chảy theo kinh tuyến bị xói mòn ở bờ bên phải (nhìn theo dòng chảy), vật rơi tự do bị rơi lệch về phía đông, các trung tâm bão ở Bắc Bán Cầu có dạng xoáy ngược chiều kim đồng hồ; còn ở Nam Bán Cầu thì ngược lại. Phải tính đến lực Coriolit trong đạn đạo học, khí tượng học và trong nhiều ngành khoa học kĩ thuật (khi thiết kế tuabin, máy li tâm, con quay hồi chuyển, vv.). Lực Coriolit theo tên của nhà toán học, kĩ sư người Pháp Côriôlit (G. G. Coriolis).

Có 1 vài hình minh họa về lực Coriolit ở đây, có thể hình dung rõ ràng hơn về nó:

Lực Coriolit

Lực Coriolit

Lực Coriolit
Đọc tiếp →

DISQUS nâng cấp hệ thống comment

Như chúng ta đã biết, DISQUS là 1 trong những hệ thống comment được dùng khá rộng rãi hiện nay. Hỗn tạp đã dùng DISQUS được 1 thời gian và cảm thấy rất ổn định và tiện lợi. Trong thời gian gần đây, DISQUS đã bổ xung khá nhiều tính năng mới vào hệ thống comment của mình, khiến nó ngày càng trở nên mạnh mẽ hơn.

Trong số các tính năng đó, có 1 tính năng rất đặc biệt dành cho Blogger, đó là cho phép Import các comments cũ từ Blogger vào DISQUS. Từ đó, chúng ta có thể dùng DISQUS cho toàn bộ các bài viết cả cũ lẫn mới mà không cần phải chú ý khi cài đặt như trước. Lưu ý, trước đây khi cài đặt có 2 lựa chọn: chỉ dùng DISQUS cho các bài viết mới, và dùng DISQUS cho tất cả blog. Nếu chọn dùng DISQUS cho cả blog thì các comment cũ sẽ bị ẩn đi - tình trạng này đã được khắc phục trong lần nâng cấp này.

Tất nhiên là DISQUS cũng hỗ trợ việc Import comments từ nhiều nguồn khác nữa, như IntenseDebate, JS-Kit, WordPress và Movable Type.

Ngoài tính năng đó, DISQUS còn bổ sung 1 số tính năng hữu ích khác như:

  • Cho phép sử dụng OpenID để tạo tài khoản ở DISQUS
  • Cho phép dùng OpenID, Yahoo! ID, Twitter và tài khoản Facebook để đăng nhập khi comment
  • Hỗ trợ các Reaction (cái này không biết dịch sao) từ các mạng xã hội phổ biến
  • Tùy biến theme và hỗ trợ Custom CSS

Và 1 điều quan trọng nữa là giao diện trang chủ DISQUS đã được thay đổi hoàn toàn, việc duyệt các comments hay tùy biến các công cụ giờ đây trông chuyên nghiệp hơn rất nhiều.

Tuy vậy, lần nâng cấp này không thấy DISQUS bổ sung tính năng đánh giá bài viết như của JS-Kit và cho phép tùy biến các widget thống kê tốt hơn. Dù vậy, DISQUS cũng đã sắm sửa cho mình khá đầy đủ các công cụ mà 1 blogger cần. Hy vọng trong thời gian tới, DISQUS sẽ ngày càng hoàn thiện.
Đọc tiếp →

Tambov LoveBridge 11 - LoveBridge trở lại!

Đây là số thứ 11 của chương trình Tambov LoveBridge, 1 chương trình âm nhạc theo yêu cầu mà bọn tôi tự làm. Trong số lần này đã thiếu vắng đi 1 nhân vật đầu não quan trọng, vốn từ trước tới giờ luôn cầm đầu toán tinh binh chúng tôi, Ms Zel!. Hoàn thành được số 11 này là 1 bước tiến mới của LoveBridge, trong đó có sự cố gắng rất nhiều của những người còn lại, từ 2 em Mèo và em Kem viết (và sửa) bài, Small Fire mở rộng chuyên mục Nhịp đập âm thanh ra cho cả tiếng Anh và tiếng Việt, tới Me chua đã vất vả vì phần khách mời và bài đọc, 4 mắt thì mệt với hội thoại, và phờ phạc nhất có lẽ là Anti với phần ghép nhạc bị sửa đi sửa lại vài lần.

Cảm ơn các em rất nhiều, và cảm ơn những người đã lắng nghe LoveBridge! Chúng ta sẽ mãi là 1 bộ ăn ý và sẽ còn làm được những chương trình LoveBridge hay hơn nữa!

Còn đây là ảnh chụp của nhóm LoveBridge, khách mời và link download chương trình.

Ảnh chụp nhóm LoveBridge 11:

Tambov LoveBridge 11

Ảnh chụp khách mời LoveBridge 11:

Tambov LoveBridge 11

Và cuối cùng là link download chương trình:

Download Tambov LoveBridge 11
Đọc tiếp →

Em mơ mùa đông về..



..cái mùa lạnh lẽo ấy..
..cái mùa mà hơi thở đầy sương giá..
..chân tay co rúm vì lạnh..
..răng đập vào nhau lập cập..
..da và môi thì cứ nứt toác hết cả ra..
..mùa chỉ mún chui vào chăn ấm áp..
..mùa mà áo quần cứ mặc cả tá.. khăn cuốn cổ.. mũ trùm đầu.. cả người hở mỗi cái mặt..
..thật khó chịu cho nhiều người..
..nhưng tôi vẫn yêu.. yêu cái cảm giác mỗi lần được rùng mình lên vì gió lạnh..

..tôi mong chờ ngày đông đến..
..ngày tôi được chạm chút gió..
..ngày tôi đi bên anh..
..hơi thở đầy sương giá nhưng lòng ấm áp một ngọn lửa..

..tôi mong chờ ngày đông đến..
..để được thấy mình còn chưa băng giá..

..tôi mơ một ngày đông..
..gió về..

***

Bài viết của em gái :).
Đọc tiếp →

Javascript Download Manager - Quản lý số lượt download bằng Javascript

Chúng ta thường thấy trong các trang web download, ngoài link download còn có ghi kèm thêm số lần download của file được cung cấp. Điều này vừa có lợi cho người quản trị site (vì theo dõi được số lượng download), vừa có lợi cho người dùng (vì biết được file đó có "nổi tiếng" hay được quan tâm nhiều hay không).

Nếu như bạn dùng WordPress thì có sẵn plugin Download Manager để làm điều này. Tuy vậy, trong 1 số trường hợp chúng ta phải dùng các host trung gian như Mediafire, Rapidshare, đặc biệt là khi up lên host của riêng mình thì việc cập nhật số lần download vào chính trang bài viết một cách tự động có thể coi là bất khả thi.

Tôi có đọc qua 1 bài viết của FanDung, hướng dẫn dùng 1 script trung gian để đếm số lượt download của 1 file. Cách làm đó dùng PHP để theo dõi số lượt download và dùng Javascript để update thống kê. Tuy vậy, nó có nhược điểm là phụ thuộc vào trang web trung gian.

Nếu bạn dùng Twitter, chắc có nghe nói đến tiện ích Easy ReTweet Button do John Resig (cha đẻ của jQuery) làm ra. Tiện ích này tương tự như nút tweet do TweetMeme làm, nhưng được viết đơn giản 100% bằng Javascript. Nó tận dùng Bit.ly API để vừa rút ngắn đường link, vừa theo dõi số lần click vào link đó. Đây là 1 ưu điểm mà không phải các dịch vụ rút ngắn link nào cũng có.

Tận dụng được ưu điểm đó, tôi có sửa đi đôi chút tiện ích Easy ReTweet Button ở trên để thành Javascript Download Manager dùng để theo dõi số lần download 1 file. Những chỉnh sửa đó thực ra không nhiều lắm, chủ yếu là cắt gọt đi những chỗ thừa và thay đổi style 1 chút vì hầu hết các chức năng đều đã có đủ.

Để sử dụng Javascript Download Manager, bạn chỉ cần làm theo 3 bước sau:

1. Download file javascript theo link cuối bài viết về máy tính và upload lên 1 host nào đó. Ghi nhớ đường link đến file javascript đó.

2. Chèn đoạn code sau vào ngay trước thẻ </head>, lưu ý sửa lại đường dẫn tới file javascript (chính là đường link nói ở bước 1)

<script type="text/javascript" src="http://domain.com/jdm.js"></script>

3. Đối với các link bạn muốn hiển thị số lần download kèm theo, chỉ cần thêm thuộc tính class="jdm" vào trong thẻ <a> như dưới đây là được:

<a href="http://domain.com/folder/file.ext" class="jdm">File ABC</a>

Số lần download sẽ được tự động hiển thị ngay phía sau link download đó mà bạn không phải làm gì cả.

Kết quả hiện ra các bạn có thể thấy ngay ở link download Javascript Download Manager ở dưới:

Download JDM 1.0

Hy vọng tiện ích này có ích với các bạn, đặc biệt là những ai dùng Blogger :)
Đọc tiếp →

Plugin Custom TinyMCE For WordPress

After played with customizing TinyMCE buttons in WordPress, I decided to make Custom TinyMCE plugin for easy using.

Custom TinyMCE is a plugin for WordPress which allows you to select, deselect and rearrange buttons of the default TinyMCE editor of WordPress.



Features


  • Visual Customizing: In the plugin page, you can select, deselect and sort buttons in your way with Drag-And-Drop.
  • More buttons: By default, TinyMCE has many buttons, but many of them has been disabled by WordPress! With this plugin, you can select them to appear in the post/page editor.
  • Lightweight: The plugin uses jQuery, jQuery UI libraries, which have been included inside WordPress, and image from the WordPress, too. So you can see the plugin contains only ONE file.

Download and Install


Download Custom TinyMCE plugin

  1. Upload custom_tinymce.php to the /wp-content/plugins/ directory
  2. Activate the plugin through the 'Plugins' menu in WordPress
  3. Now you can choose and arrange TinyMCE in the Custom TinyMCE menu Options

If you like this plugin, please vote for it at the WordPress.org page.
Đọc tiếp →

Tùy biến các nút của TinyMCE trong WordPress

WordPress sử dụng TinyMCE cho phần soạn thảo bài viết. Trong các nút có sẵn của TinyMCE mà WordPress dùng làm mặc định, có 1 số nút rất ít khi được dùng đến (VD với người Việt thì có nút kiểm tra chính tả, nút chèn các kí tự đặc biệt, Full Screen, Help), còn 1 số nút thì lại bị bỏ đi (VD như nút chèn hình ảnh đã được thay thế bằng chức năng chèn qua Flash), 1 số nút cần thiết thì không được thêm vào (như nút chọn Font chữ, kích cỡ chữ), ... Vì thế nên nảy sinh nhu cầu tùy biến các nút của TinyMCE cho phù hợp với nhu cầu của mình.

Để tùy biến các nút của TinyMCE, cần tham khảo qua danh sách các nút mặc định của nó. Ở đây bạn có thể lựa chọn nút nào cần bỏ, nút nào cần thêm (chỉ cần nhớ tên của nó là được).

Để áp dụng sự thay đổi đó vào WordPress, chúng ta cần làm 1 plugin nhỏ theo mẫu sau:

function rwct_addbuttons() {
 if (!current_user_can('edit_posts') && !current_user_can('edit_pages'))
  return;
 add_filter('mce_buttons', 'register_rwct_button');
}

function register_rwct_button($buttons) {
 // Tùy biến các nút tại đây
 return $buttons;
}

add_action('init', 'rwct_addbuttons');

Code cũng khá rõ ràng, khi khởi động plugin, nó sẽ gọi hàm rwct_addbuttons, hàm này sẽ chèn thêm 1 filter vào mce_buttons, vốn dùng để tùy biến các nút của TinyMCE. Phần tùy biến này chứa trong hàm register_rwct_button.

Trong hàm register_rwct_button chúng ta cần chú ý tới biến được truyền vào $buttons. Nó chứa 1 mảng 1 chiều lưu giữ các tên của các nút (xem danh sách các nút của TinyMCE ở trên). Để biết các nút mặc định của WordPress dùng, bạn có thể thử dùng hàm print_r($buttons) để xem nội dung của nó. Còn để tùy biến các nút, bạn chỉ cần đơn giản khai báo lại nó là được, VD như tôi làm như sau:

$buttons = array('fontsizeselect', 'bold', 'italic', 'underline', '|', 'undo', 'redo', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', '|', 'bullist', 'numlist', 'outdent', 'indent', '|', 'link', 'unlink', 'image', '|', 'forecolor', 'backcolor', '|', 'removeformat', 'wp_more');

Bạn hãy tùy biến các nút cho phù hợp với nhu cầu của mình, sau đó upload file plugin này lên thư mục wp-contents/plugins và Active nó để dùng. Hiệu quả thể hiện rõ ngay ở khung soạn bài mới như hình dưới:


Toàn bộ code ở trên các bạn có thể download theo plugin tôi làm mẫu sẵn. Chúc các bạn blogging vui vẻ!
Đọc tiếp →