From e3e08d0e3436e3cf2f951321861e1a274cc2ebbd Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Thu, 17 Mar 2016 21:52:40 -0400 Subject: Added local file link provider --- app/ExternalLink/FileLink.php | 26 ++++++++++ app/ExternalLink/FileLinkProvider.php | 74 ++++++++++++++++++++++++++++ app/ServiceProvider/ExternalLinkProvider.php | 2 + 3 files changed, 102 insertions(+) create mode 100644 app/ExternalLink/FileLink.php create mode 100644 app/ExternalLink/FileLinkProvider.php (limited to 'app') diff --git a/app/ExternalLink/FileLink.php b/app/ExternalLink/FileLink.php new file mode 100644 index 00000000..ea13ece8 --- /dev/null +++ b/app/ExternalLink/FileLink.php @@ -0,0 +1,26 @@ +url, PHP_URL_PATH); + return basename(str_replace('\\', '/', $path)); + } +} diff --git a/app/ExternalLink/FileLinkProvider.php b/app/ExternalLink/FileLinkProvider.php new file mode 100644 index 00000000..901f78f8 --- /dev/null +++ b/app/ExternalLink/FileLinkProvider.php @@ -0,0 +1,74 @@ + t('Related'), + ); + } + + /** + * Return true if the provider can parse correctly the user input + * + * @access public + * @return boolean + */ + public function match() + { + return strpos($this->userInput, 'file://') === 0; + } + + /** + * Get the link found with the properties + * + * @access public + * @return \Kanboard\Core\ExternalLink\ExternalLinkInterface + */ + public function getLink() + { + $link = new FileLink($this->container); + $link->setUrl($this->userInput); + + return $link; + } +} diff --git a/app/ServiceProvider/ExternalLinkProvider.php b/app/ServiceProvider/ExternalLinkProvider.php index c4bbc4cf..8b71ec81 100644 --- a/app/ServiceProvider/ExternalLinkProvider.php +++ b/app/ServiceProvider/ExternalLinkProvider.php @@ -7,6 +7,7 @@ use Pimple\ServiceProviderInterface; use Kanboard\Core\ExternalLink\ExternalLinkManager; use Kanboard\ExternalLink\WebLinkProvider; use Kanboard\ExternalLink\AttachmentLinkProvider; +use Kanboard\ExternalLink\FileLinkProvider; /** * External Link Provider @@ -28,6 +29,7 @@ class ExternalLinkProvider implements ServiceProviderInterface $container['externalLinkManager'] = new ExternalLinkManager($container); $container['externalLinkManager']->register(new WebLinkProvider($container)); $container['externalLinkManager']->register(new AttachmentLinkProvider($container)); + $container['externalLinkManager']->register(new FileLinkProvider($container)); return $container; } -- cgit v1.2.3