mirror of
https://github.com/phpbb/phpbb.git
synced 2025-03-24 01:20:40 +01:00
Merge branch '3.2.x'
This commit is contained in:
commit
ea23d456d5
@ -18,9 +18,10 @@ services:
|
||||
class: phpbb\feed\helper
|
||||
arguments:
|
||||
- '@config'
|
||||
- '@service_container'
|
||||
- '@path_helper'
|
||||
- '@text_formatter.renderer'
|
||||
- '@user'
|
||||
- '%core.root_path%'
|
||||
- '%core.php_ext%'
|
||||
|
||||
feed.forum:
|
||||
class: phpbb\feed\forum
|
||||
@ -78,6 +79,10 @@ services:
|
||||
- '@dispatcher'
|
||||
- '%core.php_ext%'
|
||||
|
||||
feed.quote_helper:
|
||||
class: phpbb\feed\quote_helper
|
||||
parent: text_formatter.s9e.quote_helper
|
||||
|
||||
feed.topic:
|
||||
class: phpbb\feed\topic
|
||||
shared: false
|
||||
|
@ -13,41 +13,52 @@
|
||||
|
||||
namespace phpbb\feed;
|
||||
|
||||
use phpbb\config\config;
|
||||
use phpbb\path_helper;
|
||||
use phpbb\textformatter\s9e\renderer;
|
||||
use phpbb\user;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
|
||||
/**
|
||||
* Class with some helpful functions used in feeds
|
||||
*/
|
||||
class helper
|
||||
{
|
||||
/** @var \phpbb\config\config */
|
||||
/** @var config */
|
||||
protected $config;
|
||||
|
||||
/** @var \phpbb\user */
|
||||
/** @var ContainerInterface */
|
||||
protected $container;
|
||||
|
||||
/** @var path_helper */
|
||||
protected $path_helper;
|
||||
|
||||
/** @var renderer */
|
||||
protected $renderer;
|
||||
|
||||
/** @var user */
|
||||
protected $user;
|
||||
|
||||
/** @var string */
|
||||
protected $phpbb_root_path;
|
||||
|
||||
/** @var string */
|
||||
protected $phpEx;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param \phpbb\config\config $config Config object
|
||||
* @param \phpbb\user $user User object
|
||||
* @param string $phpbb_root_path Root path
|
||||
* @param string $phpEx PHP file extension
|
||||
* @param config $config Config object
|
||||
* @param ContainerInterface $container Service container object
|
||||
* @param path_helper $path_helper Path helper object
|
||||
* @param renderer $renderer TextFormatter renderer object
|
||||
* @param user $user User object
|
||||
*/
|
||||
public function __construct(\phpbb\config\config $config, \phpbb\user $user, $phpbb_root_path, $phpEx)
|
||||
public function __construct(config $config, ContainerInterface $container, path_helper $path_helper, renderer $renderer, user $user)
|
||||
{
|
||||
$this->config = $config;
|
||||
$this->container = $container;
|
||||
$this->path_helper = $path_helper;
|
||||
$this->renderer = $renderer;
|
||||
$this->user = $user;
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
$this->phpEx = $phpEx;
|
||||
}
|
||||
|
||||
/**
|
||||
* Run links through append_sid(), prepend generate_board_url() and remove session id
|
||||
* Returns the board url (and caches it in the function)
|
||||
*/
|
||||
public function get_board_url()
|
||||
{
|
||||
@ -104,17 +115,13 @@ class helper
|
||||
return '';
|
||||
}
|
||||
|
||||
// Prepare some bbcodes for better parsing
|
||||
$content = preg_replace("#\[quote(=".*?")?:$uid\]\s*(.*?)\s*\[/quote:$uid\]#si", "[quote$1:$uid]<br />$2<br />[/quote:$uid]", $content);
|
||||
// Setup our own quote_helper to remove all attributes from quotes
|
||||
$this->renderer->configure_quote_helper($this->container->get('feed.quote_helper'));
|
||||
|
||||
$this->renderer->set_smilies_path($this->get_board_url() . '/' . $this->config['smilies_path']);
|
||||
|
||||
$content = generate_text_for_display($content, $uid, $bitfield, $options);
|
||||
|
||||
// Add newlines
|
||||
$content = str_replace('<br />', '<br />' . "\n", $content);
|
||||
|
||||
// Convert smiley Relative paths to Absolute path, Windows style
|
||||
$content = str_replace($this->phpbb_root_path . $this->config['smilies_path'], $this->get_board_url() . '/' . $this->config['smilies_path'], $content);
|
||||
|
||||
// Remove "Select all" link and mouse events
|
||||
$content = str_replace('<a href="#" onclick="selectCode(this); return false;">' . $this->user->lang['SELECT_ALL_CODE'] . '</a>', '', $content);
|
||||
$content = preg_replace('#(onkeypress|onclick)="(.*?)"#si', '', $content);
|
||||
@ -152,7 +159,7 @@ class helper
|
||||
$content .= implode('<br />', $post_attachments);
|
||||
|
||||
// Convert attachments' relative path to absolute path
|
||||
$content = str_replace($this->phpbb_root_path . 'download/file.' . $this->phpEx, $this->get_board_url() . '/download/file.' . $this->phpEx, $content);
|
||||
$content = str_replace($this->path_helper->get_web_root_path() . 'download/file.' . $this->path_helper->get_php_ext(), $this->get_board_url() . '/download/file.' . $this->path_helper->get_php_ext(), $content);
|
||||
}
|
||||
|
||||
// Remove Comments from inline attachments [ia]
|
||||
|
36
phpBB/phpbb/feed/quote_helper.php
Normal file
36
phpBB/phpbb/feed/quote_helper.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\feed;
|
||||
|
||||
/**
|
||||
* Modified quote_helper for feeds (basically just removing all attributes)
|
||||
*/
|
||||
class quote_helper extends \phpbb\textformatter\s9e\quote_helper
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function inject_metadata($xml)
|
||||
{
|
||||
// In feeds we don't want any attributes, so delete all of them
|
||||
return \s9e\TextFormatter\Utils::replaceAttributes(
|
||||
$xml,
|
||||
'QUOTE',
|
||||
function ()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
@ -31,13 +31,25 @@ class phpbb_feed_attachments_base_test extends phpbb_database_test_case
|
||||
|
||||
$this->filesystem = new \phpbb\filesystem();
|
||||
$config = new \phpbb\config\config(array());
|
||||
$path_helper = new \phpbb\path_helper(
|
||||
new \phpbb\symfony_request(
|
||||
new phpbb_mock_request()
|
||||
),
|
||||
$this->filesystem,
|
||||
$this->getMock('\phpbb\request\request'),
|
||||
$phpbb_root_path,
|
||||
'php'
|
||||
);
|
||||
$user = new \phpbb\user(
|
||||
new \phpbb\language\language(
|
||||
new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx)
|
||||
),
|
||||
'\phpbb\datetime'
|
||||
);
|
||||
$feed_helper = new \phpbb\feed\helper($config, $user, $phpbb_root_path, $phpEx);
|
||||
$container = new phpbb_mock_container_builder();
|
||||
$this->get_test_case_helpers()->set_s9e_services($container);
|
||||
$container->set('feed.quote_helper', new \phpbb\feed\quote_helper($user, $phpbb_root_path, 'php'));
|
||||
$feed_helper = new \phpbb\feed\helper($config, $container, $path_helper, $container->get('text_formatter.renderer'), $user);
|
||||
$db = $this->new_dbal();
|
||||
$cache = new \phpbb_mock_cache();
|
||||
$auth = new \phpbb\auth\auth();
|
||||
|
Loading…
x
Reference in New Issue
Block a user