Форум русской поддержки Joomla!® CMS
10.12.2016, 10:55:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Не работают HTML теги

 (Прочитано 768 раз)
0 Пользователей и 1 Гость смотрят эту тему.
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« : 30.06.2015, 16:34:08 »

Добрый день!
Денвер + Joomla 3.3.3 + свой шаблон.
Если в файлах локализации переменная содержит HTML теги, то при отображении страницы они не работают, например:
ADSMANAGER_WARNING_NEW_AD_NO_ACCOUNT="<b>ВНИМАНИЕ:</b><br /> Вы не авторизованы"  на странице выводится  "<b>ВНИМАНИЕ:</b></br /> Вы не авторизованы", а должно быть так:

ВНИМАНИЕ:
Вы не авторизованы

Подскажите, в чем причина, и как можно это исправить?
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #1 : 30.06.2015, 18:22:03 »

В том, что эти теги прописываются в шаблоне, а не в файле локализации.
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #2 : 30.06.2015, 20:15:52 »

В том, что эти теги прописываются в шаблоне, а не в файле локализации.
а посмотреть примеры?

по вопросу - хз, смотрите как выводите, не написали
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #3 : 30.06.2015, 22:55:35 »

а посмотреть примеры?
Откройте любой файл локализации и посмотрите пример.
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Offline Offline

Пол: Мужской
Сообщений: 2247


« Ответ #4 : 30.06.2015, 23:36:41 »

Откройте любой файл локализации и посмотрите пример.
так именно это я вам и написал. вы смотрели, прежде чем ответить "а не в файле локализации"?
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« Ответ #5 : 01.07.2015, 02:54:46 »

для двойных кавычек используется "_QQ_" или что то типа этого в роде)
поищите на форуме, там просто проблема есть с двойными кавычками
Записан
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« Ответ #6 : 01.07.2015, 14:07:19 »

Спасибо всем, но проблема пока не решена, наверное не совсем понятно описал проблему. Привожу скрины
1 Файл локализации:
http://fotki.yandex.ru/next/users/a9876304/album/479908/view/1142318?page=0
2 А так отображается на странице
http://fotki.yandex.ru/next/users/a9876304/album/479908/view/1142320?page=0
« Последнее редактирование: 01.07.2015, 14:13:22 от brigz » Записан
JLang
Осваиваюсь на форуме
***

Репутация: +17/-0
Offline Offline

Пол: Мужской
Сообщений: 107



« Ответ #7 : 06.07.2015, 04:55:14 »

...но проблема пока не решена...

Если до сих пор не решили, предлагаю "фирменное" решение через... Grin и возможно не самое верное:

В файле components/com_adsmanager/views/edit/view.html.php найдите 221 строку (примерно)
Код:
if (($conf->submission_type == 2)&&($user->id == "0"))
{
$txt = JText::_('ADSMANAGER_WARNING_NEW_AD_NO_ACCOUNT');
$this->assignRef('warning_text',$txt);
}
И измените на
Код:
if (($conf->submission_type == 2)&&($user->id == "0"))
{
JError::raiseNotice( null, JText::_('ADSMANAGER_WARNING_NEW_AD_NO_ACCOUNT'));
}
Затем в языковом файле  добавляйте и удаляйте любые теги. Yes!
Стиль в Protostar остаётся прежний, другие шаблоны - не знаю, но скорее всего тоже.

Если вывод сообщений шаблона не указан или задан в другом месте, тогда:
Код:
if (($conf->submission_type == 2)&&($user->id == "0"))
{
JFactory::getApplication()->enqueueMessage(JText::_('ADSMANAGER_WARNING_NEW_AD_NO_ACCOUNT'), 'warning');
}
« Последнее редактирование: 06.07.2015, 06:01:21 от JLang » Записан
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« Ответ #8 : 06.07.2015, 17:54:42 »

Огромное спасибо JLang, все заработало!
Заметил, что  в AdsManager 3.1.0 еще есть ошибки в коде.
Например, в файле components/com_adsmanager/controller.php при написании путей слеш прописан как DS (Joomla 2.5), хотя должно быть DIRECTORY_SEPARATOR. Эту исправил добавлением в файл
Код:
defined('DS') or define('DS',DIRECTORY_SEPARATOR);

Заметил еще две ошибки.
1. Страница Добавить объявление. Если посмотреть на код в браузере, поле <select> "Выберите категорию" выглядет довольно странно:
Код:
<select id="category" class="" name="category" required class=input-large text-center >
<option value="">- Выберите категорию -</option>
<option   value="3">Недвижимость &gt; Куплю квартиру</option>
<option   value="4">Недвижимость &gt; Куплю дом</option>
<option   value="5">Недвижимость &gt; Куплю гараж</option>
насколько я понимаю required там быть не должно, и в опциях знак > выводится как &gt;.

2. Страница Поиска объявлений (реализована через mod_adsmanager_search). Если посмотреть на код в браузере
Код:
</script>
</div> </div>
</p> </div>


</div>
после js выводится лишний закрывающий тег </p>.

Подскажите, как исправить эти ошибки, или хотя бы в каких файлах "копать"?
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #9 : 06.07.2015, 18:29:25 »

Заметил, что  в AdsManager 3.1.0 еще есть ошибки в коде.
Например, в файле components/com_adsmanager/controller.php при написании путей слеш прописан как DS (Joomla 2.5), хотя должно быть DIRECTORY_SEPARATOR.
DS - это константа Joomla, содержащая правильный слеш.
Записан
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« Ответ #10 : 07.07.2015, 17:29:56 »

