Salesforce inline editing需要满足的条件

Salesforce inline editing是非常方便的功能,可以提供方便的在视图中编辑和保存字段的功能。

但是好东西不是十全十美的,它有些限制:
Guidelines for Editing Records with the Inline Editor

而对于列表视图(lists),有下面限制:

  1. 某些标准字段并不支持,比如:Case Status, Opportunity Stage, Opportunity Amount, Opportunity Quantity and Lead Status, and most Task and Event fields只能在记录编辑页面编辑.
  2. 如果org使用了记录类型,则必须保证视图里面的列出的记录全部属于同一个记录类型。换而言之,必须使用记录类型作为筛选条件,同时最多选择一个类型或者留空(对于主记录类型)
  3. 在筛选条件的逻辑里面,不能包含或(OR)从句(clause)
  4. 对于活动(Activities)则必须有额外的筛选,指定任务(Task)为真(True)或者为假(False)

更多信息,可以参考Salesforce英文说明:Editing Records Directly From Enhanced Lists

Discuz! X3.2找回密码提示参数错误的解决办法以及导致的登录缓慢

前言

Discuz!X3.2这个问题不是个案,而是实实在在的bug,网上一搜一大把。但是目前仍然没有官方补丁出来,只有网友力量:

bug描述

在找回页码界面,填写并提交新密码后会出现「参数错误」的提示。

bug原因

discuz在post表单传值的时候没有没有传sign值,但是又校验的了这个sign值。为了安全起见,解决办法不能删除校验这步,必须传送这个sign值。

解决方法

  1. 修改文件:source\module\member\member_getpasswd.php

    $uid = $_GET['uid'];

下方添加

$sign = $_GET['sign'];
  1. 修改文件:template\default\member\getpasswd.htm
    修改

<form method="post" autocomplete="off" action="member.php?mod=getpasswd&uid=$uid&id=$hashid&sign=$sign">

带出的问题

  1. 登录太慢,花时间太久

VirtualBox虚拟机上网

文章参考来源:http://www.centoscn.com/CentOS/config/2015/0311/4857.html

VirtualBox 四种网络接入方式

  1. NAT 网络地址转换模式(NAT,Network Address Translation)
    特点:虚拟机可以访问外部网络,但是外部网络包括主机不能访问到虚拟机,也不知道虚拟机的存在;虚拟机之间也无法互访。
  2. Bridged Adapter 桥接模式
    特点:通过主机网卡桥接到外部网络,会被分配一个独立IP(前提是外部网络有可分配IP);外部看来这是与主机同层次的机器,所有机器(虚拟、主机、外部网络)都能互访。
  3. Internal 内部网络模式
    特点:虚拟机之间通过设置可以互访;虚拟机与主机、外部网络之间不能互访。
  4. Host-only Adapter 主机模式
    特点:虚拟机之间,虚拟机与主机可以互访(192.168.56/1网段);虚拟机与外部网络不可以互访。

推荐方法

推荐使用两块网络,第一块设置位NAT供虚拟机连接外部网络,第二块设置为Host-only供虚拟机与主机互访。这样做的目的是:

  • 虚拟机能够访问网络,但是网络不能访问虚拟机,保证虚拟机隐私和安全
  • 虚拟机与主机能够互访,方便使用虚拟机建立开发环境

Matlab 与 Excel 混合编程

Matlab与Excel混合编程其实早在2010年科学网左正伟博客就有一篇文章总结了,到现在(2015年)也不为过时。这里在简要引用一下,作者终结了四种(当时)主流的实现方式:

  • 利用Excel Link(最常用方法),具体参见Matlab帮助或Excel Link手册
  • 利用Excel生成器(Matlab作COM服务器)
  • 利用Active X控制(Matlab作COM客户端)
  • 文件导入方法(利用xlsreadxlswrite函数读写Excel文件)

路上这篇文章主要介绍最后一种方法,即利用xlsreadxlswrite函数去读写Excel文件,再用Matlab进行数据处理的思路。因为路上的需求非常简单(粗暴):统计一堆按照某种格式制作的Excel文件(工作簿)中每个工作表(工作表/Worksheet)中指定位置的内容,并返回统计结构。
Matlab去满足这两种需求也很简单:利用xlsread读取内容,处理后,利用xlswrite写入预定格式的Excel文件中。其中xlsread用的函数调用方法为:

[num,txt,raw] = xlsread(filename,sheet,xlRange)

xlswrite的调用方法为:

xlswrite(filename,A,sheet,xlRange)

同时我们使用

[satus,sheets] = xlsfinfo(filename)

得到每个工作表(worksheet)的名称,同时我们也可以通过numel(sheets)获得工作表数量信息。而为了去自动读取所有的Excel文件,我们将所有要处理的文件放在一个文件夹下,然后利用 file = dir('./*.xlsx') 命令将所有Excel文件存入一个结构数组中。

思路(步骤)总结

  1. 利用 dir 函数读取所有要处理的Excel文件信息
  2. 利用xlsfinfo函数获得Exce文件中的工作表(worksheet)信息(名称、数量等)
  3. 利用xlsread函数读取Excel文件中指定工作表(worksheet)指定位置数据
  4. Matlab 编程处理数据
  5. 利用xlswrite 函数将相关数据以存入预定格式的 Excel 文件中

Discuz!3.2 邮箱32位限制的解除方法

Discuz! 是非常知名的论坛和门户建站平台。但是其对电子邮箱有32位的限制,任何超过32位的邮箱都会被判断为无效邮箱。但是,实际上现在会有一些邮箱会超过这一限制,因此本着对所有用户负责人的态度,解除这一限制就成了当务之急。

经过粗略的研究Discuz!的form有效性验证是form内容提交到网站后,后台(php语言部分)进行验证,再将结果通过Ajax(注册时采用)或者召唤相应页面(注册后手动修改邮箱时采用)的方式返回到网页前端。同时,通过对3.2版本的Discuz!数据库研究发现,其默认的邮箱字段长度位255为可变字符(varchar)。因此,只要我们修改后台相应的php验证模块,我们可以实现最长255位的邮箱支持。不过实际上很难有人注册这种邮箱,我们的目标是为正常人类服务,因此将邮箱长度设置为64位.下面是步骤,就两步:

  1. 修改注册流程的后台php验证代码:
    修改\discuz\source\function\function_core.php第370行函数「isemail」中最大长度32为64
  2. 修改手动修改邮箱流程的后台php验证代码:
    修改\discuz\source\function\function_member.php第285行函数「checkemail($email)」中「strlen($email) > 32」为「strlen($email) > 64」.