Query dữ liệu bên ngoài Drupal và hiển thị trong trang page.tpl.php ?

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

Hiện tại mình đang muốn trang chủ mình tích hợp 1 số tin tức từ diễn đàn bên ngoài Drupal (ví dụ VBB) nên cần query trực tiếp VBB database rồi hiển thị tại trang chủ Drupal

Tuy vậy, nếu query database và sử dụng print() ra ngay tại page.tpl.php thì sẽ bị lỗi font tiếng Việt

Ví dụ

$result = mysql_query ("SELECT id, title FROM VBB data");
$row = mysql_fetch_array($result);
.......
print ($row["title"]); ---> sẽ bị lỗi với tiếng Việt

Nếu đoạn script trên đặt với file php (tức không phải tpl) thì tiếng Việt vẫn hiển thị bình thường. Mình tìm các tài liệu về PHPTemplate nhưng cũng k thấy đề cập qua

Mọi người có cao kiến gì cho vấn đề vừa rồi không ? Giúp mình với.

Cám ơn rất nhiều

AttachmentSize
vidu.JPG16.89 KB

Comments

Bạn để ý là khi

thehong's picture

(1) Bạn để ý là khi kết nối với CSDL, hàm db_connect () của Drupal có sử dụng câu lệnh:

<?php
function db_connect () {
 
// ...
 
mysqli_query($connection, 'SET NAMES "utf8"');
}
?>

(2) Để truy vấn đến CSDL của một ứng dụng khác, không nên viết lệnh trực tiếp vào theme và viết vào module.
(3) Để làm việc với CSDL khác (cùng hệ MySQL) trên hệ thống Drupal, sử dụng hàm db_set_active ()
(4) Đối với vấn đề của bạn, tôi sử dụng RSS và đệm kết quả, giải quyết triệt để vấn đề hơn, và có thể mở rộng sau này.

--
Thế Hồng

file template cũng là php

jcisio's picture

file template cũng là php mà nhỉ ? (.tpl.php) Cái db của bạn lúc kết nối chọn đúng encoding chưa ?

Mà thay vì viết thẳng vào template, bạn có thể (tốt hơn là) tạo một block cơ mà ?

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

Đã tìm ra lỗi, cái

quangvinhtae's picture

Đã tìm ra lỗi, cái này do nhà cung cấp hosting vì mình thay đoạn connect localhost bằng tên domain trực tiếp thì lại ok. Kể cũng hơi chuối:D

@ Thehong: Bác nói rất đúng, (1)(2)(3) rất đúng, nhưng em mới tìm hiểu Drupal nên không rõ nó sẽ sử dụng hàm nào của Drupal cả. (4) cũng đúng nốt nhưng nếu sử dụng một nguồn không phải từ VBB, ví dụ của em query từ các dữ liệu của Xtremedia, Openx... và 1 số ứng dụng khác không có RSS.
@ jcisio:Tớ đã k viết thẳng vào template, nhưng tạm thời viết vào 1 variable rồi print ra, nó cũng dễ quản lý hơn 1 chút nhưng chắc vẫn chưa ổn bằng block nhỉ. Vì mình chưa tìm hiểu viết = block ntn cả? Hình như jcisio là PFIEV HCM thì phải?

@qv: đúng rồi, lớp

jcisio's picture

@qv: đúng rồi, lớp viễn thông, khoá 2000.

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

(4) Đối với vấn đề

nhattoan's picture

(4) Đối với vấn đề của bạn, tôi sử dụng RSS và đệm kết quả, giải quyết triệt để vấn đề hơn, và có thể mở rộng sau này.

Anh Hồng có thể hướng dẫn cách làm này không. Nâng cao hơn nữa là lấy dữ liệu từ link RSS đó thành dữ liệu của mình.

Theo mình, đệm kết quả mà anh

topiclawhn's picture

Theo mình, đệm kết quả mà anh thế Hồng nói chính là: Bên diễn đàn dùng RSS để cung cấp nguồn tin mới nhất, còn bên drupal dùng module này: http://stackoverflow.com/questions/3781456/module-to-parse-rss-feed-in-d...

Mời truy cập Vietdex.com là mạng hỏi đáp trực tuyến, Vietdex.net là mạng xã hội viết blog !