At file
/libraries/src/MVC/Controller/FormController.php
at the save() task , just before return true;
add exit;
At file
/administrator/components/com_finder/helpers/indexer/indexer.php
at line 520, just before: foreach ($tokens as $token)
add
echo "<pre>"; print_r($tokens); echo "</pre>";
No garbage added to search indexer, no PHP notices are printed during save task
The above happens
3.8.0-rc1
[EDIT]
Add the suggested code here:
https://github.com/joomla/joomla-cms/blob/staging/libraries/src/MVC/Controller/FormController.php#L839
Labels |
Added:
?
|
Category | ⇒ | com_search |
Title |
|
Casting that like that is no good as it is expected the objects are FinderIndexerToken
instances.
Also per the doc block the method may accept either a single FinderIndexerToken
instance or an array of FinderIndexerToken
instances. Since https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_finder/helpers/indexer/indexer.php#L515 is setting $tokens
I don't see how you run into a notice producing issue to begin with.
Likewise, without actually giving the notice message that you're getting, all any of us reading this can do is read it and wonder what you're talking about specifically.
ok right , an example of saving article "Popular tags" (no 3rd party extensions installed)
(a small part of the data passed to indexer addTokensToDb())
The first array is in expected format : aka an array of FinderIndexerToken objects
and then the 2nd is not expected format
Array
(
[0] => FinderIndexerToken Object
(
[term] => popular
[stem] => popular
[numeric] =>
[common] =>
[phrase] =>
[length] => 7
[weight] => 0.4667
[language] => *
)
[1] => FinderIndexerToken Object
(
[term] => tags
[stem] => tags
[numeric] =>
[common] =>
[phrase] =>
[length] => 4
[weight] => 0.2667
[language] => *
)
[2] => FinderIndexerToken Object
(
[term] => popular tags
[stem] => popular tags
[numeric] =>
[common] =>
[phrase] => 1
[length] => 12
[weight] => 1.4
[language] => *
[derived] => 1
)
)
Array
(
[term] => 72
[stem] => 72
[numeric] => 1
[common] =>
[phrase] =>
[length] => 2
[weight] => 0.2
[language] => *
)
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 526
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 527
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 528
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 529
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 530
Notice: Trying to get property of non-object in D:\xampp\htdocs\devel\joomla-cms2\administrator\components\com_finder\helpers\indexer\indexer.php on line 532
Please note the lines are shifted by 2 because i have added an empty line plus the line
echo "<pre>"; print_r($tokens); echo "</pre>";
It should be easy to test
Status | New | ⇒ | Discussion |
you said
Also per the doc block the method may accept either a single FinderIndexerToken instance or an array of FinderIndexerToken instances.
so i tried to find who is giving bad data
and no-one is passing bad data,
$a =new FinderIndexerToken;
$a = (array) $a; // WRONG CASTING !!! The object was made a plain array !!!!
correct is
$a =new FinderIndexerToken;
$a = is_array($a) ? $a : array($a); // Force it to be an array of FinderIndexerToken objects
release blocker please for this issue or the PR i made ?
Status | Discussion | ⇒ | Closed |
Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2017-09-07 05:17:59 |
Closed_By | ⇒ | franz-wohlkoenig |
Set to "closed" on behalf of @franz-wohlkoenig by The JTracker Application at issues.joomla.org/joomla-cms/17880
closed as having Pull Request #17894
Code expects token data to be an array of objects
but some of the token data are passed as a single array
e.g. a fix could be