How to build your own sub-theme (7.x-3.x)

The base Zen theme is designed to be easily extended by its sub-themes. You shouldn't modify any of the CSS or PHP files in the zen/ folder; but instead you should create a sub-theme of zen which is located in a folder outside of the root zen/ folder. The examples below assume zen and your sub-theme will be installed in sites/all/themes/, but any valid theme directory is acceptable (read the sites/default/default.settings.php for more info.)

IMPORTANT NOTE: In Drupal 7, the theme system caches which template files and which theme functions should be called. This means that if you add a new theme, preprocess or process function to your template.php file or add a new template (.tpl.php) file to your sub-theme, you will need to rebuild the "theme registry." See http://drupal.org/node/173880#theme-registry

Drupal 7 also stores a cache of the data in .info files. If you modify any lines in your sub-theme's .info file, you MUST refresh Drupal 7's cache by simply visiting the Appearance page at admin/appearance.

  1. Setup the location for your new sub-theme.

    Copy the STARTERKIT folder out of the zen/ folder and rename it to be your new sub-theme. IMPORTANT: The name of your sub-theme must start with an alphabetic character and can only contain lowercase letters, numbers and underscores.

    For example, copy the sites/all/themes/zen/STARTERKIT folder and rename it as sites/all/themes/foo.

    Why? Each theme should reside in its own folder. To make it easier to upgrade Zen, sub-themes should reside in a folder separate from the base theme.

  2. Setup the basic information for your sub-theme.

    In your new sub-theme folder, rename the STARTERKIT.info.txt file to include the name of your new sub-theme and remove the ".txt" extension. Then edit the .info file by editing the name and description field.

    For example, rename the foo/STARTERKIT.info file to foo/foo.info. Edit the foo.info file and change "name = Zen Sub-theme Starter Kit" to "name = Foo" and "description = Read..." to "description = A Zen sub-theme".

    Why? The .info file describes the basic things about your theme: its name, description, features, template regions, CSS files, and JavaScript files. See the Drupal 7 Theme Guide for more info

    Then, visit your site's Appearance page at admin/appearance to refresh Drupal 7's cache of .info file data.

  3. Choose your preferred page layout method or grid system.

    By default your new sub-theme is using a fixed-width layout. If you want a liquid layout for your theme, delete the unneeded layout-fixed.css and layout-fixed-rtl.css files and edit your sub-theme's .info file and replace the reference to layout-fixed.css with layout-liquid.css.

    For example, edit foo/foo.info and change this line:
    stylesheets[all][]   = css/layout-fixed.css
    to:
    stylesheets[all][]   = css/layout-liquid.css

    Why? The "stylesheets" lines in your .info file describe the media type and path to the CSS file you want to include. The format for these lines is: stylesheets[MEDIA][] = path/to/file.css

    Alternatively, if you are more familiar with a different CSS layout method, such as Blueprint or 960.gs, you can replace the "css/layout-fixed.css" line in your .info file with a line pointing at your choice of layout CSS file.

    Then, visit your site's Appearance page at admin/appearance to refresh Drupal 7's cache of .info file data.

  4. Edit your sub-theme to use the proper function names.

    Edit the template.php and theme-settings.php files in your sub-theme's folder; replace ALL occurrences of "STARTERKIT" with the name of your sub-theme.

    For example, edit foo/template.php and foo/theme-settings.php and replace every occurrence of "STARTERKIT" with "foo".

    It is recommended to use a text editing application with search and "replace all" functionality.

  5. Set your website's default theme.

    Log in as an administrator on your Drupal site, go to the Appearance page at admin/appearance and click the "Enable and set default" link next to your new sub-theme.

    Optional steps:

  6. Modify the markup in Zen core's template files.

    If you decide you want to modify any of the .tpl.php template files in the zen folder, copy them to your sub-theme's folder before making any changes. And then rebuild the theme registry.

    For example, copy zen/templates/page.tpl.php to foo/templates/page.tpl.php.

  7. Modify the markup in Drupal's search form.

    Copy the search-block-form.tpl.php template file from the modules/search/ folder and place it in your sub-theme's template folder. And then rebuild the theme registry.

    You can find a full list of Drupal templates that you can override in the templates/README.txt file or http://drupal.org/node/190815

    Why? In Drupal 7 theming, if you want to modify a template included by a module, you should copy the template file from the module's directory to your sub-theme's template directory and then rebuild the theme registry. See the Drupal 7 Theme Guide for more info.

  8. Further extend your sub-theme.

    Discover further ways to extend your sub-theme by reading Zen's documentation and Drupal 7's Theme Guide.

