6.12 在主题中应用smacss(3)——Apply SMACSS in Drupal theme(3)
之前我们讨论了如何控制区块中的选择器,现在让我们来学习如何用类似的技巧控制字段的选择器。
我们知道,字段是Drupal7建设网站的基石。字段包含着内容,内容为王!在我们学习控制字段的选择器之前,我们应该先搞清楚drupal是如何把字段渲染出来的。关于这个知识点,请看第二章第三节。
上次,我们从drupal核心复制了区块的模版文件blcok.tpl.php到自己的主题文件夹中,并进行了覆写,以达到掌控区块的主题层。对于字段来说,我们还是要使用类似的方法。字段在默认情况下是由主题函数theme_field()渲染的,所以为了改动这个函数,我们需要将它拷贝到自己主题文件夹中的template.php函数中进行覆写,将名字改为mytheme_field,这里的mytheme是自己的主题名称。
覆写后的新函数如下:
2.3 Drupal主题相关的重要概念(3)Basic concept of Drupal Theme (III)
2.3.6
这一节,我们以字段为例,再更进一步的讲述覆写的概念,覆写字段的方法不止一种,但是我将重点讲述普遍推荐的方式——使用theme_field()函数。
Drupal通过theme_field()函数来输出字段的值。如果你要改变这个值的输出,你可以在你的template.php文件中覆写theme_field()函数。另一个选择是,你可以从Field模块文件夹拷贝field.tpl.php文件到你自己的主题中,并覆写它。
需要注意的是,对于一个有较多字段的页面,覆写模版文件并不是推荐的方式,这样做会导致性能上的损失。
在drupal中,处理模版文件的时间比运行php函数的时间要长,所以当一个页面有很多字段,并且这些字段的模版文件都被覆写过的话,就会拖慢页面的渲染速度。而这个时候,覆写主题函数的作用就显得非常有用了。
当你覆写主题函数的时候,你需要把这个函数名的前半部分,换成你自己主题的机器名。比如你的主题叫做qingkong,那么你覆写的theme_field()函数就是下面这个样子的:
搜索引擎优化(SEO)是通过搜索引擎(Google、Bing等)来改变你的网站,使网站曝光度最大化的过程。
SEO的目标是为网站带来更多的访客。
如果你的网站是用Drupal CMS创建的,这篇文章将为你提供一种简单的技巧,它可以在用户在你网站上时改善用户体验,也可以帮助你提高搜索引擎的排名。
这个方式是简单的使用Drupal模块Similar by Terms,并且当访客在你的网站上时根据他们的需要能够找到相关的内容。
为什么使用Similar by Terms?
像Google这样的搜索引擎在决定在搜索引擎结果界面(SERP中)显示那个内容时要看数以百计的因素。
这些因素包括内容,质量和上下文。
如果Google认定你的网站是一个特定主题的权威,你的网站将更有可能在搜索引擎结果界面(SERPS)中排名靠前。网站的内链有助于Google确认网站上每个页面上涉及的主题,这意味着在搜索这个主题时网站的排名将更靠前。
不要感到困惑,内链和从其它网站建立的链接是不同的,要注意,如果采用不正常的内链会被搜索引擎惩罚。
根据东方的建议,参考这个链接:http://ryanszrama.com/blog/10-25-2007/checking-if-drupal-user-has-role
在_menu()函数里不做角色的判断,在_form()函数里做角色判断
global $user; // Check to see if $user has the administrator role. if (in_array('administrator', array_values($user->roles))) { //DO ADMINISTRATOR THINGS }
else {
//DO NORMAL USER THINGS
}
熟悉Drupal的人可能都知道,Drupal默认的搜索对中文的分词索引很不好,目前,只能通过第三方的分词组件来做优化。之前phpartisan已经分享了两篇基于Solr的配置过程,有兴趣可以看看:上篇,下篇。
除了Solr,还有一些其他也很不错的分词方案,比如国人开发的Xunsearch(迅搜)。Drupal社区的浩江和子强在2014年一起编写了xunsearch模块,并贡献到了官网,目前已发布到官网 Search API Xunsearch (D7,D8版本均支持)。
相比Solr,需要服务器另外开启Tomcat服务,这个势必会增加内存的消耗,进一步增加服务器的成本。Xunsearch是基于PHP开发,无需另外开启其他第三方服务。
我们不在乎你的学历和履历,我们更关心你是否和我们一样有一颗渴望用Drupal改变世界的心! 全职兼职均可,前端、后端或兼顾前后端统统欢迎!
1. 1年以上Drupal项目开发经验; 2. 熟悉Drupal API,能够编写Module,熟悉Menu、Views、Block、Panels、Entity、Rules、Feeds等; 3. 精通HTML、DIV、CSS代码,掌握JavaScript,AJAX应用者优先; 4. 熟悉Drupal的高级缓存系统; 5. 熟练使用LINUX(DEBIAN,CENTOS)环境下的LAMP或者LNMP构架进行WEB开发; 6. 熟练使用MySQL数据库, 有良好的数据库操作和维护经验; 7. 熟悉配置PHP环境配置; 8. 能较强的分析问题和解决问题的能力,擅长将商业需求转化为Drupal思维者优先; 9. 拥有良好的沟通能力和团队协作精神,高度的责任感; 10. 有一定英语基础,能够阅读英语文档。
高薪急聘做个手机娱乐平台 兼有游戏 需要做前后端的人:网关 数据库 背包 聊天 服务器构建等。有兴趣的请邮件我:michael@osforce.com.cn
问题描述:
在header区域中设置了 superfish1, 鼠标放上去的时候无法正常显示dropdown菜单, 尝试在区块中添加superfish2在同一区, superfish2 中 下拉菜单能正常显示, 不过superfish1中的下拉菜单无法显示.
在调试工具中的 console 可以看到报错,把鼠标放上去错误会一直弹出来!
解决方法:
尝试了很多种方法, 最后找到了原因所在。
登陆管理员帐号之后就出现这个提示,是权限的问题吗?