视频地址:https://www.youtube.com/watch?v=Pxq9D2QNc3Y
也就是说外面的module要depend on里面的依赖,就是说要等里面的module执行后才会执行外面的module。定义的是依赖关系,还是先后关系?
应该是定义先加载sequence中的,再加载外面的。
在自己定义的module中,定义一个category_category_view.xml(就是原先module_category内定义那个页面的xml),写一个一样的页面。然后把定义title的block reference过来进行remove就可以了。
这个就是在自己的module中,修改默认module的xml。名字相同就可以了。因为在magento中。xml的名字是唯一不重复的。通过这个命名就能找到这个要修改的xml。
最好的方式是用css来隐藏,因为用block remove后,就真实删除这个h1了。这样不利于seo。可以用css来进行display:none来进行隐藏。
但是为什么css是这样写的呢?
这样写是覆盖整个默认的css文件,还是就是修改这个样式呢?(肯定不会覆盖整个css文件。应该是css优先级的覆盖。)
应该是这个优先级是要高于默认css内的优先级的?进行了样式的覆盖?
如何做到可以同后台来控制是否显示title呢
首先要在数据库加一个字段。让他在后台显示出来。在magento内,知道在数据库加了字段和对应的显示信息,就可以在category的管理页显示出来,因为category是用的eav模式来管理。
加好了以后,通过控制这个来让前台的HTML标签里多一个css出来,这个css定义是否显示title。就是display:none。如果有这个css样式就有这个display了。
但是如何通知前台加呢?
在magento中用到了event。就是发布订阅。
由于这个事件已经发布过了。就是存在这个事件名了,所以就不需要自己再去dispatch这个事件了。
直接在event.xml指定这个事件,并且为这个是事件指定一个observer的instance就可以了。然后在这个instance中来实现增加和删除这个css样式。