<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
*
* @param string $msg
* @param int $limit
+ * @param int $uid
* @return string
*
* @todo For Twitter URLs aren't shortened, but they have to be calculated as if.
*/
- public static function shorten($msg, $limit)
+ public static function shorten(string $msg, int $limit, int $uid = 0):string
{
+ $ellipsis = html_entity_decode("…", ENT_QUOTES, 'UTF-8');
+
+ if (!empty($uid) && DI::pConfig()->get($uid, 'system', 'simple_shortening')) {
+ return iconv_substr(iconv_substr(trim($msg), 0, $limit, "UTF-8"), 0, -3, "UTF-8") . $ellipsis;
+ }
+
$lines = explode("\n", $msg);
$msg = "";
$recycle = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8');
- $ellipsis = html_entity_decode("…", ENT_QUOTES, 'UTF-8');
foreach ($lines as $row => $line) {
if (iconv_strlen(trim($msg . "\n" . $line), "UTF-8") <= $limit) {
$msg = trim($msg . "\n" . $line);
}
}
- $html = BBCode::convert($post['text'] . ($post['after'] ?? ''), false, $htmlmode);
+ $html = BBCode::convertForUriId($item['uri-id'], $post['text'] . ($post['after'] ?? ''), $htmlmode);
$msg = HTML::toPlaintext($html, 0, true);
$msg = trim(html_entity_decode($msg, ENT_QUOTES, 'UTF-8'));
} elseif (DI::pConfig()->get($item['uid'], 'system', 'no_intelligent_shortening')) {
$post['url'] = $item['plink'];
}
- $msg = self::shorten($msg, $limit);
+ $msg = self::shorten($msg, $limit, $item['uid']);
}
}