上海戴文 - Drupal开发 在线教育

你在这里

Drupal 8.x

云客Drupal8源码分析之渲染缓存RenderCache

渲染数组被渲染的时候,为了提高性能,会将渲染结果保存到缓存中,这样就避免了重复渲染
并且每个子元素的渲染结果都可以被独立缓存,如此一来子元素也可以避免重复渲染

不过缓存中保存的渲染数组是经过简化的,渲染缓存默认只缓存以下内容,这样经简化的数组叫做“CacheableRenderArray”:

 

云客Drupal8源码分析之渲染占位符及其产生器

渲染占位符及渲染占位符产生器

drupal使用渲染占位符机制的目的是为了提高系统性能,具体来讲就是提高缓存利用率和效率

云客Drupal8源码分析之钩子、模块处理器、函数定义

元旦刚刚过去,继续保持一周一篇的速度,这是Drupal8云客源码分析系列在2017年的开篇,来讲几个极其重要的内容,它们是钩子、模块处理器、函数定义。
钩子:
如果是开发新手可能对这个慨念陌生而好奇,许多工作多年的工程师可能对它也缺乏深度理解,不止是在php中,它其实是软件工程中的重要慨念,什么意思呢?为什么要叫做钩子?既然叫做钩子直觉的就会联想到钩什么?怎么钩?简单而直接的回答就是在软件运行的某时刻去钩起一段代码来执行,这个“钩起”也可以称为调用、获取等,但总不能叫做“调子”“获子”吧,所以形象起见叫做钩子,可以将钩子理解为一种软件实现机制,函数调用就是钩子最简单的情况,执行函数时调用它就是钩起它,函数就是钩子实现,函数名就是钩子名,怎么钩就是通过函数名来钩。

云客Drupal8源码分析之缓存上下文CacheContext

“上下文Context”这个词是什么意思呢?平常生活中它常见于语言、文字交流里面,意思是当前交流处于一个特定的环境下,依托前面的内容交流才有意义

比如这句话:“他正在学习drupal”,如果单独说是没有意义的,因为你不知道“他”指代谁,在交流中前面一定定义清楚了“他”是谁,这个“他”就是上下文,这个谁就是上下文的值

在软件工程中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境。不过你无需去理会这样晦涩的定义,只需要知道“上下文”相当于“环境”就行了,它们是等价的。

假设将来能制造出真正的类人智能机器人,那么把它投放到社会中,激活那一刻,他第一件事情就是侦查环境,换句话说就是搞清楚自己所在的上下文,然后他才能有所行动

可见上下文概念是如此重要,在脑子里面建立一个印象:有目的的行为是建立在环境之上的,万事万物皆是如此

 

drupal8信任主机设置

drupal 8.2.5安装后状态报告有如下错误,根据官网的设置,我修改了settings.php,修改为:$settings['trusted_host_patterns'] = array(
'^localhost$',
);

但是还是报错,错误跟之前以下都是下面这张图,表示没能解决,求解!

我使用的是CetOS7.3 LAMP环境下安装的drupal 8.2.5出现的此问题,站点位置为:/var/www/html/drupal

settings.php在drupal/sites/default/ 目录下,恳请各位前辈帮助解决!谢谢!

xuan_qu_019.png

Drupal 8中传入到twig中的user变量是在哪里设置的?

Drupal 8的Twig文件中一般会在注释中说明传入的变量,比如某个主题的field.html.twig:

drupal8如何自定义rest resource

最近在研究drupal8的restful相关,在drupal8中已经自带了restful的功能,你只需要启动这四个模块:

11.png

完成安装之后,基本的restful功能即可实现,比如我想获取node的数据,就可使用http://example.com/node/{node}?_format=hal_json来获取node的基本信息。但是某些时候drupal自带的rest resource无法满足我们,这个时候就需要我们自己来手动创建rest resource了,这里有两种方法,一种是通过view来创建,另一种就是通过代码来实现。

1.通过view实现

通过view方法很简单,就是在创建视图的时候选择提供rest导入即可。如下图:

22.png

然后写入API路径,如api/compamy/get;最后进行view的设置(这里关于view的设置就不多说了)。我们使用postman来进行测试,结果如下:

没有了semantic_views模块的Drupal 8 如何向views中的不同行添加不同的类,来制作响应式网站

drupal 7中可以用semantic views模块向views中的不同行添加不同的类,但是Drupal 8 没有这模块,怎么搞,只能复写对应的模板,

这里设定你的views机器名是myviews,用的格式是:没有格式化的列表

现在来复写views-view-unformatted.html.twig模块,Drupal 8 开启模板建议并不会给出views模板的建议,这应该是一个缺陷,将其从core/views/templatefs中复制出来,粘贴到你的主题的templates中

下面是原始代码

tags: 

Drupal8开发习惯之一:如何建立一个单独的页面(主页,某个活动页面等需要完全定制的页面

Drupal8开发习惯之一:如何建立一个单独的页面(主页,某个活动页面等需要完全定制的页面)

最近研究好多的Drupal8打包发行的版本和acquia的论文,书籍等,发现了一些建站习惯和我自己的完全不同,所以总结一些

 

今天我们讲的是如何建议里一个页面,有下面几种选择:

1.使用page_manager ui模块

2.新建模块,建立一个routing指向Controller,在输出到MODULENAME.module中定义的twig模板

3.创建一个node

显然,最合理应该是第三种方案,我以前比较笨,一直用前两种方法

但是如何正确的用node 来创建一个页面呢

同样有两种方法:

1.:创建一个Landing Page(名字随意)内容类型,字段全部删除。

       创建这个这个内容类型的页面,然后复写这个node的模板,并添加一些东西,region,html等,一些简单的网站推荐用这种方法来创建主页,活动页等2016-12-30_192628.png

如何通过views 根据登录用户和匿名用户显示不同的内容?

在views里面创建两个block如下图所示:

qqtu_pian_20161224144849.png

然后第一个block设置contextual 为登录用户显示所下图所示:

2.png

设置保存以后,然后在block2设置匿名用户要显示的内容,再通过block1当中的 No results behavior 选项,添加Global: View area (Global: View area)通过设置如果下图所示:

tags: 

页面

订阅 RSS - Drupal 8.x