2012-06-25 3 views
0

Я использую автоматический CodeIgniter 2.1 + помощник Auto мякишем, что я получаю from hereCodeIgniter зашифрован ключ в URL с помощником Auto крошек

screenshot

Например моя ссылка на страницу изменения контактной информации является http://localhost/caster/contact/edit_contact/13/213bcf

- это идентификатор контакта и 213bcf - это зашифрованный контакт ID, чтобы пользователь не мог просто изменить идентификатор контакта из URL-адрес.

Итак, у моей Breadcrumb теперь отображается неверный URL-адрес, как на картинке выше. Желаемая хлебная крошка будет Contact \ Edit Contact. Как исправить или предотвратить эту проблему?

Спасибо.

ответ

1

В настоящее время существует ошибка (или, может быть, это по дизайну, но было бы глупо быть как таковой) с помощником autocrumb, что означает, что замены шаблона регулярного выражения не выполняются, если у конкретного сегмента нет дефиса (-) или подчеркивание (_).

Обычно для использования в ваших конфигурациях может быть достаточно использовать конфигурационную переменную $config['strip_regexp'], но, увы, не в этом случае.

В этом случае (при условии что привычка мне больше параметров на конце URL), вы можете сделать следующее:

$ci = get_instance(); 
if(preg_match('#\d+/[a-z0-9]+$#i', $ci->uri->uri_string())) { 
    $config['exclude_segment'] = $config['exclude_segment'] + array(
     $total = $ci->uri->total_segments(), 
     $total-1 
    ); 
} 

Это должно быть вставлено только под $config['exclude_segment'] = array(); в app/config/breadcrumb.php файл, который в основном говорит, если URL заканчивается с numbers/letter-number-pattern, а затем удаляет последние два сегмента URL-адреса из палитры.

Это меньше, чем идеально, но ошибка должна быть исправлена ​​в первую очередь. Очевидно, это предполагает, что ваша структура URL не изменится. Вы можете добавить дополнительные условные обозначения в if, чтобы убедиться, что это происходит только на желаемых страницах.

+0

спасибо. Я, хотя есть правильный способ, не взламывая помощников, но я предполагаю, что сначала улажу этот метод, пока они не выйдут с исправлением ошибки. – cyberfly

 Смежные вопросы

  • Нет связанных вопросов^_^