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

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Где находится insert ?
« : 28.10.2015, 13:28:16 »
Здравствуйте, уважаемые!
Не могу найти файл где производится вставка комментария в таблицу jcommenst!
Поиском по файлам искал - не нашёл.
Подскажите, пожалуйста, где находится этот insert?
Очень нужно!
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Re: Где находится insert ?
« Ответ #1 : 30.10.2015, 06:52:44 »
Хоть бы автор компонента отписался...
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Re: Где находится insert ?
« Ответ #2 : 03.11.2015, 08:18:04 »
Где находится insert? Я не могу защиту от спама без этого сделать!
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Где находится insert ?
« Ответ #3 : 03.11.2015, 11:01:13 »
Откройте консоль FireBug, посмотрите по какому адресу идет аякс-запрос при добавлении комментария, в адресе все написано.
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Re: Где находится insert ?
« Ответ #4 : 03.11.2015, 15:18:21 »
Откройте консоль FireBug, посмотрите по какому адресу идет аякс-запрос при добавлении комментария, в адресе все написано.
Не могу разобраться, подскажите, пожалуйста.
Всё, что я в консоли вижу - это какой-то jcomments.updateList с параметрами
Цитировать
[ { "n": "js", "d": "jcomments.updateList('\\<h4\\>Комментарии \\<a class=\\\"rss\\\" href=\\\"\/index
.php\/component\/jcomments\/feed\/com_content\/1181\\\" title=\\\"RSS лента комментариев этой записи
\\\" target=\\\"_blank\\\"\\>\\&nbsp;\\<\/a\\>\\<a class=\\\"refresh\\\" href=\\\"#\\\" title=\\\"Об
новить список комментариев\\\" onclick=\\\"jcomments.showPage(1181,\\'com_content\\',0);return false
;\\\"\\>\\&nbsp;\\<\/a\\>\\<\/h4\\>\\n\\<div id=\\\"comments-list\\\" class=\\\"comments-list\\\"\\>
\\n\t\\<div class=\\\"even\\\" id=\\\"comment-item-152\\\"\\>\\<div class=\\\"rbox\\\"\\>\\<div class
=\\\"rbox_tr\\\"\\>\\<div class=\\\"rbox_tl\\\"\\>\\<div class=\\\"rbox_t\\\"\\>\\&nbsp;\\<\/div\\>\
\<\/div\\>\\<\/div\\>\\<div class=\\\"rbox_m\\\"\\>\\n\\<div class=\\\"comment-box\\\"\\>\\n\\<a class
=\\\"comment-anchor\\\" href=\\\"\/index.php\/home\/urok-lyubovi-i-dobra-mikoli-dzhmilya#comment-152
\\\" id=\\\"comment-152\\\"\\>#1\\<\/a\\>\\n\\<span class=\\\"comment-author\\\"\\>Алекс\\<\/span\\>
\\n\\<span class=\\\"comment-date\\\"\\>03.11.2015 12:05\\<\/span\\>\\n\\<div class=\\\"comment-body
\\\" id=\\\"comment-body-152\\\"\\>Старый дед какой-то\\<\/div\\>\\n\\<span class=\\\"comments-buttons
\\\"\\>\\n\\<a href=\\\"#\\\" onclick=\\\"jcomments.quoteComment(152); return false;\\\"\\>Цитироват
ь\\<\/a\\>\\n\\<\/span\\>\\n\\<\/div\\>\\<div class=\\\"clear\\\"\\>\\<\/div\\>\\n\\<\/div\\>\\<div class
=\\\"rbox_br\\\"\\>\\<div class=\\\"rbox_bl\\\"\\>\\<div class=\\\"rbox_b\\\"\\>\\&nbsp;\\<\/div\\>\
\<\/div\\>\\<\/div\\>\\<\/div\\>\\n\\<\/div\\>\\n\\<\/div\\>\\n\\<div id=\\\"comments-list-footer\\\"
\\>\\<a class=\\\"refresh\\\" href=\\\"#\\\" title=\\\"Обновить список комментариев\\\" onclick=\\\"jcomments
.showPage(1181,\\'com_content\\',0);return false;\\\"\\>Обновить список комментариев\\<\/a\\>\\<br \
/\\>\\<a class=\\\"rss\\\" href=\\\"\/index.php\/component\/jcomments\/feed\/com_content\/1181\\\" title
=\\\"RSS лента комментариев этой записи\\\" target=\\\"_blank\\\"\\>RSS лента комментариев этой запи
си\\<\/a\\>\\<\/div\\>\\n','r');" }, { "n": "js", "d": "jcomments.scrollToList();" }, { "n": "js", "d"
: "jcomments.message('Спасибо за Ваш комментарий!', '');" }, { "n": "js", "d": "jcomments.clear('comment'
);" }, { "n": "js", "d": "jcomments.clear('captcha');" } ]

Сайт http://biblionet.com.ua/
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Где находится insert ?
« Ответ #5 : 04.11.2015, 07:34:26 »
jComments при создании комментария делают AJAX запрос на адрес
Код
http://.../index.php/component/jcomments/
с параметрами
Код
comment=sdf%20sd
jtxf=JCommentsAddComment
object_group=com_content
object_id=1181
userid=863
В параметре jtxf указано значение JCommentsAddComment.
Идем в /components/com_jcomments/jcomments.php
Там ищем текст JCommentsAddComment, поиск показывает нам строку
Код
$jtx->registerFunction(array('JCommentsAddComment', 'JCommentsAJAX', 'addComment'));
То есть вам нужна функция addComment в классе JCommentsAJAX. Файл найдите полнотестовым поиском названия класса.
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Re: Где находится insert ?
« Ответ #6 : 05.11.2015, 08:51:27 »
Файл нашёл, функцию нашёл, insert не нашёл.
Вроде бы вижу код добавления в БД, но куда копать дальше?
Код
// save new comment to database
if (!$comment->store()) {
$response->addScript("jcomments.clear('comment');");

if ($acl->check('enable_captcha') == 1 && $config->get('captcha_engine', 'kcaptcha') == 'kcaptcha') {
JCommentsCaptcha::destroy();
$response->addScript("jcomments.clear('captcha');");
}
return $response;
}
Подскажите, пожалуйста, где находится insert?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Где находится insert ?
« Ответ #7 : 05.11.2015, 09:25:00 »
Он находится в функции $comment->store().
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Re: Где находится insert ?
« Ответ #8 : 05.11.2015, 15:38:17 »
Он находится в функции $comment->store().
А в каком файле находится эта функция?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Где находится insert ?
« Ответ #9 : 05.11.2015, 16:09:41 »
Ну проведите такое же расследование как я, не могу же я за вас все искать, посмотрите как инициализировалась $comment, экземпляром какого класса она является, потом поищите этот класс и т.п.
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
Re: Где находится insert ?
« Ответ #10 : 05.11.2015, 16:19:01 »
бяда-бяда!
$comment ссылается на модель данных (ищите в каталоге models компонента) или на класс самой таблицы (ищите в каталоге tables компонента).
А защиту от спама нужно делать до функционала работы с моделью (до записи в таблицу).
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться