Добрый день
Подскажите у меня стоит задача поставить ограничение по Загрузке фото в Галерею, в зависимости от Роли пользователя.
Например роль Фотограф (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');
}";
}
Как обойти этот параметр и выставить ограничения по ролям - не получается!
Помогите, заранее спасибо!
Дело в том, что код скрипта в файле 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');
Только обнаружил файл footer-scripts.js в футере. В нем и указаны данные по выдаче js ошибки, я так понимаю..
Только на фтп его перезаписать нельзя, он генерируется сам каждый раз?
Вставил код, который вы мне Андрей написали в файл и заккоментил строчку указанную,но это меня не спасло..
Файлы js скрипта не отображаются, но самое важное, как я понимаю мне нужно использовать php запрос, чтобы сформировать цифру загрузок.
К примеру:
if ($role == 'photographer') { $number_image_gr = 20;
и уже само наименование $number_image_gr - вставлять в строку js скрипта,
который будет определять кол-во фото для роли данного пользователя.
Не знаю, что уже и делать. Казалось бы простая задача, но решить самостоятельно ее оказалось очень сложно.
Если есть возможность буду рад помощи, мои знания js и php не дают верно составить скрипт..
похоже вы что то все напутали. js с php намешали)
через php вам надо лишь проверить роль пользователя и в зависимости от результата подключать нужный js файл, а уже в нем прописывайте нужные цифры. Логика такой была.
Ну если не разберетесь, то кидайте в личку доступ по фтп, помогу чем смогу