Files
FinanceBuddy/Plugin.php

70 lines
2.3 KiB
PHP

<?php
namespace Kanboard\Plugin\FinanceBuddy;
use Kanboard\Core\Plugin\Base;
class Plugin extends Base
{
public function initialize()
{
// Plugin stylesheet. Empty for now; the money badge and per-column total styling
// are added as those features land in later versions.
$this->hook->on('template:layout:css', array(
'template' => 'plugins/FinanceBuddy/Asset/css/finance.css',
));
// Per-board opt-in: a checkbox on the project's Settings -> Integrations page. Nothing
// else in the plugin renders or saves until a project manager enables it for that board.
$this->template->hook->attach('template:project:integrations', 'financeBuddy:project/integration');
// Finance fields in the task create/edit form (middle column). The template gates itself
// on the board being enabled. These are not task columns, so core cannot persist them:
// FinancePersistence strips them from the task write and stores them in task metadata,
// all synchronously via the model hooks below.
$this->template->hook->attach('template:task:form:second-column', 'financeBuddy:task/form_fields');
$persistence = new \Kanboard\Plugin\FinanceBuddy\Model\FinancePersistence($this->container);
$this->hook->on('model:task:creation:prepare', array($persistence, 'onCreationPrepare'));
$this->hook->on('model:task:creation:aftersave', array($persistence, 'onCreationAfterSave'));
$this->hook->on('model:task:modification:prepare', array($persistence, 'onModificationPrepare'));
}
public function getHelpers()
{
return array(
'Plugin\FinanceBuddy\Helper' => array('FinanceHelper'),
);
}
public function getPluginName()
{
return 'FinanceBuddy';
}
public function getPluginDescription()
{
return t('Attach a money value (debit/credit and installments) to board cards, shown on the card and totalled per column. Opt-in per board.');
}
public function getPluginAuthor()
{
return 'Ruben (drbeco)';
}
public function getPluginVersion()
{
return '0.3.0';
}
public function getPluginHomepage()
{
return 'https://code.beco.cc/beco/FinanceBuddy';
}
public function getCompatibleVersion()
{
return '>=1.2.0';
}
}