Сергей Шлоков

Сергей Шлоков

С нами с 31 января 2013; Место в рейтинге пользователей: #3
Сергей Шлоков
06 ноября 2014, 16:40
0
А мне нужно именно отрезать.
Ок. Чтобы сделать как здесь, нужно всего лишь в строчке сниппета убрать из массива последний параметр depth.
Сергей Шлоков
06 ноября 2014, 15:36
0
а если поставить допустим 2, то и комментарии только до 2 уровня, а 3+ отрезает

Не совсем понял. А как должно быть?
Так и задумывалось: указываешь, сколько уровней комментариев выводить, столько и выводит, остальные отрезает. Отрезает именно уровни, а не комментарии на уровне. Т.е. если на 2-ом уровне 20 комментариев, то они все выводятся, limit действует только на 1-й уровень.
Сергей Шлоков
06 ноября 2014, 11:22
0
Сорри за паузу. Времени катастрофически не хватает.
Протестил даже на твоем сайте такой же баг
На тестовом сайте стоял depth=2. Ограничил до 10.
Там сниппет другой — в нем сразу все прописано: и смайлики, и ajax и удаление/восстановление. Поэтому в процессе выделения только одного решения возможно где-то что-то упустил.
А сниппет TicketCommentAjax надо обновить — некорректно работала функция getChildIds. На тестовом сайте ее нет, там она работает через расширяемый класс pdoFetch.
Вот попробуй.
П.С. Спасибо за тестирование. Надеюсь, теперь будет работать для всех условий.
Сергей Шлоков
05 ноября 2014, 12:18
0
Честно, не знаю в чем причина. Попробуй почистить кэш, закрой все сессии, еще раз сверься с описанием.
Если не поможет, добавь в сниппет TicketCommentAjax после строчки
if ($ajax) {
(это строка 109) следующий код
$output .= "<pre>".$modx->getPlaceholder('pdoTools.log');
die($output);
и посмотри ответ от сервера. Проверь SQL запрос.
Сергей Шлоков
05 ноября 2014, 09:27
0
Кнопка становиться disabled когда выводить больше нечего. Проверь, может все комментарии с первого захода вывелись?
У меня все работает.
Сергей Шлоков
04 ноября 2014, 20:12
0
Ну а как сниппет должен сообразить, что выводить нужно комментарии пользователя 47? Это нужно ему указать либо в коде, либо через параметр. Приезду домой, выложу решение.
Сергей Шлоков
04 ноября 2014, 19:04
0
Добавь &showLog=`1` и посмотри какой sql запрос формируется.
Сергей Шлоков
03 ноября 2014, 19:53
0
Для SQL инъекций без разницы, какое сложное имя базы. Хакеры, как правило, обращаются к таблице modx_users.
Менять не обязательно, но желательно. Лишний уровень защиты.
В предыдущей комментарии я давал ссылку, почитай.
Сергей Шлоков
03 ноября 2014, 19:41
2
0
Вот еще в дополнение — изменение префикса таблиц. Может пригодится.
<?php
define('MODX_API_MODE', true);
require 'index.php';

// Включаем обработку ошибок
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
// 
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$db = 'your_db_name';
$query = "SHOW TABLES FROM {$db}";
$old_prefix='modx';
$new_prefix='mdx';
$result = $modx->query($query);
$tables = $result->fetchAll(PDO::FETCH_ASSOC);

foreach ($tables as $table) {
	foreach ($table as $tablename) {
		$new_tablename = str_replace($old_prefix,$new_prefix, $tablename);
		$q = "rename table {$tablename} to {$new_tablename}";
		$res = $modx->query($q);
		if ($res) print 'Таблица '.$tablename.' переименование в '.$new_tablename.'\n\r'; else print 'Ошибка переименования'.'\n\r';
	}
}
?>
П.С. Файл должен быть в корне сайта. И не забудь изменить префикс в настройках core/config/config.inc.php
П.П.С. Только надо быть осторожным на рабочем сайте. Нужно проверить работу всех дополнений. Login, например, может глючить.
Сергей Шлоков
02 ноября 2014, 15:21
0
На второй картинке.
да же если и рандомно, не получается их вывести
Друг мой, чтобы что-то получалось нужно учиться. За тебя никто твои задачи решать не будет. Для начала могу посоветовать сходить сюда.
Сергей Шлоков
02 ноября 2014, 14:56
0
Это сайт для индиго или аутистов? Т.е. 3-й комментарий обязательно должен идти после первого и перед вторым? Или это рандомно получается?
Сергей Шлоков
01 ноября 2014, 08:52
0
Значит ты в авторитете :) Меня не спрашивал.
Сергей Шлоков
01 ноября 2014, 08:36
1
0
А где тут написано про удаление комментариев? Здесь про ajax. Если ты имеешь ввиду это, то я там написал, что такая возможность доступна всем, чтобы потестировать. Определяется она в сниппете флагом
can_delete
Условия можно определять разные. Можно например так:
if ($modx->user->hasSessionContext('mgr') || $modx->user->id == 1) {
	$can_delete = 1;
}
Можно разрешить пользователям удалять свои комментарии. В общем, ограничивает только полет фантазии. :)
Сергей Шлоков
01 ноября 2014, 08:26
+1
Так сколько он уже в стадии beta.
Особенно меня впечатлил ваш способ ограничения вывода комментариев — взять id первого или последнего (если реверс) комментария и построить range(id,limit). А если комментарии с такими id удалены, то как это будет выглядеть? А вот так (limit=10, 8 комментариев удалены).
Также впечатлила табличка modxtalks_mails, которую нужно создавать вручную, чтобы не было ошибок и которая содержит всего 2 поля — id (autoincrement) и post_id.
А сколько скриптов грузит. Аж 10, против 1 у Василия.
Но самое важное, что вы никак не реагируете на вопросы. Демосайт выглядит заброшенным. Реверс на вашем сайте не работает. Версия указана 1.0.1 beta, хотя уже 1.0.3 beta.
Можно еще говорить и говорить. Но как говориться — не нравиться, не кушай. :) Поэтому я и написал
Не в обиду Валентину и Ивану.
Но чего не отнять — красивый зараза :)
Сергей Шлоков
31 октября 2014, 10:17
0
Не знаю, не пользуюсь. Мне Ace хватает.
Сергей Шлоков
31 октября 2014, 10:02
0
У сниппета Jevix уже есть готовые наборы: default, для тикетов и для комментариев. Тебе нужен второй. В нем и определяй cfgAllowTags.