在我们以前的教程Joomla com_content延伸,我们已经向你展示了如何创建额外的字段(自定义字段)和显示它们在T3布局的显示。今天,我们回到了另一个高级教程关于Joomla的自定义字段(额外的字段),深入挖掘额外的字段和显示你如何实现你自己的专业的产品展示在我们最近的客户展示页面做的。 事不宜迟,让我们开始吧。
1:额外的字段类型 目前,T3框架支持多领域的3种类型,包括:
1.用于项目的额外字段
2.用于窗体的额外字段:菜单项、搜索、联系人、标签等。
3.模块类型的额外字段 今天,我们将重点了解
1:文章的额外字段。
2:如何开展? 在这个过程中有4个步骤: 1.定义每个组中的额外的字段组和额外字段
2.获得额外的字段
3.如何使用额外的字段
4.为额外字段的样式
2.1添加额外的字段组,并在每个组中定义额外的字段 在客户展示,你将能够看到以下:
1.网站的名称:可以通过使用文章的标题来完成,所以我们不需要一个额外的字段。
2.用户名:这是成员的用户名在我们JoomlArt的论坛,这将是我们第一次额外字段。
3.缩略图:这是网站的缩略图,这将是我们的第二个额外的字段。
4.网站的网址:直接你到页面时,悬停在网站的缩略图,这将是我们的第三个额外的字段。
5.joomlart模板名称:我们的客户使用来开发他们的网站模板,这将是我们额外的第四场。
这增加了4个额外的领域,我们需要为客户展示。下一步呢?
创建XML文件。文件所在的文件夹模板/extrafields t3_bs3_blank等。您可以在一个多个字段组中定义XML文件。在每一组中,它可以有一个或多个额外的字段。
用代码格式化的: 定义额外的字段组:
定义额外字段: Extra field value 1 Extra field value 2 ![额外字段1](https://img-blog.csdnimg.cn/img_convert/36516bfb3819887fe5751282b3821797.png#pic_center)
定义在客户展示页中的每个组中的额外的字段组和额外字段 客户展示文章的完整的XML文件:
<?xml version="1.0" encoding="utf-8"?> 以上user-sites.xml文件定义:
额外的字段组是“额外的字段”
额外的域用户名为:美国,美国的ID,邮件,网址为,美国为模板的缩略图。 所有额外的域的类型是“文本”
2.2获得额外的字段 在创建额外的字段Joomla不支持,我们已经创建了一个覆盖布局文件,我们想显示这些额外的领域。
你可以在模板/ t3_bs3_blank / HTML / com_content /分类得到那些覆盖布局文件。 对于客户展示页面,我们需要有以下的覆盖布局文件:
showcase.php
showcase.xml
showcase_item.php
覆盖您将需要为客户展示的布局文件
#1: showcase.php file
<?php /** * @package Joomla.Site * @subpackage com_content * * @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ // no direct access defined('_JEXEC') or die('Restricted access'); $cols = $this->params->get('num_columns', 3); $span = floor(12 / $cols); $key = 0; $items = $this->items; ?>
<?php if ($this->params->get('show_page_heading', 1)) : ?>
<?php endif; ?> <?php //JAHelper::loadModules('inline') ?>
<?php foreach ($items as $item): ?> <?php if ($key % $cols == 0) : ?>
<?php endif ?>
<?php // Load category_item.php by default $this->item = $item; echo $this->loadTemplate('item'); ?>
<?php if ((($key+1) % $cols == 0) || $key+1 == count($this->items)) : ?>
<?php endif ?> <?php $key++; endforeach; ?>
<?php if ($this->pagination->getPagesLinks()): ?>
<?php endif; ?>
#2: showcase.xml file <?xml version="1.0" encoding="utf-8"?>
<![CDATA[COM_CONTENT_CATEGORY_VIEW_BLOG_DESC]]>
JGLOBAL_USE_GLOBAL JGLOBAL_NO_ORDER JGLOBAL_TITLE_ALPHABETICAL JGLOBAL_TITLE_REVERSE_ALPHABETICAL JGLOBAL_CATEGORY_MANAGER_ORDER JGLOBAL_USE_GLOBAL COM_CONTENT_FEATURED_ORDER JGLOBAL_MOST_RECENT_FIRST JGLOBAL_OLDEST_FIRST JGLOBAL_TITLE_ALPHABETICAL JGLOBAL_TITLE_REVERSE_ALPHABETICAL JGLOBAL_AUTHOR_ALPHABETICAL JGLOBAL_AUTHOR_REVERSE_ALPHABETICAL JGLOBAL_MOST_HITS JGLOBAL_LEAST_HITS JGLOBAL_ORDERING JGLOBAL_USE_GLOBAL JGLOBAL_CREATED JGLOBAL_MODIFIED JPUBLISHED JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JNO JYES JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS COM_CONTENT_FIELD_OPTION_ABOVE COM_CONTENT_FIELD_OPTION_BELOW COM_CONTENT_FIELD_OPTION_SPLIT JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JNO JYES JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JNO JYES JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JNo JYes JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL JHIDE JSHOW JGLOBAL_USE_GLOBAL JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JHIDE JSHOW JGLOBAL_USE_GLOBAL COM_CONTENT_FIELD_VALUE_USE_ARTICLE_SETTINGS JNO JYES
#3: showcase_item.php file <?php // no direct access defined('_JEXEC')ordie('Restricted access'); // Define default image size (do not change) $params =newJRegistry($this->item->attribs); //echo "[".ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)."]"; $link =JRoute::_(ContentHelperRoute::getArticleRoute($this->item->slug, $this->item->catid)); $products_info =JAFactory::getProducts(); $tplname = $params->get('template_name'); $jirakey = $params->get('jira_key'); // $ususername = $params->get('us-username'); // $usemail = $params->get('us-email'); // $usurl = $params->get('us-url'); // $usthumbnail = $params->get('us-thumbnail'); // $ustemplate = $params->get('us-template'); ?>
<divclass=“thumbnail pd-list-item”> <divclass=“item-image pd-screen”> <divclass=“pd-screen-img”>
<?php $state = $params->get('special_state'); if(is_array($state)&& count($state)): foreach($state as $st): ?>
<?php echo $st ?> <?php endforeach; endif;?>
增加额外字段的样式 风格:额外的客户展示场
// USER SHOWCASE
// ---------------------------------------------------------
.mod-masthead {
position: absolute;
top:0;
right:@global-margin;
.btn-primary {
border-radius:30px;
font-size:(@t3-font-size-bigger *1.5);
padding:(@global-padding /2)@global-padding;
}
}
.showcase {
.pd-info-list {
font-size:@font-size-base;
}
.pd-list-item .info-list em {
display:inline-block;
}
.pd-list-item .item-image .item-mask {
background: rgba(0,0,0,.3);
display: none;
height:100%;
position: absolute;
top:0;
left:0;
width:100%;
}
.pd-list-item {
.pd-screen-img img {
transition: all 350ms;
transform: translateZ(0px);
}
.pd-cta > li {
@media(max-width:@screen-sm-max ){
width:100%;
}
}
i {
color:@gray-light;
}
&:hover {
.pd-screen-img img {
transform: scale(1.1,1.1);
}
.pd-cta > li > a {
background:@green;
border-color:@green;
color:@white;
opacity:1;
i {
color:@white;
}
}
}
}
}
请编译less、CSS使新补充的风格将被编译到CSS。
2.4如何使用额外的字段
1:创建一个类,要分配的额外字段组。
为类别分配额外的字段组
2:在每一篇文章从创造的类别额外字段设置值。
在每一篇文章中添加额外的内容
3:创建菜单项
创建菜单式菜单xlayout -展示,菜单将从一个类别,我们分配的额外字段组为获取内容
菜单设置:指定覆盖布局(xlayout -展示)
检查前页。
前页中的额外字段
这是你如何快速添加文章Joomla的自定义字段在纯三组合布局转化为定制产品展示你的Joomla网站。 祝你好运!
本文转自六艺开源:阅读原文