Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 09/01/19 in all areas

  1. 2 points
    Я бы так не делал. База разрастётся как грибы осенью.
  2. 1 point
    Поставь хранение в файловой системе, снова даст файл скачать и в корень его
  3. 1 point
    Что ты там наковырял никто не знает, я то тут при чем?
  4. 1 point
    Класс, насоветовал и в кусты, 5 баллов, а мне расхлебывай.
  5. 1 point
    Выбери Он предложит скачать файл и положить в корень, сделай как написано и все будет хорошо. constants.php вот этот
  6. 1 point
    MySql ставь, перекачай файл и в корень его. Все будет хорошо.
  7. 1 point
    fortek

    Ошибка API в IPS 4.4.6

    Т.к. я использую форум с авторизацией в программе через API с использование ключа, то тут возникла проблема. Пример авторизации происходит так: https://SiteName/applications/nexus/interface/licenses/?info&key=MY_KEY То у меня выбивает ошибку с ответом 400 {"errorCode":0,"errorMessage":"INTERNAL_ERROR"} Методом подстановки и сравнения файлов. Выяснилось, что подобная проблема проявляется в файле: ../system/Node/Model.php В функции на 1145-ой строке. В 4.4.4 функция выглядит вот так: public function children( $permissionCheck='view', $member=NULL, $subnodes=TRUE, $skip=null, $_where=array() ) { $children = array(); /* Load member */ if ( $permissionCheck !== NULL ) { $member = ( $member === NULL ) ? \IPS\Member::loggedIn() : $member; $cacheKey = md5( $permissionCheck . $member->member_id . $subnodes . json_encode( $skip ) . json_encode( $_where ) ); } else { $cacheKey = md5( $subnodes . json_encode( $skip ) . json_encode( $_where ) ); } if( isset( $this->_childrenResults[ $cacheKey ] ) ) { return $this->_childrenResults[ $cacheKey ]; } В 4.4.6 функция выглядит вот так: public function children( $permissionCheck='view', $member=NULL, $subnodes=TRUE, $skip=null, $_where=array() ) { $children = array(); $member = $member ?: \IPS\Member::loggedIn(); /* Load member */ if ( $permissionCheck !== NULL AND \in_array( 'IPS\Node\Permissions', class_implements( $this ) ) ) { $cacheKey = md5( $permissionCheck . $member->member_id . $subnodes . json_encode( $skip ) . json_encode( $_where ) ); } else { $cacheKey = md5( $subnodes . json_encode( $skip ) . json_encode( $_where ) ); } if( isset( $this->_childrenResults[ $cacheKey ] ) ) { return $this->_childrenResults[ $cacheKey ]; } Как видим у условии, есть 3 изменения: 1. Вместо if ( $permissionCheck !== NULL ) Стоит if ( $permissionCheck !== NULL AND \in_array( 'IPS\Node\Permissions', class_implements( $this ) ) ) Здесь все хорошо, движок не выбивает ошибку. 2. Строка с переменной $member выведена перед условием $permissionCheck и имеет вид: Вместо $member = ( $member === NULL ) ? \IPS\Member::loggedIn() : $member; Стоит $member = $member ?: \IPS\Member::loggedIn(); Пока что временным решением стоит следующее решение: Новая переменная $member из 4.4.6 возвращена в условие $permissionCheck. Полет нормальный, API работает. Результат исправления в коде: public function children( $permissionCheck='view', $member=NULL, $subnodes=TRUE, $skip=null, $_where=array() ) { $children = array(); /* Load member */ if ( $permissionCheck !== NULL AND \in_array( 'IPS\Node\Permissions', class_implements( $this ) ) ) { $member = $member ?: \IPS\Member::loggedIn(); $cacheKey = md5( $permissionCheck . $member->member_id . $subnodes . json_encode( $skip ) . json_encode( $_where ) ); } else { $cacheKey = md5( $subnodes . json_encode( $skip ) . json_encode( $_where ) ); } if( isset( $this->_childrenResults[ $cacheKey ] ) ) { return $this->_childrenResults[ $cacheKey ]; } У кого есть возможность отправить в багфикс IPS - сделайте. Ошибка очень нелицеприятная
  8. 0 points
    Пришлось все удалять, спасибо за совет, не дай Бог, что бы с вами так поступили, удачи.
×
×
  • Create New...