DS - это константа Joomla, содержащая правильный слеш.

На сколько я знаю, константа DS используется в Joomla 2.5, а в Joomla 3 вместо нее используется DIRECTORY_SEPARATOR.

И все же, по сути вопроса, может кто помочь?
Записан
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« Ответ #11 : 08.07.2015, 17:19:45 »

На счет второй ошибки - приношу извинения, накосячил сам.

Подскажите  как быть с первой ошибкой.
Как я понимаю поле <select> "Выберите категорию" на странице "Добавить объявление" выводится из файла components/com_adsmanager/views/edit/tmpl/deault.php? примерно строка  114 и далее
Код:
case 'normal':
                                JHTMLAdsmanagerCategory::displayNormalCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
Если посмотреть код в браузере
Код:
<select id="category" class="" name="category" required class=input-large text-center >
то поле выглядит коряво: class выведен дважды, в первом случае пустым, а во втором имя класса хоть и присутствует - но без кавычек, плюс ко всему бессмысленное required. Я не очень силен в РНР и никак не могу привести все в должный порядок.
Подскажите, как исправить?
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #12 : 08.07.2015, 17:27:52 »

Выложите кусок кода, что там до этой строки.

Как вариант:
Код:
<select id="category" name="category" class="input-large text-center" >
« Последнее редактирование: 08.07.2015, 17:32:01 от SeBun » Записан
Grendy
Давно я тут
****

Репутация: +24/-0
Offline Offline

Пол: Мужской
Сообщений: 247


« Ответ #13 : 08.07.2015, 18:22:37 »

...
плюс ко всему бессмысленное required
...
Атрибут required указывает на то, что поле обязательно к заполнению — какая-то из опций в списке должна быть обязательно выбрана.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #14 : 09.07.2015, 10:32:52 »

Атрибут required указывает на то...
Ну, если ТС считает атрибут бессмысленным, то он и не нужен ))
Показать текстовый блок
Записан
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« Ответ #15 : 09.07.2015, 11:57:56 »

Если вдруг решите, что нужен, то строка, которую я привел выше, будет выглядеть так:
Код:


Код:
<select required id="category" name="category" class="input-large text-center" >

Решил, должно выглядеть именно так, как написали Вы...)), т. е. сервер должен прислать в браузер тег <select> именно в таком виде. Но сервер присылает его вот так
Код:
<select id="category" class="" name="category" required class=input-large text-center >
в одном теге дважды прописан класс, при чем во втором случае имя класса даже без кавычек.
Как я понимаю, на сервере код данного поля формируется в файле <b>components/com_adsmanager/views/edit/tmpl/deault.php</b>
Код:
Код:
<div class="controls">
<?php
switch($this->conf->single_category_selection_type) {
default:
                        case 'normal':
                                JHTMLAdsmanagerCategory::displayNormalCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
                        case 'color':
                                JHTMLAdsmanagerCategory::displayColorCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
                        case 'combobox':
                                JHTMLAdsmanagerCategory::displayComboboxCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
                            break;
                        case 'cascade':
                                JHTMLAdsmanagerCategory::displaySplitCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
}
?>
</div>
как я понимаю загвоздка именно в array("required"=>"","class"=>"input-large text-center"), но как должно быть - ума не приложу.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #16 : 09.07.2015, 12:03:29 »

Перед ?> поставьте var_dump (строка); где строка - одна из строк

Например:
Код:
var_dump(JHTMLAdsmanagerCategory::displaySplitCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center")));

Это покажет вам, что выводят эти строки.
« Последнее редактирование: 09.07.2015, 12:08:44 от SeBun » Записан
brigz
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 17


« Ответ #17 : 09.07.2015, 17:20:46 »

Кажется решил задачу.
В файле components/com_adsmanager/views/edit/tmpl/deault.php часть кода
Код:
<div class="controls">
<?php
switch($this->conf->single_category_selection_type) {
default:
                        case 'normal':
                                JHTMLAdsmanagerCategory::displayNormalCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
                        case 'color':
                                JHTMLAdsmanagerCategory::displayColorCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
                        case 'combobox':
                                JHTMLAdsmanagerCategory::displayComboboxCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
                            break;
                        case 'cascade':
                                JHTMLAdsmanagerCategory::displaySplitCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true),array("required"=>"","class"=>"input-large text-center"));break;
}
?>
</div>
заменил на
Код:
<div class="controls">
                <?php
                    switch($this->conf->single_category_selection_type) {
                        default:
                        case 'normal':
                                JHTMLAdsmanagerCategory::displayNormalCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true,"class"=>"input-large text-center"),array("required"=>""));break;
                        case 'color':
                                JHTMLAdsmanagerCategory::displayColorCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true,"class"=>"input-large text-center"),array("required"=>""));break;
                        case 'combobox':
                                JHTMLAdsmanagerCategory::displayComboboxCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true,"class"=>"input-large text-center"),array("required"=>""));break;
                        case 'cascade':
                                JHTMLAdsmanagerCategory::displaySplitCategories($selectid ,$this->cats,$this->catid,array("root_allowed"=>$this->conf->root_allowed,"display_price"=>true,"class"=>"input-large text-center"),array("required"=>""));break;
                    }
                ?>
                </div>
Открываем в браузере (у меня Мозилла) страницу "Добавить объявление" (Write Ad), Инструменты->Веб-разработка ->Исходный код страницы и смотрим код
Код:
<div class="controls">
                 <select id="category" class="input-large text-center" name="category" required >
т. е. тег <select> отображается корректно.
« Последнее редактирование: 09.07.2015, 17:28:10 от brigz » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet