Magento 里有两个有关 Paypal 支付的模块:Paypal and PaypalUk。我尚未查到文档有关它们的区别,只知道 PaypalUK 依赖于 Paypal,在同时启用 Paypal and PaypalUk 时,后台可以看到

若不启用 PaypalUk 模块,后台变成:

对比可见后台多了 Payflow Edition,估计 PaypalUk 是面向开发者的称呼,Payflow 是面向普通用户的称呼。更多区别还有待摸索。
Magento 里有两个有关 Paypal 支付的模块:Paypal and PaypalUk。我尚未查到文档有关它们的区别,只知道 PaypalUK 依赖于 Paypal,在同时启用 Paypal and PaypalUk 时,后台可以看到
若不启用 PaypalUk 模块,后台变成:
对比可见后台多了 Payflow Edition,估计 PaypalUk 是面向开发者的称呼,Payflow 是面向普通用户的称呼。更多区别还有待摸索。
Inspired by OpenId, I want to start a project – OpenPassword.
What is it for?
People are hesitate to register themselves from site to site. One of the reasons is people are afraid of giving password to the web sites they do not trust much. Most people do not have big memory, so they have to use the same password for all web sites. They may or may not aware that any webmaster / web owner who has access to the password database could try the same password on other sites (or even worse – for online banking). Whether people’s passwords are in safe depends on how honest the webmaster / web owner is. Even the webmaster / web owner is honest, does he have basic skills to keep password in safe? I see a lot of web sites save passwords unencrypted, which could be a disaster.
OpenId comes to solve this problem. But currently not all web sites support OpenId. What if you are in a position you have to use some web sites which do not support OpenId? You have to take care of security yourself. My proposal is:
每访问一次我一个并不复杂的 Magento 站点主页,将会触发多少个事件?我记了下来:
resource_get_tablename
resource_get_tablename
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
core_collection_abstract_load_before
core_collection_abstract_load_after
core_collection_abstract_load_before
core_collection_abstract_load_after
controller_front_init_before
controller_front_init_routers
resource_get_tablename
resource_get_tablename
model_load_after
core_abstract_load_after
resource_get_tablename
core_locale_set_locale
controller_action_predispatch
controller_action_predispatch_cms
controller_action_predispatch_cms_index_index
resource_get_tablename
resource_get_tablename
model_load_after
cms_page_load_after
resource_get_tablename
model_load_after
core_abstract_load_after
cms_page_render
controller_action_layout_load_before
customer_session_init
resource_get_tablename
model_load_after
core_abstract_load_after
resource_get_tablename
controller_action_layout_generate_xml_before
controller_action_layout_generate_blocks_before
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
resource_get_tablename
resource_get_tablename
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
controller_action_layout_generate_blocks_after
controller_action_layout_render_before
controller_action_layout_render_before_cms_index_index
core_block_abstract_to_html_before
core_block_abstract_to_html_before
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_before
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_to_html_before
model_load_after
core_abstract_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
resource_get_tablename
model_load_after
catalog_entity_attribute_load_after
model_load_after
catalog_entity_attribute_load_after
model_load_after
catalog_entity_attribute_load_after
model_load_after
catalog_entity_attribute_load_after
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
model_load_after
customer_load_after
resource_get_tablename
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
model_load_after
core_abstract_load_after
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_before
resource_get_tablename
resource_get_tablename
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
resource_get_tablename
resource_get_tablename
model_load_after
core_abstract_load_after
core_block_abstract_prepare_layout_before
core_block_abstract_prepare_layout_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
model_load_after
core_abstract_load_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
model_load_after
core_abstract_load_after
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_before
resource_get_tablename
model_load_after
sales_quote_load_after
resource_get_tablename
model_load_after
customer_group_load_after
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
resource_get_tablename
sales_quote_item_collection_products_after_load
resource_get_tablename
resource_get_tablename
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
resource_get_tablename
resource_get_tablename
eav_collection_abstract_load_before
catalog_product_collection_load_before
catalog_product_collection_load_after
resource_get_tablename
sales_quote_item_set_product
sales_quote_item_qty_set_after
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
resource_get_tablename
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
model_load_after
core_abstract_load_after
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_after
core_block_abstract_to_html_before
core_block_abstract_to_html_after
controller_action_postdispatch_cms_index_index
controller_action_postdispatch_cms
controller_action_postdispatch
model_save_before
core_abstract_save_before
resource_get_tablename
resource_get_tablename
resource_get_tablename
model_save_after
core_abstract_save_after
model_save_commit_after
core_abstract_save_commit_after
http_response_send_before
controller_front_send_response_after