MyBB Community Forums

Full Version: [F] [ACP] Weekdays select box in task manager [R] [C-Chris]
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
If you add a task and select to run it every weekday the options "Every Weekday" and "Sunday" are shown as selected.

Steps to reproduce:
1. Add or edit a task and select to run it every day. Save the task.
2. Edit the task again. Now the options "Every Weekday" and "Sunday" are highlighted.
<option value="*" selected="selected">Every Weekday</option>
<option value="0" selected="selected">Sunday</option>
in admin/inc/class_form.php find:

if(!empty($selected) && ((string)$value == (string)$selected || (is_array($selected) && in_array($value, $selected))))
			{
				$select_add = " selected=\"selected\"";
			}

replace with

if(!empty($selected))
			{
				if(is_array($selected) && in_array($value, $selected))
				{
					$select_add = " selected=\"selected\"";
				}
				else if((is_string($value) || is_int($value)) && (string)$value == (string)$selected))
				{
					$select_add = " selected=\"selected\"";
				}
			}
else if((is_string($value) || is_int($value)) && (string)$value == (string)$selected))
I had to remove the last bracket because I got a parsing error. The new code isn't working - the issue still exists.

It seems to be an issue with * and 0. If I replace
if(is_array($selected) && in_array($value, $selected))
with
if(is_array($selected) && in_array("{$value}", $selected))
it's working fine.

Edit:
http://www.php.net/manual/de/function.in....php#86695
http://www.php.net/manual/de/function.in....php#78524
http://www.php.net/manual/de/function.in....php#76857
Ah. Just change in_array($value, $selected) to in_array($value, $selected, true) then
That's not working. It shows up fine if you selected "Every Weekday". If you select another day no day is selected if you edit the settings again. I see no problem if I change the code like I posted before.
Ah that's right, nevermind. It's trying to compare a string to an integer. So instead we simply have to typecast it to a string. Try this, and this one should definately work: in_array((string)$value, $selected)
Yes, this is working.
I can confirm it works as wellSmile
Thank you for your bug report.

This bug has been fixed in our internal code repository. Please note that the problem will not be fixed here until these forums are updated.

With regards,
MyBB Group