These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | namespace Redaxscript\Content\Tag; |
||
3 | |||
4 | use Redaxscript\Html; |
||
5 | use function str_replace; |
||
6 | use function strpos; |
||
7 | use function substr; |
||
8 | |||
9 | /** |
||
10 | * children class to parse content for more tags |
||
11 | * |
||
12 | * @since 3.0.0 |
||
13 | * |
||
14 | * @package Redaxscript |
||
15 | * @category Content |
||
16 | * @author Henry Ruhs |
||
17 | */ |
||
18 | |||
19 | class More extends TagAbstract |
||
20 | { |
||
21 | /** |
||
22 | * options of the more tag |
||
23 | * |
||
24 | * @var array |
||
25 | */ |
||
26 | |||
27 | protected $_optionArray = |
||
28 | [ |
||
29 | 'className' => |
||
30 | [ |
||
31 | 'more' => 'rs-link-more' |
||
32 | ], |
||
33 | 'search' => |
||
34 | [ |
||
35 | '<rs-more>' |
||
36 | ] |
||
37 | ]; |
||
38 | |||
39 | /** |
||
40 | * process the class |
||
41 | * |
||
42 | * @since 3.0.0 |
||
43 | * |
||
44 | * @param string $content content to be parsed |
||
45 | * @param string $route route of the content |
||
46 | * |
||
47 | * @return string |
||
48 | */ |
||
49 | |||
50 | 15 | public function process(string $content = null, string $route = null) : string |
|
51 | { |
||
52 | 15 | $output = str_replace($this->_optionArray['search'], null, $content); |
|
53 | 15 | $position = strpos($content, $this->_optionArray['search'][0]); |
|
54 | |||
55 | /* html element */ |
||
56 | |||
57 | 15 | $linkElement = new Html\Element(); |
|
58 | 15 | $linkElement->init('a', |
|
59 | [ |
||
60 | 15 | 'class' => $this->_optionArray['className']['more'] |
|
61 | ]); |
||
62 | |||
63 | /* collect output */ |
||
64 | |||
65 | 15 | if ($position > -1 && $this->_registry->get('lastTable') === 'categories') |
|
66 | { |
||
67 | 1 | $output = substr($output, 0, $position); |
|
68 | 1 | if ($route) |
|
0 ignored issues
–
show
|
|||
69 | { |
||
70 | $output .= $linkElement |
||
71 | 1 | ->copy() |
|
72 | 1 | ->attr('href', $this->_registry->get('parameterRoute') . $route) |
|
73 | 1 | ->text($this->_language->get('read_more')); |
|
0 ignored issues
–
show
It seems like
$this->_language->get('read_more') targeting Redaxscript\Language::get() can also be of type array ; however, Redaxscript\Html\Element::text() does only seem to accept string|integer|null , maybe add an additional type check?
This check looks at variables that are passed out again to other methods. If the outgoing method call has stricter type requirements than the method itself, an issue is raised. An additional type check may prevent trouble.
Loading history...
|
|||
74 | } |
||
75 | } |
||
76 | 15 | return $output; |
|
77 | } |
||
78 | } |
In PHP, under loose comparison (like
==
, or!=
, orswitch
conditions), values of different types might be equal.For
string
values, the empty string''
is a special case, in particular the following results might be unexpected: