Я пытаюсь добавить несколько хуков в мое приложение OwnCloud под названием Metadata
и я не могу понять это (крюк не запускается).
Я пытался следить за содержанием https://doc.owncloud.org/server/8.2/developer_manual/app/init.html а также https://doc.owncloud.org/server/8.2/developer_manual/app/hooks.html (хотя кажется, что второй устарел).
В основном, все, что я сейчас пытаюсь сделать, это поймать pre-rename
подключите и напишите что-нибудь в файл.
Мой код:
myapp/appinfo/app.php
namespace OCA\Metadata\AppInfo;
use OCP\AppFramework\App;
$app = new App('metadata');
$container = $app->getContainer();
$container->query('OCP\INavigationManager')->add(function () use ($container) {
$urlGenerator = $container->query('OCP\IURLGenerator');
$l10n = $container->query('OCP\IL10N');
return [
// the string under which your app will be referenced in owncloud
'id' => 'metadata',
// sorting weight for the navigation. The higher the number, the higher
// will it be listed in the navigation
'order' => 10,
// the route that will be shown on startup
'href' => $urlGenerator->linkToRoute('metadata.page.index'),
// the icon that will be shown in the navigation
// this file needs to exist in img/
'icon' => $urlGenerator->imagePath('metadata', 'app.svg'),
// the title of your application. This will be used in the
// navigation or on the settings page of your app
'name' => $l10n->t('Metadata'),
];
});
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OC\Metadata\Hooks', 'postRename');
а потом myapp/hooks.php
<?php
namespace OCA\Metadata;
use OC\Files\Filesystem;
use OC\Files\View;
class Hooks {
// private $userManager;
public static function postRename($params) {
file_put_contents("/var/www/data/owncloud_print2.log", "post_rename");
}
}
в файл ничего не записывается. Я также попробовал другие подходы все без удачи. кто-нибудь знает что я делаю не так ??
мой connecthook был не прав. так должно быть:
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', 'OCA\Metadata\Hooks', 'postRename');
Других решений пока нет …