注:本篇及后续均以8.0为基础. 一. Odoo模块的构成 __init__.py 文件是python包导入所必须的文件,内容可以为空,通常情况下我们用来导入自己写的py文件. __openerp__.py odoo模块的必须文件,里边包含了关于本模块的一些基础信息,如,依赖,视图文件等等. static文件夹 存放模块图标.静态文件的地方,js和qweb视图也放于此文件夹内. test 单元测试的相关文件 views 一些区分的比较清楚的模块会将view文件单独存放起来,并起一个名字,但这并非…
◆二次开发 1.什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一般来说都不会改变原有系统的内核. 2.为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一系列优秀的开源作品,其作者或是个人,或是项目小组,或是软件公司.选择和应用这些优秀的开源软件,并在此基础上进行符合业务需求的二次开发,将给企业节省信息化成本(时间成本及开发成本)的同时,更能带来技术上的保障.这就是我们常听的:站在巨人的肩膀上,你将看的更远.所以国内很多…
初始化 MIP 配置 新建一个 MIP 网页 编写 MIP 网页代码 校验 MIP 网页 调试 MIP 网页 1. 初始化 MIP 配置 首先在html目录下进行初始化 MIP 配置: $ mip init 此时会创建mip.config文件: 2. 新建一个 MIP 网页 在mip-project/html文件夹下输入如下命令: $ mip add index.html 成功添加后,本地文件夹中会出现 index.html 文件,这就是一个基础的 MIP 页面 在新建网页的时候可以添加需要载入…
公众号第三方平台开发 教程一 创建公众号第三方平台 公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取 公众号第三方平台开发 教程三 微信公众号授权第三方平台 公众号第三方平台开发 教程四 代公众号发起网页授权说明 公众号第三方平台开发 教程五 代公众号处理消息和事件 公众号第三方平台开发 教程六 代公众号使用JS SDK说明 另,感谢一下这个大虾的博客,这几篇东西都是在他的博文基础上完成的,他的博客里也有一些接口代码可以下载 微信开发系列…
之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块添加新页面非常简单,使用 hook_menu 定义路径及回调函数返回要显示的结果即可.但 Drupal 8 却要麻烦很多,虽然也是定义路径,然后关联用于显示内容的函数,但却要在两个文件中分开进行.而且 Controller 文件还有目录结构要求,这些变化都需要慢慢来适应了. 除了上文中定义的 hello_wo…
<1>程序文件目录介绍: app – 应用目录 models – 模型目录 plugins – 插件目录 static – 静态文件 system – 系统目录 views – 模板目录 我们简单的页面二次开发主要还是关注static和views这两个文件. 下面在介绍一下这个文件里面对应的目录功能 static里面文件分别是: admin: 后台控制面板的css,js,图片这些文件: common: 网站公用的图片,比如社区默认的头像图片: css:主要介绍css/default里的css文…
转自:http://www.cnblogs.com/semcoding/p/3347600.html PHPCMS V9 结构设计 根目录 |–api  结构文件目录 |–caches 缓存文件目录    |– configs 系统配置文件目录    |– caches_* 系统缓存目录 |–phpcms  phpcms框架主目录    |– languages 框架语言包目录    |– libs 框架主类库.主函数库目录    |– model 框架数据库模型目录    |– modules…
PHPCMS V9 结构设计 根目录|–api  结构文件目录|–caches 缓存文件目录   |– configs 系统配置文件目录   |– caches_* 系统缓存目录|–phpcms  phpcms框架主目录   |– languages 框架语言包目录   |– libs 框架主类库.主函数库目录   |– model 框架数据库模型目录   |– modules 框架模块目录   |– templates 框架系统模板目录|–phpsso_server  phpsso主目录|–s…
PHPCMS V9 核心文件说明 模块与控制器 模块: phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块.即url访问中的m. 访问content模块示例:http://www.yourname.com/index.php?m=content 控制器: phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面.类名成就是文件名+.php,例如一个名为abc的控制器,那么他的命名为abc.php即可.控制器类默认继…
◆二次开发 什么是二次开发? 二次开发,简单的说就是在现有的软件上进行定制修改,功能的扩展,然后达到自己想要的功能和效果,一 般来说都不会改变原有系统的内核. 为什么要二次开发? 随着信息化技术的不断发展,IT行业涌现出了一系列优秀的开源作品,其作者或是个人,或是项目小组,或 是软件公司.选择和应用这些优秀的开源软件,并在此基础上进行符合业务需求的二次开发,将给企业节省信息 化成本(时间成本及开发成本)的同时,更能带来技术上的保障.这就是我们常听的:站在巨人的肩膀上,你将看 的更远.所以国内很多…
  来源:互联网 作者:佚名 时间:03-01 16:05:31 [大 中 小] Ecshop想必大家不会觉得陌生吧,大部分的B2C独立网店系统都用的是Ecshop系统,很受用户的喜爱,但是由于Ecshop模板自带有很多Ecshop的Logo和版权信息,和一些其他需要修改的地方,所以我们需要对Ecshop系统做二次开发,下面就来看看具体操作步骤吧     一.Ecshop简介: ECShop是Comsenz公司推出的一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店.系统是基于PHP语…
一般来说二次开发,多数就是修改界面和增加功能这两个需求 先说修改界面 mvc 架构的程序,在界面这里,基本就是调用数据. 常见的界面数据构架有三种 1.是业务端或者是控制端数据驱动界面,基本上是后台输出啥数据,界面表现啥数据.这样麻烦的地方在于如果要更换模板的话动刀会动的比较大,除非没有更换模板的需求.如果不修改控制端的数据的话,那么界面设计这里受到的限制就比较多. 2.是界面驱动数据,界面自定义调用数据,多数的 cms 基本都是这样搞的,通过标签或者定义个通用的 php 调用数据函数来获取数据…
在本教程中我将告诉你如何使用 CSS 变换来创建圆形导航.教程逐一讲解实现这个样式将要涉及一些基本的数学知识并配合 CSS 变换来创建这些样式.不过不用担心,这里用到的数学知识真的是很简单的.教程使用浅显易懂的语言来介绍数学逻辑,让你能够清晰的理解背后的技术. 您可能感兴趣的相关文章 Metronic – 基于 Bootstrap 响应式后台管理模板 干货分享——32本优秀的 JavaScript 免费电子书 Debuggex – 超好用的正则表达式可视化调试工具 Zepto.js – 为现代浏…
一,安装的两种方式: 1) deb包安装: 此安装方式适用于简单不需要太多的人工干预,大多数插件都在deb中涵盖了.具体的步骤如下: 1.编辑 /etc/apt/source.list 文件,在末尾添加Odoo源:http://nightly.odoo.com/ deb http://nightly.odoo.com/8.0/nightly/deb/ ./ 2. sudo apt-get update 更新源列表,此过程中可能碰到key验证失败的问题,可到https://nightly.odoo…
[关于odoo新API的介绍,Internet上资料很少,或者不够完整详实,这会对初学者造成很大的困惑,本篇的目的就是希望能帮助新手了解新API的大概] odoo 新api的实现是借助于python装饰器,关于python装饰器的知识,请自行参考python相关手册. 新API的装饰器主要有以下几种: model,multi,one constrains,depends,onchange,returns 还有一些像 cr,cr_context,cr_uid,cr_uid_context,cr_u…
一.只读和唯一性验证 只读的设置有两种方法,一种是实在字段定义时设置为只读,第二种是在页面视图中进行设置. 接前例,我们将学生(tech.student)的名字name字段设置成只读. 方法一:字段定义添加只读设置 方法二:视图上加只读设置 重启服务,升级模块,即可看到我们的修改生效了. 提示:修改了python代码(非字段内容)只需重启服务,修改了视图文件需要升级模块. 唯一性的验证也有两种方法,一种是利用_sql_constraint另一种是利用API的contraints装饰器. 方法一:…
创建完我们的模块,接下来我们就要为我们的模块添加一些对象.今天我们将要创建一个学生对象(tech.student)和一些基本的属性,并将用form和tree视图将其展示出来: 一. 创建tech.student对象: fields,models,api,_是基本上每个模块都需要引入的4个模块: fields是odoo自定义的字段集,在odoo中每个实例对象都要继承models.Model这个类,api是使用新API必须的装饰器类,_则是翻译函数. 关于odoo的字段类型,请参考:http://w…
环境准备: 一.Tomcat服务器     首先需要在本地搭建tomcat.tomcat搭建过程本人博客中有,不再重复纪录.因为开始没有搭建成功,浪费了一定时间.   二.Mysql服务器     在本地安装Mysql数据库.     此次安装在数据库中出现了问题,忘记了数据库的密码.因此对数据库密码进行了修改.     忘记Mysql数据库密码修改方法:     1.首先关闭mysql数据库     2.打开命令行           进入:cd /usr/local/mysql/bin/ 获…
Sketchup提供了两套API: C API,主要用于读写SU文件.我们的SU文件导入功能就是用这套API做的 Ruby API,用于开发SU插件 这次我们主要关注Ruby API,因为它是实现更丰富的SU扩展功能的主要方式 不得不承认Sketchup的Ruby API开发文档相对于React,或是Inventor/Revit这些都太不友好了.不过从这篇文档开始我们还是能按图索骥,找到门径. 如果不想读这篇文档,那么也可以遵循如下步骤: 去Github把官方tutorial教程项目clone下…
使用过ORM的朋友对这一部分理解起来会非常快,如果没有请自行补习吧:D. 不说废话,首先,我们来开发一个简单的CRM系统,CRM系统第一个信息当然是客户信息.我们只做个简单 的客户信息来了解一下XAF好了. 新建项之后,可以看到如下代码界面: using System; using System.Linq; using System.Text; using DevExpress.Xpo; using DevExpress.ExpressApp; using System.ComponentMod…
1.复制文件cloud_1009271330.000,I-01.pal 2.改: GridData cloud = aDataInfo.GetGridData(""); 为: GridData cloud = aDataInfo.GetGridData("var"); 不然运行时会错误,虽然编辑脚本时没有提示错误. 3.在教程(九)中MaskOut没有成功实现,但是做完教程(十)后,MaskOut居然可以了.…
在教程(五)的基础上加了Faded,Grid_Fill,Grid_Point,Raster,Vector,Barb,Streamline 1.同样注意修改LegendStyleEnum改为LegendStyles 2.DrawMeteoData.CreateShadedLayer()的参数是4个,Grid_Fill,Grid_Point的参数类似也是4个,但Raster的参数是3个,且参数顺序和前三个函数的略不同. 3.在画出Shaded图之后,发现陆地上区域被country1图层覆盖,这时需要…
1.ActiveMapFrame部分没有大问题,按教程来就行. private void SetMapView()和private void ActiveMapFrameChanged(object sender, EventArgs e)函数与public Form1()并列 语句: layersLegend1.ActiveMapFrameChanged += new EventHandler(ActiveMapFrameChanged); 在public Form1()中. 2.画Grads…
教程四的问题不大. 1.private void AddMapFrame_ChinaSouthSea().private void AddTitle()两个函数和public Form1()函数并列. 2.添加以上两个函数后,在public Form1()中添加: AddMapFrame_ChinaSouthSea(); AddTitle(); 进行调用. 3.ChinaSouthSea的MapFrame不需要向教程一中那样手动添加,完全由函数控制. 4.AddTitle函数中: LayoutG…
来自气象家园:http://bbs.06climate.com/forum.php?mod=viewthread&tid=6631 按照教程,没有太大问题,有些是对c#操作不熟悉导致. 1.添加dll类库引用 建立项目后,在“解决方案资源管理器”中,右键“引用”,点击“添加引用”,右下角“浏览”,找到需要引用的MeteoInfoC.dll文件,点击确认. 2.添加类库中的控件 点击左侧栏“工具箱”,右键“组件” “选择项”,出现: 点击右下侧“浏览”,选择自己的dll类库文件,自动加载dll类库…
ps:昨天将管理员登录的功能完成了,并完美的解决跳过登录从而进入管理界面的bug,今天我们将实现"查询用户"功能. ①在po包中创建Customer类,并编写相关变量和添加set/get方法.(相关变量:客户编号,客户名称,负责人id,创建人id,客户信息来源,客户所属行业,客户级别,联系人,固定电话,移动电话,邮政编码,联系地址,创建时间,起始行,所取行数) 然后创建BaseDict类(字典类) ②在dao包中创建CustomerDao接口,接口中包含 通过id查询客户的方法,客户列…
1.添加新的Form窗体: 在解决方案资源管理器中,右键MeteoInfoDemo,“添加”,“Windows 窗体” 2.新窗体中添加好layersLegend1和Layout之后,要把layersLegend1的Modifiers属性设置为Public,否则在private void levelLatToolStripMenuItem_Click(object sender, EventArgs e)事件中无法访问新建窗体中的layersLegend1控件. 3.修改: List level…
1.新添加状态栏ToolStrip,可能名称为toolStripStatusLabel2 这时需要把TSSL_Coord改为toolStripStatusLabel2 2.SetMapView();语句要放在private void Form1_Load(object sender, EventArgs e)中,而不是public Form1()中…
最终的MaskOut功能未能实现 另外,一个有用的,在指定位置显示图片: legend.MarkerType = MarkerType.Image; legend.ImagePath = "D:\\tj.gif";…
总体没什么问题. 1.创建Projection菜单,Lambert,Geographic,ShowLatLon子菜单. 2.需要添加: using MeteoInfoC.Projections; 3.修改: TSMI_ShowLonLat 为: showLatLonToolStripMenuItem…