Пользовательский модуль Vtiger: «Извините! Попытка доступа к ограниченному файлу». - PullRequest
2 голосов
/ 30 января 2012

Я создал тестовый модуль с именем Mytest.Сохраняя значения из модуля, я получаю пустую страницу с надписью «Извините!Кто-нибудь знает, почему это происходит.Любая помощь в этом действительно благодарна.

Ответы [ 10 ]

7 голосов
/ 12 ноября 2013

Наиболее вероятная причина ошибки vTiger «Извините!Попытка получить доступ к файлу с ограничениями. »- значение $ root_directory в« config.inc.php »неверно или написано с ошибкой.

Чтобы исправить его, выполните следующие действия:

Go to your vTigerCRM directory
Open “config.inc.php” with your favorite text editor
Go to line 86 and adjust $root_directory value to correct vTiger 
directory. Note, that the directory must end with /. It should look 
something like this – $root_directory = ‘/var/www/vtigercrm/’;

Также существует проблема с кеш-памятью.Так что проверьте файл кеша на наличие файлов шаблонов.Для этого перейдите в каталог vTigerCRM.Затем перейдите в Smarty-> templates_c.

Здесь вы получите список файлов кэша.Удалите этот файл и проверьте, решена ли ваша проблема или нет.

Не беспокойтесь об удалении этого файла.

5 голосов
/ 12 апреля 2012

При попытке включить файлы из вашего пользовательского модуля вы получите эти сообщения, потому что Vtiger считает, что вы включаете эти файлы из местоположения, которое они считают довольно небезопасным.

Чтобы избежать этой ошибки, вы можете использовать стандартный способмодуль используется в Vtiger, переходя к нему так: ......./index.php?module=Mytest&action=index.Vtiger будет включать ваш модуль, и теперь вам не нужно включать CRMEntity и другие файлы data или utils.Все это должно быть доступно таким образом, но убедитесь, что вы используете оператор global для $current_user, $current_module и т. Д.

Другой способ - отредактировать следующие функции, расположенные в utils/CommonUtils.php:

heckFileAccessForInclusion() и checkFileAccess()

Удалите или закомментируйте die() в этих функциях, чтобы исправить это.

4 голосов
/ 01 марта 2012

Во-вторых, что сказал Касперский:

Перейдите на /include/database/PearDatabase.php и добавьте $adb->setDebug(true); сразу после $adb->connect();

Я просто написал модуль и получил эту ошибку, и это произошло потому, чтозапись не может быть сохранена, потому что я пропустил: $moduleInstance->setEntityIdentifier($fieldInstance);

4 голосов
/ 24 февраля 2012

В файле Save.php просто добавьте строку.

$focus->column_fields['assigned_user_id'] = '';

до

if($_REQUEST['assigntype'] == 'U') {
$focus->column_fields['assigned_user_id'] = $_REQUEST['assigned_user_id'];
} elseif($_REQUEST['assigntype'] == 'T') {
$focus->column_fields['assigned_user_id'] = $_REQUEST['assigned_group_id'];
}
3 голосов
/ 20 августа 2013

На ум приходит пара вещей:

  1. Вы действительно создали каталог modules / CustomeModule и заполнили его?(Используя шаблон в vtlib / ModuleDir / 5.4.0 и затем редактируя имена файлов и класс CustomeModule.php)

  2. Проверьте регистр определения класса вашего модуля, например, класс CustomeModule vs.Класс Customemodule

  3. Если вы используете какой-либо элемент управления версиями или символические ссылки при разработке ваших модулей / кода Mytest, то это может вызвать «Извините! Попытка доступа к ограниченному файлу».сообщения.

  4. В скрипте установки модуля убедитесь, что вы добавили эти строки.

$ module-> initTables ();$ Модульно> initWebservice ();

3 голосов
/ 30 января 2012

Проверьте права доступа к файлу и путь к файлу, на который он пытается сослаться.

Если вы хотите отладить больше, установите $ adb-> setDebug (true) в вашем файле индекса и проверьте ошибки.

2 голосов
/ 27 сентября 2012

Убедитесь, что все языковые файлы существуют.

Пользовательский модуль позволяет пользователю с правами администратора настраивать язык пользователя, даже если языковой файл отсутствует на диске.

Чтобы быстро убедиться, что этодействительно проблема: - отредактируйте файл include / utils / CommonUtils.php, напечатайте переменную $ realfilepath и закомментируйте die ();- В базе данных «выберите отдельный язык из xxx_users»;

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

В качестве быстрого исправления (читай: взломать): - - перейти ккаталог include / language - скопировать существующий языковой файл как необходимый.(может не всегда работать - например, en_us to en_gb - это здорово, но en_us - sp_es - нет)

2 голосов
/ 17 июня 2012

Кажется, вы не установили права на запись для папки Smarty

1 голос
/ 21 марта 2018

Иногда эта ошибка вызвана несуществующим модулем, я имею в виду, что vtiger считает, что у вас есть модуль, но файлов там нет (возможно, из-за плохой миграции на новый сервер).

  • Отключите некоторые модули и попробуйте снова, пока не найдете, какой модуль неисправен.

В моем случае сломанный модуль был VGS.

Надеюсь, это поможет

1 голос
/ 19 сентября 2013

Возможно, файл отсутствует в вашей установке vtiger.

Чтобы узнать, какая из них является миссией, вам нужно отредактировать файл include / utils / CommonUtils.php.Откройте его с помощью текстового редактора, обойдите строку 2755 и добавьте следующее

echo “REAL: $realfilepath, ROOT: $rootdirpath”;

Перед смертью (Извините ....)

Это будет напечатано наЭкран, который является отсутствующим файлом.

...