BootstrapValidator 页面验证多个form

只做记录,没什么技术含量。

每个页面多个form,没问题,form id不同,name不同,然后“标识”不同,所谓标识就是放一个<input type=”hidden” 指定比如name=”type” ,那么多个form在action到同一个method的时候,就使用type判断当前提交的是哪个form;那bootstrapValidator里绑定的内容如下:

第一行jQuery选择器匹配所有form并添加bootstrapValidator,然后post时使用this传递form data,其他的form处理都一样,就四酱。

openshift配置http跳转https并且www域名跳转不带www域名的apache rewrite规则

不说原因直接开,需求就是搞了个https免费证书,要求所有http请求都跳转到https,并且www域名跳转到不到www的域名,比如请求www.lison.cc跳转到https://lison.cc,而请求lison.cc跳转到https://lison.cc,全站https嘛。

1.首先设置DNS. 我用的cloudflare的CDN,DNS设置看起来是这样的:

cloudflare为lison.cc做的的DNS设置

2.设置openshift你的application的alias。
默认的有lisonliou-osrd.rhcloud.com,然后再添加lison.cc,www.lison.cc,这是域名绑定?不是很清楚,我就是卡在这里好几个钟头。。。

3.设置转发规则。
我用的apache服务器,所以只需要修改.htaccess文件,添加如下行:

 

第一个rewrite规则是将带www(或者其他,因为已经做了泛解析)的网址跳转到https://aixiadianying.com;

第二个rewrite是将http请求定向到https,实现全站https,就是这样。

最后为业余时间做的站露个脸:爱下电影网 – 一个可以下载电影的网站~ !

Happy Holiday~

javascript使用persistjs跨页面存储读取数据

折腾记:

两个html文件html1和html2,要求使用js在html1中保存数据在html2中能够读取出来,不用数据库、不用session、不用xxx。

PersistJs这个js库。

html1文件的内容:

html2文件内容:

剩下的就在控制台查看效果吧。

本文严重符合伸手COPY党口味,之前有见到大神的PersistJs Demo文章,虽然就几句话,但是一直调试不通,自己折腾了十好几分钟才ok,记下。

据说这厮跨浏览器通用,而且若不支持html5,则自动使用cookie存储(我没验证),真是居家旅行、杀人放火必备之精品啊。

PHP框架ACI动态设置页面SEO信息

背景:

PHP框架 CI 不多说,ACI框架同样不多说,说一下如何为ACI框架的每个页面设置单独的SEO信息。直接说源码部分(本文做折腾记录,面向php技能比较生的手,或者出家时不是修行的php,而是半路改行的家伙)。

需求:
1.为每个页面设置固定的SEO信息
2.为单个页面动态设置SEO信息,例如产品详情页,动态展示产品名称,参数(对应title、keyword等内容)

涉及到的文件:
1. application/config/seo.php
2. application/core/MY_Controller.php
3. application/views/template/header.php
4. 自定义的Controller

折腾:
ACI安装完成之后,要为单独页面设置SEO,先来看下源码目录结构,大约找到了这个文件:application/config/seo.php,打开之后将$config[‘seo’][‘default’] 修改成我们自己的title, keyword,description之后果然生效了,OK, 这是第一步。

上面的修改之所以能够生效,原因在于application/views/template/header.php这个文件,打开之后发现head中有如下代码:

很明显$title, $keyword, $description都是动态设置的(废了个话),然后就应该找到每个页面对应的Controller,于是第二步顺藤摸瓜,找到welcome.php的controller页面,发现controller里面没有任何关于设置title、keyword的东西。然后看一下Welcome的继承关系( ->代表继承关系):
Welcome -> Front_Controller-> MY_Controller -> CI_Controller

看一下MY_Controller的代码:

主要看标红的部分,$_default_pageseo是没有设置seo信息时默认的内容,就是第一步seo.php里修改的文字,若设置了seo信息,则从$_pageseo里获取,$_pageseo的内容来自哪里?来自seo.php,新增一个的话:

movie是对应的controller名字,这样实现的是固定的页面seo内容。

我的问题是,动态的SEO内容,就像打开一个产品页面,显示每一个具体产品的SEO信息,而不是一个固定的。

OK,解决方法是在Front_Controller中加入方法:

上面代码不做解释,然后在每个Controller的action中,渲染页面之前($this->view()),调用$this->seo($title, $keyword, $description)。

