用户登录

打开前面创建的 ninghao_admin 这个子主题,在它的下面新建一个文件,命名成 template.php ,在这个文件里我们可以添加一些自己的东西到主题里,或者覆盖,更改主题,还有其它模块里提供的一些主题功能。

先用一个 php 的开始标记,下面我要做的是添加一个样式表,这个样式表里的样式就是覆盖掉了 adminimal 主题里的一些样式。

这里用一个 template_preprocess_html ,这是一个预处理的钩子,在使用 html.tpl.php 这个模板文件的时候会调用它,前面的 template 要换成主题的名字,就是 ninghao_admin,后面是 preprocess_html .. 函数会用引用的方式接收到一个参数,就是 &$variables ..

在它里面我们可以先得到这个主题的路径 , $theme_path 等于,得到模块或者主题的路径可以使用 drupal_get_path,要得到的是主题的名字,所以第一个参数是 theme,如果要得到模块的路径 ,它的值应该是 module ,后面是主题或者模块的名字, nignhao_admin

$theme_path = drupal_get_path('theme', 'ninghao_admin');

添加样式表,可以使用 drupal_add_css .. 第一个参数是样式表的路径,用当前主题的路径,加上 /css/ ,样式表的名字是 style.css ..

这个样式表会替换掉这个主题的父主题 adminimal 里面的 style.css 的样式表。

这个函数的第二个参数可以是一些选项,把它们放到一个数组里, 用一个 group ,设置成 CSS_THEME,这个值可以决定添加的这个 CSS 样式表的先后顺序,再用一个 media,设置成 all,表示在所有设备上都使用这个样式表,最后可以再用一个 weight 选项,它的值设置的大一些,比如 1000 ,因为我们添加这样式表是覆盖用的,所以可以让它的位置往下一些,这样才能保证覆盖的样式生效。

drupal_add_css($theme_path . '/css/style.css',
[
'group' => CSS_THEME,
'media' => 'all',
'weight' => 1000
]);

保存 ... 在 ninghao_admin 这个主题下面创建一个样式表,css/style.css ,把要覆盖掉的样式放到这个样式表里 ... 再保存一下。

再打开 adminimal_theme,css,复制一下里面的 images 目录,选中这个目录,按一下 d ,把它放到 ninghao_admin 下面的 css 这个目录的下面。再复制一下主题根目录下的这个 images 目录,把它放到 ninghao_admin 的根目录下 ...

清空一下缓存。 再回到后台刷新一下 ... 现在后台就应用了我们覆盖的样式,查看一下源代码 ... 搜索 style.css,你会看到这个样式表是来自 ninghao_admin 这个主题。

回到终端,再去提交一下对项目的修改。

git add .
git commit -m '自定义 ninghao_admin'

https://bitbucket.org/snippets/ninghao/5yRxM/ninghao-admin

https://api.drupal.org/api/drupal/includes%21theme.inc/function/template...
https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_...
https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_...

自定义管理后台的样式《 创建宁皓网 #1:准备 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点