Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Как исправить ошибку при добавлении нового параметра в custom?

Как исправить ошибку при добавлении нового параметра в custom?


     14.06.2020    Все вопросы » Хаки    674

вопрос
Приветствую, пытаюсь вывести в custom новости, с меткой, что редактированы view_edit="yes",

	if( preg_match( "#view_edit=['\"](.+?)['\"]#i", $param_str, $match ) ) {
      
		$view_edit_custom = intval($match[1]);
      
		if( $match[1] == "yes" ) $view_edit_custom = '1';
               elseif( $match[1] == "no" ) $view_edit_custom = '0';
      
		$where[] = "view_edit='$view_edit_custom'";
      
	}

на статической выводит без ошибок, в категории "Unknown column 'view_edit' in 'where clause'", не понимаю, почему не может найти столбец, ведь он есть в запросе.
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id)";

Подскажите, как можно исправить?

Ответа пока нет


7 комментариев

TeraMoune
Эксперт

TeraMoune - 14 июня 2020 22:56 -

А сам-то понимаешь, что творишь ?

Во первых custom_print никакого отношения к статическим страницам не имеет.

Во вторых массив where описывает параметры существующих ячеек в таблице.

Думаю если перевести текст ошибки на русский то всё станет понятно,
Неизвестный столбец 'view_edit' в предложении where

Тестовый репозиторий установки плагинов: teramoune

Mau
Юзер

Mau - 14 июня 2020 23:08 -


я перевел текст ошибки.) но ведь столбец view_edit есть в таблице dle_post_extras, разве не так, почему ошибка выходит не понимаю.(

TeraMoune
Эксперт

TeraMoune - 14 июня 2020 23:21 -

Добавил выборку данного параметра и никаких ошибок не вернуло.

Отдельным запросом пробовал в том же phpmyadmin выборку сделать ?

Тестовый репозиторий установки плагинов: teramoune

dj-avtosh
PHP-developer

dj-avtosh - 15 июня 2020 12:56 -

скиньте сюда тело запроса $sql_select от статической страницы и от страницы категории. Нужен именно конечный $sql_select, который выполняется в $db->query

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Mau
Юзер

Mau - 15 июня 2020 13:35 -


DLE 14.0, отключил все плагины, вручную добавил код из шапки в function.php, прописал вывод custom в категории,
при обращении ошибка. (прилагается). Строка 946 из show.custom.php:

$count_all = $db->super_query( $sql_count );


if ( $build_navigation AND $sql_count) {
	  $count_all = $db->super_query( $sql_count );
	if($news_found AND !$count_all['count']) {
		$db->query("ANALYZE TABLE `" . PREFIX . "_post`, `" . PREFIX . "_post_extras`");
		$count_all = $db->super_query( $sql_count );
	}
	$count_all = $count_all['count'] - $custom_all;
}

как понял, что-то с навигацией, отключил navigation="no" в custom и ошибка пропала.
Но, если нет пагинации, то и не вижу смысла выводить custom на странице категории...
---
Еще заметил, одну вещь, если вывести чистый стандартный custom на странице категории, с navigation="yes", пагинация у custom появляется, но при переходе на другие страницы, если там нет новостей, выводимых обычным тегом {content}, появляется 404 ошибка.
Выходит, если использовать такой метод, то новостей в категории должно быть столько-же или больше, чем в пользовательской выборке... Кажется на более поздних версиях было иначе.

dj-avtosh
PHP-developer

dj-avtosh - 15 июня 2020 15:54 -

$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p {$cat_join}WHERE ".implode(' AND ', $where);


замените на

$sql_count = "SELECT COUNT(1) as count FROM " . PREFIX . "_post p {$cat_join} LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE ".implode(' AND ', $where);

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Mau
Юзер

Mau - 15 июня 2020 21:20 -

От души, спасибо, работает. А на счет 404 ошибки при переключении, это я забыл добавить [not-category=x]{content}[/not-category].

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх