Менеджер картинок в джумла

С8
На сайте с 23.08.2012
Offline
108
770

Здравствуйте! После обновления в джумле в медиа менеджере возникает такая ошибка:

Warning: Missing argument 4 for plgContentMultiads::onContentBeforeDisplay() in /home/p55634/www/nastroike.com/plugins/content/multiads/multiads.php on line 104

Warning: Missing argument 4 for plgContentMultiads::onContentAfterDisplay() in /home/p55634/www/nastroike.com/plugins/content/multiads/multiads.php on line 145

такая запись к каждому фото.

Знаю, что причина в плагине мультиадс, но в чем именно, не ясно. Кроме админки - сайт и сам плагин отображаются корректно. Помогите, пожалуйста, разобраться с проблемой.

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

S
На сайте с 30.09.2016
Offline
469
#1
Сабрина87:
Подскажите, как вы решаете такую проблему

Мы такую проблему решаем правкой кода. В данном случае надо дать функции недостающий аргумент, пусть она подавится.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
С8
На сайте с 23.08.2012
Offline
108
#2

Sitealert, а можно подробнее? Какой именно аргумент?

Вот кусок кода со строкой 104:

function onContentBeforeDisplay($context, &$article, &$params, $limitstart)

{
if ($context == 'mod_custom.content') {
return '';
}

if ($this->ignore($article->id, $article->catid)) {
return '';
}
if (!$this->showAdsForTemplates()) {
return '';
}
$ads = $this->showContent('Before_content_ads', true);
if ($ads) {
if ($this->showAdsForAuthor($article)) {
return $ads;
}
}
return '';

Вот со строкой 145:

function onContentAfterDisplay($context, &$article, &$params, $limitstart)

{
if ($context == 'mod_custom.content') {
return '';
}

if ($this->ignore($article->id, $article->catid)) {
return '';
}
if (!$this->showAdsForTemplates()) {
return '';
}
$ads = $this->showContent('After_content_ads', true);
if ($ads) {
if ($this->showAdsForAuthor($article)) {
return $ads;
}

}
return '';

Я не сильна в php, помогите, плиз.

S
На сайте с 30.09.2016
Offline
469
#3

По-хорошему, надо найти то место, где эти функции вызываются, и добавить туда 4-й аргумент. Но для начала попробуйте написать

($context, &$article, &$params, $limitstart=0)
Может быть, поможет.
С8
На сайте с 23.08.2012
Offline
108
#4

Sitealert, спасибо большое! Не думала, что так просто). Теперь все норм).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий