Posted by ketoiloihp on May 26, 2009 at 10:34am
Mình đang thử xây dựng một website trên cơ sở mã nguồn Drupal.
Và hiện tại thì mình đang gặp 2 vấn đề:
- Thứ nhất là mình tìm hoặc xây dựng một modules để có thể hiện thị giống như phần " Các tin khác" của trang Joomlaviet.org. Demo: http://joomlaviet.org ( các bác có thể kéo xuống duới để xem demo ạ ).

- Thứ 2 là mình muốn tạo bộ fillter khi hiện thị list các node giống như thế này. Demo: http://help.joomla.org/content/category/15/99/132/ ( Mình đã thử sử dụng view tuy nhiên mình vẫn chưa biết cách nào để nó có thể hiện ra như vậy mà chỉ có thể sử dụng fillter khi tạo view ).

Mong các bác có kinh nghiệm về drupal chỉ giáo.
Cảm ơn các bác nhiều.
| Attachment | Size |
|---|---|
| cacbaivietkhac.jpg | 206.42 KB |
| fillter.jpg | 79.33 KB |

Comments
Hi Bạn. +Các tin liên
Hi Bạn.
+Các tin liên quan drupal cung cấp rất nhiều modules để sử dùng với views bạn vẫn làm được.
hay bạn có thể dùng modules này :
http://drupal.org/project/similarterms
+ Cái thứ hai bạn dùng Expose của modules views để làm.
Tran Tan
Tel : 0905 403 723
http://baogame.vn/
http://Bienhoa.vn/
Thanks cuxi đã reply
Thanks cuxi đã reply trả lời cho mình.
Mình đã cài thử modules similarterms nên tuy nhiên nó chỉ có tác dụng khi hiện thị ở các node... dạng bài viết khác hoặc bài viết liên quan... Chứ không phải ở trang chủ.
Ở đây mình muốn hiển thị thông tin như vậy nhưng ở trang chủ và ở trên dòng hiện thị các page giống như trang chủ của joomlaviet còn về vấn đề hiển thị các thông tin về các bài viết khác trong node thì hiện tại mình đã có giải pháp.
- Về expose của modules views hiện tại tạm thời mình vẫn chưa test đựơc mình sẽ reply cho bạn ngay sau khi có kết quả
Ở đây mình muốn
Ở đây mình muốn hiển thị thông tin như vậy nhưng ở trang chủ và ở trên dòng hiện thị các page giống như trang chủ của joomlaviet còn về vấn đề hiển thị các thông tin về các bài viết khác trong node thì hiện tại mình đã có giải pháp.
Hi Bạn.
Với cái này thì bạn có thể tạo một views
để lấy các tin của các node cần hiện lên trang chủ
C1: Ở phần footer của views này bạn có thể viết một đoạn code php để lấy các tin liên quan cho nó hiện phía dưới tin cuối cùng
C2: nếu bạn không muốn viết code thì bạn tạo một views tin liên quan và chèn phía dưới phần footer của views trên.
Tran Tan
Tel : 0905 403 723
http://baogame.vn/
http://Bienhoa.vn/
Thanks vì đã trả lời
Thanks vì đã trả lời mình...
Mình đã thử phương pháp dùng block để load các thông tin liên quan tại trang chủ... tuy nhiên khách hàng lại muốn các thông tin đó đựơc hiển thị trên đoạn phân trang...
Quả thực là mình cũng đang đau đầu vì cái này... :D.
Hiện tại thì mình đã thuyết phục đựơc khách hàng bỏ cái đó... tuy nhiên có lẽ về lâu dài thì có 1 modules hiển thị dạng đó cũng là nên có :D.
Hi, Ban. Hôm nay mình có
Hi, Ban.
Hôm nay mình có ngồi code thử vấn đề này.
Mình có viết một đoạn code tạo cái này ( mình đã test ok) . Với đoạn code này bạn bỏ vào node sau đó chọn input PHP code( hoặc custom a content trong pannel và chon input PHP code trên homepage của bạn nếu bạn sử dụng panel)
<?php$type ='page';
$sql = "SELECT * FROM {node} WHERE type = '%s' ORDER BY created DESC";
$result = pager_query($sql, 10, 0, NULL, $type);
while($data = db_fetch_object($result)){
$node = node_load($data->nid);
print node_view($node, TRUE);
}
$lienquan ="SELECT nid, title, type, created FROM {node} WHERE type = '%s' ORDER BY created DESC";
$ketqua = db_query_range(db_rewrite_sql($lienquan), $type, 2, 4);
print "Tin liên quan"<br />;
while($links = db_fetch_object($ketqua)){
print l($links->title, 'node/'.$links->nid).'<br />';
}
// thay vi viet doan tin lien quan tren ta co the chen cai views lien quan vao day
print theme('pager', NULL, 10, 0);// tao các phân trang luôn nằm ở dưới tin liên quan
?>
khi bạn làm thì thay thế node type và số tin muốn hiện trên trang home
+ Bạn tạo một views_liên quan sau đó print view đó thay mấy câu lệnh tin liên quan phía trên nhuq vậy sẽ đẹp hơn rất nhiều
+Với cái này mình viết một modules sẽ tự động hơn rất nhiều về số node muốn hiện lên home page, số tin liên quan,
Tran Tan
Tel : 0905 403 723
http://baogame.vn/
http://Bienhoa.vn/
hi Cuxi
Mình đã thử nhúng đoạn trên vào trong panel tuy nhiên nó vẫn không chạy... bạn có thể cài lên 1 site mẫu và gửi code và data cho mình đựơc không?
Thanks.
Thanks
Hiện tại mình đã tạm thời có giải pháp các tin liên quan bằng cách dùng 1 modules load lại node... tuy nhiên cách này có vẻ hơi hạn chế.... vì khi muốn thêm 1 vài trừơng khi hiển thị lại phải vào code...
Không biết bác nào có giải pháp khác giống như hook vào trong quá trình load homepage để chỉnh sửa không ạ.
Thanks các bác đã đọc.
mình nghĩ bạn nên
mình nghĩ bạn nên viết cái modules homepage để cho việc config được dễ dàng.
Tran Tan
Tel : 0905 403 723
http://baogame.vn/
http://Bienhoa.vn/
Beetbe.com drupal development
Mình nghĩ bạn thử dùng Module : Content relevant hay Node relevant gì gì đó mình ko nhớ rõ.
Mình nghĩ là sẽ ok thôi
http://beetbe.com
Drupal web development service in vietnam
info@beetbe.com
Beetbe™ is a small team of experienced web developers/designers aim to develop custom drupal web applications/themes for clients all over the world
--
http://beetbe.com
Drupal development service, theme service
info@beetbe.com
http://twitter.com/beetbe.com
Beetbe™ is a small team of experienced web developers/designers aim to develop custom drupal web applications/themes for clients all over the
He he, mãi mới thấy
He he, mãi mới thấy người nhiệt tình như thế này!! Cảm ơn sự sôi động của bác Beetbe.com nhé!! Cho em làm quen với bác được không?
Welcome bac
Sao lai khong chu
YM cua minh la : dungiis
http://beetbe.com
Drupal development service, theme service
info@beetbe.com
http://twitter.com/beetbe.com
Beetbe™ is a small team of experienced web developers/designers aim to develop custom drupal web applications/themes for clients all over the
--
http://beetbe.com
Drupal development service, theme service
info@beetbe.com
http://twitter.com/beetbe.com
Beetbe™ is a small team of experienced web developers/designers aim to develop custom drupal web applications/themes for clients all over the
Vấn đề này dễ thôi bạn ơi.
Vấn đề này dễ thôi bạn ơi. Module Views có thể làm được hết. Nếu bạn cần thì có thể liên hệ với mình qua yahoo: leanhngoclt mình sẽ giúp bạn.
Hỏi về cách tạo module của drupal 7
Do không biết post bài thành chủ đề mới thế nào nên mình đành gửi câu hỏi tạm vô đây. Xin chủ topic bỏ qua cho và mong mọi người giúp đỡ trả lời.
Mình mới làm quen với drupal, vì thế nên mình tự nghiên cứu drupal7, các phiên bản trước không hề biết gì cả.
Mình đang làm phần tạo module thì gặp vấn đề. Mình làm theo hướng dẫn trên trang drrupal.org, phần developing:
_Đầu tiên mình tạo ra thư mục my_module, trong đó có 2 file my_module.info và my_module.module với nội dung như sau
+ my_module.info:
; $Id$
name = My module
description = "Module for form api tutorial"
core = 7.x
files[] = my_module.module
files[] = my_module_types.inc
files[] = my_module.admin.inc
files[] = my_module.pages.inc
files[] = my_module.install
configure = admin/config/my_module
+ my_module.module
<?php
function my_module_form()
{
return drupal_get_form('my_module_my_form');
}
function my_module_my_form($form_state)
{
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
);
return $form;
}
?>
_Sau đó mình enable module này. Và mình gọi module này qua url: http://localhost/drupal/?q=my_module/form. Kết quả ra đúng như mình mong đợi, không có gì đáng nói.
Tuy nhiên, mình tạo 1 module khác, cũng theo các bước như trên, document_add, trong folder document_add và có 2 file document_add.info và document_add.module.
với nội dung lần lượt là
; $Id$
name = Document Add
description = "Add a new document with the form."
core = 7.x
package = Document
files[] = document_add.module
files[] = document_add_types.inc
files[] = document_add.admin.inc
files[] = document_add.pages.inc
files[] = document_add.install
configure = admin/config/document_add
và
<?php
function document_add_form()
{
return drupal_get_form('my_form');
}
function my_form($form_state)
{
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
);
return $form;
}
?>
Enable nó và chạy url: localhost/drupal/?q=document_add/form thì không hiện ra.
Mình thắc mắc cách gọi module thế nào? như vậy có đúng ko? có phải gọi bằng : tên module + phương thức ko?
Mọi người chỉ giúp mình, cám ơn nhiều.
Bạn xem lại phần hook_menu,
Bạn xem lại phần hook_menu, drupal không có cơ chế gọi phương thức qua url.
Góp ý cách giải quyết
Mình nghĩ là vấn đề này, bạn nên xử lý trong file <template.php>, override lại hàm THEME_preprocess_page và THEME_preprocess_node là OK.