Личные папки

InstantCMS 2.X

просмотр определенной группе пользователей

#1 16 сентября 2022 в 00:46

Вечер добрый.
Подскажите пожалуйста, где поправить код правильно и без последствий… чтобы создавать личные папки, могли только пользователи из группы vip? 
Тут вся магия? \system\controllers\content\actions\item_add.php

  1. // Если включены личные папки - получаем их список
  2. $folders_list = [];
  3.  
  4. if ( $ctype[ 'is_folders' ] ) {
  5. $folders_list = $this->model->getContentFolders( $ctype[ 'id' ], $this->cms_user->id );
  6. $folders_list = array_collection_to_list( $folders_list, 'id', 'title' );
  7. if ( $this->request->has( 'folder_id' ) ) {
  8. $item[ 'folder_id' ] = $this->request->get( 'folder_id', 0 );
  9. }
  10. }
  11.  
  12. // Получаем поля для данного типа контента
  13. $fields = $this->model->orderBy( 'ordering' )->getContentFields( $ctype[ 'name' ] );
  14.  
  15. $form = $this->getItemForm( $ctype, $fields, 'add', [
  16. 'folders_list' => $folders_list
  17. ] );
Добавлено спустя 21 минуту

Получается так.
\system\controllers\content\frontend.php

  1. // Если включены личные папки, добавляем в форму поле выбора личной папки
  2. if ( $this->cms_user->isInGroup( 7 ) || $this->cms_user->is_admin ) {
  3. if ( $ctype[ 'is_folders' ] ) {
  4.  
  5. $fieldset_id = $form->addFieldset( LANG_FOLDER, 'folder', [ 'is_collapsed' => !empty( $ctype[ 'options' ][ 'is_collapsed' ] ) && in_array( 'folder', $ctype[ 'options' ][ 'is_collapsed' ] ) ] );
  6.  
  7. $folders = [ '0' => '' ];
  8.  
  9. if ( !empty( $folders_list ) ) {
  10. $folders += $folders_list;
  11. }
  12.  
  13. $form->addField( $fieldset_id,
  14. new fieldList( 'folder_id', [
  15. 'items' => $folders
  16. ] )
  17. );
  18.  
  19. $form->addField( $fieldset_id, new fieldString( 'new_folder', [
  20. 'title' => LANG_ADD_FOLDER_QUICK
  21. ] ) );
  22. }
  23. }



if ( $this->cms_user->isInGroup( 7 ) || $this->cms_user->is_admin ) {
Если в группе №7 или Администратор, вывести форму создания/выбора списка директорий

Вроде работает 🤠

#2 16 сентября 2022 в 13:28

Наверное лучше было бы попробовать создать хук, например content_item_form, и уже в нём получить форму и прописать условие. А так всё слетит после обновления и будите концы искать.

#3 17 сентября 2022 в 10:35

лучше было бы попробовать создать хук

Lora

Я пока-что не понимаю как их делать. Как хук ловит код и что-то меняет?.. магия для меня!
Каждое обновление это квест на несколько дней/недель )) Много правок накопилось за год.

#4 17 сентября 2022 в 11:32

Я пока-что не понимаю как их делать

Tim T

Почитайте в блоге Webman instantcms.ru/blogs/allright/huki-huhuki-isklyuchaem-neaktivnyh-polzovatelei-iz-spiskov.html

К сожалению, при обновлении оф.сайта пропали иллюстрации. Но там и по коду много интересного.

Хуки — основной способ внести нового без правок в движке.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.