Tut Magento 007: Magento config – cấu hình trong magento (part 2)
Trong Tut Magento 006 mình đã hướng dẫn các bạn sử dụng một số thẻ trong file config.xml như: modules, global, admin, adminhtml… và hôm nay mình sẽ tiếp tục giới thiệu thêm một số thẻ khác thường được dùng trong file config.xml.
1. Thẻ “frontend”
Thẻ này có bao gồm những thẻ config cho những hoạt động ở ngoài frontend (giao tiếp với người dùng) như: secure_url, events, routers, translate, layout. Sau đây mình sẽ đi vào chi tiêt từng thẻ một để cho các bạn có hiểu được vai trò và nhiệm vụ của chúng là gì.
– Thẻ secure_url : được dùng cho những url cần thiết phải bảo mật (https). Khi một người dùng thao tác với link http thì họ hoàn toàn có thể bị theo dõi để biết người đó post lên server những dữ liệu gì, thao tác ra sao và như vậy thông tin quan trọng của người dùng có thể bị đánh cắp. Https như một cái áo choàng bên ngoài che đi mọi dữ liệu và thao tác bên trong của người dùng.
Cấu trúc sử dụng https cho một handle trong magento:
<frontend> <secure_url> <[page_handle]>/relative/url</[page_handle]> </secure_url> </frontend>
Ví dụ:
<frontend> <secure_url> <checkout_cart>/checkout/cart</checkout_cart> </secure_url> </frontend>
Trong ví dụ này thì trang checkout/cart sẽ được sử dụng link https.
– Thẻ events, routers, translate, layout: tương tự như trong thẻ adminhtml
2. Thẻ “default”
Thẻ default có tác dụng set giá trị mặc định cho những config của module trong admin. Ví dụ trong file system.xml trong module Basetut_Helloworld ta tạo một config cho phép admin có thể enable/disable module:
<?xml version="1.0"?> <config> <sections> <helloworld translate="label" module="helloworld"> <label>Hello world</label> <frontend_type>text</frontend_type> <sort_order>299</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <groups> <general translate="label"> <label>General Configuration</label> <frontend_type>text</frontend_type> <sort_order>1</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <enable translate="label"> <label>Enable</label> <frontend_type>select</frontend_type> <sort_order>1</sort_order> <source_model>adminhtml/system_config_source_yesno</source_model> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <comment></comment> </enable> </fields> </general> </groups> </helloworld> </sections> </config>
Mỗi khi ta muốn check xem module đang disable hay enable thường sử dụng câu lệnh:
$enable = Mage::getStoreConfig('helloworld/general/enable');
Nhưng nếu ta chưa vào phần config của module này và save thì mặc định nó sẽ trả lại giá trị null và muốn set giá trị mặc định cho config này ta cần phải sử dụng file config.xml mà cụ thể là thẻ default:
<default> <helloworld> <general> <enable>1</enable> </general> </helloworld> </default>
3. Thẻ “stores”
Thẻ này bao gồm những config cho các store riêng biệt. Bên trong nó bao gồm các thẻ store_code.
Ví dụ:
<config> <!-- ... --> <stores> <default> <system> <store> <id>[STORE_ID]</id> </store> <website> <id>[WEBSITE_ID]</id> </website> </system> </default> <!-- ... above node structure repeat for each store row ... --> </stores> </config>
Các bạn có biết đoạn code trên có tác dụng gì không? Comment ở dưới đẻ trả lời nhé!
4. Thẻ “website”
Tương tự như thẻ stores nhưng phạm vi của nó là website chứ không phải là store nữa.
Ví dụ:
<websites> <!-- ... --> <other_website_code> <system> <website> <id>2</id> </website> <!-- START NEW NODES --> <stores> <store_code>[STORE_ID]</store_code> </stores> <!-- END NEW NODES --> </system> </other_website_code> </websites>
* Vậy là chúng ta đã kết thúc bài học về magento config – cấu hình trong magento. Chúc các bạn có một bài học bổ ích và thường xuyên theo dõi blog để cập những bài học mới nhất của chúng tôi. Xin chân thành cảm ơn!
Tham khảo: blog.magestore.com
hihi, anh ơi em cài thử 1 extension hiểu thị feature product
thì họ cho đoạn này {{block type=”catalogextensions/featured_home_list” name=”featured_list” template=”catalogextensions/home_featured.phtml”}}
In Default attribute set >> chèn vào static blog
giờ em muốn chèn vào xml để thiện thị trên các categories chứ ko phải static blog thì phải thay đổi như thế nào ạ
Bạn muốn chèn featured products vào chỗ nào của trang category? Nếu bạn muốn chèn vào sidebar left hoặc right thì có thể chèn đoạn lệnh sau vào handle catalog_category_default và catalog_category_layer trong file layout:
vâng, anh có thể hướng dẫn 1 bài về block(type,name,as,), cách gọi block được ko ạ
Em muốn tìm hiểu về magento nhưng mà nó ko dễ như em nghĩ, sau 1 tuần tìm hiểu em vẫn chưa thể hình dung rõ được cách thức hoạt động của module magento(config module, controllers,block,template,layout)
Ok mình sẽ giúp bạn!
Trước tiên bạn xem lại cho mình bài cơ bản về block, template và layout trong magento nhé: http://basetut.com/block-layout-theme-trong-magento/. Sau đó mình sẽ viết một tut hiển thị một grid trong admin, trong tut đó có hướng dẫn cụ thể sử dụng các file layout, block, controller như thế nào!
Cám ơn bạn đã theo dõi blog thường xuyên!
Anh ơi, em đã đọc cả 7 bài của anh. Rất hay anh ạ!!! Anh có thể có thêm một bài hướng dẫn cách sử dụng và tùy chỉnh extensions cho magento được không a? Em đã thử dùng một vài cái nhưng hiện không biết chỗ nào để có thể chỉnh giao diện cho nó đúng với nhu cầu.
Cảm ơn anh!
Về cách sử dụng và tùy chỉnh extension của magento thì mỗi thằng nó có một kiểu và hầu như không thằng nào giống thằng nào bạn ạ! Tuy nhiên thường thì extension sẽ có 3 phần chính:
+ Config: đăng nhập vào backend sau đó click System->Configuration trong đây có chứa tất cả các config của các extension Magento.
+ Phần quản lý trong admin: mỗi module thường tạo ra một menu chính trong admin cho phép chúng ta có thể vào và thêm/sửa/xóa data.
+ Phần hiển thị data ngoài frontend: đây có thể là một trang cho phép người dùng xem thông tin hoặc thực hiện một số thao tác nào đó.
Trên đây mình chỉ nói về một số phần chính trong extension magento thôi nhé! Ngoài ra nó còn có rất nhiều thành phần khác tùy thuộc vào chức năng mà nó cung cấp.
Thanks tác giả nhiều nhá..
Cảm ơn bạn đã ủng hộ. 🙂
Thank anh vì những bài viết bổ ích.Em đang học magento và tìm được trang web của anh quả thật rất hay.Nhưng em còn chưa hiểu là phần frontend nó hiện thị ra như thế nào.
Ví dụ như phần header,column left,column right.. nó nằm trong phần nào.Anh có thể hướng dẫn được ko?thank anh nhiều.
Anh có thể giúp em làm cái dropdown list cho City được không anh, mình chọn tỉnh thành phố nó sẽ lọc ra danh sách các quận. em vẫn chưa làm dc module nên anh có t/g có thể giúp e, e rất cám ơn a nhìu vì trong công việc đang cần đến ngày nọp, mà em chỉ mới tìm hiểu magento ak nên không làm được cái khó.