Skip to content

Commit

Permalink
added: widget pages now can have a description and are searchable
Browse files Browse the repository at this point in the history
  • Loading branch information
jdalsem committed Mar 25, 2024
1 parent 7fc5a66 commit 98777da
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 9 deletions.
2 changes: 2 additions & 0 deletions actions/widget_manager/widget_page.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@

$entity->url = $url;
$entity->title = get_input('title');
$entity->description = get_input('description');
$entity->show_description = (bool) get_input('show_description');
$entity->layout = get_input('layout');

$entity->save();
Expand Down
7 changes: 5 additions & 2 deletions classes/WidgetPage.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,11 @@
/**
* Widget page
*
* @property string $layout the layout to use on the widget page
* @property string $url URL to the widget page
* @property string $title title of the widget page
* @property string $description description of the widget page
* @property bool $show_description should the description be shown on the widget page
* @property string $layout the layout to use on the widget page
* @property string $url URL to the widget page
*/
class WidgetPage extends ElggObject {

Expand Down
1 change: 1 addition & 0 deletions elgg-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
'class' => 'WidgetPage',
'capabilities' => [
'commentable' => false,
'searchable' => true,
],
],
],
Expand Down
2 changes: 2 additions & 0 deletions languages/en.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@
'widget_manager:forms:groups_widget_access:description' => "This action allows you to update the access level of all widgets in this group to the given access level.",

'widget_manager:widget_page:title:help' => "Setting a title, will display a title on the widget page. This is optional.",
'widget_manager:widget_page:show_description' => "Show description on the page",
'widget_manager:widget_page:show_description:help' => "If enabled the description will be shown on the widget page. If disabled you will probably only see it in listings like in search.",

// actions
// manage
Expand Down
2 changes: 2 additions & 0 deletions languages/nl.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
'admin:widgets:cleanup:info' => 'Hier kun je alle widgets opruimen die zich op dit moment in de database bevinden, ook diegene die niet meer beschikbaar zijn.',
'widget_manager:settings:index_managers' => 'Voorpagina beheerders',
'widget_manager:widget_page:title:help' => 'Het optioneel opslaan van een titel toont deze op de widget pagina.',
'widget_manager:widget_page:show_description' => "Toon omschrijving op widget pagina",
'widget_manager:widget_page:show_description:help' => "Toont de omschrijving op de widget indien geactiveerd. Als het niet is geactiveerd zie je de omschrijving mogelijk enkel in lijsten en zoekresultaten.",
'widget_manager:upgrade:2018052400:title' => 'Widget contexten naar widget pagina\'s',
'widget_manager:upgrade:2018052400:description' => 'Maakt van de plugininstellingen voor widget pagina\'s werkelijke widget pagina entiteiten',
'widget_manager:forms:manage_widgets:context' => 'Beschikbaar in de context',
Expand Down
28 changes: 23 additions & 5 deletions views/default/forms/widget_manager/widget_page.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
echo elgg_view_field([
'#type' => 'hidden',
'name' => 'guid',
'value' => $entity ? $entity->guid : null,
'value' => $entity?->guid,
]);

echo elgg_view_field([
'#type' => 'text',
'#label' => elgg_echo('widget_manager:settings:extra_contexts:page'),
'name' => 'url',
'value' => $entity ? $entity->url : null,
'value' => $entity?->url,
'required' => true,
]);

Expand All @@ -23,7 +23,25 @@
'#label' => elgg_echo('title'),
'#help' => elgg_echo('widget_manager:widget_page:title:help'),
'name' => 'title',
'value' => $entity ? $entity->title : null,
'value' => $entity?->title,
]);

echo elgg_view_field([
'#type' => 'longtext',
'#label' => elgg_echo('description'),
'name' => 'description',
'value' => $entity?->description,
]);

echo elgg_view_field([
'#type' => 'checkbox',
'#label' => elgg_echo('widget_manager:widget_page:show_description'),
'#help' => elgg_echo('widget_manager:widget_page:show_description:help'),
'name' => 'show_description',
'checked' => $entity->show_description !== false,
'switch' => true,
'default' => false,
'value' => true,
]);

echo elgg_view_field([
Expand All @@ -42,14 +60,14 @@
'25|75' => elgg_echo('widget_manager:settings:widget_layout:25|75'),
'100' => elgg_echo('widget_manager:settings:widget_layout:100'),
],
'value' => $entity ? $entity->layout : null,
'value' => $entity?->layout,
]);

echo elgg_view_field([
'#type' => 'userpicker',
'#label' => elgg_echo('widget_manager:settings:extra_contexts:manager'),
'name' => 'manager',
'value' => $entity ? $entity->getManagers() : null,
'value' => $entity?->getManagers(),
]);

$footer = elgg_view_field([
Expand Down
9 changes: 7 additions & 2 deletions views/default/resources/widget_manager/widget_page.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,13 @@
]);
}

// draw the page
$content = elgg_view_layout('widgets', [
$content = '';

if ($widget_page->show_description !== false && !empty($widget_page->description)) {
$content .= elgg_view('output/longtext', ['value' => $widget_page->description]);
}

$content .= elgg_view_layout('widgets', [
'class' => $classes,
'num_columns' => $num_columns,
'column_classes' => $column_classes,
Expand Down
11 changes: 11 additions & 0 deletions views/default/search/object/widget_page.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
$entity = elgg_extract('entity', $vars);
if (!$entity instanceof \WidgetPage) {
return;
}

$vars['access'] = false;
$vars['byline'] = false;
$vars['time'] = false;

echo elgg_view('search/entity/default', $vars);

0 comments on commit 98777da

Please sign in to comment.