Build Your Own X: 通过实践深入理解技术的开源项目 Build Your Own X 是一个开源项目,收集了一系列精心编写的、分步骤的指南,让开发者能够重现现代技术的核心功能。无论你是想构建一个 3D 渲染器,还是想了解区块链的工作原理,或者甚至想创建自己的编程语言,这个项目都能为你提供指导。项目的核心理念是"通过构建来学习"。通过亲手重现各种技术,开发者不仅能获得实践经验,还能深入理解这些技术的内部工作机制。这种学习方式特别适合那些希望超越表面知识,真正掌握技术本质的人。Build Your Own X 为热爱学习和挑战自我的开发者提供了一个绝佳的平台。 阅读详情

相关推荐

build-your-own-x-chinese:build-your-own-x-中文

[TOC] build your own x 项目中文翻译 为什么有这个项目? 偶然发现一个很酷的项目: 以前阅读过一本书,叫 buid your own angularjs,受益匪浅。 对于那些喜欢研究轮子的,这个系列简直太棒! 因为本人目前是一名前端,所以先从前端框架入手。 gitbook 线上地址: 前端框架 未分类

【开源项目】Build your own X 构建自己的项目

可以看到包含了非常多的技术,包括3D渲染器,增强现实,区块链,加密货币,命令行工具,数据库,Docker,Git,虚拟机,游戏,操作系统,物理引擎,搜索引擎,Shell,文本编辑器,Web浏览器,Web服务器等等。通过学习这个项目帮助我们更好地理解很多软件和系统的工作原理,深入了解所涉及的技术,从而提高我们的各种工作技能和相关知识,进而更好地应用它们。可以看到一个如何构建自己的数据库的教学指南,这份教学非常的详细,这可以帮助我们更好地理解这个项目的实现细节和背后的原理。

5656

5分钟快速搭建:使用ros1_bridge实现ROS2容器与ROS1主机的无缝通信

本文详细介绍了如何在5分钟内快速搭建基于ros1_bridge的通信方案,实现运行在Docker容器中的ROS2节点与宿主机ROS1系统的无缝数据交换。通过环境隔离、Docker容器化部署及选择性桥接配置,该方案能有效整合新旧系统,避免大规模代码重构,是机器人项目渐进式升级的实用策略。

weixin_29268637的博客 179

2025-02-13 Github 热点项目 build-your-own-x 从零开始构建:深入编程实践指南

build-your-own-x 能让你通过从零开始重写自己喜欢的技术来掌握编程,这种学习方式太有成就感了!就像自己动手组装一台电脑,每一步都清清楚楚,你不仅能深入理解技术原理,还能在过程中发现自己的不足,然后针对性地提升。而且,这个项目的资源超丰富,涵盖了各种热门技术,不管你是什么水平的程序员,都能在这里找到适合自己的项目来练手。

opentrending的博客 4794

YOLO-FastestV2从零部署到移动端推理实战手册

本文详细介绍了YOLO-FastestV2从零开始的完整部署流程,涵盖环境搭建、模型训练、格式转换及移动端部署。通过实战步骤,指导开发者将这一轻量级目标检测模型成功部署到Android设备,实现实时推理。文章重点解析了PyTorch到NCNN的模型转换与优化,助力移动端AI应用开发。

l1k9j8h7g6的博客 668

小白学习微信小程序的图像识别和文字识别技术

其中,type参数指定了识别的类型,imageUrl参数指定了图片的地址,success回调函数用于处理识别成功的结果,fail回调函数用于处理识别失败的情况。其中,type参数指定了识别的类型,imageUrl参数指定了图片的地址,success回调函数用于处理识别成功的结果,fail回调函数用于处理识别失败的情况。下面,我们来实现一个文字识别的应用案例,可以识别一张图片中的文字,并将识别结果显示到小程序的页面上。在小程序中,也可以使用微信提供的文字识别接口,实现文字识别的功能开发。

