Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 48 Ответов
  • 19193 Просмотров
*

ft990

  • Захожу иногда
  • **
  • 23
  • 1
Еще раз проверил. Все в порядке комментарии работают. Не могут же они работать если базы нет?
Или я все путаю. Может эту таблицу надо создать?
*

ft990

  • Захожу иногда
  • **
  • 23
  • 1
Действительно, все пересмотрел. У меня jcomments в таблицах только с qkrf5_jcomments и прочие jcomments только с qkrf5. Загрузил компонент заново, все тоже самое. В чем фишка?
*

smart

  • Администратор
  • *******
  • 6846
  • 1297
В чем фишка?
Я думаю в настройках ) у вас префикс таблиц не jos, а qkrf5.
*

ugrumy

  • Осваиваюсь на форуме
  • ***
  • 27
  • 1
Добрый день. По инструкции добавил поле "Город". Но никак не могу его вывести в админ панели (в редактировании комментария). Как я понял выводит "edit.php". Я по образу "e-mail" добавляю "town"
<div class="control-group">
                  <div class="control-label">
                     <?php echo $this->form->getLabel('email'); ?>
                  </div>
                  <div class="controls">
                     <?php echo $this->form->getInput('email'); ?>
                  </div>
               </div>
<div class="control-group">
                  <div class="control-label">
                     <?php echo $this->form->getLabel('town'); ?>
                  </div>
                  <div class="controls">
                     <?php echo $this->form->getInput('town'); ?>
                  </div>
               </div>
Но в адмике выводится пустая строка с пустыми divами.

Если пишу:
<div class="control-group">
                  <div class="control-label">
                     <label for="comments-form-town">Город</label>
                  </div>
                  <div class="controls">
                     <?php echo $comment->town; ?>
                  </div>
               </div>
То выводится только "Город", а значение нет. Совсем голову сломал, в php не очень силен.
Подскажите в куда копать и какой код добавить что бы можно было увидеть в админ панели. Версия JComments 3.0.5 Stable
*

sergeosn

  • Осваиваюсь на форуме
  • ***
  • 70
  • 0
Присоединяюсь к вопросу. При добавлении новых полей, подскажите пожалуйста, какие файлы и где править чтоб в панели управления можно было редактировать  комментарии и по новым полям.
Поковырял администратор/компоненты/... но не могу полностью вникнуть, где необходимо прописывать новые параметры, где сидит запрос, и где прописывается чтоб при редактировании сохранялось назад в базе.

Помогите пожалуйста.
*

sergeosn

  • Осваиваюсь на форуме
  • ***
  • 70
  • 0
ОФТОП: Совсем глухо?
*

sergeosn

  • Осваиваюсь на форуме
  • ***
  • 70
  • 0
Как и ожидалось. Поля себе подобавляли, а поделится, а зачем...
Решение добавления полей в админку (непосредственно в изменение комментария):
administrator/components/com_jcomments/
1. /tables/comment.php

После
Код
 /** @var string */
var $editor = '';

Добавляем
Код
var $polenew = null;

Тут ж после
Код
$this->comment = $this->clearComment($this->comment);
Добавляем
Код
$this->polenew= $this->clearComment($this->polenew);

2. /views/comment/tmpl/edit.php
Добавляем отображение
Код
<div class="control-group">
 <div class="control-label">
  <?php echo $this->form->getLabel('polenew'); ?>
 </div>
 <div class="controls">
  <?php echo $this->form->getInput('polenew'); ?>
 </div>
</div>

3. /classes/import/adapters/ccomment.php
После
Код
$table->comment = $row->comment;
Добавляем
Код
$table->polenew = $row->polenew ;

4. /models/forms/comment.xml
Добавляем свой фиелд
Код
<field 
name="polenew"
type="textarea"
class="inputbox span9"
rows="10"
cols="30"
filter="raw"
label="A_COMMENT_POLE"
description=""
required="true" />

