1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса(ов)

Joomla+jFusion+Dokuwiki. Не найдена функция PMA_blowfish_encrypt.

На днях пришлось помогать знакомым джумловодам.

Ситуация такая: стоит связка Joomla с DokuWiki. Связка, естественно, через jFusion.

После очередного обновления DokuWiki все неожиданно рассыпалось. При попытке зайти в вики мы видим, что отсутствует функция PMA_blowfish_encrypt, которую вызывает файл dokuwiki/lib/plugins/jfusion/action.php

Fatal error: Call to undefined function PMA_blowfish_decrypt() in /[путь к директории Вашего сайта]/dokuwiki/lib/plugins/jfusion/action.php on line 137

Дело в том, что разработчик DokuWiki давно начал отходить от алгоритма Blowfish, и теперь окончательно его исключил. Ждать милостей от проекта jFusion не приходится, ибо он давно мертв. Придется все делать самим.

Находим этот самый файл (плагин jFusion для DokuWiki). Добавляем объекту две функции:

Код php:
  1. public function encrypt($data)
  2. {
  3. if(function_exists('auth_encrypt'))
  4. {
  5. $data = auth_encrypt($data, auth_cookiesalt());
  6. }
  7. else
  8. {
  9. $data = PMA_blowfish_encrypt($data, auth_cookiesalt());
  10. }
  11. return base64_encode($data);
  12. }

и

Код php:
  1. public function decrypt($data)
  2. {
  3. $data = base64_decode($data);
  4. if(function_exists('auth_decrypt'))
  5. {
  6. return auth_decrypt($data, auth_cookiesalt());
  7. }
  8. else
  9. {
  10. return PMA_blowfish_decrypt($data, auth_cookiesalt());
  11. }
  12. }

Находим строку

Код php:
$pass = PMA_blowfish_encrypt($password,auth_cookiesalt());

и заменяем на

Код php:
$pass = $this->encrypt($password);

Далее находим строку

Код php:
$pass = PMA_blowfish_decrypt($pass, auth_cookiesalt());

и заменяем на

Код php:
$pass = $this->decrypt($pass);

Вот, собственно и все. Какое-то время связка еще поживет. Какое? Это зависит от фантазии автора докувики. А там, может, и опять сами допилим.

 

Оставьте свой комментарий

Оставить комментарий как гость

0
  • Комментариев нет