Salut, j'apprends le php et cela a dépassé mes capacités. J'essaie de faire en sorte que les liens de page d'élément de blog soient dirigés vers un lien externe si le lien A de l'article est entré. J'ai trouvé du code dans com_content/article/default_link.php. J'ai essayé de simplement insérer le code, avant d'essayer de faire une autre commande, "blog_style_default_title.php", mais cela ne fonctionnait pas. Essentiellement, vous voulez que l'image et les liens changent en enregistrement A, le cas échéant, sinon passez à l'article comme d'habitude.
Code ci-dessous: original et code essayant d'appliquer:
<?php
/**
* @package Joomla.Site
* @subpackage Layout
*
* @copyright Copyright (C) 2005 - 2015 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
// Create a shortcut for params.
$params = $displayData->params;
$canEdit = $displayData->params->get('access-edit');
JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html');
?>
<?php if ($params->get('show_title') || $displayData->state == 0 || ($params->get('show_author') && !empty($displayData->author ))) : ?>
<div class="page-header">
<?php if ($params->get('show_title')) : ?>
<h2 itemprop="name">
<?php if ($params->get('link_titles') && $params->get('access-view')) : ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)); ?>" itemprop="url">
<?php echo $this->escape($displayData->title); ?></a>
<?php else : ?>
<?php echo $this->escape($displayData->title); ?>
<?php endif; ?>
</h2>
<?php endif; ?>
<?php if ($displayData->state == 0) : ?>
<span class="label label-warning"><?php echo JText::_('JUNPUBLISHED'); ?></span>
<?php endif; ?>
<?php if (strtotime($displayData->publish_up) > strtotime(JFactory::getDate())) : ?>
<span class="label label-warning"><?php echo JText::_('JNOTPUBLISHEDYET'); ?></span>
<?php endif; ?>
<?php if ((strtotime($displayData->publish_down) < strtotime(JFactory::getDate())) && $displayData->publish_down != JFactory::getDbo()->getNullDate()) : ?>
<span class="label label-warning"><?php echo JText::_('JEXPIRED'); ?></span>
<?php endif; ?>
</div>
<?php endif; ?>
<?php
// ##################### Code from default_link ########## //
// Create shortcut
$urls = json_decode($this->item->urls);
// Create shortcuts to some parameters.
$params = $this->item->params;
if ($urls && (!empty($urls->urla))) :
?>
<div class="content-links">
<?php
$urlarray = array(
array($urls->urla, $urls->urlatext, $urls->targeta, 'a'),
);
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) ? $label : $link;
// If no target is present, use the default
$target = $target ? $target : $params->get('target' . $id);
?>
<?php
// Compute the correct link
switch ($target)
{
case 1:
// open in a new window
echo '<a href="' . htmlspecialchars($link) . '" target="_blank" rel="nofollow">' .
htmlspecialchars($label) . '</a>';
break;
default:
// open in parent window
echo '<a href="' . htmlspecialchars($link) . '" rel="nofollow">' .
htmlspecialchars($label) . ' </a>';
break;
}
?>
<?php endforeach; ?>
</div>
<?php endif; ?>
Finalement, ça a fonctionné.
Ok, donc dans la mise en page, vous ne pouvez pas simplement utiliser $this->item
comme vous le feriez dans une vue. L'objet à utiliser est $displayData
.
Donc, pour obtenir le paramètre d'URL que vous voulez, ouvrez le fichier suivant:
ROOT/layouts/joomla/content/blog_style_default_title.php
et ajoutez le coulant vers le haut:
$urls = json_decode($displayData->urls);
$urlarray = array(
array($urls->urla)
);
Vous verrez alors le code suivant utilisé pour le lien de l'article:
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)); ?>" itemprop="url">
qui doit être remplacé par ceci:
<?php if (!empty($urlarray[0][0])) : ?>
<a href="<?php echo $urlarray[0][0]; ?>" target="_blank">
<?php else : ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($displayData->slug, $displayData->catid, $displayData->language)); ?>" itemprop="url">
<?php endif; ?>
Ajoutez vous pouvez voir, $urlarray[0][0]
est la variable que vous devez maintenant utiliser pour la valeur lien A.
J'espère que cela t'aides