После обновления до 3.3.6 возле поиска появляется бяка;)

  • 11 Ответов
  • 692 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

gauer

  • **
  • 16
  • 0
Собственно, возле формы поиска появляется 0. Откуда он взялся из обновлений - ума не приложу. Исследовать элемент тоже не получается. Ну а 0 искать - в новых файлах сами понимаете...)

Где оно валяться может?

*

AlekVolsk

  • ********
  • 6301
  • 336
Для начала - ссылку на сайт


*

AlekVolsk

  • ********
  • 6301
  • 336
Переопределение mod_search в шаблоне имеется? там сразу после инпута 0 не стоит случаем?

*

gauer

  • **
  • 16
  • 0
Переопределение mod_search в шаблоне имеется? там сразу после инпута 0 не стоит случаем?

Файл default.php из mod_search шаблона. Где тут?

Код: php
<?php

// no direct access
defined('_JEXEC') or die;

?>
<form action="<?php echo JRoute::_('index.php');?>" method="post">
<div class="search<?php echo $moduleclass_sfx ?>">
<?php
$output = '<input name="searchword" id="mod-search-searchword" maxlength="'.$maxlength.'"  class="inputbox'.$moduleclass_sfx.'" type="text" size="'.$width.'" value="'.$text.'"  onblur="if (this.value==\'\') this.value=\''.$text.'\';" onfocus="if (this.value==\''.$text.'\') this.value=\'\';" />';

if ($button) :
if ($imagebutton) :
$button = '<input type="image" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" src="'.$img.'" onclick="this.form.searchword.focus();"/>';
else :
$button = '<input type="submit" value="'.$button_text.'" class="button'.$moduleclass_sfx.'" onclick="this.form.searchword.focus();"/>';
endif;
endif;

switch ($button_pos) :
case 'top' :
$button = $button.'<br />';
$output = $button.$output;
break;

case 'bottom' :
$button = '<br />'.$button;
$output = $output.$button;
break;

case 'right' :
$output = $output.$button;
break;

case 'left' :
default :
$output = $button.$output;
break;
endswitch;

echo $output;
?>
<input type="hidden" name="task" value="search" />
<input type="hidden" name="option" value="com_search" />
<input type="hidden" name="Itemid" value="9999" />
</div>
</form>

*

AlekVolsk

  • ********
  • 6301
  • 336
Здесь нет.
Передв ыводом формы попробуйте var_dump($button); что покажет? И другие переменные, передаваемые во вьюху, тоже посмотрите, что кажет.

*

gauer

  • **
  • 16
  • 0
Прошу прощения новичка - где смотреть? Не совсем понимаю..

*

AlekVolsk

  • ********
  • 6301
  • 336
Во фронте должен быть вывод результата. Тут походу не совсем тривиальный случай, отладкой сайта владеете?

*

gauer

  • **
  • 16
  • 0
Нет, учусь только. Не сказать, что совсем идиот, но в процентном отношении - на 0,5% не дурак)))))

*

AlekVolsk

  • ********
  • 6301
  • 336
Ну, полпроцента - это уже хорошо )) значит, небезнадежен )))
Эксперименты хотя бы на локальной копии сайта?

*

fsv

  • *******
  • 2504
  • 367
Собственно, возле формы поиска появляется 0.
В Notepad++ (например) перекодируйте файл шаблона модуля в "utf-8 БЕЗ bom"
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

Может кому-то еще пригодится, так как я тоже попал на эти грабли и совет AlekVolsk мне помог. Значит в некоторых темам может стоять замена модуля поиска с не совсем корректным кодом, а именно это касается добавления кнопки поиска $button.
На примере, я столкнулся вот с таким модулем из какой-то темы с названием atomic:

Спойлер
[свернуть]

В этом коде используется переменная $button для отображения кнопки, но если кнопку не выводить, то получается, что переменная не определена, а по-умолчанию в php это ноль. отсюда мы его и видим. Подтверждение этому: var_dump($button) -> получаем string(1) "0" - вот этот ноль!
Поэтому самое простое решение перед switch поставить проверку $button на 0, тем более если баттон пустой, то зачем скакать вокруг него:
Код
if ($button != "0") :
switch ($button_pos) :
case 'top' :
$button = $button.'<br />';
$output = $button.$output;
break;

case 'bottom' :
$button = '<br />'.$button;
$output = $output.$button;
break;

case 'right' :
$output = $output.$button;
break;

case 'left' :
default :
$output = $button.$output;
break;
endswitch;
endif;