欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal模板解析及实站教程 蓝雨路

shiping1 的头像

1)如果使用 smarty引擎 ,则在 themes\engines 文件夹下
建一个文件夹 smarty 把引擎文件放在这个文件夹下
2)数据库连接修改
在 sites/default/settings.php
大约 91行 进行配置 数据库 用户名 密码
3)主题文件构成
 图片,css,js,php模板文件,info文件
(info文件名和目录要保持一致)
(我做的时候 就是复制一个info文件,作相应的修改就可以了)
template.php(主题函数的覆写)
(function 主题名_pager()  这个就是分页的函数)
.tpl.php
(page.tpl.php整个模板文件,
node.tpl.php是节点文件
block.tpl.php是控制区块输出的文件
comment.tpl.php是评论输出的文件
我们主要通过这四种来延伸出不同的文件)
4)cck模块是用来扩展内容模型的 扩展内容模型的字段
5)views 模块是可视化的查询数据库的工具
6)fileupload模块是属于cck系列的
7)imagefield图片字段模块也是属于cck系列的
8)nodeformcols是控制节点格式的模块
在内容模型的管理字段就会多出 manageform 这个东西
发布文章的时候 就可以隐藏觉得不需要用到的字段
进入某个内容类型 => manage form (要安装nodeformcols才看到它)
(如版本信息 发布选项 评论设置等)
(这样子发布的时候 会很简洁)
9)Locale 模块 汉化的 管理本地语言的
10)Path 模块 可以输出一个简洁链接(友好的url)
11)zen主题 是别人开发的半成品,兼容性比较好
我们只是在它上面进行第二次加工
12)自己定义的主题 只要 info文件和template.php文件
推荐基本zen来创建子主题
13)不管是主题还是模块 记得读一读 readme.txt文件
14)把zen主题里的 STARTERKIT 文件夹剪切到与zen平行的目录
15)把 STARTERKIT 文件夹 修改成 lanyulu
   把 TARTERKIT 文件夹 里的 TARTERKIT.info.txt 改成 lanyulu.info
(名字要与文件夹一致)
   修改 lanyulu.info 里面的内容
    name        = lanyulu
    description = lanyulu descrition
  修改  template.php 把所有 STARTERKIT 改成 lanyulu
   修改  theme-settings.php 把所有 STARTERKIT 改成 lanyulu
  这样子主题 就做好了
  到后台启用一下 更新一下缓存
  (如果看到 rebuild theme registry on every page 应该是打上勾吧
  暂不考虑它)
16)离线浏览器 offline explorer enterprise
用它来下载网页 (用firefox 的 ScrapBook 好像不太好,会多出js生成的html标签)

17) offline explorer enterprise 下载后默认放在
C:\download\网址下面
把下载的css 和images文件放到主题的相应的位置
18)一种思路:使用 views+panels模块 来制作主题
views是取数据 panels是布局
另一种思路:根据模板的命名规则来进行覆写
mini panels 主要是用来创建区块
panels主要是用来创建页面
19)我们自己的主题的父主题是 zen
所以模板文件(.tpl.php)也是基于zen的 .tpl.php文件
进行延伸 更改的
到 sites/all/themes/lanyulu/templates/README.txt里
看要改哪些文件 怎么改
把需要的文件复制到本主题下进行修改
20)先做个栏目页吧
从zen/templets 主题下复制 page.tpl.php(模板文件)
到 lanyulu/templets 下
(我这里把 page.tpl.php 改名为 page--taxonomy--term--%.tpl.php)
新建了主题 更改了主题后 如果没有反应的话 我们清空一下缓存
把其它的.tpl.php也全部复制过来吧

