mirror of
https://github.com/nextcloud/documentation.git
synced 2026-01-03 02:09:45 +07:00
51 lines
2.2 KiB
ReStructuredText
51 lines
2.2 KiB
ReStructuredText
====================================
|
|
Navigation and Pre-App configuration
|
|
====================================
|
|
|
|
.. sectionauthor:: Bernhard Posselt <dev@bernhard-posselt.com>
|
|
|
|
The :file:`appinfo/app.php` is the first file that is loaded and executed in ownCloud. Depending on the purpose of the app it usually just contains the navigation setup, and maybe :doc:`backgroundjobs` and :doc:`hooks` registrations. This is how an example :file:`appinfo/app.php` could look like:
|
|
|
|
.. code-block:: php
|
|
|
|
<?php
|
|
|
|
\OC::$server->getNavigationManager()->add(function () {
|
|
$urlGenerator = \OC::$server->getURLGenerator();
|
|
return [
|
|
// the string under which your app will be referenced in owncloud
|
|
'id' => 'myapp',
|
|
|
|
// 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('myapp.page.index'),
|
|
|
|
// the icon that will be shown in the navigation
|
|
// this file needs to exist in img/
|
|
'icon' => $urlGenerator->imagePath('myapp', 'app.svg'),
|
|
|
|
// the title of your application. This will be used in the
|
|
// navigation or on the settings page of your app
|
|
'name' => \OC::$server->getL10N('myapp')->t('My App'),
|
|
];
|
|
});
|
|
|
|
// execute OCA\MyApp\BackgroundJob\Task::run when cron is called
|
|
\OC::$server->getJobList()->add('OCA\MyApp\BackgroundJob\Task');
|
|
|
|
// execute OCA\MyApp\Hooks\User::deleteUser before a user is being deleted
|
|
\OCP\Util::connectHook('OC_User', 'pre_deleteUser', 'OCA\MyApp\Hooks\User', 'deleteUser');
|
|
|
|
|
|
Although it is also possible to include :doc:`js` or :doc:`css` for other apps by placing the **addScript** or **addStyle** functions inside this file, it is strongly discouraged, because the file is loaded on each request (also such requests that do not return HTML, but e.g. json or webdav).
|
|
|
|
.. code-block:: php
|
|
|
|
<?php
|
|
|
|
\OCP\Util::addScript('myapp', 'script'); // include js/script.js for every app
|
|
\OCP\Util::addStyle('myapp', 'style'); // include css/style.css for every app
|