qq_67153941的博客 1643

【亲测免费】 构建你自己的技术世界:开源项目“Build your own X”深度解析

构建你自己的技术世界:开源项目“Build your own X”深度解析 项目介绍 “Build your own X”是一个开源项目,旨在通过一系列精心编写的、逐步指南,帮助开发者从零开始重新创造他们喜爱的技术。这个项目不仅仅是一个教程集合,它是一个实践的平台,让开发者通过亲手实现各种复杂的技术,从而深入理解其背后的原理和机制。正如著名物理学家理查德·费曼所说:“我不能创造的东西,我就不理解。...

gitblog_00974的博客 1610

Cesium高效渲染海量GeoJSON数据的7种优化策略与实战解析

本文深入解析Cesium高效渲染海量GeoJSON数据的7种优化策略,包括瓦片化转换、LOD分级加载、数据简化等关键技术。通过实战案例展示如何解决渲染卡顿问题,提升矢量数据加载性能,实现流畅的60FPS交互体验。特别针对GeoJSON大数据量场景提供完整优化方案。

h0i1j2k3l的博客 934

开源项目:build-your-own-x 从零实现系统的工程师进阶指南

GitHub开源项目build-your-own-x提供了一个独特的学习路径,通过"自己动手实现"的方式深入理解系统原理。该项目包含数据库、操作系统、编译器、Web服务器等实现教程,帮助工程师跨越从"会用"到"会造"的鸿沟。项目按系统类型分类,每个模块都包含原理讲解、最小实现和优化方向。推荐从Web Server、Redis等入手,逐步挑战Database、Compiler等复杂系统。该项目特别适合中高级工程师和架构师,通过实际造轮子来提升对系统本

木头 2877

逆向实战:基于内存态匿名段分析的 DexProtector 检测绕过策略

本文深入探讨了针对DexProtector加固方案的Frida检测绕过策略。通过分析运行时动态加载到匿名内存段的核心检测逻辑,提出了一套基于内存态分析、定位并转储匿名可执行段,进而通过精准Hook与“等式化替换”等技术实现稳定绕过的实战方法。该方法不仅适用于DexProtector,也对采用类似内存隐藏技术的加固方案具有参考价值。

ik678901的博客 514

用AnythingLLM搭建私人RAG知识库:从入门到实战调优指南

大型语言模型虽然知识渊博,但无法触达私有文档中的具体内容,这正是检索增强生成(RAG)技术的核心价值所在。RAG通过先将文档切块并向量化,再在提问时检索最相关的片段拼接给模型,让AI基于指定资料精准回答,无需昂贵的模型微调。这种架构不仅让知识更新即时生效,还大幅降低了私有化部署的门槛。在实际工程中,RAG的落地需要合理选择嵌入模型、设计分块策略并调优检索参数,才能避免答非所问。对于个人或小团队,使用开源工具搭建本地知识库是最省心的路径,其中AnythingLLM以其开箱即用的特性,成为连接向量检索与模型推理

weixin_29062671的博客 228

build-your-own-x 实践指南:从零重造常用技术工具弄懂原理

build-your-own-x 是一份“从零重造”类教程的精选合集,收录了数百篇手把手重建数据库、编译器、操作系统等常见技术的分步指南,适合想弄懂工具背后实现原理的开发者使用。 ## 项目简介 这个项目不是一个可直接运行的代码库,而是一份经过筛选的教程索引。每一条都指向社区作者写好的动手教程,主题从百来行的 Web 服务器到完整的操作系统内核都有,语言覆盖 C、Go、Python、Rust、

gitblog_01122的博客 735

vue2/3 - H5 移动端网页中调用手机摄像头扫描二维码 / 条形码功能,在h5手机网页里调起相机摄像头进行二维码或条形码扫描效果详细教程(详细示例组件源码,一键复制开箱即用!)

