View source
<?php
namespace Drupal\beautytips_manager\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Component\Utility\Html;
use Drupal\Core\Url;
use Drupal\Core\Link;
class BeautytipsManagerController extends ControllerBase {
public function customTipsOverview() {
$rows = [];
$header = [
$this
->t('Element'),
$this
->t('Style'),
$this
->t('Status'),
$this
->t('Visibility'),
$this
->t('Pages'),
$this
->t('operations'),
'',
];
$tips = beautytips_manager_get_custom_tips();
if (count($tips)) {
$visibility = [
$this
->t('Show on every page except the listed pages.'),
$this
->t('Show on only the listed pages.'),
];
foreach ($tips as $tip) {
$tip->pages = Html::escape($tip->pages);
$pages = $tip->pages != substr($tip->pages, 0, 40) ? substr($tip->pages, 0, 40) . '...' : substr($tip->pages, 0, 40);
$rows[$tip->id]['element'] = Html::escape($tip->element);
$rows[$tip->id]['style'] = $tip->style;
$rows[$tip->id]['enabled'] = $tip->enabled ? $this
->t('Enabled') : $this
->t('Disabled');
$rows[$tip->id]['visibility'] = $visibility[$tip->visibility];
$rows[$tip->id]['pages'] = $pages;
$url = Url::fromUserInput("/admin/config/user-interface/beautytips/custom-tips/{$tip->id}/edit");
$rows[$tip->id]['edit'] = Link::fromTextAndUrl($this
->t('edit'), $url)
->toString();
$url = Url::fromUserInput("/admin/config/user-interface/beautytips/custom-tips/{$tip->id}/delete");
$rows[$tip->id]['delete'] = Link::fromTextAndUrl($this
->t('delete'), $url)
->toString();
}
}
else {
return [
'#type' => 'markup',
'#markup' => $this
->t('There are no custom beautytips yet.'),
];
}
return [
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
];
}
public function customStylesOverview() {
$options = $rows = [];
$header = [
$this
->t('Name'),
$this
->t('operations'),
'',
];
$styles = beautytips_manager_get_custom_styles();
if (count($styles)) {
foreach ($styles as $style) {
$name = Html::escape($style->name);
unset($style->name);
$rows[$style->id]['name'] = new \Drupal\Component\Render\FormattableMarkup("<span class='bt-style-{$name}'>%name</span>", [
'%name' => $name,
]);
$url = Url::fromUserInput("/admin/config/user-interface/beautytips/custom-styles/{$style->id}/edit");
$rows[$style->id]['edit'] = Link::fromTextAndUrl($this
->t('the block admin page'), $url)
->toString();
if ($name != \Drupal::config('beautytips.basic')
->get('beautytips_default_style')) {
$url = Url::fromUserInput("/admin/config/user-interface/beautytips/custom-styles/{$style->id}/delete");
$rows[$style->id]['delete'] = Link::fromTextAndUrl($this
->t('delete'), $url)
->toString();
}
else {
$rows[$style->id]['delete'] = $this
->t('Default style');
}
$options[][$name] = [
'cssSelect' => 'td .bt-style-' . $name,
'text' => $this
->t('<h2>Default Text</h2><p>Nam magna enim, accumsan eu, blandit sed, blandit a, eros. Nam ante nulla, interdum vel, tristique ac, condimentum non, tellus.</p><p>Nulla facilisi. Nam magna enim, accumsan eu, blandit sed, blandit a, eros.</p>'),
'trigger' => 'hover',
'style' => $name,
];
}
}
else {
return [
'#type' => 'markup',
'#markup' => $this
->t('There are no custom beautytip styles yet.'),
];
}
$table = [
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
];
beautytips_add_beautytips($table, [
$name => $options,
]);
return $table;
}
}