Merge pull request #7296 from MrPetovan/task/smilies-replace

Limit smilies replacement to BBCode::convert
This commit is contained in:
Michael Vogel 2019-06-24 22:05:37 +02:00 committed by GitHub
commit 26accbe3ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 12 deletions

View File

@ -140,16 +140,12 @@ function redir_private_images($a, &$item)
* @brief Given a text string, convert from bbcode to html and add smilie icons.
*
* @param string $text String with bbcode.
* @return string Formattet HTML.
* @return string Formatted HTML
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
function prepare_text($text) {
if (stristr($text, '[nosmile]')) {
function prepare_text($text)
{
$s = BBCode::convert($text);
} else {
$s = Smilies::replace(BBCode::convert($text));
}
return trim($s);
}

View File

@ -384,7 +384,7 @@ function message_content(App $a)
$from_name_e = $message['from-name'];
$subject_e = $message['title'];
$body_e = Smilies::replace(BBCode::convert($message['body']));
$body_e = BBCode::convert($message['body']);
$to_name_e = $message['name'];
$contact = Contact::getDetailsByURL($message['from-url']);

View File

@ -267,17 +267,18 @@ class Smilies
* @return string HTML Output
*
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @todo : Rework because it doesn't work correctly
*/
private static function pregHeart($x)
{
if (strlen($x[1]) == 1) {
return $x[0];
}
$t = '';
for ($cnt = 0; $cnt < strlen($x[1]); $cnt ++) {
$t .= '<img class="smiley" src="' . System::baseUrl() . '/images/smiley-heart.gif" alt="&lt;3" />';
$t .= '';
}
$r = str_replace($x[0], $t, $x[0]);
return $r;
}

View File

@ -1395,6 +1395,7 @@ class BBCode extends BaseObject
// This is actually executed in Item::prepareBody()
$nosmile = strpos($text, '[nosmile]') !== false;
$text = str_replace('[nosmile]', '', $text);
// Check for font change text
@ -1572,7 +1573,7 @@ class BBCode extends BaseObject
}
// Replace non graphical smilies for external posts
if ($simple_html) {
if (!$nosmile && !$for_plaintext) {
$text = Smilies::replace($text);
}

View File

@ -40,6 +40,9 @@ class BBCodeTest extends MockedTest
$this->configMock->shouldReceive('get')
->with('system', 'url')
->andReturn('friendica.local');
$this->configMock->shouldReceive('get')
->with('system', 'no_smilies')
->andReturn(false);
$this->mockL10nT();
}