蓝雨路 page.tpl.php里
<?php
if($is_front){
    include 'page-front.tpl.php';
    return;
}
/*
if($node->type=='story'){
    include 'page-story.tpl.php';
    return;
}
if($node->type=='blog'){
    include 'page-blog-content.tpl.php';
    return;
}
if($node->type=='photo'){
    include 'page-photo.tpl.php';
    return;
}
*/
if($node->path=='products' || $node->path='scgl'){
    include 'page-products.tpl.php';
    return;
}
include 'page-default.tpl.php'
return;
?>

21)在内容的页面里设置url别名
22)在 d6中page.tpl.php 里输出 <?php print $content; ?>这个就是body;
(至少 在节点页面是这样子的)
    d7中是 <?php print render($page['content']); ?>
23)区域在 info文件里面进行定义的
如果不写 默认就是 上 中 下 中左 中右 五个区域
如果定义的区域,就按定义的来划分
理论上 区域(regions)可以任意增加 增加100个都没有问题
(如 header区域)在 page.tpl.php中 就可以用
d6中page.tpl.php  <?php print $header; ?>
d7中page.tpl.php  <?php print render($page['header']); ?>
路径   <?php echo $base_path.$directory ?>
输出当前主题所在的目录
24) 站点设置=>输入格式
换行转换器  URL过滤器 去掉
静态区域 不支持php标签
等我们精通了后 就不用静态的区块 而用动态的模块做成区块
就支持php标签
25) 在管理区域 不显示
在 除下面页面之外的所有网页里,显示此区块下面的框里写上
admin
admin/*
26)如果 在管理员页面有 编辑字样(edit block)( 由block.tpl.php的控制显示的)
把zen的block.tpl.php,region.tpl.php 等复制到 lanyulu下面 我们进行修改
  一)把里面的div全删掉 我们开发自己的主题 这些div没有用
    (这个不太理解)
27)提供建不同的内容类型,因为这样做可以得到更多的变量
(可以得到更多的内容类型,进行内容类型的判断)
d6是增加图片字段 时选择 文件 图像
d6是增加图片字段 时好像是选择 图像 图像
添加图片时 选择一个文件路径
添加图片时 选择一个图片数量(1,2或不限) 在views会有不同
28)有三个模块要安装 link模块(link字段类型)
imageapi(image cache的依赖模块)
imagecache(处理图片的 处理图片的缩放大小)
启用这些(图像)模块时
(imageapi, imageapi gd2, imageapi imageMagick,imagecache,image cache ui)要选中
利用 内容类型 的 导入导出功能 可能直接 使用以前做的内容类型
29)添加数据(利用devel模块的自动创建信息)
30)我们的思路 就是要不断的创建变量
有了更多的不同的变量,方便 我们更多的灵活的控制
31)模板建站教程 创建panel 是创建 panel node
32)创建视图
在某一个视图页面  附件 就是在视图内添加另外一个视图
页面有路径 区块没有路径
在这里页面的路径 如果有模板的路径相同 ,它就是覆盖默认的模板文件
的路径
内容:产品图片 -data(适合做 alt title等)
内容:产品图片 (无data 就是适合做普通用的图片)

选择 标签:无
选择 格式:图像(片)
排除显示 就是不显示 但是会被加载

凡是斜体的 都是继承的
凡是正体的 都是独立的
33)d6在默认模板里加上
<?php print $page_closure; ?>
<?php print $closure; ?>
 在默认模板里加上(据说可以防止session,js错误)

(它是通过创建panel 和 views 然后把views放到panel里面)
34)建议开发主题的时候 全部能删 就删掉div
   也可以修改 div的css样式来达到想要的效果
35)到后台 views里面来点 主题 信息
点 显示输出 就看到了源码
我们使用 view-view-products-show.tpl.php 文件来控制
我们复制 /sites/all/modules/views/view-view.tpl.php 为
(第二个)
/sites/all/themes/lanyulu/templates/view-view-products-show.tpl.php
再来修改  view-view-products-show.tpl.php
重新扫描模板文件 确定以粗体显示的时候 才有效

同理 选用(第二个) views-view-unformatted-products-show.tpl.php
同理 选用(第二个)  views-view-fields--products-show.tpl.php
我们常用第二个来进行覆写
但是对于具体的字段的控制 我们用另一种方法来控制

view-view-products-show.tpl.php  里面相应的地方 删掉 div
views-view-unformatted-products-show.tpl.php  里面相应的地方 删掉 div
 views-view-fields--products-show.tpl.php  里面相应的地方 删掉 div label

我们在 node.tpl.php 也会看到好多div 我们也删掉应该去掉的div

我们把
/site/all/modules/panels/templates/  下面的模板文件全复制到
/sites/all/themes/lanyulu/templates/ 下面
panels-pane.tpl.php 里面相应的div 该去掉的去掉
panels-dashboard.tpl.php 里面相应的div 该去掉的去掉
panels-dashboard-block.tpl.php 里面相应的div 该去掉的去掉
 panels-dashboard-link.tpl.php 里面相应的div 该去掉的去掉

把 /site/all/modules/panels/plugins/layouts/onecol/panels-onecol.tpl.php
 模板文件复制到 /sites/all/themes/lanyulu/templates/ 下面
里面相应的div 该去掉的去掉

由***发表 也是删 node.tpl.php
最后清空缓存

36)后台=>站点构建=>imageCache 这个是专门缩放格式化图片的
add new preset  取个名字
=>add scale and crop =>189*124
37)在内容类型=>产品展示=>管理字段=>字段显=>
摘要=>small image link to node
(也有些在view 下设置)
38)到 views 里 点这个区块的 产品图片字段 下面的格式
=>small image link to node
 
调样式 两种方法:一种:覆写这个字段的输出
把table代码复制到里面 用图片替换符进行替换一下 把链替换一下
二种:将这个字段作为链接输出
里面有最重要的
前缀文本 <table......
 后缀文本 ...</td></tr>
链接路径 node/[nid]

对于title字段 同样处理

三种:直接在模板里面控制

views-view-unformatted-products-show.tpl.php  
里面简单的php循环进行控制

模板文件里面 进行输出一些table标签带 $content 的代码
39)views中 分页 这里使用完整分页
默认分页是带 div 的  我们如何去掉
使用 template.php 来进行覆写
分页函数默认是在include/theme.inc 中写的
hook_pager()函数调用
hook_item_list()函数
覆写这两个函数 去掉div
调整位置 在 views-view--products-show.tpl.php进行调整

40)想去掉 某些东西 如edit block
在网页源代码中找它的特征
如 class="edit"  <!--/.block-->等
然后进行查找
我们在/sites/all/themes/lanyulu/templates/block.tpl.php
中找到它 .把相应的代码删掉

41)编辑导航区块 改菜单
42)在 所建的 生产管理 的 panel中进行编辑 panel
页面比较乱的话 暂时把主题 恢复到 garlend 主题
43)我们做一下区块 添加到 panel 中
我们在 views中建 生产管理 区块
在 views 的所建的区块中 我们 过滤 选择分页
我们 重新扫描模板信息

44)因为图片大小不一样 我们重新在 imageCache中添加图片大小的选项
然后回到  views的图片字段 根据 imageCache 中所建 进行相应的选择
模板文件的 判断 %3==0 那个不用了 用加一个模板文件 %2==0
他的讲解 生产管理 与产品展示 有点差不多 相同的部分 他就不重复了
45)左边 的那个区块 我们也要做 不用静态的
在views中新建区块 (我们在同一个视图中进行增加)
在 图片展示字段 中 我们已经有链接了 所以就选 small image 不选 small image to link node;

46) 在区块里面 改变一下 让这个 视频区块 放在左边
到前台看 样式不对 我们 到视图中 改一下 views的 关于这个区块的模板文件
/sites/all/themes/lanyulu/templates/views-view-unformatted--products-shows-block-3.tpl.php
里面的html代码架构是从源网站提取出来的

47)主区块的上面图片要跟随着不同的路径显示的不同的图片
在/sites/all/themes/lanyulu/templates/page-products.tpl.php中
把图片以变量名来输出图片
<?php print $base_path . $directory; ?>/images/<?php print $node->path; ?>.jpg
处理的小技巧 同一个模板 获取不同的变量

48)产品的内容页面
重建一个模板
我们在 page.tpl.php 中进行判断 然后重新给它一个模板
我们发现 图片有些不正常
<?php print $base_path . $directory; ?>/images/<?php print $node->path; ?>.jpg
因为 <?php print $node->path; ?>为空;所以 它没有路径
我们把<?php print $node->path; ?>可以改成 <?php print $node->type; ?>

在输入格式中
有个  换行转换器 要注意 (可能需要打钩 也可能不要打钩)
49)devel模块 至少有三个强大的功能
    (一)清缓
    (二)自动生成文章和用户
    (三)获取变量
50)我们可以 <?php print_r($node); ?>来看这个变量
  drupal系统四在变量 一,node,二,user,三,comment,四, (他也忘记)
  看$node 变量
  revision_uid 版本号 tnid 分类id
  revision_timestamp 版本号的时间戳
  uid 发文章人的id name 发文章人的用户名
  picture 用户头像
  field_ 开头的就是自己添加的字段
  field_pics 下面的 nid  就是哪个节点的连接号 就是与哪个节点关联的
51)区块在哪个页面显示
进某个区块 然后 我们 只在下列页面里,显示此区块
就在下面的框里 写上某页面
products
products/*
然后 把此区块移到 相应的区域
52)首页 我们用mini panels
add mini panels
添加 mini panels 时 required contexts 这个是什么
首页最左边的区块怎么做

53)归纳总结
drupal模板命名规则 (可以google一下)
views+panels
Views+panels模块来制作网站
Panels node做页面,views作页面输出和区块
Mini panels做区块
自定义panels布局样式  (这个不太懂)
模板处理
Page.tpl.php作判断,添加自定义模板页面
变量的获取
   Print_r($node)或者使用devel模块
4.简洁url
   关于pathauto,和中文拼音化url,伪静态和boost
    通过 pathauto (还跟一个模块(好像叫topen)结合起来使用)来制作伪静态
    pathauto(的中文版);支持 中文拼音化url
    boost 生成静态
   以及global|redirect的补充
   (global|redirect) node/1 自动转动 别名
    解决了只有同一个页面只有一个路径可以访问,这样子对搜索引擎友好
       
5.关于后台
  Zen主题+ Admin模块 + rootcandy主题 + rubik主题
这种样子 后台看起来更友好一点
zen 主题 可以少写代码 css控制得更细一点
6.关于搜索
   一些搜索模块的使用和views做搜索
    drupal有很多搜索模块
    我们也可以使用 views做搜索功能

7.关于内容订阅和发送邮件
  Notifications + messaging + phpmail
  客户有什么动作时,向邮箱发送内容进行提醒
  phpmail 相对于其它邮件发送模块 比较好用
8.关于多语言
i18n和languageicons
9.关于图片格式化大小输出
Imagecache的使用
10.关于菜单
nice_menus
做菜单
11.关于template.php文件的运用
覆写函数,注册文件,作判断等等
theme_item_list 这些东西都是可以覆写的

 

自定义panels布局样式方法
要先成功安装 panels 3
1)复制原panels布局的一种到自己的主题目录下,如复制 /sites/all/modules/panels/plugins/layouts/onecol
到 /sites/all/themes/total/layouts/oneA (新建layouts文件夹,并重命名为oneA)
2)重命名里面的文件为如下文件名
oneA.png,
oneA.css,
oneA.inc,oneA.tpl.php
3)替换oneA.inc文件内的所有原onecol为oneA,

关于图片的链接的模块


关于图像模块


伪静态


自定义panels布局样式方法1



自定义panels布局样式方法2













普通分类: