Домой Wp-Recall WP-Recall: Проблемы и решения Вопрос по лимиту загрузок в Галерею!
5ответ(ов) в теме
alexxx
не в сети 6 лет
На сайте с 04.12.2013
Участник
1
20:22

Добрый день
Подскажите у меня стоит задача поставить ограничение по Загрузке фото в Галерею, в зависимости от Роли пользователя.
Например роль Фотограф (Photographer) может загружать до 40 фотографий, а обычный Участник всего 10.
Как прописать эти условия в коде?
Раньше java скрипт был вынесен прямо в код и у меня получалось это сделать, теперь код из файла index.php (gallery) не слушается...

Вот мои начинания:
--------------------------------------------------------
global $wpdb;
global $current_user;
get_currentuserinfo();
$user_data = get_userdata($current_user->ID);
$roles = $user_data->roles;
$role = array_shift($roles);
if ($role == 'photographer') {
------------------------------------------------------------

Но настройки не слушаются, вот код выдачи ошибки в пределе загрузок, он берет данные из $rcl_options['number_image_grcl']

onFilePrepare:function(evt, uiEvt){";
if($rcl_options['number_image_grcl']){
$script .= "var num = jQuery('#files li').size();
if(num>=".$rcl_options['number_image_grcl']."){
jQuery('#status-upload').html('Вы уже достигли предела загрузок');
jQuery('#multiupload').fileapi('abort');
}";
}

Как обойти этот параметр и выставить ограничения по ролям - не получается!
Помогите, заранее спасибо! Cool

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16929
2
20:43

Дело в том, что код скрипта в файле index.php дополнения не участвует при загрузке страницы, а нужен только для формирования единого файла скриптов плагина. Этот файл перезаписывается либо в момент активации/деактивации дополнения, либо в момент сохранения настроек плагина, поэтому внесение исправлений в этот код для вашей задачи не подойдет.
Лучше всего перенести код скрипта в отдельный js-файл для каждой роли пользователя на сайте, или для группы ролей и уже в момент их подключения проверять роль и подключать нужный файл.
Примерный код подключения:

function grcl_upload_footer_scripts() {
global $user_ID, $rcl_options, $post;
if($rcl_options['lk_page_rcl']==$post->ID||is_author($user_ID)){	
$user_data = get_userdata($user_ID);
$roles = $user_data->roles;
$role = array_shift($roles);
if ($role == 'photographer') { 
wp_enqueue_script('upload-options-grcl', plugins_url('js/photographer.js', __FILE__));	
}else{
wp_enqueue_script('upload-options-grcl', plugins_url('js/other-roles.js', __FILE__));	
}else{
}
}
}
add_action('wp_footer','grcl_upload_footer_scripts',100)

Вы можете здесь прописать условие подключения того или иного файла js, выполнив проверку роли текущего пользователя.
Например, сформировав файл для пользователей с ролью photographer, где будут прописаны правила загрузки для них - photographer.js и другой файл с правилами для всех остальных other-roles.js, где вы укажите ограничения для всех остальных вы сможете подключать эти файлы в зависимости от роли пользователя.
Только надо будет еще закомментировать строчку
add_filter('file_footer_scripts_rcl','get_footer_scripts_gallery_rcl');

0
alexxx
не в сети 6 лет
На сайте с 04.12.2013
Участник
3
21:31

Только обнаружил файл footer-scripts.js в футере. В нем и указаны данные по выдаче js ошибки, я так понимаю..
Только на фтп его перезаписать нельзя, он генерируется сам каждый раз?

Вставил код, который вы мне Андрей написали в файл и заккоментил строчку указанную,но это меня не спасло..
Файлы js скрипта не отображаются, но самое важное, как я понимаю мне нужно использовать php запрос, чтобы сформировать цифру загрузок.

К примеру:
if ($role == 'photographer') { $number_image_gr = 20;
и уже само наименование $number_image_gr - вставлять в строку js скрипта,
который будет определять кол-во фото для роли данного пользователя.

Не знаю, что уже и делать. Казалось бы простая задача, но решить самостоятельно ее оказалось очень сложно.
Если есть возможность буду рад помощи, мои знания js и php не дают верно составить скрипт..

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16929
4
21:49

похоже вы что то все напутали. js с php намешали)
через php вам надо лишь проверить роль пользователя и в зависимости от результата подключать нужный js файл, а уже в нем прописывайте нужные цифры. Логика такой была.
Ну если не разберетесь, то кидайте в личку доступ по фтп, помогу чем смогу

0
alexxx
не в сети 6 лет
На сайте с 04.12.2013
Участник
5
23:27

Спасибо Андрей, скинул инфу в личку)
Заранее спасибо!

0
Тема закрыта. Публикация новых сообщений запрещена.