13.5.00 fix subword
This commit is contained in:
parent
71dfbff8d7
commit
41f36ef5e6
@ -673,13 +673,35 @@ class helper
|
|||||||
public static function subword($text, $start, $length)
|
public static function subword($text, $start, $length)
|
||||||
{
|
{
|
||||||
$text = trim($text);
|
$text = trim($text);
|
||||||
if (strlen($text) > $length) {
|
|
||||||
|
// Vérifier si la longueur du texte sans les balises dépasse la longueur souhaitée
|
||||||
|
if (mb_strlen(strip_tags($text)) > $length) {
|
||||||
|
// Utiliser mb_substr pour couper le texte
|
||||||
$text = mb_substr($text, $start, $length);
|
$text = mb_substr($text, $start, $length);
|
||||||
$text = mb_substr($text, 0, min(mb_strlen($text), mb_strrpos($text, ' ')));
|
|
||||||
|
// S'assurer que le texte ne se termine pas au milieu d'un mot
|
||||||
|
$lastSpace = mb_strrpos($text, ' ');
|
||||||
|
if ($lastSpace !== false) {
|
||||||
|
$text = mb_substr($text, 0, $lastSpace);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fermer les balises HTML ouvertes
|
||||||
|
$dom = new DOMDocument();
|
||||||
|
@$dom->loadHTML('<div>' . $text . '</div>', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
|
||||||
|
$text = $dom->saveHTML();
|
||||||
|
|
||||||
|
// Retirer la balise de conteneur ajoutée
|
||||||
|
$text = preg_replace('~^<div>(.*)</div>$~s', '$1', $text);
|
||||||
|
|
||||||
|
// Ajouter des points de suspension si le texte a été coupé
|
||||||
|
$text .= '...';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cryptage
|
* Cryptage
|
||||||
* @param string $key la clé d'encryptage
|
* @param string $key la clé d'encryptage
|
||||||
|
@ -105,16 +105,16 @@
|
|||||||
<div class="col3">
|
<div class="col3">
|
||||||
<?php
|
<?php
|
||||||
// Déterminer le nom de la miniature
|
// Déterminer le nom de la miniature
|
||||||
$parts = pathinfo($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']));
|
$parts = pathinfo($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'picture']));
|
||||||
$thumb = 'mini_' . $parts['basename'];
|
$thumb = 'mini_' . $parts['basename'];
|
||||||
// Créer la miniature si manquante
|
// Créer la miniature si manquante
|
||||||
if (!file_exists(self::FILE_DIR . 'thumb/' . $thumb)) {
|
if (!file_exists(self::FILE_DIR . 'thumb/' . $thumb)) {
|
||||||
$this->makeThumb(
|
$this->makeThumb(
|
||||||
self::FILE_DIR . 'source/' . $article['picture'],
|
self::FILE_DIR . 'source/' . $article['picture'],
|
||||||
self::FILE_DIR . 'thumb/' . $thumb,
|
self::FILE_DIR . 'thumb/' . $thumb,
|
||||||
self::THUMBS_WIDTH
|
self::THUMBS_WIDTH
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>" class="blogPicture">
|
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>" class="blogPicture">
|
||||||
<img src="<?php echo helper::baseUrl(false) . self::FILE_DIR . 'thumb/' . $thumb; ?>"
|
<img src="<?php echo helper::baseUrl(false) . self::FILE_DIR . 'thumb/' . $thumb; ?>"
|
||||||
@ -122,44 +122,49 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col9">
|
<div class="col9">
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<div class="col12">
|
<div class="col12">
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
<h2 class="blogTitle">
|
<h2 class="blogTitle">
|
||||||
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
|
|
||||||
<?php echo $article['title']; ?>
|
|
||||||
</a>
|
|
||||||
</h2>
|
|
||||||
<div class="blogComment">
|
|
||||||
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>#comment">
|
|
||||||
<?php if ($module::$comments[$articleId]): ?>
|
|
||||||
<?php echo $module::$comments[$articleId]; ?>
|
|
||||||
<?php echo template::ico('comment', ['margin' => 'left']); ?>
|
|
||||||
<?php endif; ?>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="blogDate">
|
|
||||||
<!-- bloc signature et date -->
|
|
||||||
<?php echo template::ico('user'); ?>
|
|
||||||
<?php echo $this->signature($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'userId'])); ?>
|
|
||||||
<?php echo template::ico('calendar-empty'); ?>
|
|
||||||
<?php echo helper::dateUTF8($module::$dateFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']), self::$i18nUI) . ' ' . helper::dateUTF8($module::$timeFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']), self::$i18nUI); ?>
|
|
||||||
</div>
|
|
||||||
<div class="blogContent">
|
|
||||||
<?php $lenght = $this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']) !== 0 ? $this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']) : 500 ?>
|
|
||||||
<?php echo helper::subword(strip_tags($article['content'], '<br><p>'), 0, $lenght); ?>...
|
|
||||||
<div class="readMoreContainer">
|
|
||||||
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
|
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
|
||||||
<button class="readMoreButton">
|
<?php echo $article['title']; ?>
|
||||||
<?php echo helper::translate('Lire la suite'); ?>
|
|
||||||
</button>
|
|
||||||
</a>
|
</a>
|
||||||
|
</h2>
|
||||||
|
<div class="blogComment">
|
||||||
|
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>#comment">
|
||||||
|
<?php if ($module::$comments[$articleId]): ?>
|
||||||
|
<?php echo $module::$comments[$articleId]; ?>
|
||||||
|
<?php echo template::ico('comment', ['margin' => 'left']); ?>
|
||||||
|
<?php endif; ?>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="blogDate">
|
||||||
|
<!-- bloc signature et date -->
|
||||||
|
<?php echo template::ico('user'); ?>
|
||||||
|
<?php echo $this->signature($this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'userId'])); ?>
|
||||||
|
<?php echo template::ico('calendar-empty'); ?>
|
||||||
|
<?php echo helper::dateUTF8($module::$dateFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']), self::$i18nUI) . ' ' . helper::dateUTF8($module::$timeFormat, $this->getData(['module', $this->getUrl(0), 'posts', $articleId, 'publishedOn']), self::$i18nUI); ?>
|
||||||
|
</div>
|
||||||
|
<div class="blogContent">
|
||||||
|
<?php $lenght = $this->getData(['module', $this->getUrl(0), 'config', 'articlesLenght']); ?>
|
||||||
|
<?php if ($lenght > 0): ?>
|
||||||
|
<?php ?>
|
||||||
|
<?php echo helper::subword($article['content'], 0, $lenght); ?>...
|
||||||
|
<div class="readMoreContainer">
|
||||||
|
<a href="<?php echo helper::baseUrl() . $this->getUrl(0) . '/' . $articleId; ?>">
|
||||||
|
<button class="readMoreButton">
|
||||||
|
<?php echo helper::translate('Lire la suite'); ?>
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<?php echo $article['content']; ?>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<?php endif; ?>
|
||||||
<?php endif; ?>
|
<?php endforeach; ?>
|
||||||
<?php endforeach; ?>
|
|
||||||
</article>
|
</article>
|
||||||
<?php echo $module::$pages; ?>
|
<?php echo $module::$pages; ?>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
|
Loading…
Reference in New Issue
Block a user