vue扫描二维码条形码,vue网页调用摄像头扫二维码条形码,vue移动端如何实现调用相机扫描二维码,vue移动端扫一扫功能,vue怎么做移动端h5扫一扫功能,vue识别二维码和条形码,vue实现点击按钮调用摄像头扫码,vue调用本地摄像头实现拍照功能,Vue中如何进行二维码生成与扫描,如何实现vue在手机浏览器中调用摄像头实现扫描二维码功能,VUE项目移动端H5调用摄像头扫码,vue项目中实现H5调取摄像头,网页调用摄像头实现二维码扫描功能,vue调用手机摄像头,vue在调用摄像头扫码,vue自定义打开摄像

✅ 精选推荐文章 1万+

Build Your Own X 从零构建指南:30+ 个方向,亲手重写你每天在用的技术

面试被问"数据库索引为什么常用 B+ 树",你答了个大概,细节却说不清。用过,不等于写过。Build Your Own X 解决的就是这个问题:它把"从零构建一个技术"的分步教程收进一个仓库,覆盖 30 多个方向,让你亲手把天天在用的东西再写一遍。 ## 仓库里有什么:一份 30+ 方向的教程目录 它不是单个教程,而是一个精选索引——一份 [README.md](https://link.gi

gitblog_00910的博客 1068

姿态传感器/陀螺仪之BMI270应用原理图设计

BMI270是一款由博世(Bosch)推出的高性能、超低功耗惯性测量单元(IMU),专为可穿戴设备、智能设备及物联网应用设计。

corlin6688的博客 2862

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

build-your-own-x 从零实现指南:5 步手写你的第一个技术组件

build-your-own-x 是一个"从零重建经典技术"的源码级教程合集:数据库、编译器、操作系统、Git、Web 服务器、神经网络……每个主题都配一份分步教程,让你亲手把轮子造一遍。它不教你调 API,而是教你回答"这东西里面到底怎么转"。 ## 它解决什么问题 大多数文档告诉你"怎么用",很少告诉你"为什么这么用"。你在项目里写过 SQL、调过 socket,但一旦面试官问起"数据库的

gitblog_00067的博客 766

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

build-your-own-x:从零复刻自己的技术栈完整指南(30 个领域教程清单)

build-your-own-x 是一个面向开发者的"复刻教程"索引:它把 389 篇分步指南按领域归档,教你亲手造出数据库、Web 服务器、编译器、操作系统等平时只拿来用的东西。本文不按技术门类平铺这些教程,而是按"你最终能做出什么"拆成入门、进阶、挑战三条路径,并给出 3 步最小上手方法,帮你在一小时内选定第一篇跟写。 ## 30 个领域、389 篇教程、30 多种语言:它值不值得投入时间

gitblog_00838的博客 987

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Build Your Own X 完整指南:从零构建数据库、操作系统与编译器

Build Your Own X 是一个免费、精选的"从零构建"教程合集,覆盖数据库、操作系统、编译器、神经网络、区块链等 30 多个技术领域。跟着分步教程亲手把每天在用的工具重新实现一遍,原理就会长进脑子里。 ## 按 30 多个技术领域组织的教程库 项目理念来自费曼的名言:我无法创造的,就不是真正理解的。仓库主体是一份超大型教程索引,按 30 多个类别组织:3D 渲染器、AI 模型、Bit

gitblog_00329的博客 876

如何用 build-your-own-x 快速从零实现数据库、编译器与操作系统:一份面向新手的完整实践指南

想搞懂一个技术,最快的办法是亲手把它造一遍。build-your-own-x 就是为这件事准备的「从零构建」教程合集:数据库、Git、操作系统、编译器,全都有分步教程。适合想跳出"只会调 API"的开发者与新手。 ## 初见:这个「从零构建」合集好在哪 先说结论:它不教某个框架怎么用,而是让你把"听说过"变成"做出来过"。仓库里引用过费曼的那句话——我不能创造的,我都不理解,这 29 个方向就

gitblog_00091的博客 434

从零开始构建技术工具:build-your-own-x终极实践指南

你是否曾经面对这样的困境:每天都在使用各种开发工具,却对其内部原理一无所知?想要深入理解技术本质,却苦于找不到合适的学习路径?这个开源项目正是为你量身打造的技术学习宝库,通过亲手实践教程让你真正掌握核心技术。 ## 开发者痛点:为什么我们需要亲手构建技术工具 在当今快速发展的技术领域,很多开发者陷入了"只会用不会造"的困境。我们使用数据库却不知道其存储机制,操作Git却不理解其版本控制原理,部

