Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Owncloud postCreate/post_create钩子不为共享文件夹上的其他用户执行_Php_Hook_Owncloud_Nextcloud - Fatal编程技术网

Php Owncloud postCreate/post_create钩子不为共享文件夹上的其他用户执行

Php Owncloud postCreate/post_create钩子不为共享文件夹上的其他用户执行,php,hook,owncloud,nextcloud,Php,Hook,Owncloud,Nextcloud,我们正在开发一个OwnCloud应用程序,试图跟踪将文件上传到特定文件夹的用户。钩子正在为管理员工作,但当其他用户上载到共享文件夹时,钩子不会执行。这是许可问题吗 我们的钩子寄存器代码。我们尝试了两种钩子系统,但结果相同 public function register() { \OCP\Util::connectHook('OC_Filesystem', 'post_create', 'OCA\FileActivities\Controller\UserHooks', 'on

我们正在开发一个OwnCloud应用程序,试图跟踪将文件上传到特定文件夹的用户。钩子正在为管理员工作,但当其他用户上载到共享文件夹时,钩子不会执行。这是许可问题吗

我们的钩子寄存器代码。我们尝试了两种钩子系统,但结果相同

public function register() {

        \OCP\Util::connectHook('OC_Filesystem', 'post_create', 'OCA\FileActivities\Controller\UserHooks', 'onFileCreate');
                
        $reference = $this;

        $callback = function (Node $node) use($reference) {
            $reference->onPostCreate($node);
        };

       
        $this->fileManager->listen('\OC\Files', 'postCreate', $callback);

    }

好吧,对于任何寻找相同答案的人来说,我找到了答案。如下

在app.php中

namespace OCA\xxxxxxxxxx\AppInfo;

$app = new Application();
$app->registerFilesActivity();

在lib/AppInfo中/

namespace OCA\XXXXXXXXXXXX\AppInfo;

use \OCP\AppFramework\App;
use \OCA\XXXXXXXXXXXX\Controller\UserHooks;
use OCP\IContainer;
use OCP\Util;

class Application extends App {
    public function __construct(array $urlParams=array()){
        parent::__construct('viewfinance', $urlParams);

        $container = $this->getContainer();                
        $container->registerService('UserHooks', function($c) {
                     
            return new UserHooks(
                $c->query('AppName'),
                $c->query('Request'),
                $c->query('UserSession'),
                $c->query('ServerContainer')->getRootFolder()
            );
        });

        $container->registerService('UserSession', function($c) {
            return $c->query('ServerContainer')->getUserSession();
        });
    }

    /**
     * Register the hooks for filesystem operations
     */
    public function registerFilesActivity() {
        
        Util::connectHook('OC_Filesystem', 'post_create', 'OCA\FileActivities\Controller\UserHooks', 'onFileCreate');
        
    }
}
文档对此不是很清楚,在检查了一些其他具有类似功能的应用程序后,我发现了这一点