2013-08-02 2 views
0

Моя цель - проанализировать XML-код с помощью drupal на внешний веб-сайт, где он будет обработан и сохранен в базе данных.Проверьте, является ли токен drupal пустым или нет

Для этого я использую модуль правил. Но у меня есть крошечная проблема, которую я, похоже, не могу решить.

Например я взять один из XML-строки:

<FullName>[account:field-bedrijfsnaam-bedrijf]</FullName> 

Если друпал маркер пустым поле следует обратиться к:

<FullName xsi:nil="true" /> 

Я пробовал некоторые PHP-код, чтобы проверить, если маркер пусто, делая это:

<?php if(!empty('[account:field-bedrijfsnaam-bedrijf]')): ?> 
    <FullName>[account:field-bedrijfsnaam-bedrijf]</FullName> 
<?php else: ?> 
    <FullName xsi:nil="true" /> 
<?php endif; ?> 

пустой функция не удалась, поэтому я попытался, если (STRLEN ([счет: поле-Bedrijf snaam-bedrijf])> 0), но без успеха. Токен не кажется пустым, используя strlen, и пустая функция вообще не работает.

Image with php evaluation displayed

Под полем, где я уже вошел в мой XML-код, Друпал говорит, что я могу использовать $ счета и $ сайта переменные для оценки. Я где интересно, могу ли я использовать их, чтобы проверить, являются ли полевые данные пустыми или нет?

Его объект, так как правильно проверить, пусто ли поле в $ account или нет? Поскольку я не могу использовать print_r (данные отправляются на внешний сайт), я не вижу, как это сделать.

Если это невозможно, кто-нибудь знает, как обойти его ...?

Thanx заранее.

ответ

1

Вы можете использовать функцию field_get_items Друпал, чтобы получить переменные и убедитесь, что она существует

if(field_get_items('user', $account, 'field-bedrijfsnaam-bedrijf')) { 
    // code here when it is not empty 
} else { 
    // Code when it's empty 
} 

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

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

+0

Это приведет к возникновению каких-то хороших фатальных ошибок ... – Clive

+0

Я не уверен, что вы имеете в виду, объясните? Как бы оператор if, проверяющий наличие значения, создает ошибки? Я сделал это на многих сайтах до – jakecraige

+0

. В обоих примерах кода есть очень простая ошибка. Попробуйте, и вы увидите (даже вне контекста Drupal, вы все равно получите фатальную ошибку). На самом деле это может быть не смертельно. Вы можете просто получать уведомления о неопределенных константах. В любом случае, это не будет работать дословно. FWIW логика в вашем ответе - это просто реализация, которая нуждается в небольшой настройке (используя ['field_get_items()'] (https://api.drupal.org/api/drupal/modules!field!field. модуль/функция/field_get_items/7) также было бы предпочтительным) :) – Clive

Смежные вопросы