gitblog_00422的博客 278

3步跑通 Build Your Own X:从零构建 Web 服务器与数据库的手把手册

面试里你被问"从请求进数据库到存下一行数据,中间发生了什么",可能只能答出 API 层面的调用。Build Your Own X 围绕"从零构建"整理的教程索引,不收教你使用技术的资料,而是收集上百篇带你亲手复刻技术底层实现的教程,让你把原理写进自己的代码里。 ## 核心能力拆解 ### 按技术领域划分的教程索引 仓库主体就是 README.md,内容是一张"目录 + 教程链接":数据库、W

gitblog_00928的博客 533

从零构建你的第一个技术项目:Build Your Own 系列完整指南

你有没有好奇过数据库到底怎么存数据,编译器怎么把代码变成程序?Build Your Own X 汇集了 30 多个"从零实现"的分步教程,让你亲手重建熟悉的技术,把原理变成自己的东西。🔧 ## 你能亲手构建什么 仓库把所有教程按技术方向归类,你按关键词就能找到赛道。三个方向最值得下手: - **系统底层**:操作系统、Shell、网络栈、处理器 - **应用开发**:数据库、Web 服务器

gitblog_00967的博客 421

自己动手写一遍:用build-your-own-x把黑盒变白盒

很多开发者学了大量理论,却难以独立构建一个完整的系统。这背后是从“消费知识”到“生产知识”的转变问题。工程能力的提升,必须依靠亲手实现来驱动。build-your-own-x正是这样一套方法论:它将Redis、Git等成熟系统拆解为可独立实现的核心模块,用最小化、可验证、白盒化的方式,让学习者从使用者视角切换为实现者视角。通过动手实现一个支持SET/GET/DEL的迷你Redis,理解TCP服务、RESP协议和并发模型;通过解析Git对象格式,掌握内容寻址与对象存储。这种项目制学习不仅填补了常规学习路径的空

weixin_34280237的博客 333

Build your own x:从零造一遍,才是真学会

《Build your own x:从零造一遍才是真学会》介绍了GitHub上一个52万Star的热门仓库,它汇集了各类「从零实现技术项目」的优质教程。该仓库按技术领域分类,涵盖数据库、AI、操作系统等30多个方向,提供不同编程语言的实践指南,旨在通过动手构建帮助开发者深入理解技术原理。文章指出,这类教程能有效弥补文档与源码之间的学习鸿沟,尤其适合学生、工程师和面试者。仓库自2016年持续维护,由社区共同筛选内容,解决了开发者寻找可靠实践资源的需求。

mofushan681的博客 264

从零构建技术栈:30+实战项目带你深入理解核心技术原理

你是否曾对现代技术栈感到好奇,想知道它们是如何从零开始构建的?build-your-own-x项目正是为那些渴望深入理解技术底层原理的开发者准备的终极学习资源库。这个开源项目汇集了从3D渲染器到区块链、从数据库到操作系统的详细构建指南,让你能够亲手打造属于自己的技术栈,真正掌握技术的本质。 ## 🎯 为什么需要从零开始构建技术? 在快速发展的技术世界中,我们常常成为各种框架和工具的使用者,却

gitblog_00605的博客 317

kraken-cli行情命令速查清单:ticker、订单簿、K线、价差一条命令全搞定

**kraken-cli** 是一个专为 Kraken 交易所打造的 AI 原生交易命令行工具,内置 ticker 行情、orderbook 订单簿、ohlc K线、spreads 价差等 **6 条核心行情命令**。最大亮点:所有行情命令都是**公开接口**,无需 API Key,装好就能查币价、看深度、拉K线,一条命令搞定。 ## 📥 快速上手:零密钥安装 kraken-cli krak

gitblog_01096的博客 153
上一篇: PHP开源CMS-Drupal做视频站点(第1版)
下一篇: Drupal配置Send mail(drupal发送邮件)
xinlanzero
博客等级 码龄25年 10粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值