Module nào cho image khi làm báo điện tử ?

Events happening in the community are now at Drupal community events on www.drupal.org.
jcisio's picture

Không biết mọi người đã từng gặp khó khăn khi lựa chọn module quản lí image chưa ?

Một trang báo điện tử bao gồm nhiều bài viết, mỗi bài thường có 1-2 hình ảnh, đôi khi có nhiều hơn, 5-6 đến vài chục, thỉnh thoảng có thể có gallery chứa screenshot. Các bài báo do nhiều người viết, họ sẽ upload hình rồi chèn vào bài viết.

Hiện có 2 phương án quản lí hình ảnh:

  • Dùng module img_filter (http://drupal.org/project/img_filter): dùng Upload để tạo attachment cho node, quản lí hình ảnh thông qua các upload này. Rất đơn giản, nhưng có 2 khuyết điểm: 1/ không tiện làm gallery 2/ không dùng lại một hình ảnh của bài này cho bài kia được (không chắc lắm, vì ngó qua cấu trúc database thấy 2 vid (version) có thể chia sẻ chung 1 fid (file).

  • Dùng module image (http://drupal.org/project/image): tạo content type Image riêng. Mặc dù có thể dùng Image Assist (http://drupal.org/project/img_assist) để chèn hình, nhưng công việc quản lí vẫn cồng kềnh, nhất là khi số lượng hình tăng lên. Tuy vậy, tạo gallery khá tiện, thậm chí với bản chất là một node nên có thể dễ dàng chèn comment cho 1 image.

Giải pháp nào tốt hơn cho báo điện tử đây ? Vấn đề nan giải :( Kết hợp cả hai (img_filter cho bài viết, image cho gallery rồi nhúng vào bài viết)?

Comments

Quản lý hình ảnh cho

thehong's picture

Quản lý hình ảnh cho báo điện tử đúng là không đơn giản. TH chưa có đối đầu, nhưng đối với các site đã setup:
(1) TH sử dụng FCK + IMCE để chèn ảnh vào bài viết. Sử dụng IMCE có cái hay là nhiều người cùng vai trò có thể sử dụng chung một folder, có khả năng scale hình ảnh, ...
(2) Album, sử dụng module image và image_gallery


Thế Hồng

investing's picture

Mình thấy NYO có nói dùng một số module như:

CCK & Date/Link/Calendar/Imagefield /Imagecache.

Không biết cái Imagefield là cái jcisio cần tìm không? Tham khảo thêm tại đây: http://drupal.org/nyobserver

mash4friend's picture

Nếu sử dụng FCK để chèn hình ảnh vào bài viết thì có độ tuỳ biến cao và số lượng ảnh chèn vào tuỳ bài viết.Tuy nhiên, là một trang báo điện tử thì phải có nhiều người dùng,như vậy thì mỗi người dùng sẽ chèn ảnh ở một nơi tuỳ thích..và kích thước ảnh cũng tuỳ thích>>>>hậu quả là mất đi sự đồng nhất trong nội dung ( điều cần thiết để tạo nên tính chuyên nghiệp của một trang tin).
Giải pháp: sử dụng CCk để tạo nên những "mẫu nội dung" (có chèn hình ảnh vào bài viết), đồng thời khi gặp bài viết cần nhiều hình ảnh minh hoạ thì chèn hình bằng FCK.
nếu muốn cái album ảnh nằm giữa hoặc cuối bài viết thì có thể dùng cái CCK+ panels+ views để làm...(tất nhiên phải cài đặt cái module image và thiết lập cho nó trước).

Cái này mình giải

jcisio's picture

Cái này mình giải quyết xong và khá hài lòng. Cụ thể:
- Dùng imce + FCKeditor để upload hình
- Trong imce quy định thư mục upload có dạng blabla/images/yyyy/mm/dd, còn browse để chèn hình thì mọi nơi
- Không tạo thumbnail
- Tạo một filter để khi hiển thị sẽ đổi URL ảnh đến các URL được resize thích hợp (triển khai CDN luôn => visitor ở US và VN sẽ thấy ảnh ở 2 server khác nhau)

Các vấn đề đặt ra đều được giải quyết ổn thoả:
- Tổ chức thư mục gọn gàng
- Dùng lại ảnh cũ
- Chèn ảnh dễ dàng
- WYSIWYG
- ...

--
[vi] www.thongtincongnghe.com
Trang tin điện tử về CNTT, Viễn thông, Điện tử...

Ý tưởng của anh rất

thehong's picture

Ý tưởng của anh rất hay, nhưng cho TH hỏi:
1. Quy ước thư mục upload hình bằng IMCE: {file_dir}/images/yyy/mm/dd thì chắc phải là viết một extension cho IMCE để tìm kiếm hình ảnh/đánh thẻ hỉnh ảnh/.... Vì rõ ràng tổ chức kiểu này rất khó tìm.
2. Về ý tưởng filter của anh có phải sẽ gặp trở ngại: Mỗi lần trang nội dung được yêu cầu thì system phải xây dựng lại nội dung? Nếu vậy sẽ là một trở ngại về performance, nội dung đã được xây dựng rồi thì nên cache lại, đã cache rồi thì làm sao "visitor ở US và VN sẽ thấy ảnh ở 2 server khác nhau)". Về vấn đề này, TH nghĩ anh có thể giải quyết đơn giản hơn bằng mod_rewrite của Apache.
3. Nếu lưu hình ảnh ở nhiều server, hình ảnh ở server chính bị xoá => các server phụ cũng phải bị xóa theo. Cách giải quyết của anh thế nào?

--
Thế Hồng

Khi làm báo thì việc

jcisio's picture

1. Khi làm báo thì việc "tái sử dụng" hình ảnh chỉ xảy ra với logo của các hãng, phần mềm. Do đó có một thư mục riêng để chứa cái này. Có lại phân loại theo ngày (1 ngày có 20 bài viết thì khoảng 50-100 ảnh rồi). Nhu cầu tìm kiếm ảnh là không có, chỉ có nhu cầu upload/chèn ảnh đó vào bài viết.

2. Khi cache mình có thể thêm một thông số là tên server chứa ảnh. Hoặc dùng một layer khác, thấp hơn Drupal, nhưng vẫn dùng PHP. Dùng mod_rewrite hơi khó trong phần check IP+quyết định server sử dụng và không uyển chuyển (khi đang soạn bài thì dùng URL gốc, chỉ khi đọc bài mới đổi sang URL ở các mirror), tuy nhiên có lẽ cũng giải quyết được nếu +cookie +refererer.

Thực ra, lí do chính dùng filter là để nhét lightbox vào (chuyển ảnh gốc thành ảnh nhỏ hơn + thêm link cho ảnh...), cache chưa nghĩ đến, vì ít nhất cứ đem cái cache tự viết ở Joomla! sang, không dùng db nên không ảnh hưởng đến hiệu quả nhiều.

3. Ảnh được đồng bộ 1 chiều (404 -> đến server chính load ảnh). Ở server phụ thường xuyên có các thao tác dọn dẹp (xoá các file không được truy cập trong dd ngày), nên một ảnh không dùng sẽ bị xoá đi. Chỉ bị ảnh hưởng chút là server chính sửa lại ảnh => không đồng bộ được, nên không bao giờ sửa lại nội dung ảnh, chỉ upload cái mới lên.

Bằng cách này thì các server phụ có giá rất rẻ, cấu hình yếu (toàn là static, thỉnh thoảng có tí PHP khi fetch về), dung lượng không cần lớn (dọn dẹp thường xuyên, một hậu quả (không lớn lắm) là xem các trang cũ VÀ ít người xem thì hơi chậm vì ảnh bị xoá mất rồi), chỉ cần băng thông cao. FPTdata có gói hosting cá nhân 500 MB dung lượng, 350 GB băng thông khoảng 80$/năm :P

Tất nhiên, sau này khá giả rồi thì trang bị nguyên con server, khi đó thao tác xoá ảnh cũ không cần thiết nữa, thay bằng rsync.

--
[vi] www.thongtincongnghe.com
Trang tin điện tử về CNTT, Viễn thông, Điện tử...

Nói thêm một tí về mod_rewrite

thehong's picture

Có thể sử dụng cú pháp RewriteMap của mod_rewrite để tạo luật rewrite: http://httpd.apache.org/docs/1.3/mod/directive-dict.html#Syntax

--
Thế Hồng

Vấn đề rewrite thì

jcisio's picture

Vấn đề rewrite thì dùng cookie có lẽ tốt hơn thay vì phải look up liên tục để check và đổi IP <-> dest host. Dùng PHP xác định dest host, gán vào cookie rồi rewrite cứ thế mà làm.

Nhưng như vậy không giải quyết được vấn đề: khi nào cần rewrite. Thí dụ hiện tại trong Joomla! code sẽ là (code này lấy trong một layer nằm dưới lớp cache, dùng chức năng đệm đầu ra của PHP để xử lí):

<?php
if (isset($GLOBALS['task']) && $GLOBALS['task']!='edit') {
 
// do CDN stuffs...
}
?>

Một vấn đề khác là nếu dùng modrewrite thì vẫn phải truy vấn đến server gốc rồi mới redirect sang các mirror => tạo ra một độ trễ lớn (nếu server chính đặt tại US trong khi visitor và mirror đều ở VN) và còn tăng tải của server chính (cái này chắc không đáng kể).

--
[vi] www.thongtincongnghe.com
Trang tin điện tử về CNTT, Viễn thông, Điện tử...

Bài thảo luận thật hay

cuxi's picture

-Quy ước thư mục upload hình bằng IMCE: {file_dir}/images/yyy/mm/dd thì chắc phải là viết một extension cho IMCE để tìm kiếm hình ảnh/đánh thẻ hỉnh ảnh/.... Vì rõ ràng tổ chức kiểu này rất khó tìm.
Đây là câu hỏi của anh Thế Hồng em cũng rất thắc mắc chỗ này. Anh jcisio có thể nói rõ hơn tý được không nhỉ. em cũng hay dùng cái này nhưng mỗi lần chèn ảnh là phải từ một Url. Nhưng thực tế muốn brower đến bất thư mục trên máy.

Tran Tan
Tel : 0905 403 723
http://baogame.vn/
http://Bienhoa.vn/

Không hiểu bạn hỏi

jcisio's picture

Không hiểu bạn hỏi cái gì ?
- Dùng imce bạn có thể upload lên, tạo thumbnail... tích hợp trong FCKeditor. Thực ra FCK cũng có FileManager dùng để upload, nhưng không tiện bằng.
- Tạo url động ? imce cho phép bạn chèn code PHP để định nghĩa URL.

--
[vi] www.thongtincongnghe.com
Trang tin điện tử về CNTT, Viễn thông, Điện tử...

CHo mình hỏi

watzboy1009's picture

Các bạn cho mình hỏi khi mình enable Clean URLs thì các hình ảnh mình post lên từ máy tính của mình nó ko hiển thị nữa.Mình dùng module FKCeditor để post hình ảnh cho web. Bạn nào khác phục được ko

buiphuongthanh88's picture

Các bạn thân mếm,không biết các bạn sau khi cài xong hai cái FCK+ICME thì không thấy nó hiển thị ra trang chủ đúng không, mình đã mất khá nhiều thời gian để tìm cách khắc phục, hỏi trên mạng mà không ai trả lời, cuối cùng bạn mình cũng đã tìm ra, mình xin chia sẻ cho những ai gặp hoàn cảnh éo le như mình, Sau khi các bạn cài xong, hình ảnh chọn xong rồi, bạn có thể vào
Cấu hình hệ thống-> Định dạng nhập liệu -> chọn FULL HTML nó sẽ hiển thị hình ảnh
Bạn mà chọn cái Filter html thì không hiển thị đâu
Chung tay xấy dựng cộng đồng Drupal vững mạnh
Chỉ những người đẳng cấp mới có thể chơi được Drupal mà thôi!!!!

thanks for share

luanvn's picture

Cám ơn bạn đã chia sẻ những kinh nghiệm quý này nhé, Tạm thời mình nhét vào cuốn sổ tay của mình đã :)

Tương thích với Drupal 7

@Master's picture

Bạn ơi. Những modul mà bạn nói, mình chỉ thấy nó tương thích với D6. Còn D7 thì mình ko thấy có. Mình mới tham gia và lựa chọn Drupal để làm website. Và Mình cũng đang kiếm modul để có thể upload hình vào bài viết từ máy tính. Mình rất cảm ơn đã chia sẻ bài viết này. Và nếu có thể bạn chia sẻ hay hướng dẫn để cải đắt modul này trên Drupal 7. hay có modul nào tương thích với D7. Cảm ơn!

Lỗi error -200:302

sharkkingi's picture

Chào các bạn! Mình cũng xây dựng web trên drupal 7.28 và gặp sự cố lỗi error -200:302 khi sử dụng modules IMCE! Mong các bạn chỉ giáo lỗi này khi mình không thể up hình lên web được.

Và một lỗi nữa là website của mình không hiện hình ảnh cho dù mình sử dụng link hình ảnh từ web khác cũng không xuất hiện trong bài viết luôn (dù trong phần edit bài viết thì có xuất hiện hình ảnh)

Cảm ơn các bạn nhiều!