-
Как изменить содержимое $rows в базе данных?
Здравствуйте. Пытаюсь ограничить доступ пользователей к разным записям в базе данных. Вот, что я сделал: Добавил поле "Partner ID" в профиль пользователя (тип число) со значением, например, "3" Добавил поле "Partner ID" (тип число) в базу данных Создал новую запись в базе данных, указав значение поля "Partner ID" равное 3 Мне нужно сделать так, чтобы в шаблон recordRow (который является циклом перебирающим строки из базы данных) попадали только те записи, у которых поле "Partner ID" совпадает со значением в профиле авторизованного пользователя. Сейчас я могу сделать вот так: {{if $row->customFieldDisplayByKey('partner') != \IPS\Member::loggedIn()->profileFields()['core_pfieldgroups_1']['core_pfield_3']}} Доступ запрещен {{else}} Доступ разрешен {{endif}} Но проблема в том, что это "пост фильтр". То есть в таблице у пользователя будут присутствовать строки к которым нет доступа и бывают ситуации, когда на одной странице у пользователя нет доступа ни к одной из записей. Вопрос: как повлиять на то, что попадает в $rows любой базы данных, чтобы на уровень раньше (а не в шаблоне вывода строк) добавить фильтр по значению поля "Partner ID"?
-
Очередная 500-ая ошибка после переноса сайта на новых хост
Короче, проблема оказалось в неправильном пути до UNIX сокета, которые обслуживает подключение к БД. Странно, что все 5 сайтов которые я переносил работали в одном окружении, но у 2-х из 5-ти был другой способ подключения к БД. Для будущих поколений. Как проверить путь? Заходите в conf_global.php и там будет строчка: 'sql_socket' => '/var/run/mysqld/mysqld.sock', На старом и новом сервере окружение было разным, поэтому и работало. Благодарю всех за помощь!
-
Очередная 500-ая ошибка после переноса сайта на новых хост
Короче на локалке сайт работает как надо. получается, проблема в окружении. Что я еще сделал: Пересоздал домен Сбросил конфиги apache и nginx Проверил работу логов php и nginx Сверил используемую версию PHP Заново выставил все доступы к файлам Но не работает. В логах на самом деле чистота. Сами логи точно работающие! Есть идеи куда ковырять? А, еще включал показ ошибок в браузере и ничего нового не увидел.
-
Очередная 500-ая ошибка после переноса сайта на новых хост
ТП у меня нет. Сервер свой в стойке. Не думаю, что дело в окружении сервера, потому что прочие инстанты IPB работают без проблем после переноса...
-
Очередная 500-ая ошибка после переноса сайта на новых хост
Здравствуйте. Я опытный пользователь IPB, но в этом случае столкнулся с тупиком. Была у меня VPS на которой крутилось 5 сайтов на IPB. Переезжали они все вместе, одинаковым способом на новый сервер. Из 5 сайтов 3 работает без проблем, а два не запускаются, как я только их не колупал. Все сайты на IPB старше 4.3 и работали на одинаковой версии PHP (7.3.11). Целостность бэкапов проверил. Вот что я пробовал сделать, чтобы восстановить работу сайтов, которые сейчас возвращают 500 ошибку (даже при заходе в админку): Еще раз восстановить файлы и базу данных из бэкапов Отключал SSL сертификат Удалял .htaccess файл Менял способ подключения к базе данных Менял доступы ко всем файлам сайта Менял владельца файлов Удалял файл constants.php Включал режим восстановления через constants.php Сбрасывал конфиги Apache и Nginx Отключал кеширование на уровне сервера Вот что сейчас в логах (которые точно работают, потому что если сломать все специально, то логи наполняются: /uploads/log/ пусто /var/www/myuser/data/logs/ пусто /var/www/httpd-logs/ пусто /var/log/apache2/access.log пусто /var/log/apache2/error.log пусто /var/log/nginx/access.log пусто /var/log/nginx/error.log пусто /var/log/mysql/error.log пусто Теперь даже и не знаю что делать...
-
Как ограничить количество записей в таблице?
Здравствуйте. Я тут не могу никак разобраться. Мне нужно, чтобы таблицу загружалось максимум 8 записей из базы данных. Чтобы PHP при работе с базой данных остановил работу, сразу как достигнет 8 записей. Нужно что-то вроде LIMIT из MySQL, только для фреймфорка IPS. Посмотрел в исходниках много мест где используется Table Helpers, но не нашел нужной функции в классе. Мой код, который выводит таблицу: {{$table = new \IPS\Helpers\Table\Content('IPS\cms\Records2', $record->url());}} {{$table->limit= 8;}} {{$table->pages= 1;}} {$table|raw} Кто может подкинуть решение?
-
Нарушается порядок добавленных в поле связанных записей
Здравствуйте. Есть в базах данных поля типа Relate (связь с базой данных), где можно начать вписывать titile записи и будет срабатывать автозаполнение. Заметил, что после сохранения/создания записи порядок добавленных в такие поля записей нарушается. Посмотрел, что в //system/Helpers/Form/item.php и не нашел там смешивания среди параметров. protected $defaultOptions = array( 'class' => NULL, 'permissionCheck' => 'read', 'maxItems' => NULL, 'orderResults' => 'etc', 'itemTemplate' => NULL, 'containerIds' => array(), 'minAjaxLength' => 3, 'where' => array() ); Подскажите, пожалуйста, в чем проблема и как изменить поведение полей такого типа по умолчанию?
-
Ошибка primary_id_field при создании записи через API
Здравствуйте. Отправляю POST запрос на создание новой записи в базе данных. URL такого вида: https://site.com/api/cms/records/12? В ответ приходит такое: { "id": null, "title": "photo", "category": { "id": 24, "name": "Photos", "url": "https:\/\/site.com\/tools\/photos\/", "class": "IPS\\cms\\Categories12", "permissions": { "perm_id": 268, "perm_view": "4,6,2,3", "perm_2": "4,6,2,3", "perm_3": "4,6,3", "perm_4": "4,6,3", "perm_5": "", "perm_6": "", "perm_7": "" } }, } Как видите в ответе все корректно, кроме поля id, которое со значение Null. Когда смотрю напрямую в базу данных, то создается запись с primary_id_field = 0. Система обновлена до последней версии. Подскажите, пожалуйста, где и как присваивается id так как оно (вроде) не автоинкрементируемое.
-
Как подставлять данные в поля типа relationship из URL?
Здравствуйте! Есть в IPB такая прекрасная штука как подстановка значений в поля формы. Это отлично работает в случае с текствоыми полями (record_meta_keywords), но не работает с полями типа relationShip с автозаполнением (content_field_64). URL такой: https://site.org/orders/?do=form&d=13&content_field_64=3&record_meta_keywords=Текст Я заметил, что поле, куда нужно вписывать данные не имеет атрибута name, я его добавил и получился такой URL, который тоже не работает: https://site.org/orders/?do=form&d=13&elInput_content_field_64_dummyInput=3&record_meta_keywords=Текст Пробовал вместе "3" передавать строку, но нифига. Я ожидаю, что это должно работать, потому что вот такая ссылка на создание нового диалога работает как надо и подставляется получатель: https://site.com/index.php?app=core&module=messaging&controller=messenger&do=compose&to=115 (сообщение получит пользователь с ID115) Подскажите, пожалуйста, решение.
-
Как вывести member_id в array через запятую?
Решение задачи: {{if in_array( \IPS\Member::loggedIn()->member_id, explode("\n", $record->customFieldDisplayByKey('members_access')) )}}
-
Как вывести member_id в array через запятую?
Здравствуйте! Верстаю шаблон для IP.Content. В базе данных создал поле типа "Пользователи" (в форме создания новой записи в базе данных можно вписать ники пользователей). Проблема в том, что мне нужно показывать div только тем, кто добавлен в это поле. Формат отображения поля такой — $formValue. Шаблон вот такой: {{if in_array( \IPS\Member::loggedIn()->member_id, array( $record->customFieldDisplayByKey('members_access') ) )}} Это видят те, кому открыт доступ. {{else}} Это видят те, кому закрыт доступ. {{endif}} Конечно, конструкция не работает, потому что между значениями member_id не хватает запятых. Но я никак не пойму, как мне эти самые запятые добавить, чтобы все заработало. Подскажите, пожалуйста.
-
Как вывести в шаблон количество зарегистрированных пользователей?
Его и приводил в первом сообщении)
-
Как вывести в шаблон количество зарегистрированных пользователей?
Спасибо, но это не много не то. Мне нужно просто числом вывести на страницу количество зарегистрированных пользователей. Например — 22565. Без виджетов и плагинов, так как не хочу засорять сайт.
-
Как вывести в шаблон количество зарегистрированных пользователей?
Здравствуйте! Хочу вывести в шаблон счетчик количества зарегистрированных на сайте пользователей. Нашел в виджете статистики такой параметр: {number="$stats['member_count']"} Но в итоге на сайте отображается цифра 0 и всё. Пониманию, что нужно что-то еще добавить, но не могу разобраться. Подскажите, пожалуйста, код который выведет количество пользователей в любом шаблоне сайта.
- Проблема вставки custom полей в IP.Content