就是这样,中午没睡好,脑子不灵,语言组织不搭。。。

树莓派学习使用入门资料整理 – Raspberry PI

关于[Python],人生苦短,我用python

Python2.x 与Python3.x 存在严重的兼容性问题

关于opencv

OpenCV 编程简介(矩阵/图像/视频的基本读写操作)
Emgu cv Tutorial

关于Linux学习

关于树莓派

树莓派入门指南
用python让树莓派说话
树莓派吧
树莓派官方社区Python讨论版
极客工仿树莓派板块
树莓派中文站
Mike’s Electric Stuff 查设备sheet
树莓派I2C接口扩展
树莓派GPIO使用
探索Wiring Pi
Wiringpi.com 官网
Café
AllDatasheet
Search Datasheet
Handbook of hardware schemes, cables layouts and connectors pinouts
All Pinouts
AdaFruit
Asterisk搭建VoIP
树莓派学习索引

Android WebView JS 与 Java Native 相互调用示例

直接上代码,有注释,学习Android过程记录。

Android Activity代码

布局文件LinearLayout布局,orentation=vertical,一个EditText,一个Button一个WebView,长什么样子的话想象一下就好了。

html文件,同样非常简单

参考资料:developer.android.com WebView

源码下载:WebViewNJs

Python 文件内容读取示例

整理了一些数据需要批量更新到数据库,内容如:

001      009
002     008
003     007

要生成的语句:update table_name set column=009 where id=001

使用python一共三行语句:

  1. open方法是内置方法(Build-in function),文档解释为:Open file and return a corresponding file object,打开文件并且返回该文件对象。
  2. 将line转换为string并分割成数组,split方法若不加任何参数则默认使用任何空白字符(空格,制表符等)进行分割,并且自动去处数组内的空白元素,太方便了,split官方说明:S.split(sep=None, maxsplit=-1) -> list of strings

    Return a list of the words in S, using sep as the
    delimiter string. If maxsplit is given, at most maxsplit
    splits are done. If sep is not specified or is None, any
    whitespace string is a separator and empty strings are
    removed from the result.

  3. 这行就是组织sql语句了

人生苦短,我用python

Solidworks PDM: 如何查找PDM文件在服务器中的物理路径

PDM允许用户在使用它的文档节点(vaults)管理各种各样类型的文件,并且通过EPDM接口可以方便的查找和修改这些文件。但是作为EPDM文档管理员的你可能想要得到EPDM文件的真实物理路径(资源定位符路径,例如:C:/new.txt),用来找回丢失的文件,或者其他目的。要找到他们并不是很困难,只需要在SQL中执行以下几个步骤。

现在我们来假设一下在文档节点中有一个名为:170-012-011.sldprt的文件,我们想知道它具体存在于哪个文档目录中。需要在SQL中查询Documents表。

打开SQL Server Management Studio,连接好SQL实例。执行下面的select语句.

会得到如图的结果:

查询Documents表语句的返回结果截图
查询Documents表语句的返回结果截图

我们来看下查询语句,我们从Documents表(FROM Documents)查询了document ID字段(SELECT Document ID),并且把查询到的Document ID转换成了一个16进制值(CONVERT(varbinary,DocumentID) as ID_Hex_Value)(稍候我们会看到为什么要这样做),然后还有一个文件名,Filename字段(where Filename like’170-012-011%‘

现在有趣的来了,EPDM如何知道文件的具体位置呢? 可以看到Document ID:3228的16进制值是C9C。现在把C9C组成一个8位数字,左边空白补0,就变成了00000C9C。那么我们要查找的文件目录就是:<vault name>\C\00000C9C。’\C\’定义了文件存储在名称为C的目录中,而00000C9C则是子目录的名称,如图。
文件节点存储一级目录截图 screen-shot-2015-02-05-at-2-30-49-pm-1024x559

然后打开目录就能看到。通常目录里会有一个index.xml文件。

screen-shot-2015-02-05-at-2-19-35-pm-1024x142

然后要查找的170-012-011.sldprt文件就是 00000001.SLDPRT。要验证是否正确的话,就打开index.xml可以看到filename。
epdm-archive-directory-2

ok,就是这样,要注意的是,不要手动修改这些文件,这样会对数据库产生影响。

本文翻译自:CAPUniversity
《How To Find Your Enterprise PDM Files Within the Archives Directory》