Improve backend content element handling.

This commit is contained in:
David Molineus
2015-01-07 11:13:15 +01:00
parent 84ede62132
commit 9e1c8499f2
3 changed files with 60 additions and 1 deletions

View File

@@ -14,8 +14,11 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_map'] = array(
'inputType' => 'select',
'exclude' => true,
'options_callback' => array('Netzmacht\Contao\Leaflet\Dca\Content', 'getMaps'),
'wizard' => array(
array('Netzmacht\Contao\Leaflet\Dca\Content', 'getEditMapLink'),
),
'eval' => array(
'tl_class' => 'w50',
'tl_class' => 'w50 wizard',
'chosen' => true,
),
'sql' => "int(10) unsigned NOT NULL default '0'"

View File

@@ -37,4 +37,34 @@ class Content
return $options;
}
public function getEditMapLink($dataContainer)
{
if ($dataContainer->value < 1) {
return '';
}
return sprintf(
'<a href="%s%s&amp;popup=1&amp;rt=%s" %s>%s</a>',
'contao/main.php?do=leaflet&amp;table=tl_leaflet_map&amp;act=edit&amp;id=',
$dataContainer->value,
\RequestToken::get(),
sprintf(
'title="%s" style="padding-left: 3px" '
. 'onclick="Backend.openModalIframe({\'width\':768,\'title\':\'%s\',\'url\':this.href});return false"',
specialchars(sprintf($GLOBALS['TL_LANG']['tl_content']['editalias'][1], $dataContainer->value)),
specialchars(
str_replace(
"'",
"\\'",
sprintf($GLOBALS['TL_LANG']['tl_content']['editalias'][1], $dataContainer->value)
)
)
),
\Image::getHtml(
'alias.gif',
$GLOBALS['TL_LANG']['tl_content']['editalias'][0], 'style="vertical-align:top"'
)
);
}
}

View File

@@ -11,6 +11,9 @@
namespace Netzmacht\Contao\Leaflet;
use Netzmacht\Contao\Leaflet\Mapper\MapMapper;
use Netzmacht\Contao\Leaflet\Model\MapModel;
/**
* @property int leaflet_map
*/
@@ -41,6 +44,29 @@ class LeafletMapElement extends \ContentElement
$this->mapService = $GLOBALS['container']['leaflet.map.service'];
}
public function generate()
{
if (TL_MODE === 'BE') {
$model = MapModel::findByPK($this->leaflet_map);
$template = new \BackendTemplate('be_wildcard');
if ($model) {
$href = 'contao/main.php?do=leaflet&amp;table=tl_leaflet_map&amp;act=edit&amp;id=' . $model->id;
$template->wildcard = '### LEAFLET MAP ' . $model->title . ' ###';
$template->title = $this->headline;
$template->id = $model->id;
$template->link = $model->title;
$template->href = $href;
}
return $template->parse();
}
return parent::generate();
}
/**
* Compile the content element.
*