【问题标题】:Using a third party plugin with Yii在 Yii 中使用第三方插件
【发布时间】:2013-02-28 18:51:13
【问题描述】:

我在使用第三方插件 yii,它提供聊天功能,它有自己的数据库和提供功能的 php 文件,

现在我想在视图中使用它,但是简单的包含语句不起作用,我需要将其转换为 yii 还是可以按原样使用它?

<?php

session_start();

// Load MySQL DB settings
include_once('config.inc.php');

$_SESSION['username'] = 'Currently logged in users's username from database';
$_SESSION['user_id'] = 'Currently logged in user's id';

?>

//That's it! To print online users, you need to do it like this:

<?php
$users = mysql_query("SELECT id,username FROM ".$sql_table_users." WHERE chat_status='online' AND id!='".$_SESSION['user_id']."'");
if(mysql_num_rows($users) > 0){
    while($user = mysql_fetch_assoc($users)){
        print '<a href="#" alt="'.$user['id'].'|'.$user['username'].'" class="chat_user">'.$user['username'].'</a><br />';
    }
}
?>

这是为我提供的接口插件。 插件位置是 /assets/plugin。

我不能对另一个数据库使用直接的 php 查询命令,我想将它与我的数据库分开,加上插件附带的 js 文件调用带有错误 URL 参数的脚本,那么将其合并到的最佳方法是什么我的 yii 应用。谢谢

【问题讨论】:

  • 它是一个简单的 php 插件,这来自文档,这意味着它只需使用此代码并在普通 php 应用程序中添加一个 db 即可工作,我想问我应该如何将它添加到 yii应用程序。特别是在我的布局视图中。以一种我可以在不更改插件代码的情况下使用它的方式。
  • 您正在使用的插件的链接会很有帮助。如果您尝试按上述方式实现它,也不清楚什么不起作用 - 尽管 include_once() 可能会由于路径问题而失败。向我们展示您尝试过的内容以及遇到的错误。您还声明“我不能对另一个数据库使用直接 php 查询命令”-我不知道为什么不能?
  • 感谢您的帮助,正如您所建议的那样,存在路径问题,我直接在视图中添加了脚本,并根据目录结构更改了其路径并且它有效,但我仍然不完全满意通过实现,部分是插件错误,因为它没有使用正确的 OOP 结构,写得不好。不值得它的价格。感谢您的帮助。
  • 我认为从 Yii 的角度来看,调用涉及其自己的数据库连接的脚本是不可能的,但它并没有抱怨 :)

标签: yii


【解决方案1】:

你应该创建一个 Yii 扩展来包装你的插件。 然后在您的视图中,您必须调用一个显示您的聊天的小部件。

我认为这是最好的方法,因为使用它,您对插件的所有调用都将使用 yii 结构和哲学来执行。只有您的扩展程序将使用聊天理念构建。

Source about creating widgets

【讨论】:

  • 一开始我就是这么想的,但是由于我自己没有创建扩展的经验,所以开始使用它需要很长时间。这东西有什么捷径吗?
  • 不知道你想用什么聊天插件,很难帮你!
  • 好吧,我更改了插件脚本及其路径,它开始工作了,但是为了将来我想对其进行扩展,我查看了您的链接,它没有多大帮助对于初学者,你能建议一些可以通过示例向我展示所涉及的所有步骤的东西,这样我就可以开始学习了!
  • 你的yii水平如何?如果您是初学者,请先学习 Yii 指南(阅读所有章节),然后查看 doc api,最后您应该观察其他包装插件是如何完成的。在所有扩展中,您可以找到一个与您想要实现的目标非常相似的扩展(获取一个 php 扩展并将其包装)。这是一个例子yiiframework.com/extension/mail
猜你喜欢
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多