Где type="textarea" - это тип вашего поля
label="A_COMMENT_POLE" - а эту переменну загоняем соответсвенно в лангуаге... administrator/language/ru-RU/ru-RU.com_jcomments.ini


Вот и все)
« Последнее редактирование: 29.01.2015, 23:03:36 от sergeosn »
*

neogeek

  • Давно я тут
  • ****
  • 203
  • 18
Подскажите кто-нибудь делал это на версии 2.3?
*

smart

  • Администратор
  • *******
  • 6846
  • 1297
Подскажите кто-нибудь делал это на версии 2.3?
забудьте про 2.3, она реально устарела... обновитесь)
*

neogeek

  • Давно я тут
  • ****
  • 203
  • 18
Обновиться можно, но вопрос тогда тот же. Как добавить доп. поле в новой версии? для самой старой инструкция есть на офф сайте, для 2.3 и свежее решения нигде нет.
*

Sulpher

  • Практически профи
  • *******
  • 2131
  • 374
  • Шаблоны и расширения Joomla
Кстати, а как по навигации попасть сюда? http://www.joomlatune.ru/how-to-add-extra-fields-to-jcomments.html
Внимательно изучил JoomlaTune, не нашел перехода, эту ссылку получил, вбив в поиск фразу.


*

JaneFaint

  • Осваиваюсь на форуме
  • ***
  • 121
  • 3
Мне тоже интересно, есть ли инструкция по добавлению полей для новой Jcomments, где объявляется класс JCommentsDB? в  jcomments.class.php его нет..
*

shaverma

  • Осваиваюсь на форуме
  • ***
  • 38
  • 1
Мне тоже интересно, есть ли инструкция по добавлению полей для новой Jcomments, где объявляется класс JCommentsDB? в  jcomments.class.php его нет..
Сейчас копаюсь, классы перечисляются в файле com_jcomments\classes\acl.php
Код
class JCommentsACL
{
var $canDelete = 0;
var $canDeleteOwn = 0;
var $canDeleteForMyObject = 0;
var $canEdit = 0;
var $canEditOwn = 0;
var $canEditForMyObject = 0;
var $canPublish = 0;
var $canPublishForMyObject = 0;
var $canViewIP = 0;
var $canViewEmail = 0;
var $canViewHomepage = 0;
var $canViewTown = 0; //МОЕ НОВОЕ
var $canComment = 0;
var $canQuote = 0;
var $canReply = 0;
var $canVote = 0;
var $canReport = 0;
var $canBan = 0;
var $userID = 0;
var $userIP = 0;
var $deleteMode = 0;
var $userBlocked = 0;
*

shtoff31

  • Захожу иногда
  • **
  • 10
  • 0
Подниму тему. Поле добавил, галочка ставится, но как сделать ее обязательной? Чтобы без установки галочки комментарий не отправлялся.
*

Septdir

  • Практически профи
  • *******
  • 2165
  • 109
  • JoomlaZen
Подниму тему. Поле добавил, галочка ставится, но как сделать ее обязательной? Чтобы без установки галочки комментарий не отправлялся.
jcomments.ajax.php в этом файле проверки, насколько я помню.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
________
Мои Контакты | JoomlaZen
*

shtoff31

  • Захожу иногда
  • **
  • 10
  • 0
jcomments.ajax.php в этом файле проверки, насколько я помню.
Точно, там все проверки. А как реализовать? Я в PHP ни в зуб ногой.
*

neogeek

