?
avatar hakanara
hakanara
21 Dec 2015

Steps to reproduce the issue
Assign a tag to a menu item. (my menu item was in Turkish)
Set the site error reporting to developer mode
Set the site to search engine friendly URL's

Expected result
No notice

Actual result
Notice: Array to string conversion in /libraries/joomla/filter/input.php on line 232

System information (as much as possible)
I havent seen this notice in Joomla 3.4.5
The notice started with the 3.4.6 update.
Database Version 5.6.26-cll-lve
Database Collation utf8_general_ci
PHP Version 5.4.45

Additional comments
Enjoy life while you can

avatar hakanara hakanara - open - 21 Dec 2015
avatar bertmert
bertmert - comment - 21 Dec 2015

Confirmed for J!3.4.6, PHP5.6.13

avatar bertmert
bertmert - comment - 21 Dec 2015

In my case it was a plugin of mine. My fault.
A call like this

$ID = (int) $this->app->input->get('id');

creates the notice because id is an array in com_tags/tag view context.

After removing this line the notice was gone. So, I think it's not a Joomla issue.

(And I remember now that we had this already in 2 or 3 forum threads. Always 3rd extensions.)

avatar hakanara
hakanara - comment - 22 Dec 2015

I have disabled all the "content" plugins (both Joomla and mine) and I still get the notice. I suspect that it has something to do with Turkish characters.

What type was your plugin and what plugin was it?

avatar hakanara
hakanara - comment - 22 Dec 2015

And the same notice disappears if the URLs are not search engine friendly. How would you explain this?

avatar bertmert
bertmert - comment - 22 Dec 2015

It's a "private" system plugin in method onAfterRoute.

SEF off: It makes no difference. Still get the notice from my plugin.
That makes sense (id[0]=25):
URL:

index.php?option=com_tags&view=tag&id[0]=25&Itemid=650

At the moment I use a quick fix and handle id always as array.

$ID = $this->app->input->get('id', array(), 'ARRAY');

... do more...

You can try debugging in
/libraries/joomla/input/input.php method get(...)

 public function get($name, $default = null, $filter = 'cmd')
 {
  if (isset($this->data[$name]))
  {
#DEBUG START
if ($filter == 'cmd' && is_array($this->data[$name]))
{
 $callers = debug_backtrace();
 echo 'DEBUG: '.print_r($callers[0],true);exit;
}
#DEBUG END
   return $this->filter->clean($this->data[$name], $filter);
  }

  return $default;
 }

Further discussions should be done in a forum I think.

avatar brianteeman brianteeman - close - 22 Dec 2015
avatar hakanara
hakanara - comment - 22 Dec 2015

@bertmert very big thank you for your help and for your time. You were right, it was because of a non Joomla plugin. The thing is, I have never seen this notice before, especially before the update.

avatar hakanara hakanara - change - 22 Dec 2015
Status New Closed
Closed_Date 0000-00-00 00:00:00 2015-12-22 20:05:38
Closed_By hakanara
avatar hakanara hakanara - close - 22 Dec 2015
avatar brianteeman brianteeman - change - 8 Mar 2016
Labels Added: ?

Add a Comment

Login with GitHub to post a comment