简述:

主要元素有Category, listing, field
Category下有多个listing,listing下可以有多个field,field可以用于搜索与展示,而每个field都有字段类型。除了mtree内的核心字段外,可以加入自定义字段。字段类型类都继承一个公共类(mFieldType),并实现所有字段功能,后台也可以添加新的mFieldType类来满足复杂的需求。也就是说,如果现有字段提供的功能没有满足需求,可以修改对应类型的mFields基类,或者添加新的mFieldType类。以自定义方式新建的类型是通过后台的Manage field types页来创建类实现,并且代码将存于数据库。
结构:
各页面的模板 components/com_mtree/templates/m2/
字段类型基类 administrator/components/com_mtree/mfields.class.php
字段类(mFields)的成员函数:
getSearchHTML 前台对应字段搜索功能的HTML输出
getInputHTML 后台对应字段录入的HTML输出
getOutput 前台对应字段HTML输出
getJSValidation javascript验证代码
自定义字段逻辑例子:
Name of the field type: texttype
class mFieldType_texttype extends mFieldType {
function getOutput($view=1) {
return $this->getValue();
}
function getInputHTML() {
$html .= sprintf('<input type="text" name="%s" value="%s" />', $this->getInputFieldName(1), $this->getValue());
return $html;
}
}
排序:
mtree.tools.php中的customFieldsSort函数,用于处理自定义字段排序
mFieldType类常用功能:
$this->getParam('showCounter',1); 取得参数
$this->getName(); 取得字段名
$this->arrayFieldElements 得到Elements的值,后台可以设置这个值
$this->getValue(); 取得管理员设置的值
$this->getInputFieldName(1) 取得表单字段名
模板:
page_前缀是主页面,sub_前缀是子页面。主页面包含若干个子页面
page_listing.tpl.php (listing detail 页)
sub_listingDetails.tpl.php (listing detail 子页)
sub_map.tpl.php
sub_reviews.tpl.php
sub_listingSummary.tpl.php (listing summary 子页)
模板调用:
global $savantConf;
$savant = new Savant2($savantConf);
$savant->assign('template_value', value);
$savant->display( 'page.tpl.php' );
-----------------所有模板可用通用----------------
附件图片链接:
$this->jconf['live_site'] . $this->mtconf['relative_path_to_listing_small_image'] . $image->filename
图片位置参数:
relative_path_to_listing_small_image
relative_path_to_listing_medium_image
relative_path_to_listing_original_image
-----------(sub_listingDetails.tpl.php) start :------------
前台取字段值:
$this->fields->getFieldById(字段ID)->getValue()
# display image
$this->fields->getFieldById(23)->getOutput(1)
# not display image
$field = $this->fields->getField();
if($field->fieldType == 'image')
{
$this->fields->next();
continue;
}
# filter field
if(in_array($field->getId(), array(cf_id))) {
$this->fields->next();
continue;
}

----------(sub_listingDetails.tpl.php) end;-----------------

转载于:https://www.cnblogs.com/catcat811/archive/2013/04/14/3019988.html

Mosets Tree开发笔记相关推荐

  1. 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器

    张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 原文:张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 BH1750FVI 是一款 ...

  2. 张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231

    原文:张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231 GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/ ...

  3. Android开发笔记(一百五十七)使用OpenGL实现翻书动画

    上一篇文章介绍了如何通过纹理渲染绘制地球仪,当然OpenGL的三维图形处理能力是很强大的,只要善于利用OpenGL,就能很方便地虚拟各种现实生活中的动画效果.本文再来谈谈使用OpenGL实现浏览电子书 ...

  4. Android开发笔记(一百一十三)测试工具

    单元测试TestCase Android的sdk提供了对项目进行单元测试的功能,开发包的android.test下面便是专门用来单元测试的类.单元测试的作用是通过模拟文本输入和手势输入(如点击操作), ...

  5. Android开发笔记(一百零七)统计分析SDK

    APP统计分析 用户画像 对程序员来说,用户画像就是用户的属性和行为:通俗地说,用户画像是包括了个人信息.兴趣爱好.日常行为等血肉丰满的客户实体.用户画像是精准营销的产物,企业通过收集用户的行为,然后 ...

  6. 【Go 框架开发】Zinx 框架开发笔记

    Zinx 框架开发笔记 Zinx 框架开发笔记 Zinx - V0.1 构建最基础的 server Zinx - V0.2 连接封装与业务绑定 Zinx - V0.3 框架路由模块 Zinx - V0 ...

  7. 张高兴的 Xamarin.Forms 开发笔记:为 Android 与 iOS 引入 UWP 风格的汉堡菜单 ( MasterDetailPage )...

    所谓 UWP 样式的汉堡菜单,我曾在"张高兴的 UWP 开发笔记:汉堡菜单进阶"里说过,也就是使用 Segoe MDL2 Assets 字体作为左侧 Icon,并且左侧使用填充颜色 ...

  8. WebBuilder开发笔记

    WebBuilder开发笔记记录 基础知识 WebBuilder快捷键 控件配置 双击左侧控件箱中的控件将打开该控件,控件编辑器由General.Configs和Events 3个标签页组成,分别代表 ...

  9. ROS开发笔记(10)——ROS 深度强化学习dqn应用之tensorflow版本(double dqn/dueling dqn/prioritized replay dqn)

    ROS开发笔记(10)--ROS 深度强化学习dqn应用之tensorflow版本(double dqn/dueling dqn/prioritized replay dqn) 在ROS开发笔记(9) ...

  10. 运维开发笔记整理-前后端分离

    运维开发笔记整理-前后端分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么要进行前后端分离 1>.pc, app, pad多端适应 2>.SPA开发式的流 ...

最新文章

  1. java thread join_java中thread的join方法为什么能让线程插队
  2. [School Life - Study] 有哪些每天坚持效果显著的高中学习习惯?
  3. 沫沫金:2014最新全浏览器兼容左列固定右列自适应宽度技巧大公开
  4. struts工作流程
  5. php中定义css样式的好处,CSS的优点和缺点分别是什么
  6. linux 安装rpm qt can't creat,CentOS 6.2部署Qt开发环境
  7. 2019 互联网大事记:谁是最后的赢家?
  8. vue solt 属性浅析
  9. java8新日期时间类使用
  10. SQL Server-【知识与实战IV】多表查询、个数计算、多重约束条件、两表间的交集、多表之间的关系分析
  11. 改变计算技术的9个伟大算法
  12. python中连接函数_python-使用参数连接到函数
  13. 如何将ts文件转为mp4格式
  14. Win10任务栏图标变成空白方块解决办法
  15. 数据可视化,看这一篇就够了
  16. RxSwift-MVVM
  17. 四年级计算机课的检讨,四年级下册信息技术教学反思.doc
  18. win10系统服务器错误怎么解决方法,分享win10系统提示内部服务器错误的解决方案...
  19. 为什么说交换机可以隔离冲突域?
  20. 沐阳Git笔记03文件重命名

热门文章

  1. 用php解二元一次方程程序,编写一个程序,求二元一次方程组,编写一个程序,求二元一次方程组的解...
  2. mysql水平union_mysql_union操作符
  3. 导出jar包和api文档
  4. jQuery基础(jQuery概念,jQuery与js入口函数的区别及其入口函数的其他写法和冲突问题)
  5. Quartz 触发器、过期触发策略 、排它日历、数据持久化
  6. Poj2823 单调队列
  7. Python【每日一问】27
  8. 推荐一下干货-------为什么你的app不耐看
  9. Ural1297 最长回文子串(后缀数组+RMQ)
  10. PHP报错: Can't use method return value in write context