水滴间 - 聚焦Drupal技术、架构研究、资料贡献、开发辅助,本站由长篇系列《Drupal源码分析》作者 云客 创建,提供深刻、底层的原创中文drupal教程 http://www.indrupal.com/index.php/ zh-hans Drupal使用入门视频教程(已完成) http://www.indrupal.com/index.php/drupal-video-lesson <span>Drupal使用入门视频教程(已完成)</span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p class="text-align-center"><img alt="Drupal使用视频教程" src="/sites/default/files/drupal-lessons/Drupal-study.jpg" class="align-center" /></p><p class="text-align-center"><strong>Drupal使用视频教程</strong></p><p>在2023年之前,在中国,原创的、成体系的中文Drupal相关教程,前端开发有《听晴空讲Drupal主题》,后端开发有《云客Drupal源码分析》,但这两者都是面向专业开发人员的,是给技术人员看的,尚缺少一本面向新人朋友,或非技术人员的使用教程,即便是新接触Drupal的技术开发人员,在上手这两部教程之前,也需要花费相当多的时间去学习Drupal的使用、基本概念、社区文化等,然而,非技术人员通常只是想运用Drupal的低代码特性去解决自己的信息化需求即可,是不需要学习那么精专的教程的。<br />为此,《Drupal使用视频教程》项目于2023年4月启动,于2024年3月发布最后一集大结局,该教程由“云客”为大家录制讲解,此教程涵盖了Drupal的入门、使用、文化、社区、资源等全部内容,为入门Drupal而生,此教程将和前面两部专业教程一起,彻底铺平Drupal的学习之路,让学习体验舒适、平坦、快速。<br />本页是该教程的官方资源配套页,包含了该教程相关的所有信息,关于教程的所有信息均在本页实时编辑更新,教程全集有24集(加前言一共25集),页尾有目录大纲,关于大纲或整个项目,你可以在本页评论区反馈建议,或者直接和云客联系(本站有联系方式),欢迎互动。</p><p><strong>课程版权说明:</strong><br />本Drupal使用视频教程版权为“云客”所有,是公益性的,使用完全免费,甚至可以作为软件公司的内部培训视频,这种商业性质的使用也是免费的。<br />欢迎转载、分享,但须注意:不得收费传播,不得扭曲、删减,包括对片头、片尾的删减,否则将不是免费的,将追究法律责任<br />之所以版权免费,是在践行云客的以下宣言:<br />“<em>中国要复兴、富强,必须在开源软件领域起到主导作用,为了国家安全和人类发展,责无旁贷,我们须为此而奋斗</em>”<br />期待更多人为此而行动。</p><p> </p><p><strong>课程赞助:</strong><br />本课程项目接受赞助,如果你想支持一下云客、支持中国开源事业,请到以下官方地址扫码赞助:<br /><a href="http://www.indrupal.com/zanzhu" target="_blank" rel="noopener">http://www.indrupal.com/zanzhu</a><br />金额不限,感谢支持</p><p> </p><p><strong>课程相关资源:</strong><br />QQ群:203286137,微信群请加云客拉入。<br />进阶开发者教程:<br />后端开发:<a href="/drupaldoc" target="_blank" rel="noopener">《云客Drupal源码分析》</a><br />前端开发:<a href="http://www.nowicode.com/" target="_blank" rel="noopener">《听晴空讲Drupal主题》</a><br />入门书籍:<br />国外入门书籍社区翻译版本:《<a href="https://github.com/drupalchina/beginningd8cn" target="_blank" rel="noopener">Beginning Drupal 8</a>》<br />国内纸质版书籍《无代码开发Web应用——开源Drupal平台实践》周化钢著 (京东购买)<br /> </p><p><strong>首发播放平台地址:</strong><br />由于视频课程是在电脑上录制的,因此为了获得最佳学习体验,强烈建议你在电脑上播放学习,原始视频分辨率为1920 X 1080,在网速允许的情况下建议设置为高清播放。</p><p><span style="background-color:#dddddd;">B站:</span><br />请在云客主页观看,地址:<br /><a href="https://space.bilibili.com/3493273796610687" target="_blank" rel="noopener">https://space.bilibili.com/3493273796610687</a><br /><span style="background-color:#dddddd;">抖音平台:</span><br />抖音号:indrupal<br />在手机抖音APP中可以观看,由于视频是在电脑上录制,所以强烈推荐在PC端浏览器下观看,方法:搜索打开抖音网站(<a href="https://www.douyin.com/" target="_blank" rel="noopener">https://www.douyin.com/</a>),搜索以上账号即可<br /><span style="background-color:#dddddd;">微信视频号:</span><br />账号:Drupal<br />可在手机微信中观看,由于视频是在电脑上录制,所以强烈推荐安装桌面版微信,进入视频号,搜索以上账号即可<br /><br />以上是本课程的首发平台,由于各平台会对视频进行有损压缩,如需原版超高清视频,请联系本站。</p><p> </p><p><strong>课程介绍</strong><br />Drupal作为目前世界上公认最强大的(没有之一)信息系统基础开发平台,可以在不写一行代码的情况下,建立一个高度自定义的信息系统,这就非常适合在一线工作的非技术人员使用,比如老师、医生、项目经理、创业者等等,他们可以采用低代码或无代码开发的方式,真正去解决工作中的信息化需求,而这并不需要学习专业的程序开发知识,只需要学会使用Drupal即可,这就是本教程存在的意义。</p><p>Drupal由全球两百多个国家和地区的优秀工程师一同建设,开源免费,生态庞大,她拥有全球最大的开源软件社区,绝大多数日常所需的功能模块,不但门类齐全,而且在全球130多万开发者们的努力下持续改进完善,这也让大多数世界五百强企业采用她。</p><p>国外著名案例有:特斯拉、谷歌、NASA、辉瑞、华纳时代、通用、本田、高通、联邦快递、福布斯、纳斯达克、迪士尼、联合国、欧盟、多国政府、哈佛大学、牛津大学、麻省理工大学等等。<br />国内著名案例有:华为、百度、京东、腾讯、阿里、周大福、蒸功夫、清华、北大、浙江大学、中山大学、复旦大学、中科院、贵州省政府、国家国际广播电台、国家计量院、中国人寿等等。</p><p>本教程由资深Drupal开发者“云客”为你全程讲解,其在官方社区中开发了大量模块、发行版系统,著有《云客Drupal源码分析》系列教程,是Drupal底层开发者的绝佳教程,写作耗时七年,超过一百万字,是一本原创的成体系的Drupal专业底层开发中文教程。</p><p>本教程面向的学习群体为“非技术人员”,以及想学习Drupal底层开发的开发新手,因此仅教受Drupal的使用,不涉及底层开发,不写一行代码。如果是开发人员,或者在学习完本教程后想继续深造学习底层开发的同学,可以选择前文所述的《云客Drupal源码分析》系列教程继续学习。</p><p>教程所有配套资源、说明、版权、更正、联系方式等请查看云客个人网站,搜索“水滴间”,或联系Drupal中国深圳社区基地。</p><p><strong>课程目录</strong>:<br />以下为课程目录:</p><pre><code class="language-plaintext">Drupal使用视频教程大纲 作者:云客 开始:2023-4-10 结束:2024-3-08 0、前言:  低代码趋势  作者介绍  面向的学习群体  教程规划 1、Drupal介绍:  Drupal是什么  特性  发展历史  使用场景  案例  版本  社区  资源  就业 2、运行环境搭建:  概念解释  系统架构  Linux环境搭建  Windows环境搭建  自定义PHP版本  数据库管理工具  Composer 3、系统安装:  发行版  下载  目录结构  多站点简介  环境配置  安装 4、多语言:  概述  参数替换  单复数  上下文  语言相关模块  界面翻译  语言协商  内容翻译  配置翻译 5、模块安装:  模块与扩展  模块分类、依赖、能力、沟通与优势  版本  安装  下载  查找  常用模块  使用  卸载  项目浏览器 6、页面布局:  主题概述  区块概念  块的来源  定义区块库  块呈现条件  块的启禁用  前后台概念  响应式布局  前后端分离 7、主题安装:  主题分类、继承、依赖、版本  查找  下载  安装  示例与使用  卸载  模板查看与修改  多主题和默认主题  主题协商 8、导航与菜单:  面包屑  URL别名  系统工具栏  菜单概述  自定义菜单  菜单链接来源  菜单块  快捷方式  上下文链接  界面导览  系统帮助与日志 9、用户与权限:  用户  权限  角色  配置  用户资料  密码  找回密码 10、数据模型:  数据类型  数据建模  实体概念  内容实体  内容实体的类型  字段概念  实体字段与数据库字段  子类型Bundle概念  配置实体  其他数据模型 11、数据建模:  内容类型  字段类型介绍  字段限制  字段配置  字段复用  引用字段  数据库储存 12、显示模式:  控件  字段控件  控件配置  表单模式概述  表单模式配置  视图模式概述  视图模式配置  默认模式  布局构建器  字段布局 13、互动与信息分类:  发送邮件  联系表单  评论  信息分类  词汇表  术语 14、媒体管理:  文件系统  图像样式  响应式图像  图像工具包  文件字段  文件管理  传统管理的缺陷  高级媒体管理  用实体封装媒体 15、视图(上):  视图概述  应用示例  显示类型  显示实例  新建视图  添加字段  条件过滤  排序  页头页尾  无内容处理  分页  关联数据 16、视图(下):  上下文过滤器  块显示类型  实体引用显示类型  嵌入显示类型  附件显示类型  Feed显示类型  视图设置  视图主题控制  聚合等其他内容 17、内容搜索:  实时搜索  非实时搜索  搜索源  搜索分词  搜索结果排序  使用技巧  权限控制  搜索缓存  搜索页美化 18、维护与管理:  维护模式  计划任务  状态报告  运行日志  严重故障恢复  硬盘不足故障  访问统计  配置管理 19、备份与迁移:  备份概述  常用备份方法  备份前的准备  数据库备份  系统迁移  迁移实操演示  内容迁移 20、系统升级:  升级原因  语义化版本控制  升级所涉内容  升级原理  升级断点  更新管理器  升级流程  升级操作  大版本升级 21、系统安全:  安全概述  安全层次结构  安全Bug更新  文本格式与编辑器  可信主机配置  隐藏Drupal特征  防灌水  性能攻击  IP屏蔽  安全工具  密码安全  补充注意事项 22、性能优化与推广:  无状态特性  微服务特性  数据库读写分离  负载均衡  CDN及专线加速  架构部署结构图  多级缓存  开启CSS/JS聚合  模板编译缓存  SEO推广概述  MetaTag模块  robots爬虫协议  SEO常用模块 23、多终端系统开发:  前后端分离概述  无头开发Headless  前后端分离的好处  API优先  Drupal前后端分离方案  JSON API概述  JSON API增删改查实操  RESTful Web服务概述  Drupal系统间通讯  Drupal前后端分离框架 24、帮助与资源:  常用模块与发行版  进阶教程  常见资源网站  Drupal社区  Drupal求助之道  如何做贡献  中国开源软件事业展望  鸣谢  云客的后续计划 </code></pre><p> </p><p> </p><p> </p></div> <span><span>yunke</span></span> <span><time datetime="2023-04-17T19:28:04+08:00" title="2023-04-17 19:28 星期一">周一, 04/17/2023 - 19:28</time> </span> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">留言<span class="comments__count">2</span></h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=377&amp;2=comment&amp;3=comment" token="FUlwX1fkMxYfo8bhmZcLRR4c3JrgF6kRQiK3AaQzynY"></drupal-render-placeholder> </div> </div> <article data-comment-user-id="0" id="comment-44" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1709868766"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>匿名 (未验证)</span></p> <p class="comment__time">5 个月 1 周 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/44#comment-44" class="permalink" rel="bookmark" hreflang="zh-hans">增加案例: 联合早报:https://www…</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>增加案例:<br /> 联合早报:<a href="https://www.zaobao.com/">https://www.zaobao.com/</a><br /> Akademika商城:<a href="https://www.akademika.no/">https://www.akademika.no/</a></p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=44&amp;1=default&amp;2=zh-hans&amp;3=" token="fqb-tKHQ6Lwa_S9iRv_f02xLFvcyJvSfZsUxKFOTSTY"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-45" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1709868762"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>逍遥灯 (未验证)</span></p> <p class="comment__time">5 个月 1 周 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/45#comment-45" class="permalink" rel="bookmark" hreflang="zh-hans">感谢大佬为中国开源工作作出的贡献!</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>最近偶然在B站搜索到了你的教学视频,受益良多。2020年前后因为单位的一个项目需求,我折腾了个Drupal服务器,虽然大体是搭起来用起来了,但是很多东西掌握的不是很深,尤其要做一些定制化修改的话,无从下手(当时Drupal9刚出,资料和能用的模块太少了,以前很多好用的模块还不支持9),勉强用了几年,其实也出于几乎闲置的状态。近期想再折腾折腾,就看到了博主的教程,并找到了这个网站。不得不说,Drupal的功能确实强大,低代码开发部署的理念,基本就是ABSD(面向构件的软件设计)更高层次的软件系统搭建策略,入门是既容易,又很难。再次感谢博主的无私分享,希望中国开源工作越来越好!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=45&amp;1=default&amp;2=zh-hans&amp;3=" token="1tq6rDz0HOUpGVOtY4CDJEjN4bgEIb1pUbPBzDf2bBQ"></drupal-render-placeholder> </div> </div> </article> </section> Mon, 17 Apr 2023 11:28:04 +0000 yunke 377 at http://www.indrupal.com http://www.indrupal.com/index.php/drupal-video-lesson#comments 153. 完结篇,云客drupal源码分析系列终于完成了 http://www.indrupal.com/index.php/drupal/success <span>153. 完结篇,云客drupal源码分析系列终于完成了</span> <span><span>云客</span></span> <span><time datetime="2020-07-31T08:31:22+08:00" title="2020-07-31 08:31 星期五">周五, 07/31/2020 - 08:31</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">亲爱的《云客drupal源码分析系列》读者朋友们、Drupal社区伙伴们:</span></span></span></span></span></p> <p style="text-indent: 24pt;"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">这一天:2020年7月30日,是一个值得庆祝的日子,《云客drupal源码分析系列》终于完成了!</span></span></span></span></span>共一百一十余万字,<span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">这标志着中国缺少Drupal文档的状态被终结,核心所有必备的知识点在该系列中均得以覆盖,曾几何时,关于Drupal的技能和学习曲线网络上流传着下面这张图:</span></span></span></span></span></p> <img alt="在云客drupal源码分析前" data-entity-type="file" data-entity-uuid="c8f88514-83dd-4024-9a56-8850eee91263" src="/sites/default/files/inline-images/yunke_source_analysis_before.jpg" class="align-center" /><p align="left" style="text-align:left; text-indent:24.0pt"> </p> <p align="left" style="text-align:left; text-indent:24.0pt">不论是否那都已成过去,现在,<span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">《云客drupal源码分析系列》已完成,Drupal的学习和能力将是下面这样的:</span></span></span></span></span></p> <img alt="在《云客drupal源码分析系列》之后" data-entity-type="file" data-entity-uuid="1dada00a-3f5c-4946-a8dd-ff5e9b6d1660" src="/sites/default/files/inline-images/yunke_source_analysis_later.png" class="align-center" /><p align="left" style="text-align:left; text-indent:24.0pt"> </p> <p align="left" style="text-align:left; text-indent:24.0pt"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">该工程从Drupal8 alpha版开始到Drupal9正式版本发布,历时六年,发布字数一百一十余万字,文档通过源代码阅读的方式独立写作,辅以自己的理解总结,保证了文档的深度和广度,在深度上,不仅有宏观总结,大量内容也详细到对某一个变量、某一个方法进行详细介绍,力争不给开发者留下一个疑点;在广度上,该系列极大的补充了官网英文文档,在官网英文文档中尚没有的、解释不清晰的或错误的地方,在该文档中大量首发、清晰化或者纠正,现在很高兴的宣布该工程完工!</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:24.0pt"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">在该系列文档中,读者朋友们会发现对Drupal以及其中的变量、方法、服务、插件等等均用“她”来称呼,注意这不是一个无意的错误,而是透露着云客对它们如女儿般的疼爱,同样的,当用到“我”这个字时,全部用“云客”代替,云客不仅是我的网络昵称,在我心中,“云客”是一个特殊的符号,代表着品质和各种精神,因此“云客”要高于“我”,时刻要求着“我”,但在系列完成的时间里,我想用“我”这个字,以随意、平常的心聊一些话题。</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:24.0pt"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">先来说一说当初为什么选择了Drupal,其实这个话题说过很多次,详见末尾的各种参考链接,这里结合自己的履历和想法再做些补充,我在2008年写下我的第一个PHP语言“Hello World”,当时国内盛行DZ、帝国CMS、织梦、PHPCMS等,于是自己也使用它们,也为它们做额外开发,直到后来满足不了需求了,开始采用CI等框架,在这个过程中意识到了灵活性、技术债、设计均衡等概念的重要性,但这还不足以做出最后的选择,直到有一天,我的一个非技术类的朋友兴致勃勃的向我介绍他的产品,这个朋友本是做销售的,对技术并不太了解,但却自立门户开了一家技术公司,本不太在意,但展示完产品后我如大梦初醒,“你看,我们为各种行业打造了官网系统,提供了数千计的模板,只需要点几下鼠标就能拥有一个官网,客户还不用服务器,如果需要商城,没问题,初始化就行,全部自动对接,公众号?供销系统?真伪系统?HR系统?在这里在这里,点击初始化就行,全部是响应式的,我们还可以做接口对接到企业原有的各种系统”朋友一边介绍,一边演示,时不时自我感叹一下,这些从几百元起步,几千块就能提供全套服务,几万块就能完成各系统形成的信息孤岛整合;让我们站在老板们的角度想想看,什么最重要?在满足需求的情况下无疑是成本,绝对不是技术,就像要在墙上钻个孔,在符合要求的情况下,我们只关心成本,而不会去关心师傅手里的电钻有多先进,只要满足要求,成本是第一要素。现如今淘宝、京东等取代了自建商城,公众号取代了官网,这些都和成本有莫大关系。那一天我一直在思考一个问题:“这些东西都被自动化的现有系统做了,那我们开发者还做什么呢?以后的路在哪里?”,似乎只有两条:高端定制、自营项目,无论哪一条路都显示着这个时代技术门槛已提高了,决不能去选择简单的东西,否则将渐入窘境,这要求我们如果还打算走技术之路的话,必须深入,此时需要一套灵活、强大、不欠技术债、有生命力的基础系统,在对比了世界三大系统后,放弃Joomla、WordPress,选择了Drupal。</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:24.0pt"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">漫长岁月、青灯黄卷之后,我想安静的面对《云客Drupal源码分析系列》的读者朋友们,如果你一直跟随阅读、学习,到此你应已完全掌握Drupal,能够用她进行任意开发,此刻请你感谢自己多年来的付出和坚持,恭喜你,将来的你会感谢现在的你。我不知道该系列读者的具体人数,但我期待着其中一部分能成为核心开发者,世界在巨变,中国在崛起,盼望着你们中的一部分能代表着中国接棒未来Drupal开发的重任,成为与中国大国形象匹配的推进力量。</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:0cm"> </p> <p align="left" style="text-align:left; text-indent:0cm"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="background:#d9d9d9"><span style="font-family:宋体"><span style="color:black">后记关于《云客Drupal源码分析系列》的善后工作:</span></span></span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:24.0pt"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span lang="EN-US" style="font-size:12.0pt" xml:lang="EN-US" xml:lang="EN-US"><span style="font-family:宋体">Drupal9</span></span><span style="font-size:12.0pt"><span style="font-family:宋体">延续了Drupal8,主要架构几乎不变,因此该系列同样适用于Drupal9,有变化的地方我将逐步进行修正,由于该系列的写作过程也是我自己的学习过程,直到最后才理解了系统全貌,因此难免会有局限,尤其是前三分之一部分,我将一并进行修正,除此外接下来我依然会继续书写一些常用模块的介绍,不过将是以不定期的方式发布。以上的这些工作都需要时间,读者们也可以到爱码文档汇(nowicode.com)阅读更多文档,那里有很多优秀的作者发布的资料,或原创,或翻译,或视频等等,总之值得一看。</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:0cm"> </p> <p align="left" style="text-align:left; text-indent:0cm"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="background:#d9d9d9"><span style="font-family:宋体"><span style="color:black">关于我(云客)的去向:</span></span></span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:24.0pt"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">关于我自己,为了专心完成源码分析的最后部分,我已从原来的公司离职,目前处于自由职业状态,在接下来的时间里,我有两个打算:</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:0cm"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">愿望一:去做Drupal应用开发,发挥出她的价值,这么了不起的系统有太多应用领域(涵盖了移动app、小程序、物联网、网站等),本来研究她的目的就是去完成了不起的应用,如果你愿与我同行,可以联系,总之就是去解决需求、创造价值,践行作为一个人的使命。</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:0cm"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">愿望二:此刻真有问天再借五百年的冲动,在写这个系列前还是一个三十不到的小伙子,现已快四十了,期间太过忽略家庭,这么多的时间本可以去做一些盈利的事情让家人过的好一点,但因对技术的痴迷,做了一个对他们来说自私的人,没有去积累财富,没有去提升事业,多么两难的事情,我知道留给我的时间不多了,但有一事难以放下:中国需要一本系统性介绍Drupal开发的中文书,可以是电子书,也可以是能买到的纸质版,这和源码分析有些许不同,这需要进一步整理,有漂亮规范的排版、反复推敲的顺序、系统的章节设置、良好的宏微观切换等等。源码分析系列的完成也意味着我完全掌握了Druapl,做到这一点除了努力外,更多的是有此机缘,感谢世界给了自己长达六年的条件去完成此事,这种机缘是稀少的,发现桃园者应引路,攀登者应留绳,这本书就是攀登Drupal后想留下的梯,但这除须躬身入局外,还需外界支持,因此我的第二个打算是去众筹这本书,各方面评估后大约需要至少十万费用,支持者将免费得到查阅该书电子版的账号,也接受赞助,赞助者将被列入首页,该书能否出版不取决于我一个人,任何想推进此事的个人或公司都可以联系我,群策群力,预计在九月份之前作出决定,若通过众筹或其他方式集资成功,将即刻启动该书的编制,恳请大家参与此事,一起努力!</span></span></span></span></span></p> <p align="left" style="text-align:left; text-indent:0cm"> </p> <p align="right" style="text-align:right; text-indent:0cm"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt"><span style="font-family:宋体">云客(20200730)</span></span></span></span></span></p> <p align="left" style="text-align:left"><strong>一年以后(这一段补充写于一年后2021年7月30日)</strong><br /> 太巧,今天刚好是一年后的同一天,补充一下这一年里云客做了些什么:</p> <ul><li align="left" style="text-align: left;">首先于2020年10月组织举办了深圳Drupal社区线下聚会,这是疫情下全球2020年下半年唯一的一次聚会(无一人传播感染新冠),非常成功,是深圳地区有史以来参与人数最多的一次Meeting,会议上认识了许多Drupal新伙伴,和一些投资、创业方面的朋友。</li> <li align="left" style="text-align: left;">接着在2020年12月创建了“未来很美(深圳)科技有限公司”(网址:www.will-nice.com),专门从事Drupal开发,这是深圳第一家专业Drupal开发公司。</li> <li align="left" style="text-align: left;">在2021年4月获得Drupa全球奖学金,被邀请免费参加一年一度的DrupalCon会议,在会议上结识了一些国际友人,特别是来自保加利亚的Maria Totova,她是国际组织“编程女孩”的创始人,在保加利亚大学教授Drupal课程。</li> <li align="left" style="text-align: left;">继续贡献模块和文档编写,贡献了二维码模块、支付模块等等,编写了Drupal前后端分离方面的文档教程,如json API、RESTful</li> <li align="left" style="text-align: left;">实现了一个零突破:开发完成中国首个Drupal 9 发行版系统:未来很美统一收银系统,这是来自中国的第一个Drupal9发行版系统,免费、开源且已上传到官网发行版栏目</li> </ul><p align="left" style="text-align:left">关于Drupal方面就是以上这些了,此外认识了很多来自大健康行业、投融资行业方面的朋友,很充实的一年,遗憾的是关于“Drupal开发”纸质版书籍编写尚未开始,需要等待时间和资金方面合适的机会,希望该愿望早日实现</p> <p align="left" style="text-align:left"> </p> <p align="left" style="text-align:left"> </p> <p align="left" style="text-align:left"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span style="font-size:12.0pt">爱码文档汇地址:http://www.nowicode.com/</span></span></span></span></p> <p align="left" style="text-align:left"><span style="font-size:10.5pt"><span style="line-height:18.0pt"><span style="font-family:等线"><span lang="EN-US" style="font-size:12.0pt" xml:lang="EN-US" xml:lang="EN-US">Drupal8&amp;9</span><span style="font-size:12.0pt">开发学习入门指引:http://www.indrupal.com/drupal/start </span></span></span></span></p> <p align="left" style="text-align:left"> </p> <p align="left" style="text-align:left"> </p> </div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">反馈互动<span class="comments__count">8</span></h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=213&amp;2=comment&amp;3=comment" token="mkICtYdpeOOTVZaBr1ncDdjSWUxkImTHkNE7N4BJUWg"></drupal-render-placeholder> </div> </div> <article data-comment-user-id="0" id="comment-11" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1619057234"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>晴空 (未验证)</span></p> <p class="comment__time">3 年 8 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/11#comment-11" class="permalink" rel="bookmark" hreflang="zh-hans">George Bernard Shaw said …</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>George Bernard Shaw said “The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man.” </p> <p>萧伯纳说,识时务的人适应社会。不识时务的人坚持试着让世界适应自己。因此,所有的进步,都有赖于那不识时务的人。</p> <p>在这个信息爆炸、标题党横行、只要你稍微有点追求你就会特别焦虑——偏偏到处都还喜欢贩卖焦虑的时代里,你可以很容易的发现这样一件事实:写技术类书籍和写言情、穿越小说是完全不一样的。因为人家一天的销量能顶你三年。</p> <p>其实Drupal中文社区的每一个人都是这本书的见证者。我们看到他几乎每个周五都会发一篇。随随便便,少则两三千字,多则上万——就这样一直持续了6年。时间真是过得很快。不过时间是公平的,每个人每天都只有24个小时。有些人会选择每周发布一篇自己的文字,也会有其他一些人选择每天发两篇别人写的东西。这背后都一定有着他们自己的原因。Drupal和她的社区,能够走到今天,多半还是因为有那么一些人,真的喜欢Drupal。所以很多时候,其实原因很简单,能坚持下去仅仅只是因为“喜欢”。</p> <p>了解我的人,知道我也写过两本Drupal教程,2014年-2015年,2017年-2019年我分别写了一本关于Drupal7和Drupal8的主题教程。令人欣慰的是,看的人不少,反响也不错。很多圈内的朋友后来告诉我,他们入门Drupal是从看我的教程开始的。我的这两本书加上云客的《源码分析》,也就构成了NowICode最初的内容,后来经过社区其他同好的帮助,又集合了其他几本书的内容。形成了现在的网站。网站很小,对于初学者来说,仅仅是刚刚够用而已。</p> <p>NowICode因为是我自己在做运营,后台数据告诉我,《源码分析》的阅读量远没有我的主题教程受欢迎。很奇怪吗?其实不然,就好象你会看到满大街卖U盘和“祖传贴膜”的,但是却没有人卖光刻机。如果我们从收入的角度去衡量云客用六年时间写110万字但是却只有很少的人看,这件事儿,你会发现,他就好像是一个在20年30年前的中国研究和制造光刻机的人。英文中有个非常贴切的成语来形容他,“He is way ahead of his time”。所以,这本书的众筹之路估计会比较坎坷。</p> <p>但是,在这里,我想说的是,无论这本书是否能众筹成功,云客都是成功的。就好象当年所有的人都觉得手机应该可以待机一个月并且用来砸核桃的时候,乔布斯却不认同;就好象当年大家都不喜欢在线购物的时候,马云却不认同。人类第一次登月成功之后,肯尼迪曾经这样说:“We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard.” </p> <p>所以,一件事情在大多数人眼里看来,是不可能或者没意义的,但是你不认同,你坚持做完了,这就是你的成功。因为,你为人们树立了一个里程碑,让人们知道,哦,原来还有这么一件事儿。</p> <p>六年时间很长,等于一个孩子大半的童年,现在终于写完了,希望云客能有更多时间陪孩子和家人。</p> <p>晴空</p> <p>2020年7月于美国</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=11&amp;1=default&amp;2=zh-hans&amp;3=" token="2OlWXGDyX9H8WOdMffqyPIqK9-UEMUThpAalqSbX83Y"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-12" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1599209077"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>北京_大道 (未验证)</span></p> <p class="comment__time">3 年 8 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/12#comment-12" class="permalink" rel="bookmark" hreflang="zh-hans">火前留名</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>占位!<br /> 火前留名火前留名火前留名火前留名!<br /> 好文章!<br /> 作为一个使用者,我是资深的。作为一个开发者,我是0起步的。羡慕作者的技术。一起发扬光大。</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=12&amp;1=default&amp;2=zh-hans&amp;3=" token="BfoEDj_du8Kg2bZ4ZLV8OORnM6NTQnJeLP0Y2TRkM34"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-13" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1599209083"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>xwk (未验证)</span></p> <p class="comment__time">3 年 8 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/13#comment-13" class="permalink" rel="bookmark" hreflang="zh-hans">我相信每一个对技术…</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>我相信每一个对技术,对drupal有追求的开发者或多或少都看过云客的教程,去过晴空的网站,感谢你们对中国的drupal普及做出的贡献。学习drupal的程序理念会让自己达到一个前所未有的思维高度,开拓出一片更广阔的天空。毫不夸张的说每一位PHP开发者,或者说每一位开发者都非常有必要深入的学习一下Drupal,这是留给程序世界的一块瑰宝!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=13&amp;1=default&amp;2=zh-hans&amp;3=" token="RiqtYuayOrQ0R61AyXhKTuZ90dBZJK7L-h6xUlwZU3g"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-14" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1627619139"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>乐佬 (未验证)</span></p> <p class="comment__time">3 年 7 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/14#comment-14" class="permalink" rel="bookmark" hreflang="zh-hans">老葛你是牛人,有真正的技术和自己的想法及追求,我佩服你…</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>老葛你是牛人,有真正的技术和自己的想法及追求,我佩服你!我比你晚几年接触Drupal。记得刚开始时,基本没中文资料,只能啃英文文档,虽然Drupal的文档相比其他算是不错的,但有些概念对初学者而言真的较难理解。后来看了你的《Drupal实战》和台湾人余嘉适的那本,感觉好了很多。用过你的Field Validation等模块。这么多年来,真的很欠你一句“谢谢”,谢谢你!也欢迎你来我的小站作客(<a href="https://www.onaloop.com">https://www.onaloop.com</a>),听听音乐,放松自己,开始人生新的奋斗!祝福你后面的计划一切顺利!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=14&amp;1=default&amp;2=zh-hans&amp;3=" token="8UGDzJVaRVfd6iveR20qCbJr5G9Tz3QkGSp3_nnHiCc"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-16" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1627619139"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>乐佬 (未验证)</span></p> <p class="comment__time">3 年 7 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/16#comment-16" class="permalink" rel="bookmark" hreflang="zh-hans">窘,昨天我把本站的站长和老葛搞混了😳…</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>窘,昨天我把本站的站长和老葛搞混了😳(因为我是从老葛的网站链过来的),抱歉抱歉~~<br /> 必须给站长点赞啊,厉害👍</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=16&amp;1=default&amp;2=zh-hans&amp;3=" token="iNiZGfKTrJky0PzkwJZEJbwLReSMduFTUE_qruEPM7M"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-19" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1627619163"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>匿名 (未验证)</span></p> <p class="comment__time">3 年 3 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/19#comment-19" class="permalink" rel="bookmark" hreflang="zh-hans">您好,有drupal合作的机会,方便的话请加我微信…</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>您好,有drupal合作的机会,方便的话请加我微信:hxsznewbone</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=19&amp;1=default&amp;2=zh-hans&amp;3=" token="KtND_41ZqQfxudGm80J8n66Ma2MnnQ4pXo09865HCVs"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-22" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1627619139"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>小金 (未验证)</span></p> <p class="comment__time">2 年 10 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/22#comment-22" class="permalink" rel="bookmark" hreflang="zh-hans">哇塞</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>我感觉都是哇塞</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=22&amp;1=default&amp;2=zh-hans&amp;3=" token="oylgXjy0uUB3Jcds3lcb9-QoE_0amCKVVm-tUUMwncY"></drupal-render-placeholder> </div> </div> </article> <article data-comment-user-id="0" id="comment-26" class="comment js-comment comment--level-1 by-anonymous" role="article" data-drupal-selector="comment"> <span class="hidden" data-comment-timestamp="1631501322"></span> <div class="comment__picture-wrapper"> <div class="comment__picture"> <div> </div> </div> </div> <div class="comment__text-wrapper"> <footer class="comment__meta"> <p class="comment__author"><span>xkx (未验证)</span></p> <p class="comment__time">2 年 7 个月 之前</p> </footer> <div class="comment__content"> <h3><a href="/index.php/comment/26#comment-26" class="permalink" rel="bookmark" hreflang="zh-hans">国内难得的干货啊,必须支持</a></h3> <div class="text-content field field--name-comment-body field--type-text-long field--label-hidden field__item comment__text-content"><p>即使只是支持一句话</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=26&amp;1=default&amp;2=zh-hans&amp;3=" token="QjW4D27O59pBl8ybU0DtI88tfrNKsZMdChc4MXHH6x4"></drupal-render-placeholder> </div> </div> </article> </section> Fri, 31 Jul 2020 00:31:22 +0000 云客 213 at http://www.indrupal.com http://www.indrupal.com/index.php/drupal/success#comments 24、Drupal使用入门视频教程大结局 http://www.indrupal.com/index.php/node/406 <span>24、Drupal使用入门视频教程大结局</span> <span><span>yunke</span></span> <span><time datetime="2024-03-07T17:56:31+08:00" title="2024-03-07 17:56 星期四">周四, 03/07/2024 - 17:56</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>您好陌生人,欢迎来到这里,感谢一路同行:</p><p>&nbsp;&nbsp; <strong>“未来很美,一起向前,不负时光,留下美好”</strong></p><p>人的一生,留下比得到更加重要,让我们一起前行,让生命鲜活,让未来很美。<br>这一系列的教程是对上面这句话的践行,也是对下面这句话的兑现(这句话被放置在水滴间网站页头):</p><blockquote><p>中国要复兴、富强,必须在开源软件领域起到主导作用,为了国家安全和人类发展,责无旁贷,我们须为此而奋斗</p></blockquote><p>从2023年的4月4日开始启动本教程录制开发工作,技术讲解章节共用时4个多月,其工作量和过程远比原预期要大和复杂,但就如教程封面左上角所言:</p><p><strong>&nbsp; “能力论就是宿命论”</strong></p><p>做着自己不擅长的事情,努力学习改变,因为未来可期。</p><p>在前面章集中已经完成了主要Drupal知识的讲解,将能够把初学者带入Drupal的大门。</p><p>这一集将是本教程的大结局,所不同的是:</p><p><strong>这一集将带你了解技术之外的Drupal,并为你准备好在继续学习之路上的行囊</strong></p><p>本集主题大纲:</p><ul><li>&nbsp; 常用模块与发行版</li><li>&nbsp; 进阶教程</li><li>&nbsp; 常见资源网站</li><li>&nbsp; Drupal社区</li><li>&nbsp; 求助之道</li><li>&nbsp; Drupal聚会活动Meet</li><li>&nbsp; 如何贡献Drupal</li><li>&nbsp; 中国开源软件事业展望</li><li>&nbsp; 云客后续计划</li><li>&nbsp; 鸣谢</li></ul><p>&nbsp;</p><p>纪念本教程录制完成,分享花絮:</p><p class="text-align-center"><iframe allowfullscreen="true" border="0" framespacing="0" scrolling="no" src="//player.bilibili.com/player.html?aid=404799931&amp;bvid=BV1XG411Z7AK&amp;cid=1237353013&amp;page=1" width="100%" height="500px" frameborder="no"></iframe></p><p>播放地址:<a href="https://www.bilibili.com/video/BV1XG411Z7AK/" target="_blank" rel="noopener">https://www.bilibili.com/video/BV1XG411Z7AK/</a></p><p>&nbsp;</p></div> <section data-drupal-selector="comments" class="comments"> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=406&amp;2=field_feedback&amp;3=drupal_video_lessons" token="0u5inaEWBd-abtzakBn83SzpPYN5HXXvVh0TUM0FZ-s"></drupal-render-placeholder> </div> </div> </section> Thu, 07 Mar 2024 09:56:31 +0000 yunke 406 at http://www.indrupal.com http://www.indrupal.com/index.php/node/406#comments 2024春节将至,云客在这里给朋友们拜年了! http://www.indrupal.com/index.php/node/416 <span>2024春节将至,云客在这里给朋友们拜年了!</span> <span><span>yunke</span></span> <span><time datetime="2024-01-22T10:35:03+08:00" title="2024-01-22 10:35 星期一">周一, 01/22/2024 - 10:35</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>我们要走的路很远很远,渴望与靠谱的朋友们万众同行的那一天,录制了一个视频,给大伙拜年了!龙年,龙马精神,阖家幸福安康,回望自己,一年更比一年好</p><p class="text-align-center"><iframe src="//player.bilibili.com/player.html?aid=924026098&amp;bvid=BV1iT4y1h7ZV&amp;cid=1415013226&amp;p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" height="600px" width="100%"> </iframe></p><p>新年快乐!</p></div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=416&amp;2=comment&amp;3=comment" token="zt7oOf71rY__ZcvY0NQYBmH9AjXXBU4fAFttNJc2oqQ"></drupal-render-placeholder> </div> </div> </section> Mon, 22 Jan 2024 02:35:03 +0000 yunke 416 at http://www.indrupal.com http://www.indrupal.com/index.php/node/416#comments 饿死的婆婆,您在天国可好些? http://www.indrupal.com/index.php/node/415 <span>饿死的婆婆,您在天国可好些?</span> <span><span>yunke</span></span> <span><time datetime="2024-01-02T11:33:35+08:00" title="2024-01-02 11:33 星期二">周二, 01/02/2024 - 11:33</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>又见慈祥的婆婆去世,高兴的是她有个好儿子,走的很安详,愿天下老人皆得善终!又让我想起十多年前的那篇帖子,那还是在大学期间,让我整整哭了一个下午,一转眼快二十年了,饿死的婆婆,您在天国可好些?</p><p>帖子快搜不到了,费了好大劲,记录下来,怕有天想看看她却看不到,以下是全文转发:</p><p class="text-align-center"><strong>一个被活活饿死的老人</strong></p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/0.jpg" width="373" height="429" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>我第一次看到老太太在竹林里捡柴的时候,就怔住了,她很瘦、很虚弱,每捡一支干柴,每一次蹲站,仿佛都快支持不住了,仿佛都要倒下去了,虽然满地都是树叶,可她捡拾起来都要付出生命的最后一点力气</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/1.jpg" width="511" height="368" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>她回家的路上,一个围观的十岁左右的男孩竟然向她投掷土块,我跑过去狠狠地给了他一耳光,还真想掐死他!为什么这么小的孩子竟有如此恶劣的行为,他的父母、他的老师都是如何教育他的,我真想不通。</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/2.jpg" width="562" height="354" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>第二次见到她的时候,她正在潲水桶里捞米饭粒,我不知道她从哪里弄来这么好的潲水,也不敢问她,只听她说够吃两餐了……</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/3.jpg" width="481" height="590" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>这是她的厨房。你能想象它有多脏就有多脏,你能想象它有多穷就有多穷。就一个铝锅一个铁锅,十只八只碗,一张发霉的木台,一个发霉的破烂的竹盖。最令人不忍目睹的是那水缸的水,几个月甚至半年或一年都没洗过的水缸里,隐隐约约浮动着令人毛骨悚然的……</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/4.jpg" width="472" height="590" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>每天她捡柴需要近一个小时(100米距离),每天她提水需要近一个小时(150米距离/半桶水)为什么没有一个正常人帮助她10分钟呢,亲情何在?人性何在?我不禁想起了那二十年前的那些岁月,那时的空想乌托邦还知道对老人五保呢。那时还有一些做好事的小同学给老人挑水捡柴呢。</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/5.jpg" width="463" height="590" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>第三次见到她的时候,她更虚弱了,连走路都很困难,她也许再也不能去捡柴提水了。唯一的远嫁的女儿也不可能回来照顾她。 <br />临走时我们给了几十块钱给她,她收下放进袋里,却从袋里掏出另外一张破烂不堪的10 元钱“同志,我这10元钱别人说是假的,买东西别人不肯收,好心人再帮我换一张吧。”看着那张破烂的钱,我们一时无语,老人太可怜了</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/6.jpg" width="422" height="590" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>当我们要离开的时候,她很勉强站了起来,全身发抖,嘴里要说的话也说不出来,其实我们在心里听到了,唉,一个老人快死了。</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/7.jpg" width="435" height="590" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>当我第四次去看她时,她已经死了。屋前长满杂草让人伤感。她的死并不让人意外,因为她生活的环境就会让她活不长。</p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/8.jpg" width="554" height="356" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>她死了,在村子里永远消失了,再也没有任何人提起过她。在她遗留下来的破屋前的那座宽敞的宗祠里依然很热闹,很喜庆。 </p><p class="text-align-center"><img src="/sites/default/files/yunke/popo/9.jpg" width="553" height="341" data-entity-type="file" data-entity-uuid="" alt="" loading="lazy" /></p><p>就在要离开村子的时候,一个小孩平静地对我说:“十八婆是饿死的”,愣看着那些大红的对联,我突然感到一种人生的滑稽和失望。</p><p> </p><p> </p></div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=415&amp;2=comment&amp;3=comment" token="gqMa72nG6xIcTZW_Uq7OiYAVoOBpwCbnjZPpjkOFfi8"></drupal-render-placeholder> </div> </div> </section> Tue, 02 Jan 2024 03:33:35 +0000 yunke 415 at http://www.indrupal.com http://www.indrupal.com/index.php/node/415#comments 再一次组织深圳Drupal聚会,再见2023 http://www.indrupal.com/index.php/node/414 <span>再一次组织深圳Drupal聚会,再见2023</span> <span><span>yunke</span></span> <span><time datetime="2023-12-30T16:35:52+08:00" title="2023-12-30 16:35 星期六">周六, 12/30/2023 - 16:35</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>大大小小的Drupal聚会已不记得组织过多少场了,2023年即将结束,一如既往承担起这个重任,将来,也希望找到合适的接替者,把Drupal做的更好,“人的一生,留下比得到更加重要”,这一次依然是我对价值观的践行,路依然遥远,2024继续在路上</p><p>分享我在聚会上的演讲发言:<a href="https://www.bilibili.com/audio/au4213475" target="_blank">https://www.bilibili.com/audio/au4213475</a></p><p><strong>转发《2023深圳Drupal聚会》新闻报告:</strong></p><p>开放、协作、接纳、认可,一滴水带着她的价值观,将世界各国聚拢在一起,在开源软件世界中,形成了汪洋大海,这个小水滴就是Drupal,世界最大开源软件社区之一。</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/Drupal.png" width="319" height="319" alt="Drupal" loading="lazy" /></p><p>开源软件作为数字基座,支撑着全球数字世界,是人类文明共建共享的宝贵成果,科技魔都深圳作为我国科技产业的排头兵,在中国开源软件事业上发挥着重要作用,其沸腾的软件科技产业中,Drupal作为研发各应用系统的基础生态备受瞩目。</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_1.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>2023年12月24日在深圳凤凰山农趣谷举办了一场生动有趣的Drupal公益聚会,由“深圳Drupal社区”举办,“未来很美科技”承办。</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_3.jpg" alt="2023年深圳Drupal聚会" /> 聚会地:深圳凤凰山农趣谷</p><p>Drupal有着Web操作系统的美誉,是开发各类应用系统的基础,被绝大部分世界五百强企业使用,国外有特斯拉、联合国、哈佛牛津等,国内有华为、中科院、清华北大等,应用案例数不胜数。</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_2.jpg" alt="2023年深圳Drupal聚会" /> 2023深圳Drupal聚会地</p><p>曾经,Drupal圈即意味着极客圈,聚会往往在大学、企业庄重的会议室举行,这次Drupal聚会和以往不同,进行了大量创新,力求让普罗大众接触并了解到国际最前沿的软件科技,因此选择了极具参与性的“户外摘菜野炊+室内知识分享”的新模式,今年飞入寻常百姓家的还有技术,在中国Drupal社区的不懈努力下,《低代码开发Drupal使用入门》视频教程在2023年录制完成,它可以让不懂编码的医生、老师、项目经理等等凭借先进的低代码技术去自行实现所需应用软件,而不再需要专业技术人员的参与。</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_4.jpg" alt="2023年深圳Drupal聚会" /> 工作人员早早的开始布场准备</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_5.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>在绿意盎然的农场里,参会者将远离都市喧嚣,有山、有水、地里有菜、认识新伙伴,一起动手,在水池边留下一段难忘的野炊记忆,友谊从这里开始</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_6.jpg" alt="2023年深圳Drupal聚会" /> 与会者签到</p><p>每一位签到的参会者将获赠一枚Drupal软件社区纪念币,这也是中国Drupal社区首次发行的纪念币,资金来自社区成员的赞助,极具收藏意义。</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_7.jpg" alt="2023年深圳Drupal聚会" /> 中国Drupal社区纪念币设计图</p><p>该币收集了诸多Drupal社区成员的反馈意见,由聚会主持人“云客”集成设计,精炼取舍后留下的各元素饱含深意,尤其是那句“世界开源,中国在我”,在金灿灿的纪念币上,无声的鼓励着那些为实现崛起之梦的中国软件奋斗者们:担当!躬身入局!敢为天下先!</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_8.jpg" alt="2023年深圳Drupal聚会" /> 纪念币实拍</p><p>这场聚会是纯公益的,感谢那些为中国开源软件事业慷慨解囊的赞助者们,是他们让这些得以实现,他们展现出的开源精神鼓励着每个人:“数字基座,共建共享,世界开源,中国在我”。</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_9.jpg" alt="2023年深圳Drupal聚会" /> 主持人开始发言</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_10.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>上午11点活动开始,大家围坐池畔,期待着活动开始,主持人致辞、分组,摘菜、野炊,大家跃跃欲试了</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_11.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>现场好生热闹,因Drupal而聚,和陌生的朋友一起野炊,是不是别有风味呢?以后就是老朋友了。</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_12.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>阳光明媚,天气正好,小姐姐的辣椒炒肉出锅了</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_13.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>溢于言表,平日里是玻璃幕墙后面的科技精英,周日聚会秒变大厨,生活的乐趣,多彩的人生</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_14.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>友谊的小船已经出发,和共建共享的开源社区一样,一起动手的成果,享用起来喜悦充实</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_15.jpg" alt="2023年深圳Drupal聚会" /> 开吃开吃,新朋友们,干杯</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_16.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>大合影,农场好玩,但别贪玩,没有被拍到的朋友们下次可得注意了;这张照片为中国Drupal发展记录新的一页,见证历史,见证中国软件科技从业者们留下的青春与无悔的路</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_17.jpg" alt="2023年深圳Drupal聚会" /> 主持人“云客”开启室内会议</p><p>户外活动结束后,聚会转入室内进行,分享交流、资源对接、前沿探讨、让新朋友带着新知识回家,感受世界前沿软件技术的魅力</p><p><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_18.jpg" alt="2023年深圳Drupal聚会" class="align-center" /></p><p>Drupal这个小水滴如今已是全球皆知,但任何繁华兴盛的开始,都如一小部分人在荒凉的戈壁中升起一堆火,然后四面八方的人靠过来,被接纳,一起取暖,然后众人一起捡拾柴火,让火焰更大,没有这些“抱薪者”们,希望的火苗将熄灭,他们应该被人们记住,一如既往,聚会设立了五座“抱薪者”奖杯,奖励给这些抱薪者们。</p><p>获奖条件:</p><ul><li>贡献(包括非技术贡献)有目共睹;</li><li>没有做出过危害社区的行为;</li><li>上届已获奖则不重复获奖;</li></ul><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_19.jpg" alt="2023年深圳Drupal聚会" /> 获奖者致辞</p><p>上届获奖者名单:叶卫文、宋瑞基、彭茂根、陈芝明、云客;本届获奖名单如下(排名不分先后,不代表贡献大小):<br />现场授奖:</p><ul><li>赵高欣:创办Drupal大学,以及晓安科技,丰富了社区生态和人才培养</li><li>黄绍鹏:历届深圳Drupal社区聚会活动筹办者之一,代码贡献者推广者</li><li>李嘉诚:资深Drupal开发工程师,贡献了微信、电商、社区活动等模块</li></ul><p>远程授奖:</p><ul><li>麦斌:中山大学网络信息中心老师,推动了Drupal在高校的普及,为生态发展提供了业务支持</li><li>晴空:百万字教程《听晴空讲Drupal主题》作者,深圳社区聚会组织者之一,创办爱码文档汇</li></ul><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_20.jpg" alt="2023年深圳Drupal聚会" /> Drupal抱薪者奖杯</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_21.jpg" alt="2023年深圳Drupal聚会" /> 嘉宾话题分享</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_22.jpg" alt="2023年深圳Drupal聚会" /> 嘉宾话题分享</p><p>深圳Drupal社区聚会视频集锦分享:</p><p class="text-align-center"><iframe src="//player.bilibili.com/player.html?aid=368016583&amp;bvid=BV1p94y1c72g&amp;cid=1386993442&amp;p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="100%" height="600px"> </iframe></p><p>对开源软件、对信息技术感兴趣的朋友,公益软件活动下次可别错过,您可以在微信地图或导航上搜索“Drupal”就能找到深圳Drupal社区基地的地址,欢迎新朋友,一起为中国开源软件事业加油。</p><p class="text-align-center"><strong>世界Drupal大会DrupalCon</strong></p><p>深圳Drupal聚会是一个地区性的聚会,于此对应的是世界Drupal大会,也称为DrupalCon,2023年10月17-20日在法国里尔举行,盛景回顾(更多:<a href="https://events.drupal.org/lille2023">https://events.drupal.org/lille2023</a>):</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_23.jpg" alt="2023年世界Drupal大会DrupalCon" /> 2023年世界Drupal大会DrupalCon</p><p class="text-align-center"><img src="/sites/default/files/DrupalMeet2023/DrupalMeet_24.jpg" alt="2023年世界Drupal大会DrupalCon" /> 2023年世界Drupal大会DrupalCon</p><p>世界Drupal大会视频花絮:</p><p class="text-align-center"><iframe src="//player.bilibili.com/player.html?aid=877818706&amp;bvid=BV1iN4y1z7fJ&amp;cid=1382463365&amp;p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true" width="100%" height="600px"> </iframe></p><p><strong>鸣谢:</strong><br />本次公益聚会得以进行,感谢那些为此捐赠的人们,以及组织活动的义务工作者和相关公司。</p><p> </p><p> </p></div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=414&amp;2=comment&amp;3=comment" token="ffU_X32pmtgObVTIZXIKKgpg11ChMVyACx616CpqhWM"></drupal-render-placeholder> </div> </div> </section> Sat, 30 Dec 2023 08:35:52 +0000 yunke 414 at http://www.indrupal.com http://www.indrupal.com/index.php/node/414#comments 好友“晴空” http://www.indrupal.com/index.php/node/412 <span>好友“晴空”</span> <span><span>yunke</span></span> <span><time datetime="2023-12-20T10:05:07+08:00" title="2023-12-20 10:05 星期三">周三, 12/20/2023 - 10:05</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>一位从未线下见过面,却又神交以往的朋友,平时不怎么说话,在深圳Drupal社区聚会筹备时又给社区捐款来了,不是富二代,却很康概</p><p>对于“晴空”我不知道说什么,可能是要说的太多了,在我写《云客Drupal源码分析》的那六七年时间里,他也在写《听晴空讲Drupal主题》,也是上百万字的付出,当时我讲的是后端开发所以只是写了文字,但他是讲的前端,所以为了更加直观,他还录制了视频,工作量更大,我们俩保持一周一篇的发布频率,全身心的投入教程工作。</p><p>我们都没有收益,凭的全是情怀和对技术的热爱,就像两个背包客站到山顶看到了山外一片繁花似锦,忍不住的回头大喊:“你们快来这里!有好东西!”,这就是中国现存Drupal8及以后唯一两部成体系百万字教程的由来,这个过程是很难的,很多时候也是孤独的,所以那时候我们俩会经常聊天,有个伴,相互知道对方在做什么,相互支持,心里好太多,由于晴空在国外,至今我们都没有在线下见过面,但这种交往已是多年的知己。</p><p>在2023年,我又录制了《低代码开发Drupal入门》视频教程,在录制视频的过程中更深刻的感受到当年晴空录制视频的不易,很怀念那些年的时光和他,现在我们基本上把Drupal的前端、后端、入门讲清楚了,晴空还建立了“爱码文档汇”网站(nowicode.com是专门的Drupal教程站)。</p><p>我们很自豪做了这些,从二十多岁,到现在年过四十,把青春都献给了技术,我很快乐,因为这就是在践行我说的“人的一生,留下比得到更加重要”,希望晴空也幸福,未来,我们也不会停息,只是责任从技术迁移到了国家,看到了我国在开源领域的风险,会去唤醒对此风险处于未知的人们,去培养和我们那时一样的年轻人。</p><p>中国一定要在世界开源领域起到主导作用,我们必须躬身入局,路还好远好远,大家来一起努力,让我们的文化崛起,让我们尽力为文明留下些许美好。</p><p>&nbsp;</p></div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=412&amp;2=comment&amp;3=comment" token="ylgREJmWua4dG71o47RcAhs6Wb14xNX87xolS0arLts"></drupal-render-placeholder> </div> </div> </section> Wed, 20 Dec 2023 02:05:07 +0000 yunke 412 at http://www.indrupal.com http://www.indrupal.com/index.php/node/412#comments 如何清理Drupal主机储存空间 http://www.indrupal.com/index.php/node/411 <span>如何清理Drupal主机储存空间</span> <span><span>yunke</span></span> <span><time datetime="2023-11-22T11:12:56+08:00" title="2023-11-22 11:12 星期三">周三, 11/22/2023 - 11:12</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>双十一刚过,阿里云等等平台推出了比较优惠的云主机,但储存空间只有40GB,这也导致许多Drupal学员因为储存空间问题产生困扰,刚装时好好的,运行一段时间后怎么储存空间就不够用了?本文针对主要问题教你清理储存空间。</p><p>当主机储存空间爆满后,Drupal网站在设置为不显示错误详情时,会提示遇到不可知问题无法访问,连后台都进入不了,此时可以远程登录服务器,删除一些不要的文件,这样就可以短暂恢复访问了,因此平时可以放几百兆的无用文件在服务器上,以应对这个问题。</p><p><strong>删除及禁用Drupal缓存:</strong></p><p>然后马上登录网站后台,去删除缓存(管理-配置-开发-性能-清空所有缓存),缓存是Drupal储存空间的消耗大户,耗费空间的主要原因之一,存在目的是加速网站访问,以空间换时间,如果你实在不想增加储存空间,缓存又增长过快,那么可以禁用缓存,这里以最大的页面缓存(缓存表为:cache_page)为例来讲解如何做:</p><p>打开配置文件(默认为sites\default\settings.php),在末尾加上这一行:</p><pre><code class="language-plaintext">$settings['cache']['bins']['page']="cache.backend.memory";</code></pre><p>这代表将page缓存储存到内存中去,这样就不会占用硬盘空间了(实际上更好的办法是储存到NULL缓存中去,但系统没有提供现成的服务,不过提供有NULL缓存类,可以去自定义一个NULL缓存服务)</p><p><strong>禁用数据库二进制日志:</strong></p><p>另一个储存空间消耗大户就是数据库的二进制日志文件,可以达到几十GB,在MYSQL 8.0中默认是开启的</p><p>首先将Mysql添加到系统环境变量中去,假设用的是Win服务器,可以右击“此电脑”,然后选:属性-高级系统设置-环境变量-找到Path然后点击编辑,将mysql的安装路径添加进去,最后保存</p><p>打开命令行终端登录数据库 &nbsp;:</p><pre><code class="language-plaintext">mysql -u root -p</code></pre><p>接着输入密码进入</p><p>查询二进制日志是否处于打开状态:</p><pre><code class="language-plaintext">SHOW VARIABLES LIKE 'log_bin';</code></pre><p>如果是打开的,那么删除这些二进制日志(在开启二进制日志的情况下才有效),命令如下:</p><pre><code class="language-plaintext">RESET MASTER;</code></pre><p>长久关闭二进制日志,打开数据库配置文件(my.ini),添加:</p><pre><code class="language-plaintext">skip-log-bin或disable-log-bin</code></pre><p>然后重启,暂停二进制日志可以使用以下命令:</p><pre><code class="language-plaintext">SET SQL_LOG_BIN=0;</code></pre><p>&nbsp;</p><p>以上是耗费空间的两个主要原因,通过如上处理,Drupal服务器的大部分储存空间就清理出来了</p><p>&nbsp;</p><p>&nbsp;</p></div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">交流互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=411&amp;2=comment&amp;3=comment" token="g0oEmheXRX1D3iWvm3XKDV53Tx0C_avnEcbOqa5wDTI"></drupal-render-placeholder> </div> </div> </section> Wed, 22 Nov 2023 03:12:56 +0000 yunke 411 at http://www.indrupal.com http://www.indrupal.com/index.php/node/411#comments 为什么有时候开发难以按预期完成? http://www.indrupal.com/index.php/node/410 <span>为什么有时候开发难以按预期完成?</span> <span><span>yunke</span></span> <span><time datetime="2023-08-26T11:21:26+08:00" title="2023-08-26 11:21 星期六">周六, 08/26/2023 - 11:21</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>水滴间网站现已升级到Drupal10,默认主题已随之切换为olivero主题,这里以升级过程中遇到的一个问题来说明:为什么有时候开发难以按预期完成,问题描述如下:</p><h5 class="text-align-center">BigPipe模块导致olivero主题在导航菜单中,点击搜索图标不弹出搜索表单的问题</h5><p>升级Drupal 10 后,发现点击导航栏中的搜索放大镜图标无法弹出搜索表单,浏览器控制台显示以下错误:</p><pre><code class="language-plaintext">Uncaught TypeError: Cannot read properties of null (reading 'classList')</code></pre><p>排查过程如下:&nbsp;<br>最直接的原因是web\core\themes\olivero\js\search.js文件的第10-12行代码:</p><pre><code class="language-javascript"> const searchWideWrapperSelector ='[data-drupal-selector="block-search-wide-wrapper"]'; const searchWideWrapper = document.querySelector(searchWideWrapperSelector);</code></pre><p>无法找到这个搜索表单包装元素,但在浏览器控制台中查看是有这个元素的</p><p>然后查看源代码,发现这个搜索表单元素被BigPipe模块做了处理,此时你需要知道BigPipe模块的作用:</p><p>它将不耗时的静态内容先发送给浏览器,以便浏览器尽快有所显示,避免用户等待着急,而将页面中耗时的动态内容先用占位符替换,等浏览器渲染完页面后,再从后端拉取那些动态内容来替换之前放置的相应占位符。</p><p>换句话说:BigPipe模块就是将内容分批发送,以便浏览器尽快显示,而传统方式是将内容一次性发送,这样做的目的是尽可能快的显示页面,提高用户体验。</p><p>之所以搜索js找不到表单包装元素而浏览器控制台中能看到,就是因为查找时机发生在动态内容替换占位符之前,此时尚未替换,当然就找不到,所以报错无法弹出搜索表单了。</p><p>那么BigPipe模块为什么要把搜索表单识别成动态内容加以处理呢?默认情况下是不会这样的,进一步排查,是因为“yunke_captcha”模块为所有的表单元素添加了缓存元数据(这样做的目的是验证码配置变动后及时让表单响应更新,逻辑上是没有问题的),正是因为向表单元素添加了缓存元数据这个动作,导致了BigPipe模块将搜索表单元素识别为动态内容,从而进行了处理,进而导致了搜索表单无法弹出。</p><p>一个JS错误,想不到会牵扯到两个模块和缓存系统。</p><p>这是一个非常典型的故障排除案例,一个小故障导致一连窜的分析检查,所以,为什么说开发有时候难以按预期完成进度?就是因为不知道有什么坑在前方等着,也不知道会为此耗去多少时间去查阅那些本不用查阅的资料</p><p>目前“yunke_captcha”模块已对该问题做了规避,为此发布了2.4版本</p><p>但该问题并不是“yunke_captcha”模块的bug,而是olivero主题和BigPipe模块需要改进,尤其是BigPipe模块需要添加排除处理的方法,云客针对该问题已向Drupal官方提交修复建议</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p></div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">交流互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=410&amp;2=comment&amp;3=comment" token="oOijBNrAcwacW5Jzi9cdJXhDUcT6-I1gZG11Qg1hiRA"></drupal-render-placeholder> </div> </div> </section> Sat, 26 Aug 2023 03:21:26 +0000 yunke 410 at http://www.indrupal.com http://www.indrupal.com/index.php/node/410#comments Drupal 9 升级到 Drupal 10 干货详解 http://www.indrupal.com/index.php/node/408 <span>Drupal 9 升级到 Drupal 10 干货详解</span> <span><span>yunke</span></span> <span><time datetime="2023-08-23T19:15:04+08:00" title="2023-08-23 19:15 星期三">周三, 08/23/2023 - 19:15</time> </span> <div class="text-content clearfix field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>首先,升级到Drupal 10前,需要先升级到Drupal 9.5 ,升级到Drupal 9.5比较容易,属于大版本内升级,具体过程这里略过</p> <p>升级到Drupal 9.5后,安装CKEditor 5模块,并在“管理-配置-内容写作-文本格式和编辑器”中,在用到富文本编辑器的条目中,手动更新CKEditor 4 到 CKEditor 5</p> <p>然后,如果安装了以下这些被弃用的模块,那么卸载它们:</p> <ul> <li>CKEditor (CKEditor 4)</li> <li>Color</li> <li>RDF</li> <li>Quick Edit</li> <li>HAL</li> </ul> <p>安装启用新的默认主题并重新设置主题,卸载弃用的主题</p> <p>接着升级所有模块到兼容D10,然后运行下方命令升级核心到Drupal 10:</p> <pre> <code class="language-bash">composer require drupal/core-recommended:10.0.0 drupal/core-composer-scaffold:10.0.0 drupal/core-project-message:10.0.0 --update-with-all-dependencies</code></pre> <p>现在代码库已经升级到D10了,接着升级数据库:<br /> 先修改配置文件(settings.php)中的:$settings['update_free_access'] 项的值为TRUE,这样将允许你在不登录维护账号的情况下也能执行升级脚本,后续完成升级后记得改回: false<br /> 运行升级脚本:update.php</p> <p>顺利的话,现在你已经升级到Drupal 10了,可以继续升级到最新版本的Drupal 10</p> <p>现在做一些升级完成的善后工作:<br /> 1、使用Apache的用户注意:.htaccess 文件有改变,需要在新的文件上手动添加自定义的部分内容<br /> 2、默认的robots.txt文件已更新为不允许索引oEmbed媒体链接,替换该文件,有自定义部分则手动合并<br /> 3、站点services.yml文件有更新,需要手动合并<br /> 4、修改前述$settings['update_free_access'] 项的值为false<br /> 5、进入系统后台,查看状态报告页面以及日志页面,看是否有其他问题,一并修复</p> <p><strong>Drupal 10 运行环境要求:</strong><br /> php版本需要:PHP 8.1或者更高<br /> 由于 8.1.0 到 8.1.5有一个OPcache方面的bug,所以推荐8.1.6以上版本</p> <p>数据库:<br /> MySQL 或 Percona 5.7.8.<br /> MariaDB 10.3.7</p> <p>浏览器支持:<br /> Internet Explorer 11不再被支持</p> <p>Composer要求:<br /> Drupal 10推荐Composer版本在2.3.6或更高</p> <p>&nbsp;</p> <p><strong>补充说明:</strong><br /> 1、在不卸载模块的情况下,如果你需要移动模块位置,可以直接移动,然后运行一次升级脚本即可<br /> 注:如果是卸载方式移动会导致模块配置丢失,在有复杂依赖时,情况更糟,此知识点可以帮你避免这一点</p> <p>2、官方升级指导页:<br /> https://www.drupal.org/project/drupal/releases/10.0.0</p> <p>&nbsp;</p> <p>&nbsp;</p> </div> <section data-drupal-selector="comments" class="comments"> <h2 class="comments__title">交流互动</h2> <div class="add-comment"> <div class="add-comment__form"> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=408&amp;2=comment&amp;3=comment" token="1FLCSGVj7xXhPvRbOQmZwOODH-n4t0MiFgzaleT8XXk"></drupal-render-placeholder> </div> </div> </section> Wed, 23 Aug 2023 11:15:04 +0000 yunke 408 at http://www.indrupal.com http://www.indrupal.com/index.php/node/408#comments