forked from Snck3rs/contao-leaflet-maps
Add credits page
This commit is contained in:
93
src/Netzmacht/Contao/Leaflet/Backend/Credits.php
Normal file
93
src/Netzmacht/Contao/Leaflet/Backend/Credits.php
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package dev
|
||||
* @author David Molineus <david.molineus@netzmacht.de>
|
||||
* @copyright 2015 netzmacht creative David Molineus
|
||||
* @license LGPL 3.0
|
||||
* @filesource
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Netzmacht\Contao\Leaflet\Backend;
|
||||
|
||||
|
||||
class Credits
|
||||
{
|
||||
public function generate()
|
||||
{
|
||||
$template = new \BackendTemplate('be_leaflet_credits');
|
||||
|
||||
$template->headline = 'Leaftlet maps integration for Contao CMS';
|
||||
$template->libraries = $this->getLibraries();
|
||||
|
||||
list($template->version, $template->dependencies) = $this->extractFromComposer();
|
||||
|
||||
return $template->parse();
|
||||
}
|
||||
|
||||
private function getLibraries()
|
||||
{
|
||||
return array_map(
|
||||
function ($library) {
|
||||
$library = array_merge(
|
||||
array(
|
||||
'homepage' => null,
|
||||
'version' => null,
|
||||
),
|
||||
$library
|
||||
);
|
||||
|
||||
if ($library['homepage']) {
|
||||
$library['homepage'] = sprintf(
|
||||
'<a href="%s" %s>%s</a>',
|
||||
$library['homepage'],
|
||||
LINK_NEW_WINDOW,
|
||||
preg_replace('#^(https?://(www)?)#i', '', $library['homepage'])
|
||||
);
|
||||
}
|
||||
|
||||
return $library;
|
||||
},
|
||||
array_filter(
|
||||
$GLOBALS['LEAFLET_LIBRARIES'],
|
||||
function ($library) {
|
||||
return isset($library['name']) && isset($library['license']);
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private function extractFromComposer()
|
||||
{
|
||||
$local = TL_ROOT . '/composer/vendor/netzmacht/contao-leaflet-maps/composer.json';
|
||||
$composer = TL_ROOT . '/composer/composer.lock';
|
||||
|
||||
if (!file_exists($local)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$local = json_decode(file_get_contents($local), true);
|
||||
$installed = json_decode(file_get_contents($composer), true);
|
||||
$deps = array();
|
||||
$version = null;
|
||||
|
||||
foreach ($installed['packages'] as $package) {
|
||||
if ($package['name'] === 'netzmacht/contao-leaflet-maps') {
|
||||
$version = $package['version'];
|
||||
} elseif (isset($local['require'][$package['name']])) {
|
||||
$deps[] = array(
|
||||
'name' => $package['name'],
|
||||
'version' => $package['version'],
|
||||
'license' => !empty($package['license']) ? implode(', ', $package['license']) : '',
|
||||
'homepage' => sprintf(
|
||||
'<a href="https://packagist.org/packages/%s" target="_blank">Visit packagist</a>',
|
||||
$package['name']
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return array($version, $deps);
|
||||
}
|
||||
}
|
||||
@@ -94,7 +94,7 @@ class BootSubscriber implements EventSubscriberInterface
|
||||
{
|
||||
$builder = $event->getBuilder();
|
||||
|
||||
foreach ($GLOBALS['LEAFLET_ASSETS'] as $name => $assets) {
|
||||
foreach ($GLOBALS['LEAFLET_LIBRARIES'] as $name => $assets) {
|
||||
if (!empty($assets['css'])) {
|
||||
list ($source, $type) = (array) $assets['css'];
|
||||
$builder->registerStylesheet($name, $source, $type ?: Assets::TYPE_FILE);
|
||||
|
||||
Reference in New Issue
Block a user