很简单,在主题的 *.info文件中添加一句代码:

  这一句很简单,但也很重要,没有这一句,就没在panels的配置界面去显示自定义的布局

plugins[panels][layouts] = layouts

然后再主题文件夹下建立一个layouts文件夹,然后把自己要建立的布局建立即可。

举个例子,我们建立一个名为Front的布局

文件目录结构如下:

1.文件front.inc

$plugin = array(
'title' => t('Front'),
'category' => t('Columns: 2'),
'icon' => 'front.png',
'theme' => 'panels_front',
'css' => 'front.css',
'regions' => array(
'top_left' => t('Top left'),
'top_right' => t('Top right'),
'left' => t('Left side'),
'right' => t('Right side'),
),
);

2.文件panels-front.tpl.php

<div class="panel-front clearfix panel-display" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>>
<?php if ($content['top_left']): ?>
<div class="panel-col-top-left panel-panel">
<div class="inside"><?php print $content['top_left']; ?></div>
</div>
<?php endif; ?>
<?php if ($content['top_right']): ?>
<div class="panel-col-top-right panel-panel">
<div class="inside"><?php print $content['top_right']; ?></div>
</div>
<?php endif; ?>
<div class="center-wrapper">
<div class="panel-col-first panel-panel">
<div class="inside"><?php print $content['left']; ?></div>
</div>
<div class="panel-col-last panel-panel">
<div class="inside"><?php print $content['right']; ?></div>
</div>
</div>
</div>

3.文件front.css

.panel-front {
/* overflow: hidden; */
margin-top:;
padding-top:;
}
.panel-front .panel-col-top-left{
float: left;
width: 70%;
}
* html .panel-front .panel-col-top-left {
width: 69.9%;
}
.panel-front .panel-col-top-left .inside {
margin: 0 0em 0 em 0;
}
.panel-front .panel-col-top-right{
float: left;
width: 29.9%; }
.panel-front .panel-col-top-right .inside {
margin: 0 0em 0em 0;
}
.panel-front .panel-col-first {
float: left;
width: 25%;
}
* html .panel-front .panel-col-first {
width: 24.9%;
}
.panel-front .panel-col-first .inside {
margin: 0 .5em 1em 0;
}
.panel-front .panel-col-last {
float: left;
width: 74.9%;
}
.panel-front .panel-col-last .inside {
margin: 0 0 1em .5em;
}
.panel-front .panel-separator {
margin: 0 0 1em 0;
}
.panel-front .center-wrapper{
clear:both;
}

4.文件front.png

drupal7创建自定义的panels布局的更多相关文章

  1. 【翻译】在Ext JS和Sencha Touch中创建自定义布局

    原文:Creating Custom Layouts in Ext JS and Sencha Touch 布局系统是Sencha框架中最强大和最独特的一部分.布局会处理应用程序中每个组件的大小和位置 ...

  2. Android创建自定义dialog方法详解-样式去掉阴影效果

    在自定义组件时,从已有组件源码中会很大收获.就拿progressDialog来说     间接父类是dialog,想了解dialog继承结构可以去百度,或者    从构造器来说ProgressDial ...

  3. 雷林鹏分享:jQuery EasyUI 数据网格 - 创建自定义视图

    jQuery EasyUI 数据网格 - 创建自定义视图 在不同的情况下,您可能需要为数据网格(datagrid)运用更灵活的布局.对于用户来说,卡片视图(Card View)是个不错的选择.这个工具 ...

  4. 自定义 Collection View 布局

    自定义 Collection View 布局 answer-huang 29 Mar 2014 分享文章 UICollectionView 在 iOS6 中第一次被引入,也是 UIKit 视图类中的一 ...

  5. iOS系列译文:自定义Collection View布局

    原文出处: Ole Begemann   译文出处: 黄爱武(@answer-huang).欢迎加入技术翻译小组. UICollectionView在iOS6中第一次被介绍,也是UIKit视图类中的一 ...

  6. Customize the View Items Layout 自定义视图项目布局

    In this lesson, you will learn how to customize the default editor layout in a Detail View. For this ...

  7. C++ GUI Qt4编程-创建自定义窗口部件

    C++ GUI Qt4编程-创建自定义窗口部件   Qtqt4 通过Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件,下面示范两种方式,并且也会说明如何把自定义窗口部 ...

  8. 自定义Collection View布局

    转自answer-huang的博客 原文出自:Custom Collection View Layouts    UICollectionView在iOS6中第一次被介绍,也是UIKit视图类中的一颗 ...

  9. 【WPF学习】第六十七章 创建自定义面板

    前面两个章节分别介绍了两个自定义控件:自定义的ColorPicker和FlipPanel控件.接下来介绍派生自定义面板以及构建自定义绘图控件. 创建自定义面板是一种特殊但较常见的自定义控件开发子集.前 ...

随机推荐

  1. python ftplib模块使用

    Python中默认安装的ftplib模块定义了FTP类,可用来实现简单的ftp客户端,用于上传或下载文件. ftplib模块常用方法 ftp登陆连接 from ftplib import FTP #加 ...

  2. Unity 代码编译成dll 更新dll实现热更代码

    Unity 代码编译成dll 更新dll实现热更代码 实现流程 代码编译成DLL DLL打包成AssetBundle 加载AssetBundle 加载代码程序集 获取指定类 使用反射赋值 C#代码编译 ...

  3. oracle 11g RAC数据库监听配置相关

    oracle RAC 监听配置基本和单实例的配置相同 11g之后 安装RAC的过程中,不需要执行netca来手动创建监听,在安装集群软件的时候,会自动创建监听程序: 而在DBCA建库的时候,又会自动创 ...

  4. Storm中的定时任务

    1.全局定时器 import java.util.Map; import backtype.storm.Config; import backtype.storm.Constants; import ...

  5. CodeSmith读取数据库

    这两天在看CodeSmith文档,因为官方文档在读数据库这一篇使用的是VB写的,对于C#使用者来说看起来很不方便,所以我改成C#的,顺便写下我自己的使用过程. 首先,要使用CodeSmith连接数据库 ...

  6. Linux安装go语言开发包

    1.下载go语言安装包,eg:go1.7.1.linux-amd64.tar.gz2.安装go语言 $ cd /home/xm6f/dev $ tar -zxvf go1.7.1.linux-amd6 ...

  7. jQuery同步Ajax带来的UI线程阻塞问题及解决方法

    遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下. 事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责 ...

  8. logstash-1-安装配置

    centos logstash logstash logstash是什么呢, 他是一个数据管道, JRuby编写的运行在java虚拟机的具有收集, 分析和转发数据流功能的工具 特性: 安装 1), w ...

  9. JBOSS Spring Web

    jndi: <datasources> <xa-datasource> <jndi-name>jdbc/sss-local</jndi-name> &l ...

  10. [转]SQL Server 中WITH (NOLOCK)浅析

    本文转自:https://www.cnblogs.com/kerrycode/p/3946268.html 概念介绍 开发人员喜欢在SQL脚本中使用WITH(NOLOCK), WITH(NOLOCK) ...