文档章节

【HERE地图开发记录(2)】finecms高级版添加Here地图字段类别

陈昊Sevens
 陈昊Sevens
发布于 2015/08/25 18:04
字数 1127
阅读 139
收藏 1
点赞 1
评论 0

由于finecms的自定义字段类别属于系统自带项,需要增加的话就要加代码了,如果是普通的控件增加就相对简单,Here地图的话就略带点坑了,废话不说马上去片!

1.增加finecms字段类别

首先在dayrui/libraries/Field文件夹中增加我们自己的字段类别文件,因为同是地图项目,所以我直接复制Baidumap.php,改名为Heremap.php

打开Heremap.php后,我们可以先看看构造函数

/**
     * 构造函数
     */
    public function __construct() {
		parent::__construct();
		$this->name = IS_ADMIN ? lang('991') : ''; // 字段名称
		$this->fieldtype = array('INT' => 10); // TRUE表全部可用字段类型,自定义格式为 array('可用字段类型名称' => '默认长度', ... )
		$this->defaulttype = 'INT'; // 当用户没有选择字段类型时的缺省值
    }

其中name属性就是在系统中显示的名字,这里读取的是/dayrui/language/*/admin_lang.php 里面的message信息,为了以后finecms升级不冲突,我在这里就设一个偏远山区的下标991为我的名称信息(PS lang函数是CI框架的辅助函数,用以读取已加载的语言文件)

/*============个人开发部分=======*/
$lang['991']	= 'Here地图';

然后看到的是fieldtype,从解释上来看,是没屌用的,姑且认为是保存在系统表里面的字段类型,因为这个case里面没有使用到这个属性,这里就暂不做深究。

然后就可以返回到系统里面看看修改的效果

ok,因为系统是自动加载这个目录下的文件,所以我们也不需要改表就可以看到我们需要的东西了。

然后下面一个函数是option()函数,有注释不难理解就是用来在后台菜单录入时候需要用户去填的参数

/**
	 * 字段相关属性参数
	 *
	 * @param	array	$value	值
	 * @return  string
	 */
	public function option($option) {
	
		$option['city'] = isset($option['city']) ? $option['city'] : '';
		$option['level'] = isset($option['level']) ? $option['level'] : 15;
		$option['width'] = isset($option['width']) ? $option['width'] : 700;
		$option['height'] = isset($option['height']) ? $option['height'] : 430;
		
		return '<tr>
                    <th>'.lang('265').':</th>
                    <td>
                    <input type="text" class="input-text" size="10" name="data[setting][option][width]" value="'.$option['width'].'">
					<div class="onShow">px</div>
                    </td>
                </tr>
				<tr>
                    <th>'.lang('266').':</th>
                    <td>
                    <input type="text" class="input-text" size="10" name="data[setting][option][height]" value="'.$option['height'].'">
					<div class="onShow">px</div>
                    </td>
                </tr>
				<tr>
                    <th>'.lang('267').':</th>
                    <td>
                    <input type="text" class="input-text" size="10" name="data[setting][option][level]" value="'.$option['level'].'">
					<div class="onShow">'.lang('268').'</div>
                    </td>
                </tr>
				<tr>
                    <th>'.lang('269').':</th>
                    <td>
                    <input type="text" class="input-text" size="40" name="data[setting][option][city]" value="'.$option['city'].'">
					<div class="onShow">'.lang('270').'</div>
                    </td>
                </tr>
				';
	}

效果如下:

然后继续往下看,input函数就是显示我们地图的表单输出了,这里finecms使用了art.dialog来装我们的小地图酱,把函数中的调用action改为我们自己的heremap action(将m=baidumap 改为 m=heremap):

