|
Mitrich
|
 |
« : 23.07.2007, 16:48:30 » |
|
Возникла необходимость добавить к матриалу кроме заголовка/текста/и т.п. еще одно текстовое поле.
Для этого нужно сделать следующее 1.Добавить в админке поле ввода 2.Добавить поле в базу данных 3.Научить Joomla записывать данные из поля ввода в поле базы данных 4.Научить Joomla читать данные этого поля из базы 5.Вывести во фронтэнд
Поехали по порядку
1. Файл administrator/components/com_content/admin.content.html.php Добавляем в него поле для ввода текста. Я добавлял поле ввода под полем Алиас заголовка: Получил следующее начиная со строки 607 (в Joomla! 1.0.12 LE 2007) </tr> <tr> <td>Суперполе: </td> <td><input name="superfield" type="text" class="text_area" id="superfield" value="<?php echo $row->superfield; ?>" size="30" maxlength="100" /></td> <td> </td> <td> </td> </tr> </table>
2. Идем в phpMyAdmin В таблицу #__content добавляем поле superfield руками Или выполняем запрос ALTER TABLE `jos_content` ADD `superfield` MEDIUMTEXT CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL ;
3. Открываем файл /includes/joomla.php после строки class mosContent extends mosDBTable { (строка 2491 для Joomla! 1.0.12 LE 2007) Дописываем var $superfield = null;
4. Файл components/com_content/content.php строка 202 $query = "SELECT a.id, a.title, a.title_alias, a.introtext, a.sectionid ……………. Дописываем в нее $query = "SELECT a.id, a.title, a.title_alias, a.introtext, a.superfield, a.sectionid
5. И наконец вывод во фронтэнд файл /components/com_content/content.html.php В том месте где нужен вывод пишем <?php echo $row->superfield; ?>
|
|
|
|
|
Записан
|
|
|
|
xTMx
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 147
|
 |
« Ответ #1 : 17.09.2009, 22:46:41 » |
|
большое спасибо очень полезная инфа!
остается главный вопрос во всем этом
а именно, как создать целый блок дополнительных полей и выводить\скрывать их взависимости от того, в какую категорию добавляется материал .
очевидно, js - выход. а в нем слабоват я определенно (
есть предложения?
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #2 : 17.09.2009, 22:54:38 » |
|
а именно, как создать целый блок дополнительных полей и выводить\скрывать их взависимости от того, в какую категорию добавляется материал . ну как вариант, добавить полный набор полей, а скрывать/показывать на уровне шаблона, в Joomla 1.5 с этим никаких проблем нет
|
|
|
|
|
Записан
|
|
|
|
xTMx
Осваиваюсь на форуме
 
Репутация: +3/-0
Offline
Сообщений: 147
|
 |
« Ответ #3 : 17.09.2009, 23:00:17 » |
|
дело в том что имеется разный тип материала
при определенном типе некоторые поля ( их наличие ) абсолютно бессмысленно
я искал инструмент для создания шаблонов материалов
частично это реализовано в к2 ( там к категории можно было выбрать набор полей дополнительных )
не нашел . Вот и решил вручную тогда эти поля добавить и чтобы в редакторе они появлялись взависимости от типа добавленного материала.
Это реально?
|
|
|
|
|
Записан
|
|
|
|
|
Anna Mamontova
Гость
|
 |
« Ответ #4 : 22.10.2009, 14:56:26 » |
|
Как аналогичную операцию провести для версии Joomla 1.5?
|
|
|
|
|
Записан
|
|
|
|
Mirsaytov
Осваиваюсь на форуме
 
Репутация: +16/-0
Offline
Сообщений: 57
|
 |
« Ответ #5 : 26.10.2009, 00:34:01 » |
|
http://joomlaforum.ru/index.php?topic=40455.0
|
|
|
|
|
Записан
|
|
|
|
oleg17
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 50
|
 |
« Ответ #6 : 28.03.2011, 00:15:41 » |
|
Есть одна проблем, когда создаёшь дополнительное поле, то там обрезается HTML код. я нашёл вот эту тему: http://joomlaforum.ru/index.php/topic,28912.0.html но в нашем случае, Joomla сама всё делает, а где я так и не смог найти. Подскажите где нужно прописать параметр _MOS_ALLOWHTML, что б в поле "superfield" начал отображаться HTML текст? p.s. Joomla 1.015
|
|
|
|
« Последнее редактирование: 28.03.2011, 00:19:27 от oleg17 »
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #7 : 28.03.2011, 00:18:21 » |
|
_MOS_ALLOWHTML - для Joomla 1.0
|
|
|
|
|
Записан
|
|
|
|
oleg17
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 50
|
 |
« Ответ #8 : 28.03.2011, 00:19:08 » |
|
Упссс. забыл сказать. у меня Joomla 1.015 Если подскажете и для 1.5 буду благодарен, так как скоро и там буду делать что-то подобное. Но сейчас нужно для 1.0
|
|
|
|
|
Записан
|
|
|
|
oleg17
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 50
|
 |
« Ответ #9 : 28.03.2011, 12:10:59 » |
|
Как разрешить для 1.5 я нашёл, если кому надо http://forum.joomla.org/viewtopic.php?p=2361208. А вот для 1.015 не могу. Кто в курсе напишите пожалуйста решение. или хотя бы функцию где это может быть.
|
|
|
|
|
Записан
|
|
|
|
oleg17
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 50
|
 |
« Ответ #10 : 28.03.2011, 21:25:19 » |
|
Сам спрашиваю, сам отвечаю. Если кому надо, РЕШЕНИЕ: находим в файле includes/joomla.php (в версии 1.012 в administrator/includes/joomla.php function check() { // filter malicious code $ignoreList = array( 'introtext', 'fulltext', 'superfield'); и добавляем название вашего поля. Еще раз большое спасибо Mitrich, за хороший мануал.
|
|
|
|
|
Записан
|
|
|
|
dkraev
Осваиваюсь на форуме
 
Репутация: +7/-0
Offline
Сообщений: 157
|
 |
« Ответ #11 : 17.05.2011, 20:46:28 » |
|
Здравствуйте. Подниму тему.
Joomla 1.5, требуется дополнительное поле. С его созданием/выводом никаких проблем нет. Но мне требуется записать значение поля не в jos_content, а в специально созданную табличку jos_content_recomm. Как это правильно сделать - понять не могу.
Или может посоветуете, как правильно поступить. Делаю дополнительное условие для вывода материалов, которое будет использоваться в модулях, для сортировки, а так же для формирования отдельной категории новостей.
Планирую сделать по принципу опции "На главной". Т.е. при помощи INNER JOIN выводить новости для которых выставлена опция "Рекомендуем". Как правильнее сделать? Так, как я планирую, либо просто в jos_content создать дополнительное поле, а уже на уровне шаблона делать проверку и выводить только те материалы, которые нужно.
Материалов в базе более 1000. Планируется увеличение до 3000. Если делать проверку на уровне шаблона, это будет сильно грузить БД? Ведь по сути нужно перебрать все материалы. В каком случае нагрузка будет меньшей?
Спасибо.
|
|
|
|
|
Записан
|
|
|
|
skinny
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 36
|
 |
« Ответ #12 : 04.06.2011, 23:06:51 » |
|
как быть если нада добавить checkbox интересует почему независимо от того выставлен ли в нём флаг или нет Joomla в любом случае сохраняет его начение в базе.
|
|
|
|
|
Записан
|
|
|
|
|
SmokerMan
|
 |
« Ответ #13 : 05.06.2011, 11:28:07 » |
|
как быть если нада добавить checkbox интересует почему независимо от того выставлен ли в нём флаг или нет Joomla в любом случае сохраняет его начение в базе.
потому что оно задано постоянно. <input name="name" type="checkbox" onclick="if(this.checked){this.value = 'value'}else{this.value = null}" />
|
|
|
|
|
Записан
|
|
|
|
skinny
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 36
|
 |
« Ответ #14 : 06.06.2011, 15:01:32 » |
|
интересно это размышления или реально проверенный способ? потому што я нашёл как сие сделать и этот способ явно не подходит!
|
|
|
|
|
Записан
|
|
|
|
Natalia005
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 14
|
 |
« Ответ #15 : 07.03.2013, 10:06:27 » |
|
Есть ли на форуме подобный материал только для Joomla 3.0??
|
|
|
|
|
Записан
|
|
|
|
skinny
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 36
|
 |
« Ответ #16 : 07.03.2013, 13:26:48 » |
|
недумаю что в 3 Joomla чтото изменилось но я реально нашёл способ как это сделать и у меня всё отлично работает 
|
|
|
|
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #17 : 07.03.2013, 14:05:07 » |
|
недумаю что в 3 Joomla чтото изменилось
в ней с помощью плагина можно добавить дополнительные поля в параметры материала, при этом не надо изменять файлы Joomla, а значит можно обновляться
|
|
|
|
|
Записан
|
|
|
|
skinny
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 36
|
 |
« Ответ #18 : 07.03.2013, 14:23:39 » |
|
в ней с помощью плагина можно добавить дополнительные поля в параметры материала, при этом не надо изменять файлы Joomla, а значит можно обновляться
насколько я знаю 3 Joomla находится в стадии тестирование и разработчики категорически не рекомендуют ставить на ней сайты и дождаться официальной стабильной версии примерно к лету 2013
|
|
|
|
|
Записан
|
|
|
|
|
Виталик
|
 |
« Ответ #19 : 07.03.2013, 15:02:58 » |
|
насколько я знаю 3 Joomla находится в стадии тестирование и разработчики категорически не рекомендуют ставить на ней сайты и дождаться официальной стабильной версии примерно к лету 2013
и какое это имеет отношение к вопросу как добавить поле?
|
|
|
|
|
Записан
|
|
|
|
skinny
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 36
|
 |
« Ответ #20 : 07.03.2013, 15:04:56 » |
|
и какое это имеет отношение к вопросу как добавить поле?
отношение самое прямое - 3 Joomla использовать пока нельзя только чтоб посмотреть как она работает но не более
|
|
|
|
|
Записан
|
|
|
|
Natalia005
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 14
|
 |
« Ответ #21 : 11.03.2013, 06:39:21 » |
|
нашла компонент fieldsattach с помощью него можно добавлять любые поля. Но есть вопрос как осуществить фильтрацию по этому полю. К примеру у материала есть дополнительное поле город и мне нужно во фронте при выборе города из выпадающего списка чтобы выводились соответствующие материалы. Может кто подскажет как это можно реализовать?
|
|
|
|
|
Записан
|
|
|
|
IzrA
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 39
|
 |
« Ответ #22 : 17.05.2013, 13:50:35 » |
|
в ней с помощью плагина можно добавить дополнительные поля в параметры материала, при этом не надо изменять файлы Joomla, а значит можно обновляться
Подскажите, что за он? А то пришлось подправить файлик /administrator/components/com_content/forms/article.xml и теперь не знаю куда его положить, чтобы при обновлении все не слетело. Может вы знаете?
|
|
|
|
|
Записан
|
|
|
|
|