[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с расширением prettyphoto на wiki
doo
Привет. Подскажите решение проблемы, пожалст:
установил на wikimedia расширение prettyphoto, но есть две проблемы, одна не особо мешает жить а вот вторая критична. По умолчанию, если в статье указать ссылку на несуществующий файл например [[файл:not-yet.jpg]] в готовой статье будет отведено место под фото и ссылка, которая ведет на страницу загрузки файла. Но всё меняется когда приходят они устанавливаешь расширение PP. на странице (в статье) с несуществующим файлом вылезает ошибка:
Catchable fatal error: Argument 1 passed to PrettyPhoto::getImagePreviewUrl() must be an instance of Title, null given, called in /home/p121285/www/domen.ru/w/extensions/PrettyPhoto/PrettyPhoto.php on line 161 and defined in /home/p121285/www/domen.ru/w/extensions/PrettyPhoto/PrettyPhoto.php on line 81

Вторая проблема: расширение prettyphoto загребает в свои лапы ВСЕ изображения со страницы, даже те, что в шаблонах (так называемых плашках, перед самой статьёй).

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

protected static function getImagePreviewUrl( Title $fileTitle ) {
global $wgRequest, $wgUser;
global $wgImageLimits;
$image = RepoGroup::singleton()->getLocalRepo()->newFile( $fileTitle );
$sizeSel = intval( $wgUser->getOption( 'imagesize' ) );
if ( !isset( $wgImageLimits[$sizeSel] ) ) {
$sizeSel = User::getDefaultOption( 'imagesize' );

// The user offset might still be incorrect, specially if
// $wgImageLimits got changed (see bug #8858).

if ( !isset( $wgImageLimits[$sizeSel] ) ) {
// Default to the first offset in $wgImageLimits
$sizeSel = 0;
}
}

list( $maxWidth, $maxHeight ) = $wgImageLimits[$sizeSel];
$page = $wgRequest->getIntOrNull( 'page' );
if ( is_null( $page ) ) {
$params = array();
$page = 1;
} else {
$params = array( 'page' => $page );
}
$width_orig = $image->getWidth( $page );
$width = $width_orig;
$height_orig = $image->getHeight( $page );
$height = $height_orig;
if ( $width <= $maxWidth && $height <= $maxHeight ) {
return $image->getUrl();
}
# Calculate the thumbnail size.
# First case, the limiting factor is the width, not the height.

if ( $width / $height >= $maxWidth / $maxHeight ) {
$height = round( $height * $maxWidth / $width );
$width = $maxWidth;
# Note that $height <= $maxHeight now.
} else {
$newwidth = floor( $width * $maxHeight / $height );
$height = round( $height * $newwidth / $width );
$width = $newwidth;
# Note that $height <= $maxHeight now, but might not be identical
# because of rounding.

}
$params['width'] = $width;
$params['height'] = $height;
$thumbnail = $image->transform( $params );
return $thumbnail->getUrl();
}


и вот строка на которй возникает ошибка:

$anchor->setAttribute( 'href', static::getImagePreviewUrl( $fileTitle ) );
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.