Самый простой способ сделать что-то вроде этого - создать два разных типа контента галереи, позволяя обычным пользователям тип, который допускает 10 фотографий, и VIP-пользователям тип, который допускает 30.
Однако,это создает проблему всякий раз, когда человек «обновляется».Затем они могли бы создать новую галерею, но им нужно было бы повторно загрузить все 30 фотографий.
Если сайт не имеет большого объема, вы можете просто сообщить пользователям, что вы вручную переместите их фотографии дляих.
Конечно, это большая работа для вас, но это избавит вас от необходимости создавать небольшой пользовательский модуль, если вы еще не готовы пойти по этому пути (хотя, если вы знаете,php, это проще, чем может показаться).
Другой вариант - использовать комбинацию Drupal hook_form_alter () и hook_nodeapi () - это предполагаетвы используете CCK, или что любой используемый вами модуль галереи имеет все поля загрузки в одной форме - hook_form_alter()
будет проверять роли вашего пользователя и сокращать форму с 30 до 10 фотографий в случае, если они нев роли vip;и hook_nodeapi()
после проверки идентификатора роли владельца узла галереи будет отображать только первые 10 фотографий, а не 30. Это сэкономит вам много времени в долгосрочной перспективе, но требует создания небольшого модуля дляс этой целью.
Если не все поля загрузки представлены в одной форме, вы всегда можете проверить, сколько изображений пользователь уже загрузил в соответствии со своими ролями, а затем условно отобразить элементы управления для добавления новых изображений.Есть несколько способов сделать это в зависимости от различных обстоятельств ... это может быть так же просто, как добавить имена ролей в ваши классы тела, а затем использовать css, чтобы избавиться от нежелательных элементов (если вы не слишком требовательны)о том, что люди "взламывают" HTML, чтобы добавить свои изображения, что, вероятно, случается очень, очень редко), или редактируют шаблонный код любого модуля, который вы используете.