  • Давно я тут
  • ****
  • 203
  • 18
Решение для 3 ветки jcomments
 
1. В базу данных добавить

Код
ALTER TABLE jos_jcomments ADD COLUMN `town` varchar(255);

2. В файл, после 74-й строки (примерно) /components/com_jcomments/tpl/default/tpl_form.php

Код
<?php
}
if ($this->getVar('comments-form-town', 1) == 1) {
$text = ($this->getVar('comments-form-town-required', 1) == 0)? JText::_('FORM_TOWN') : JText::_('FORM_TOWN_REQUIRED');
?>
<p>
<span>
<input id="comments-form-town" type="text" name="town" value="" size="22" tabindex="4" />
<label for="comments-form-town"><?php echo $text; ?></label>
</span>
</p>

3. В файл после 328-й строки /components/com_jcomments/jcomments.ajax.php

Код
$comment->town = isset($values['town'])? $values['town'] : '';

В этот же файл, для того чтоб поле проверялось на обязательность, после 192-й строки
Код
} else if (($config->getInt('author_town', 3) == 3) && empty($values['town'])) {
self::showErrorMessage(JText::_('ERROR_EMPTY_TOWN'), 'town');

4. В файл после 566-й строки /components/com_jcomments/ jcomments.php
Работает и без этого кода

Код
$tmpl->addVar('tpl_form', 'comments-form-town-required', 1);
switch ($config->getInt('author_town')) {
case 3:
$tmpl->addVar('tpl_form', 'comments-form-town-required', 1);
$tmpl->addVar('tpl_form', 'comments-form-town', 1);
break;
case 1:
$tmpl->addVar('tpl_form', 'comments-form-town', 1);
break;
case 0:
default:
$tmpl->addVar('tpl_form', 'comments-form-town', 0);
break;
}
5. В файл в 309-ю строку /components/com_jcomments/models/jcomments.php

Код
$query = "SELECT c.id, c.parent, c.object_id, c.object_group, c.userid, c.name, c.username, c.title, c.comment, c.town"

6. В файл, после 35-й строки (примерно) /components/com_jcomments/tpl/default/tpl_comment.php

Код
<div class="comment-author-town"><span class="comment-town"><?php echo $comment->town; ?></span></div>

7. В файл после 89-й строки /administrator/components/com_jcomments/views/comment/tmpl/edit.php
Код
<div class="control-group">
<div class="control-label">
<?php echo $this->form->getLabel('town'); ?>
</div>
<div class="controls">
<?php echo $this->form->getInput('town'); ?>
</div>
</div>

8. В файл после 60-й строки /administrator/components/com_jcomments/models/forms/commets.xml
Код
<field 
name="town"
type="text"
class="inputbox"
size="40"
label="A_COMMENT_TOWN"
description="" />

9. В файл после 343-й строки /administrator/components/com_jcomments/models/forms/setting.xml
Код
<field
name="author_town"
type="list"
class="inputbox"
default="1"
label="AP_FORM_FIELD_AUTHOR_TOWN"
description=""
filter="int">
<option value="0">AP_FORM_FIELD_DISABLED</option>
<option value="1">AP_FORM_FIELD_UNREQUIRED</option>
<option value="3">AP_FORM_FIELD_REQUIRED_FOR_ALL</option>
</field>

10. В файл после 118-й строки /administrator/components/com_jcomments/view/comments/tmpl/default.php

Код
<br />
<?php echo $item->town; ?>

11. В файл добавить /language/ru-RU/ru-RU.com_jcomments.ini

Код
ERROR_EMPTY_TOWN="Пожалуйста, введите населенный пункт!"
FORM_TOWN="Населенный пункт"
FORM_TOWN_REQUIRED="Населенный пункт (обязательное)"

12. В файл добавить /administrator/language/ru-RU/ u-RU.com_jcomments.ini

Код
AP_FORM_FIELD_AUTHOR_TOWN="Населенный пункт"
A_COMMENT_TOWN="Населенный пункт"
*

shtoff31

  • Захожу иногда
  • **
  • 10
  • 0
Это все описано для текстового поля, а как для того, чтобы было обязательным проставление галки?
*

neogeek

  • Давно я тут
  • ****
  • 203
  • 18
Это все описано для текстового поля, а как для того, чтобы было обязательным проставление галки?
а какая разница? если галочка не установлена - значение переменной будет не установлено, переменная не будет существовать, смотрим 3 шаг, там только условие немного изменить, проверять не на пустоту а на существование
Код
} else if (($config->getInt('author_town', 3) == 3) && isset($values['town'])) {
self::showErrorMessage(JText::_('ERROR_EMPTY_TOWN'), 'town');