first commit
This commit is contained in:
144
components/com_content/tmpl/article/default.php
Normal file
144
components/com_content/tmpl/article/default.php
Normal file
@ -0,0 +1,144 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @copyright (C) 2006 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Associations;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\FileLayout;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\Component\Content\Administrator\Extension\ContentComponent;
|
||||
use Joomla\Component\Content\Site\Helper\RouteHelper;
|
||||
|
||||
// Create shortcuts to some parameters.
|
||||
$params = $this->item->params;
|
||||
$canEdit = $params->get('access-edit');
|
||||
$user = $this->getCurrentUser();
|
||||
$info = $params->get('info_block_position', 0);
|
||||
$htag = $this->params->get('show_page_heading') ? 'h2' : 'h1';
|
||||
|
||||
// Check if associations are implemented. If they are, define the parameter.
|
||||
$assocParam = (Associations::isEnabled() && $params->get('show_associations'));
|
||||
$currentDate = Factory::getDate()->format('Y-m-d H:i:s');
|
||||
$isNotPublishedYet = $this->item->publish_up > $currentDate;
|
||||
$isExpired = !is_null($this->item->publish_down) && $this->item->publish_down < $currentDate;
|
||||
?>
|
||||
<div class="com-content-article item-page<?php echo $this->pageclass_sfx; ?>">
|
||||
<meta content="<?php echo ($this->item->language === '*') ? Factory::getApplication()->get('language') : $this->item->language; ?>">
|
||||
<?php if ($this->params->get('show_page_heading')) : ?>
|
||||
<div class="page-header">
|
||||
<h1> <?php echo $this->escape($this->params->get('page_heading')); ?> </h1>
|
||||
</div>
|
||||
<?php endif;
|
||||
if (!empty($this->item->pagination) && !$this->item->paginationposition && $this->item->paginationrelative) {
|
||||
echo $this->item->pagination;
|
||||
}
|
||||
?>
|
||||
|
||||
<?php $useDefList = $params->get('show_modify_date') || $params->get('show_publish_date') || $params->get('show_create_date')
|
||||
|| $params->get('show_hits') || $params->get('show_category') || $params->get('show_parent_category') || $params->get('show_author') || $assocParam; ?>
|
||||
|
||||
<?php if ($params->get('show_title')) : ?>
|
||||
<div class="page-header">
|
||||
<<?php echo $htag; ?>>
|
||||
<?php echo $this->escape($this->item->title); ?>
|
||||
</<?php echo $htag; ?>>
|
||||
<?php if ($this->item->state == ContentComponent::CONDITION_UNPUBLISHED) : ?>
|
||||
<span class="badge bg-warning text-light"><?php echo Text::_('JUNPUBLISHED'); ?></span>
|
||||
<?php endif; ?>
|
||||
<?php if ($isNotPublishedYet) : ?>
|
||||
<span class="badge bg-warning text-light"><?php echo Text::_('JNOTPUBLISHEDYET'); ?></span>
|
||||
<?php endif; ?>
|
||||
<?php if ($isExpired) : ?>
|
||||
<span class="badge bg-warning text-light"><?php echo Text::_('JEXPIRED'); ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($canEdit) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.icons', ['params' => $params, 'item' => $this->item]); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php // Content is generated by content plugin event "onContentAfterTitle" ?>
|
||||
<?php echo $this->item->event->afterDisplayTitle; ?>
|
||||
|
||||
<?php if ($useDefList && ($info == 0 || $info == 2)) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.info_block', ['item' => $this->item, 'params' => $params, 'position' => 'above']); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($info == 0 && $params->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?>
|
||||
<?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?>
|
||||
|
||||
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php // Content is generated by content plugin event "onContentBeforeDisplay" ?>
|
||||
<?php echo $this->item->event->beforeDisplayContent; ?>
|
||||
|
||||
<?php if ((int) $params->get('urls_position', 0) === 0) : ?>
|
||||
<?php echo $this->loadTemplate('links'); ?>
|
||||
<?php endif; ?>
|
||||
<?php if ($params->get('access-view')) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.full_image', $this->item); ?>
|
||||
<?php
|
||||
if (!empty($this->item->pagination) && !$this->item->paginationposition && !$this->item->paginationrelative) :
|
||||
echo $this->item->pagination;
|
||||
endif;
|
||||
?>
|
||||
<?php if (isset($this->item->toc)) :
|
||||
echo $this->item->toc;
|
||||
endif; ?>
|
||||
<div class="com-content-article__body">
|
||||
<?php echo $this->item->text; ?>
|
||||
</div>
|
||||
|
||||
<?php if ($info == 1 || $info == 2) : ?>
|
||||
<?php if ($useDefList) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.info_block', ['item' => $this->item, 'params' => $params, 'position' => 'below']); ?>
|
||||
<?php endif; ?>
|
||||
<?php if ($params->get('show_tags', 1) && !empty($this->item->tags->itemTags)) : ?>
|
||||
<?php $this->item->tagLayout = new FileLayout('joomla.content.tags'); ?>
|
||||
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
if (!empty($this->item->pagination) && $this->item->paginationposition && !$this->item->paginationrelative) :
|
||||
echo $this->item->pagination;
|
||||
?>
|
||||
<?php endif; ?>
|
||||
<?php if ((int) $params->get('urls_position', 0) === 1) : ?>
|
||||
<?php echo $this->loadTemplate('links'); ?>
|
||||
<?php endif; ?>
|
||||
<?php // Optional teaser intro text for guests ?>
|
||||
<?php elseif ($params->get('show_noauth') == true && $user->get('guest')) : ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.intro_image', $this->item); ?>
|
||||
<?php echo HTMLHelper::_('content.prepare', $this->item->introtext); ?>
|
||||
<?php // Optional link to let them register to see the whole article. ?>
|
||||
<?php if ($params->get('show_readmore') && $this->item->fulltext != null) : ?>
|
||||
<?php $menu = Factory::getApplication()->getMenu(); ?>
|
||||
<?php $active = $menu->getActive(); ?>
|
||||
<?php $itemId = $active->id; ?>
|
||||
<?php $link = new Uri(Route::_('index.php?option=com_users&view=login&Itemid=' . $itemId, false)); ?>
|
||||
<?php $link->setVar('return', base64_encode(RouteHelper::getArticleRoute($this->item->slug, $this->item->catid, $this->item->language))); ?>
|
||||
<?php echo LayoutHelper::render('joomla.content.readmore', ['item' => $this->item, 'params' => $params, 'link' => $link]); ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
if (!empty($this->item->pagination) && $this->item->paginationposition && $this->item->paginationrelative) :
|
||||
echo $this->item->pagination;
|
||||
?>
|
||||
<?php endif; ?>
|
||||
<?php // Content is generated by content plugin event "onContentAfterDisplay" ?>
|
||||
<?php echo $this->item->event->afterDisplayContent; ?>
|
||||
</div>
|
||||
293
components/com_content/tmpl/article/default.xml
Normal file
293
components/com_content/tmpl/article/default.xml
Normal file
@ -0,0 +1,293 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<metadata>
|
||||
<layout title="COM_CONTENT_ARTICLE_VIEW_DEFAULT_TITLE" option="COM_CONTENT_ARTICLE_VIEW_DEFAULT_OPTION">
|
||||
<help
|
||||
key = "Menu_Item:_Single_Article"
|
||||
/>
|
||||
<message>
|
||||
<![CDATA[COM_CONTENT_ARTICLE_VIEW_DEFAULT_DESC]]>
|
||||
</message>
|
||||
</layout>
|
||||
|
||||
<!-- Add fields to the request variables for the layout. -->
|
||||
<fields name="request">
|
||||
<fieldset name="request"
|
||||
addfieldprefix="Joomla\Component\Content\Administrator\Field" >
|
||||
|
||||
<field
|
||||
name="id"
|
||||
type="modal_article"
|
||||
label="COM_CONTENT_FIELD_SELECT_ARTICLE_LABEL"
|
||||
required="true"
|
||||
select="true"
|
||||
new="true"
|
||||
edit="true"
|
||||
clear="true"
|
||||
/>
|
||||
</fieldset>
|
||||
</fields>
|
||||
|
||||
<!-- Add fields to the parameters object for the layout. -->
|
||||
<fields name="params">
|
||||
|
||||
<!-- Basic options. -->
|
||||
<fieldset name="basic"
|
||||
label="COM_CONTENT_ATTRIBS_ARTICLE_SETTINGS_LABEL"
|
||||
addfieldprefix="Joomla\Component\Content\Administrator\Field"
|
||||
>
|
||||
|
||||
<field
|
||||
name="show_title"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_TITLE_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="link_titles"
|
||||
type="list"
|
||||
label="JGLOBAL_LINKED_TITLES_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_intro"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_INTRO_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="info_block_position"
|
||||
type="list"
|
||||
label="COM_CONTENT_FIELD_INFOBLOCK_POSITION_LABEL"
|
||||
useglobal="true"
|
||||
validate="options"
|
||||
>
|
||||
<option value="0">COM_CONTENT_FIELD_OPTION_ABOVE</option>
|
||||
<option value="1">COM_CONTENT_FIELD_OPTION_BELOW</option>
|
||||
<option value="2">COM_CONTENT_FIELD_OPTION_SPLIT</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="info_block_show_title"
|
||||
type="list"
|
||||
label="COM_CONTENT_FIELD_INFOBLOCK_TITLE_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_category"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_CATEGORY_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="link_category"
|
||||
type="list"
|
||||
label="JGLOBAL_LINK_CATEGORY_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_parent_category"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_PARENT_CATEGORY_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="link_parent_category"
|
||||
type="list"
|
||||
label="JGLOBAL_LINK_PARENT_CATEGORY_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_associations"
|
||||
type="assoc"
|
||||
label="JGLOBAL_SHOW_ASSOCIATIONS_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_author"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_AUTHOR_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="link_author"
|
||||
type="list"
|
||||
label="JGLOBAL_LINK_AUTHOR_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_create_date"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_CREATE_DATE_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_modify_date"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_MODIFY_DATE_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_publish_date"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_PUBLISH_DATE_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_item_navigation"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_NAVIGATION_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_vote"
|
||||
type="votelist"
|
||||
label="JGLOBAL_SHOW_VOTE_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_hits"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_HITS_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_tags"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_TAGS_LABEL"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JSHOW</option>
|
||||
<option value="0">JHIDE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="show_noauth"
|
||||
type="list"
|
||||
label="JGLOBAL_SHOW_UNAUTH_LINKS_LABEL"
|
||||
description="JGLOBAL_SHOW_UNAUTH_LINKS_DESC"
|
||||
useglobal="true"
|
||||
class="form-select-color-state"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="urls_position"
|
||||
type="list"
|
||||
label="COM_CONTENT_FIELD_URLSPOSITION_LABEL"
|
||||
useglobal="true"
|
||||
filter="integer"
|
||||
validate="options"
|
||||
>
|
||||
<option value="0">COM_CONTENT_FIELD_OPTION_ABOVE</option>
|
||||
<option value="1">COM_CONTENT_FIELD_OPTION_BELOW</option>
|
||||
<option value="-1">JHIDE</option>
|
||||
</field>
|
||||
</fieldset>
|
||||
</fields>
|
||||
</metadata>
|
||||
93
components/com_content/tmpl/article/default_links.php
Normal file
93
components/com_content/tmpl/article/default_links.php
Normal file
@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Joomla.Site
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @copyright (C) 2011 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
|
||||
// Create shortcut
|
||||
$urls = json_decode($this->item->urls);
|
||||
|
||||
// Create shortcuts to some parameters.
|
||||
$params = $this->item->params;
|
||||
if ($urls && (!empty($urls->urla) || !empty($urls->urlb) || !empty($urls->urlc))) :
|
||||
?>
|
||||
<div class="com-content-article__links content-links">
|
||||
<ul class="com-content-article__links content-list">
|
||||
<?php
|
||||
$urlarray = [
|
||||
[$urls->urla, $urls->urlatext, $urls->targeta, 'a'],
|
||||
[$urls->urlb, $urls->urlbtext, $urls->targetb, 'b'],
|
||||
[$urls->urlc, $urls->urlctext, $urls->targetc, 'c']
|
||||
];
|
||||
foreach ($urlarray as $url) :
|
||||
$link = $url[0];
|
||||
$label = $url[1];
|
||||
$target = $url[2];
|
||||
$id = $url[3];
|
||||
|
||||
if (! $link) :
|
||||
continue;
|
||||
endif;
|
||||
|
||||
// If no label is present, take the link
|
||||
$label = $label ?: $link;
|
||||
|
||||
// If no target is present, use the default
|
||||
$target = $target ?: $params->get('target' . $id);
|
||||
?>
|
||||
<li class="com-content-article__link content-links-<?php echo $id; ?>">
|
||||
<?php
|
||||
// Compute the correct link
|
||||
|
||||
switch ($target) {
|
||||
case 1:
|
||||
// Open in a new window
|
||||
echo '<a href="' . htmlspecialchars($link, ENT_COMPAT, 'UTF-8') . '" target="_blank" rel="nofollow noopener noreferrer">' .
|
||||
htmlspecialchars($label, ENT_COMPAT, 'UTF-8') . '</a>';
|
||||
break;
|
||||
|
||||
case 2:
|
||||
// Open in a popup window
|
||||
$attribs = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=600';
|
||||
echo "<a href=\"" . htmlspecialchars($link, ENT_COMPAT, 'UTF-8') . "\" onclick=\"window.open(this.href, 'targetWindow', '" . $attribs . "'); return false;\" rel=\"noopener noreferrer\">" .
|
||||
htmlspecialchars($label, ENT_COMPAT, 'UTF-8') . '</a>';
|
||||
break;
|
||||
case 3:
|
||||
echo '<a href="' . htmlspecialchars($link, ENT_COMPAT, 'UTF-8') . '" rel="noopener noreferrer" data-bs-toggle="modal" data-bs-target="#linkModal">' .
|
||||
htmlspecialchars($label, ENT_COMPAT, 'UTF-8') . ' </a>';
|
||||
echo HTMLHelper::_(
|
||||
'bootstrap.renderModal',
|
||||
'linkModal',
|
||||
[
|
||||
'url' => $link,
|
||||
'title' => $label,
|
||||
'height' => '100%',
|
||||
'width' => '100%',
|
||||
'modalWidth' => '500',
|
||||
'bodyHeight' => '500',
|
||||
'footer' => '<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" aria-hidden="true">'
|
||||
. \Joomla\CMS\Language\Text::_('JLIB_HTML_BEHAVIOR_CLOSE') . '</button>'
|
||||
]
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Open in parent window
|
||||
echo '<a href="' . htmlspecialchars($link, ENT_COMPAT, 'UTF-8') . '" rel="nofollow">' .
|
||||
htmlspecialchars($label, ENT_COMPAT, 'UTF-8') . ' </a>';
|
||||
break;
|
||||
}
|
||||
?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
Reference in New Issue
Block a user