art.dialog.open("'.(MEMBER_PATH.'index.php?c=api&m=heremap&width='.$width.'&height='.$height.'&name='.$name.'&level='.$level.'&value='.$value.'&city='.urlencode($city)).'", {
						title: "Heremap",

然后我们去找到这个controller, 具体位置是在/member/controllers/Api.php

找到以后,把baidumap()函数拷贝在下面粘贴一个heremap()函数,将显示的模板改为

$this->template->display('heremap.html', 'admin');

OK,跟finecms的整合配置就到这里了,然后开始写heremap.html模板里的东东

2. 显示部分

在这部分其实已经跟finecms没太大关系了,主要就是here地图的使用,贴代码也没有太大意义了,这里我提供一个我写好的demo下载吧,代码未经优化~有洁癖的就别看了~顺便附送Here的JS api离线版

下载地址:http://share.weiyun.com/266cb7e6643b73371617014c0616dd52

heremap.php 放置在 \dayrui\libraries\Field

模板文件heremap.html放置在 \dayrui\templates\admin 

PS: 两个文件中的相关语言配置 在附近的language文件夹中的语言文件配置下就好了 为了不冲突这里就不放出来了

API文档是官方最新的英文版


3. 更新部分

在使用中还有一个地方要添加代码,这部分是我觉得finecms写得不好的地方

具体文件是dayrui/core/D_common.php

搜索Baidumap, 然后跟着Baidumap的相关代码加一个我们自己的heremap代码就行了

同理,后面我也加了Google map,具体步骤一样

© 著作权归作者所有

共有 人打赏支持
陈昊Sevens

陈昊Sevens

粉丝 25
博文 48
码字总数 32191
作品 0
澳门
高级程序员
POSCMS V3.2.13,跨平台网站内容管理系统

更新内容: 增加公共函数库Finecms_Common 增加ci框架版本检测 增加字段全选功能 增加文件临时上传目录函数 增加栏目会员权限的全选功能 修复https下无法访问插件商城 增强头像上传组件的安全...

天睿云计算 ⋅ 05/28 ⋅ 0

给 WordPress 博客添加文章列表页面 | HTML站点地图

前言 有时通过搜索或者文章进入到某个网站,一般会大致浏览下,看看网站的其它内容有没有自己感兴趣的。 如果网站的文章数量不多的话还好,如果文章数量比较多,那就得一页页地翻过去,比较麻...

己立 ⋅ 01/03 ⋅ 0

在Android项目里如何调用基于百度地图API实现定位

在Android项目里如何调用基于百度地图API实现定位,基于地理位置服务的Android平台的开发对Android移动开发来说是非常重要的,基于地理位置服务的Android平台的开发是主要用于Android系统作为...

android开发 ⋅ 2017/12/08 ⋅ 0

基于 PHP 的中小型内容管理系统--FineCMS

FineCMS公益版(永久开源免费) FineCMS是一款基于PHP+MySql开发的内容管理系统,后台采用PHPWind开源模板蓝色风格,程序采用CI框架的MVC设计模式实现业务逻辑与表现层的适当分离,使网页设计...

天睿云计算 ⋅ 2014/06/30 ⋅ 3

ios 百度地图 使用详解

进行一系列的引入后,还需要注意以下两个细节,否则编译和运行时都会出错: 1:让XCode 处于 Objective - C++ 混编模式进行编译: 最简单方法就是:随便更改工程文件中的某一个,将.m更改为.mm . 2...

Jack088 ⋅ 2015/11/20 ⋅ 0

基于ArcEngine+C#实现的JLKDataManager空间数据平台架构设计

空间数据管理平台总体设计 随需而变 柔性再造 成都领君科技有限公司 http://www.linjon.cn 2012年11月 目录 1. 引言... 1 1.1. 编写目的... 1 1.2. 背景... 1 1.3. 定义... 1 2. 总体设计......

成都领君科技 ⋅ 2013/02/26 ⋅ 0

基于 PHP 的内容管理系统--FineCMS高级版

FineCMS高级版 FineCMS高级版是PHP+MySQL开发的一款开源的跨平台网站内容管理系统,以"实用+好用"为基本产品理念,提供从内容发布、组织、传播、互动、“PC+移动”的一体化网站解决方案。 ...

天睿云计算 ⋅ 2012/09/05 ⋅ 1

kinegratii/minesweeper

Minesweeper(扫雷) 这是一个由Python编写的扫雷游戏,基于tkinter/Tkinter开发,支持python2和python3。 功能 概述 基本功能:左键扫雷,右键标记 记录游戏步数和时间 游戏重置:同一地图可...

kinegratii ⋅ 2015/02/10 ⋅ 0

Ushahidi v3.6.4 发布,开源报警平台

Ushahidi v3.6.4 发布了,Ushahidi 是一个开源平台,任何人都可以利用移动短信、电子邮件、网站提供重要的信息、数据向该平台提供信息,Ushahidi 对这些信息进行证实之后,通过可视化的方式呈...

局长 ⋅ 2017/04/22 ⋅ 2

基于ArcEngine+C#开发的空间数据管理平台架构设计及功能说明

一、空间数据管理平台设计说明 1. 概述 ArcCatalog对空间数据管理基于数据的物理存储关系进行数据的组织和管理,它在要素类基础上引入要素集,用于对具有相同坐标系统和空间范围的一组数据统...

成都领君科技 ⋅ 2012/04/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 15分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 18分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 28分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 今天 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

MySQL 内核深度优化

MYSQL数据库适用场景广泛,相较于Oracle、DB2性价比更高,Web网站、日志系统、数据仓库等场景都有MYSQL用武之地,但是也存在对于事务性支持不太好(MySQL 5.5版本开始默认引擎才是InnoDB事务...

java高级架构牛人 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部