小编tou*_*tpt的帖子

如何检查dexterity内容类型字段的约束

我想在编辑表单中检查保存过程中字段的值验证一些约束

(了解调用我可以使表单操作无效的方法)

plone

5
推荐指数
1
解决办法
421
查看次数

是jquery-mobile"移动第一"

我已经读过Luke WROBLEWSKI的书"Mobile first"以及关于该主题的许多其他读物.我是一名网络开发人员,现在我确信"移动优先"或"渐进增强"是最佳选择.

现在我正在寻找一个实现这一目标的框架.

JQuery移动annonce他们是"移动第一"但我在某些日子里尝试过,现在我倾向于说"不是不是".你不能把它与其他框架混合在一起; 它确实可以保留DOM中的所有页面(使用ajax强制加载),这样就不会让我的生活更轻松.尝试使用它来逐步增强和完成桌面版本而不卸载它,似乎是不可能的.我的意思是你不想在桌面电脑上放置大按钮,所以我想我只需要删除框架的js和css,这听起来很奇怪.我甚至不知道是否可能.

JQuery mobile看起来像一个框架,可以实现您网站的专用移动网络版本,其外观和感觉不仅仅是移动的第一个网站.

所以请有人告诉我我错在哪里:*jQuery mobile真的是"移动优先"吗?*我可以使用jquery mobile进行渐进增强(使用桌面作为最后一个目标)吗?如果是,请告诉我如何.

以下是相应的页面,告诉jquerymobile首先是移动设备:http://view.jquerymobile.com/1.3.0/docs/intro/#ProgressiveEnhancement

我也尝试了zurb的基础,它运作良好,但没有提供足够的小部件或工具来提供漂亮的mobiel UI.混合两者将是重点,但它需要很多工作(CSS冲突+可能是JS冲突),我甚至不知道它是否可能.

有关如何在移动第一个上下文中使用jquery mobile的任何建议都将受到欢迎!

mobile jquery web-applications jquery-mobile

5
推荐指数
1
解决办法
2233
查看次数

如何使用Plone 4删除编辑模式下的portlet?

我习惯通过在portal_skin下覆盖base_edit.cpt文件在Plone 3下实现这一点,并使列为空:

  <metal:head fill-slot="column_one_slot"></metal:head>
  <metal:head fill-slot="column_two_slot"></metal:head>
Run Code Online (Sandbox Code Playgroud)

我试图用Plone4实现这一点,结果很奇怪:我有两个空列,编辑模式不会拉伸(保持在页面中间).

plone

4
推荐指数
1
解决办法
845
查看次数

创建Plone私有站点的最佳方法是什么?

我想知道每个解决方案,只保留最好的解决方案"关闭每个匿名用户的网站".匿名用户应该只有登录表单.

现有方式:

  • 使用zope安全性(删除对root plonesite匿名的查看权限)
  • 使用工作流程(更改已发布状态的安全映射)
  • 在http auth的代理中使用apache

还有其他解决方案吗?什么是最好的?

注意:我在尝试使用zope安全性时遇到问题,即使登录表单无法访问,因此请详细说明您实现此目的的方法.

plone

4
推荐指数
1
解决办法
1589
查看次数

如何使用ignoreContext = True在更新方法中设置Plone自动表单的值

我正在尝试制作一个在上下文之外存储值的表单。存储已完成并且运行良好,但现在我希望更新方法在渲染过程中填充表单。所以我以这种方式重写 Form 类的更新方法:

def update(self):
    super(ConfigurationForm,self).update()
    form = self.request.form
    if not form:
        #We are on a rendering process
        provider = self.getProvider()
        settings = provider.get()
        #TODO: update widget values !?
Run Code Online (Sandbox Code Playgroud)

settings 是一个字典,其中键等于接口字段的名称。

所以我尝试了很多方法来更新小部件值:

  • 使用 dataconverter (太复杂,不知道这是否是唯一的方法
  • 更新 self.request.form 字典并再次调用 update 方法
  • 玩弄现场物体

实现这一目标的好方法是什么?(支持所有领域?)

zope plone

4
推荐指数
1
解决办法
205
查看次数

将标记值存储到Plone中的内容的最佳方法是什么:zope.annotation或setattr

这是开发人员的常见情况.您希望为需要存储数据的网站的每种内容类型添加功能.它是一种元数据,而不是配置数据.

我看到两个解决方案:

  • zope.annotation
  • setattr:将属性添加到持久对象

我真的不知道为什么,但是从Plone2.5开始使用zope.annotation很好,现在它似乎不是存储额外数据的首选方式.例如,plone.uuid使用setattr存储唯一ID.

plone

4
推荐指数
1
解决办法
219
查看次数

如何在函数中返回节点sqlite3的结果?

我正在尝试在expressjs app(nodejs)中使用sqlite3

我想创建一个从select语句返回所有结果的函数.该功能将由一条路线调用

var queryGetAll = 'SELECT id, title, description, modified, lat, lng, zoom FROM maps';
function Manager(){
        this.db = null;
        this.getAll = function(){
            var all = [];
            this.db.all(queryGetAll, function(err, rows){
                if (err){
                    throw err;
                }
                all.push.apply(all, rows);
            });
            return all;
        }
}
Run Code Online (Sandbox Code Playgroud)

我知道nodejs是异步的,所以它意味着在查询结束之前调用return.但我没有找到关于如何使用sqlite的例子.

javascript sqlite node.js

3
推荐指数
1
解决办法
7042
查看次数

如何使用q(承诺)节点sqlite3

我正在尝试使用sqlite3的promise.这是我的源代码的一部分:

this.deleteTag = function(tag, project){
    var db = this.db;
    if (project){
        return q.nfcall(db.run, "DELETE FROM tag2project WHERE tag = ? AND project = ?",
            [tag.id, project.id]);
    }else{
        return q.all([
            q.nfcall(db.run, "DELETE FROM tag2project WHERE tag = ?", [tag.id]),
            q.nfcall(db.run, "DELETE FROM tags WHERE id = ?", [tag.id])
        ]);
    }
};
Run Code Online (Sandbox Code Playgroud)

但那些承诺只会输入.fail,其中错误是:

[TypeError: Database object expected]
Run Code Online (Sandbox Code Playgroud)

搜索此错误只能让我看到sqlite本身的源代码https://github.com/joyent/smartos-live/blob/master/src/node-sqlite3/src/statement.cc#L91

使用简单回调的旧版本正在运行,因此this.db或sql查询中没有错误.

javascript sqlite promise

3
推荐指数
1
解决办法
1645
查看次数