站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Gallery:嵌入:整合
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
== 用户管理 == 当使用嵌入G2自带用户管理的emApp时,你应当禁用G2的用户注册模块,因为所有的用户都要通过emApp注册。 有两种方法能保证emApp中新建的用户也可以在G2中进行创建。 * 推荐'''基于事件的同步'''方法。但并非所有的emApps都支持。 * '''即时的用户创建'''是低端回退性的解决办法,主要针对较低效的emApp。 === 基于事件的同步 === 现代CMS框架具有一个事件系统,并运行它们的模块将你自己的函数钩入核心功能。当某个用户被创建时,常常就是一个事件,还有用户删除以及用户属性的更新。 你的整合将在emApp中对这些事件进行侦听并分别对GalleryEmbed::createUser(),GalleryEmbed::deleteUser()和GalleryEmbed::updateUser()进行呼叫。 由于在emApp中某用户创建的同时对GalleryEmbed::createUser()进行呼叫,G2和emApp将总是处于同步的。这就是所谓的'''基于事件的松耦合(event-based loose coupling)'''。因为即便两个应用程序均为完全自包含的,各自管理数据并无需要编辑的文件,它们都是100%同步的。 === 即时用户创建 === 如果你的emApp没有挂钩(hook)/事件系统的话,就需要另辟门路来保证emApp中访问嵌入的G2的用户也能存在于G2中。 如果你在为自定义web脚本/应用程序编写整合并且没有事件系统的话,你就可以编辑用户创建代码/函数并呼叫GalleryEmbed::create()(::delete()和::update()也一样)。 如果你需要为CMS/门户编写整合,那么该整合对于其他针对自己网站的用户来说,就应当安装简单并且易于维护。你就不太可能要求他们编辑/替换自己的emApp文件以保证GalleryEmbed::create()方法被呼叫。 对于这种情况,我们推荐'''即时的用户创建(on-the-fly user creation)'''。这意味着你在需要时才进行G2用户的创建。你不是在该用户于emApp中创建的同时创建该用户,而是当该用户首次访问emApp中嵌入的G2时在后台进行创建。 即时用户创建的样例代码(将其放入G2封包文件中): $ret = GalleryEmbed::init(array('embedUri' => $embedUri, 'g2Uri' => $g2Uri, 'activeUserId' => $emAppUserId)); if ($ret) { /* 错误! */ /* 由于用户尚不存在于g2中而发生错误?*/ $ret2 = GalleryEmbed::isExternalIdMapped($emAppUserId, 'GalleryUser'); if ($ret2 && $ret2->getErrorCode() & ERROR_MISSING_OBJECT) { /* The user does not exist in G2 yet. Create in now on-the-fly */ $ret = GalleryEmbed::createUser($emAppUserId, array('username' => $emAppUser['username'], 'language' => $emAppUser['language'], ...)); if ($ret) { /* An error during user creation. Not good, print an error or do whatever is appropriate * in your emApp when an error occurs */ print "An error occurred during the on-the-fly user creation <nowiki><br></nowiki>"; print $ret->getAsHtml(); exit; } } else { /* 我们得到的错误不是由于用户缺失导致,而是一个真正的错误*/ if ($ret2) { print "An error occurred while checking if a user already exists<nowiki><br></nowiki>"; print $ret2->getAsHtml(); } print "An error occurred while trying to initialize G2<nowiki><br></nowiki>"; print $ret->getAsHtml(); exit; } } /* 此时我们知道用户之前已存在或刚刚被创建 * 继续正常的G2请求*/ $data = GalleryEmbed::handleRequest(); /* 打印$data['bodyHtml']等 */ 但即时用户创建还是有问题的! * 你只能保证来自emApp用户以通常方式访问G2 * 但你无法同步用户删除或用户数据更新(如language / email / ...) * 另外,G2和emApp一般都是非同步的,你只能保证较差质量的用户同步。 如果你需要使用即时用户创建的话,我们建议你多花点功夫在''初始用户同步''上,这样你就可以时常或定期地运行它,从而使得它能够检测出哪些用户需要进行更新或删除。 另见一稍微过时的帖子: :* http://gallery.menalto.com/node/25196?from=50#comment-100758 :'''常见问题''': * 当在G2中删除某用户时会怎样(如使用GalleryEmbed::deleteUser())? 该用户的所有项目都会被重新分派给某个新的所有者,通常是管理员列表中的第一个管理员。该用户自身则被完全删除。
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)