fix widget rendering
This commit is contained in:
parent
374c9590b7
commit
326705c351
1 changed files with 40 additions and 56 deletions
96
_widgets.php
96
_widgets.php
|
@ -12,16 +12,12 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!defined('DC_RC_PATH')) {
|
if (!defined('DC_RC_PATH')) {
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$core->blog->settings->addNamespace('postwidgettext');
|
$core->blog->settings->addNamespace('postwidgettext');
|
||||||
|
|
||||||
$core->addBehavior(
|
$core->addBehavior('initWidgets', ['postWidgetTextWidget', 'init']);
|
||||||
'initWidgets',
|
|
||||||
array('postWidgetTextWidget', 'init')
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup DC_PLUGIN_POSTWIDGETTEXT
|
* @ingroup DC_PLUGIN_POSTWIDGETTEXT
|
||||||
|
@ -32,66 +28,55 @@ class postWidgetTextWidget
|
||||||
{
|
{
|
||||||
public static function init($w)
|
public static function init($w)
|
||||||
{
|
{
|
||||||
global $core;
|
$w
|
||||||
|
->create(
|
||||||
$w->create(
|
'postwidgettext',
|
||||||
'postwidgettext',
|
__('Post widget text'),
|
||||||
__('Post widget text'),
|
['postWidgetTextWidget', 'display'],
|
||||||
array('postWidgetTextWidget', 'display'),
|
null,
|
||||||
null,
|
__('Add a widget with a text related to an entry')
|
||||||
__('Add a widget with a text related to an entry')
|
)
|
||||||
);
|
->addTitle(__('More about this entry'))
|
||||||
$w->postwidgettext->setting(
|
->setting(
|
||||||
'title',
|
'excerpt',
|
||||||
__('Title:'),
|
__('Use excerpt if no content'),
|
||||||
__('More about this entry'),
|
0,
|
||||||
'text'
|
'check'
|
||||||
);
|
)
|
||||||
$w->postwidgettext->setting(
|
->setting(
|
||||||
'excerpt',
|
'show',
|
||||||
__('Use excerpt if no content'),
|
__('Show widget even if empty'),
|
||||||
0,
|
0,
|
||||||
'check'
|
'check'
|
||||||
);
|
)
|
||||||
$w->postwidgettext->setting(
|
->addContentOnly()
|
||||||
'show',
|
->addClass()
|
||||||
__('Show widget even if empty'),
|
->addOffline();
|
||||||
0,
|
|
||||||
'check'
|
|
||||||
);
|
|
||||||
$w->postwidgettext->setting(
|
|
||||||
'content_only',
|
|
||||||
__('Content only'),
|
|
||||||
0,
|
|
||||||
'check'
|
|
||||||
);
|
|
||||||
$w->postwidgettext->setting(
|
|
||||||
'class',
|
|
||||||
__('CSS class:'),
|
|
||||||
''
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function display($w)
|
public static function display($w)
|
||||||
{
|
{
|
||||||
global $core, $_ctx;
|
global $core, $_ctx;
|
||||||
|
|
||||||
|
if ($w->offline) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$core->blog->settings->postwidgettext->postwidgettext_active
|
if (!$core->blog->settings->postwidgettext->postwidgettext_active
|
||||||
|| !$_ctx->exists('posts')
|
|| !$_ctx->exists('posts')
|
||||||
|| !$_ctx->posts->post_id
|
|| !$_ctx->posts->post_id
|
||||||
) {
|
) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$title = (strlen($w->title) > 0) ?
|
$title = $w->title ?: null;
|
||||||
'<h2>'.html::escapeHTML($w->title).'</h2>' : null;
|
|
||||||
$content = '';
|
$content = '';
|
||||||
|
|
||||||
$pwt = new postWidgetText($core);
|
$pwt = new postWidgetText($core);
|
||||||
$rs = $pwt->getWidgets(array('post_id'=>$_ctx->posts->post_id));
|
$rs = $pwt->getWidgets(['post_id' => $_ctx->posts->post_id]);
|
||||||
|
|
||||||
if ('' != $rs->option_title) {
|
if ('' != $rs->option_title) {
|
||||||
$title = '<h2>'.$rs->option_title.'</h2>';
|
$title = $rs->option_title;
|
||||||
}
|
}
|
||||||
if ('' != $rs->option_content_xhtml) {
|
if ('' != $rs->option_content_xhtml) {
|
||||||
$content = $rs->option_content_xhtml;
|
$content = $rs->option_content_xhtml;
|
||||||
|
@ -100,12 +85,11 @@ class postWidgetTextWidget
|
||||||
$content = $_ctx->posts->post_excerpt_xhtml;
|
$content = $_ctx->posts->post_excerpt_xhtml;
|
||||||
}
|
}
|
||||||
|
|
||||||
return '' == $content && !$w->show ?
|
return $w->renderDiv(
|
||||||
null :
|
$w->content_only,
|
||||||
($w->content_only ? '' : '<div class="postwidgettext'.
|
'postwidgettext ' . $w->class,
|
||||||
($w->class ? ' '.html::escapeHTML($w->class) : '').'">').
|
'',
|
||||||
$title.
|
($title ? $w->renderTitle(html::escapeHTML($title)) : '') . $content
|
||||||
$content.
|
);
|
||||||
($w->content_only ? '' : '</div>');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue