0

我想拥有它,以便登录到我的 Joomla 网站前端的用户可以在新窗口中编辑他们的文章,而无需在按下编辑按钮后立即应用任何模板,这样只有编辑器(在这种情况下为 JCE ) 显示。

我在 components/com_content/helpers/Icon.php 中找到了源代码,但不知道它是否可能或我必须如何重新编码。任何想法?

// Show checked_out icon if the article is checked out by a different user
if (property_exists($article, 'checked_out') && property_exists($article, 'checked_out_time') && $article->checked_out > 0 && $article->checked_out != $user->get('id')) {
    $checkoutUser = JFactory::getUser($article->checked_out);
    $button = JHtml::_('image', 'system/checked_out.png', NULL, NULL, true);
    $date = JHtml::_('date', $article->checked_out_time);
    $tooltip = JText::_('JLIB_HTML_CHECKED_OUT').' :: '.JText::sprintf('COM_CONTENT_CHECKED_OUT_BY', $checkoutUser->name).' <br /> '.$date;
    return '<span class="hasTip" title="'.htmlspecialchars($tooltip, ENT_COMPAT, 'UTF-8').'">'.$button.'</span>';
}

$url    = 'index.php?option=com_content&task=article.edit&a_id='.$article->id.'&return='.base64_encode(urlencode($uri));
$icon   = $article->state ? 'edit.png' : 'edit_unpublished.png';
$text   = JHtml::_('image', 'system/'.$icon, JText::_('JGLOBAL_EDIT'), NULL, true);

if ($article->state == 0) {
    $overlib = JText::_('JUNPUBLISHED');
}
else {
    $overlib = JText::_('JPUBLISHED');
}

$date = JHtml::_('date', $article->created);
$author = $article->created_by_alias ? $article->created_by_alias : $article->author;

$overlib .= '&lt;br /&gt;';
$overlib .= $date;
$overlib .= '&lt;br /&gt;';
$overlib .= JText::sprintf('COM_CONTENT_WRITTEN_BY', htmlspecialchars($author, ENT_COMPAT, 'UTF-8'));

$button = JHtml::_('link', JRoute::_($url), $text);

$output = '<span class="hasTip" title="'.JText::_('COM_CONTENT_EDIT_ITEM').' :: '.$overlib.'">'.$button.'</span>';

return $output;
4

1 回答 1

0

您应该为视图创建一个模板覆盖,因为您可以放置​​链接以进行编辑添加:

&tmpl=component

到 url 以便只显示组件部分;并添加

target="_blank"<a href<form标记,使其进入新窗口。

这很可能会在新选项卡中打开,如果您想要一个新窗口,请构建 url 并将其传递给window.open调用。

于 2014-01-15T20:45:45.300 回答