我最近一直在玩GWT,我很喜欢这个想法.对我来说唯一的缺点是Java,我不是它的忠实粉丝.(请不要争论Java比PHP好,这不是重点,真的)
您是否了解任何成熟且高效的PHP工具包,就像GWT一样提供一组小部件?
谢谢你的帮助 :)
编辑:重新说一下,我正在寻找一个PHP框架,可以为我的应用程序页面生成大部分HTML代码.PHP-Ext似乎是我正在寻找的一个很好的例子.你知道其他任何类似的项目吗?
萨科
我一直在使用Zend Framework(使用Doctrine作为ORM)已经有一段时间了,并用它完成了一些项目.
在一些即将推出的项目中,我需要类似于Wordpress如何做的小部件.你有一个帖子/页面,看起来像:
Subscribe to my newsletter:
[subscribe/]
View my events
[events limit=5 sort=date/]
View this page's comments
[comments/]
Run Code Online (Sandbox Code Playgroud)
其中说订阅小部件将被Blog :: subscribeWidget替换,并且事件可以用Events :: eventsWidget等替换.
现在它已经在过去的几个星期里对我如何做到这一点做了我的头?我想出了以下几个选项:
我可以将小部件放在控制器中,然后像操作一样调用它们.这里的问题是代码可能在控制器之间飞行,我已经读过,由于调度量很大,这很昂贵.
我可以将小部件放置为视图助手.所以在视图中我可以使用$ this-> renderPage($ Page),然后它会参与所有小部件.这里的问题是如果小部件需要做一些业务逻辑,例如发布一个新的注释,那真的不应该在视图中,应该怎么办?
另一种选择是在模型中放置小部件?但那么他们究竟如何渲染内容以供展示呢?
额外的并发症来自:
假设评论小部件也会处理发布,删除评论等.
比如事件列表,如果我想对下一页事件做一个ajax请求,使用方法#2(查看帮助器)这将如何工作?
我有一个快速的问题.我想创建一个小的Scheduler小部件来放在我的客户网站上.因此,如果我需要对表单进行全局更改,我只需要执行一次.
该表单必须是网站所特有的,因为我需要知道将表单发送到哪个电子邮件地址.
我在考虑一个我可以这样使用的iFrame:
<iframe src="http://www.domain.com/scheduler/shop-name/"></iframe>
Run Code Online (Sandbox Code Playgroud)
但我认为这不是最好的方法,我不希望有人直接访问该URL.
另一种选择是这样的:
<script type="text/javascript">
shop_id = '114000300';
</script>
<script src="http://www.domain.com/js.widget" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我不太确定如何执行该选项,我不是那些经验丰富的Javascript但你们怎么想?iFrame与Javascript的优点和缺点是什么?
只是想知道什么是最好的选择,如果有人有关于如何入门的一些提示以及我需要注意的任何安全问题.
谢谢!
在magento中添加新的窗口小部件实例(管理员> CMS>窗口小部件实例)时,需要为其选择布局更新.在块参考选项中,有几个默认区域,如页面顶部,页面底部,左侧,右侧....如何将自定义新区域添加到此选择框?
我正在尝试为布局创建一个模板,如下所示:
|----------|
| |
| IMAGE | <--- Just an image (square)
| |
|----------|
|[btn][btn]| <--- GridLayout cols=2 of buttons
|[btn][btn]|
|[btn][btn]|
|[btn][btn]|
|[btn][btn]|
|[btn][btn]|
|----------|
Run Code Online (Sandbox Code Playgroud)
第一部分很容易(但我可能是错的,因为我在kivy很新)
#:kivy 1.6
[SideBar@BoxLayout]:
orientation: 'vertical'
Image:
source: ctx.image
size_hint: (1, None)
height: root.width
GridLayout:
cols: 2
# What do I do here to make it easy to load a list of buttons?
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的方法可以在CMS块或页面之外的其他内容上挂钩Magento小部件呈现功能?
我有一个工具提示扩展来显示自定义选项上的工具提示.将有许多产品都具有相同的选项,并且都需要相同的工具提示文本.虽然我们使用的工具提示扩展提供了一种方法来声明可以在产品上使用的片段,但是片段会在设置时添加到单个产品,而不是引用单个片段实例.因此,如果工具提示内容需要在所有产品中进行更改,我们必须编辑代码段,然后将修改后的代码段重新应用于所有产品.
最好能够直接引用代码段,而不是仅仅在产品设置中使用它,但这不是它的工作原理.因此,另一种方法是在工具提示描述中包含一个静态块,并使用我们主题已经提供的小部件功能引用单个描述实例,该功能适用于CMS页面,例如{{widget type ="cms/widget_block"template ="cms/widget /static_block/default.phtml"block_id ="xx"}},其中xx是为此工具提示创建的块.
这需要工具提示HTML描述解析通过Magento中的任何内容解析内容HTML并处理它包含的任何窗口小部件指令.
我尝试了以下内容,其中$ tipstext是包含widget指令的工具提示HTML,但没有去.没想到会那么简单!
Mage_Cms_Model_Template_Filter::filter($tipstext);
Run Code Online (Sandbox Code Playgroud)
Anyhone有任何想法是否/如何轻松实现这一目标?
我试图在ck编辑器中插入html后触发小部件的对话框 - html是向上移动到小部件.
例如,假设我的小部件有这个模板:<div class="mywidget">...</div>.小部件还有一个工作对话框(在编辑器中双击小部件会弹出对话框).
在我的代码中的其他地方,我插入<div class="mywidget">...</div>编辑器,这将成为一个小部件.到现在为止还挺好.
但是我现在需要的是触发小部件的对话框而我无法做到这一点......
我尝试添加editor.execCommand('mywidget')widget的init函数,但我得到了一个"未捕获的异常".
同样重要的是,可以将更多这些小部件插入到编辑器中,这样我就只需要触发新插入的对话框.
我现在几乎失去了,我在文档中找不到任何东西,所以任何帮助都会非常感激.
使用ckeditor 4.3,顺便说一句.
我很难理解如何取消绑定事件.
我知道基本解除你自己的绑定
bind .c <Up> {magic code}
bind .c <Up> {}
Run Code Online (Sandbox Code Playgroud)
我真的想知道如何从预绑定小部件中删除绑定.
例如,Text小部件带有向上移动的向上键,我该如何删除它?因此,当用户点击密钥时,没有任何事情发生.
有没有办法从小部件中删除所有绑定?(没有粒子理由只是想知道.)
而且我读到这应该有效,因为解除绑定
bind all <Up> {}
Run Code Online (Sandbox Code Playgroud)
("向上"是OS X的向上箭头键)
但它不适合我.:(
对不起,如果这看起来像一个愚蠢的问题,但绑定最近一直在绊倒我.先感谢您.
我正在研究一个带有适当GUI的自编模拟工具.通常,有两种主要的用户模式.在第一个中,用户可以输入多个值以进行所需的计算.在所有计算完成后,用户可以通过单击右下角的"显示结果"按钮切换到"结果模式".通过这样做,GUI上部带有图像的主窗口不会改变.但是,GUI下部的前一个输入条目应该更改为消息区域,其中显示错误,警告或其他信息(持续时间,收敛性......).
我能够使两种GUI模式都可切换,但是下框架(称为框架lowerframe)的框架高度发生了变化,看起来非常难看.
我认为所描述的行为是帧内容的不同高度的结果.在第一模式中有几个entry小部件,而在第二模式中只有一个小小label部件包含foo.
如何防止框架高度动态变化?换句话说:有没有办法来修复高度lowerframe?
我指定height=200(以及btnframe在GUI的右下角),这似乎没有任何效果,因为包含foo-label小部件的框架肯定小于那些200像素.
--- MWE ---
#!/usr/bin/env python3
# coding: utf-8
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk
class Window(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.parameternames = []
# create master window
self.master = master
# create master window
self.create_masterwindow()
def create_masterwindow(self):
"""
creates master window with menubar and sets GUI to input mode
"""
self.master.title('GUI') …Run Code Online (Sandbox Code Playgroud) 几年前,当我实现我的窗口小部件时,我使用了开发站点上的“应用程序窗口小部件”页面(仍然存在)中的以下建议:“如果您的应用窗口小部件设置过程可能需要几秒钟(也许在执行Web请求时),并且您需要您的过程继续进行,请考虑使用onUpdate()方法启动服务。” 我做到了,当为多达25个SDK开发时,它就像一个魅力。
它也可以在Android 8.0上运行,但是当我的目标是26时,该应用在发出startService调用时便开始在小部件提供商的onUpdate方法中崩溃。该错误消息与尝试从另一个后台服务启动后台服务有关,尽管我尝试了清单中服务定义中的一些操作,但无法使它正常工作。
当我确定确实不需要从服务中更新窗口小部件时,我最终做了一个解决方法,因此现在直接在onUpdate中进行更新即可。服务和背景/前景问题我并没有太多困扰,但是我仍然想知道是否有一种方法可以继续使用服务来更新小部件。