Искать  
 
   
 
Проблема с nGen File Field на новом хостинге
Отправлено: 23 Ноябрь 2010 03:06 P.M.   [ Игнорировать ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Снова продолжаю разговор по про проблемы связанные с переносом на новый хостинг.
Проблема в следующем nGen File Field в настроке поля записи не отображает “Существующие варианты загрузки”, хотя они есть и пути в них настроены верно.
В какое направлении копать, чтобы пофиксить проблему.
похожая проблема http://expressionengine.com/archived_forums/viewthread/154216/

Еще выдает такую вот ошибку

NoticeTrying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 828

Notice
Trying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 843

Notice
Trying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 847

Notice
Trying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 858

Notice
Trying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 859

Notice
Trying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 860

Notice
Trying to get property of non-object in /home/...../admin/extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 861

Parse error
syntax errorunexpected T_ENDIF in /home/...../admin/core/core.functions.php(653) : eval()'d code on line 174 
Профиль
 
 
Отправлено: 23 Ноябрь 2010 09:06 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27

версия php на сервере достаточная для плагина?

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 23 Ноябрь 2010 09:09 P.M.   [ Игнорировать ]   [ # 2 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09
Станислав - 23 Ноябрь 2010 09:06 P.M.

версия php на сервере достаточная для плагина?

PHP Version 5.2.10

Профиль
 
 
Отправлено: 23 Ноябрь 2010 11:22 P.M.   [ Игнорировать ]   [ # 3 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Расшиерия PHP какие-то не стоят.
Посмотри функцию в этой строке, затем к какой библиотеке она относится

Профиль
 
 
Отправлено: 25 Ноябрь 2010 08:11 A.M.   [ Игнорировать ]   [ # 4 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

В режиме вывода ошибок, в панели выскакивает следующее:

WarningInvalid argument supplied for foreach() in /.../extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 804

Notice
Undefined propertyNgen_file_field::$upload_prefs in /.../extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 882

Warning
Invalid argument supplied for foreach() in /.../extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php on line 804 

ngen версии 1,02

Помогите, буду вам очень признателен!

Профиль
 
 
Отправлено: 25 Ноябрь 2010 11:55 A.M.   [ Игнорировать ]   [ # 5 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

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

Профиль
 
 
Отправлено: 25 Ноябрь 2010 12:05 P.M.   [ Игнорировать ]   [ # 6 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

В данной таблице все в порядке, все пути указаны верно. Расширение File на ура отображает профили по загрузке файлов, а вот nGen не хочет.

Профиль
 
 
Отправлено: 25 Ноябрь 2010 12:25 P.M.   [ Игнорировать ]   [ # 7 ]
Member
Avatar
RankRankRank
Всего сообщений:  224
Зарегистрирован  2010-11-20

Ну хорошо, откройте файл

extensions/fieldtypes/ngen_file_field/ft.ngen_file_field.php 

Найдите строку 804, выше-ниже:

$dls $DB->query("SELECT id, name FROM " $this->db_prefix "_upload_prefs WHERE site_id = " $PREFS->ini('site_id') . " ORDER BY name ASC");
foreach(
$dls->result as $dl)
{
    $selected 
= ($dl['id'== $current_option) ? " selected=\"true\"" "";
    
$block .= "<option value=\"{$dl['id']}\"$selected>{$dl['name']}</option>";

Мне не приходилось никогда работать с этим расширением, но, похоже - этот блок есть фрагментом кода, который выводит один из выпадающих списков (select) настроек.
Транскрипция ошибки говорит о том, что не существует ни одной комбинации id => name для данного site_id.
Вот в этом русле и ведите раскопки...

Профиль
 
 
Отправлено: 25 Ноябрь 2010 12:37 P.M.   [ Игнорировать ]   [ # 8 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Переустанови как вариант расширение

Профиль
 
 
Отправлено: 25 Ноябрь 2010 12:39 P.M.   [ Игнорировать ]   [ # 9 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Переустанавливал! Включал и Выключал. Обновлял! Результат нулевой.

Профиль
 
 
Отправлено: 25 Ноябрь 2010 03:46 P.M.   [ Игнорировать ]   [ # 10 ]
Member
Avatar
RankRankRank
Всего сообщений:  317
Зарегистрирован  2008-03-09

Проблема, кажется решена.
Суть проблемы в “некорректном” sql запросе для данного хостинга.

Итого в файле расширения ищем:
804 строка:

$dls $DB->query("SELECT id, name FROM " $this->db_prefix "_upload_prefs WHERE site_id = " $PREFS->ini('site_id') . " ORDER BY name ASC"); 

заменяем

$dls $DB->query('SELECT id, name FROM exp_upload_prefs'); 

825 строка:

$query $DB->query("SELECT * FROM " $this->db_prefix "_upload_prefs WHERE id = $u_id"); 

заменяем

$query $DB->query("SELECT * FROM exp_upload_prefs WHERE id = $u_id"); 

Еще раз большое всем спасибо, в особенности Афгану, Максиму и Станиславу smile

Профиль