Hello

When I activate the dropdown list I have this warning.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

boaz_r’s picture

This issue is not related to the specific module, but from hours we spent trying to find out why the this happens, we saw that when you put a "#maxlength" property on a "confirm_password" field this issue arise.
Note that according to FAPI (http://api.drupal.org/api/file/developer/topics/forms_api_reference.html...), #maxlength should be defined only for textfield elements. Remove this property from the password_confirm form element, and you're clear for takeoff.

Gurpartap Singh’s picture

But there's no password field used in paging. It might something related. Let's see.

boaz_r’s picture

I bet its something similar. I would have checked that:
* does the presented page have forms within? I so, carefully check the form's definition. Make sure #maxlength is defined ONLY on textfield form elements.
* I would have also possibly patched the offending source file (unicode.inc), in order to catch and (temporarily) resolve all such possible bugs, with something like:

if $text is array
then
$text = array_shift($text)
watchdog("something terrible happened!!!", 'error')
endif
Gurpartap Singh’s picture

Status: Active » Postponed (maintainer needs more info)

According to above explanations, the problems doesn't look like to be emerging from paging. Nor I have any other clue what might be the cause.

a.a.egoroff’s picture

FileSize
932 bytes
932 bytes

Hi, friends. t(...) is not needed:) Patch attached, it also solves the problem described above, which occurred to me too.

daltro’s picture

Is this the right patch file? I don't think so. But it solved the problem manually removing the t(...) from the .module file on the specified lines. Thanks a lot!

drifter’s picture

Status: Postponed (maintainer needs more info) » Reviewed & tested by the community

Yes, I can confirm the bug. It occurs when viewing the first and last pages, and the pager is set to a dropdown. t() will return an array if $page_names is called with an invalid offset (negative or larger than the last page), thus breaking truncate_utf8.

Agree that t() is not necessary here, however it still shouldn't be called with invalid indexes. An alternate take:

  if ($pager_current > 1) {  
    $prev_name = truncate_utf8(t($page_names[$pager_current - 2]), 50, TRUE, TRUE);
    $li_previous = theme('pager_previous', (isset($tags[1]) ? $tags[1] : t('Previous page: !prev', array('!prev' => $prev_name))), $limit, $element, 1);
  }

  if ($pager_current < $pager_max) {
    $next_name = truncate_utf8(t($page_names[$pager_current]), 50, TRUE, TRUE);
    $li_next = theme('pager_next', (isset($tags[3]) ? $tags[3] : t('Next page: !next', array('!next' => $next_name))), $limit, $element, 1);
  }
drifter’s picture

Status: Reviewed & tested by the community » Needs review
gary.evans’s picture

I had a blank string as the first parameter of the t() function, like this t(''). I replaced it with '' and the error went away.

--g

mugginsoft.net’s picture

You will also witness this behaviour if you inadvertently define #maxlength for a form date field.

mdshields’s picture

Thanks Muggin, you saved the day!

Augusto182’s picture

You will also witness this behaviour if you inadvertently define #maxlength for a form date field.

:)

*SOLVED*

jenlampton’s picture

Version: 6.x-1.0-beta3 » 6.x-1.x-dev
FileSize
2.88 KB

I'm unable to confirm that this issue is still a problem (has t() been fixed?) But I like the solution in #7 where we only calculate previous and next links when they are needed. We should also only add the links to the page if they exist... how about something like the attached?

NancyDru’s picture

Issue summary: View changes
Status: Needs review » Closed (outdated)