это я так понял массив значение, как такие штуки читать т.е. мне надо добраться до [amount] но если я пишу $content['product:commerce_price'][amount] это ошибка значит перед ним еще элементы?
если вам сложно объяснить и показать, вы без проблем можете не читать это сообщение и не обращать внимание на мои вопросы... но все равно спасибо за отклик
моё решение для субтемы mp_omega от omega 4, пишем в preprocess/field.preprocess.inc:
<?php /** * Implements hook_preprocess_block(). */ function mp_omega_preprocess_field(&$variables) { // Change field classes to use BEM syntax. (какая-то магия от омеги) $variables['classes_array'] = preg_replace('/^field-(?!-)/', 'field--', $variables['classes_array']); $variables['label_display_css'] = drupal_clean_css_identifier($variables['element']['#label_display']);
Комментарии
кто делал подобное расскажите пожалуйста...в какую сторону двигаться...
самое простое для вас - проверять в шаблоне 0 и выводить текст, если true
это как? т.е. создать node--product.tpl.php ?
а можно как то через хук в template.php это сделать?
пытался сделать так в node--product.tpl.php дописать
<?php
if ($content['product:commerce_price']=='0') {
print t('Цена по запросу');
}
else {print render($content['product:commerce_price']);}
?>
но чет не работает...$content['product:commerce_price'] видать не число...
Поставить Devel и сделать dsm($content) не судьба? Ну или print_r хотя бы?
print_r выдал мне вот такое
Array ( [#theme] => field [#weight] => 2 [#title] => Price [#access] => 1 [#label_display] => hidden [#view_mode] => node_teaser [#language] => und [#field_name] => commerce_price [#field_type] => commerce_price [#field_translatable] => 0 [#entity_type] => commerce_product [#bundle] => product [#object] => stdClass Object ( [revision_id] => 1573 [sku] => EB883 [title] => ODEON UP - Мебель для раковины [revision_uid] => 1 [status] => 1 [log] => Created by FeedsCommerceProductProcessor [revision_timestamp] => 1373947378 [data] => [product_id] => 1573 [type] => product [language] => [uid] => 1 [created] => 1373947378 [changed] => 1373947378 [commerce_price] => Array ( [und] => Array ( [0] => Array ( [amount] => 0 [currency_code] => RUB [data] => Array ( [components] => Array ( [0] => Array ( [name] => base_price [price] => Array ( [amount] => 0 [currency_code] => RUB [data] => Array ( [components] => Array ( ) ) ) [included] => 1 ) ) ) [original] => Array ( [amount] => 0 [currency_code] => RUB [data] => Array ( [components] => Array ( ) ) ) ) ) ) [rdf_mapping] => Array ( ) [display_context] => Array ( [entity_type] => node [entity_id] => 2625 [entity] => stdClass Object ( [vid] => 2625 [uid] => 1 [title] => EB883 ODEON UP - Мебель для раковины [log] => Updated by FeedsNodeProcessor [status] => 1 [comment] => 1 [promote] => 0 [sticky] => 0 [nid] => 2625 [type] => product_display [language] => und [created] => 1373965962 [changed] => 1374044253 [tnid] => 0 [translate] => 0 [revision_timestamp] => 1374044253 [revision_uid] => 1 [body] => Array ( [und] => Array ( [0] => Array ( [value] =>
это я так понял массив значение, как такие штуки читать т.е. мне надо добраться до [amount] но если я пишу $content['product:commerce_price'][amount] это ошибка значит перед ним еще элементы?
вам надо купить книгу по PHP и потратить хотя бы пару дней на ее изучение
если вам сложно объяснить и показать, вы без проблем можете не читать это сообщение и не обращать внимание на мои вопросы... но все равно спасибо за отклик
Кому не сложно мне помочь...помогите а?)
если вы не знаете PHP даже на таком минимальнейшем уровне, вы обречены и дальше постить такие вопросы, неужели непонятно?
я еще раз повторю, ваше мнение я понял, спасибо
добился вот такого
$content['product:commerce_price']['#object']->commerce_price['und']['0']['amount']
но чет похоже на извращение какое то , может есть функция которая получает цены числом в Drupal Commerce?
моё решение для субтемы mp_omega от omega 4, пишем в preprocess/field.preprocess.inc:
<?php
/**
* Implements hook_preprocess_block().
*/
function mp_omega_preprocess_field(&$variables) {
// Change field classes to use BEM syntax. (какая-то магия от омеги)
$variables['classes_array'] = preg_replace('/^field-(?!-)/', 'field--', $variables['classes_array']);
$variables['label_display_css'] = drupal_clean_css_identifier($variables['element']['#label_display']);
//наша магия
if ($variables['element']['#field_name'] == 'commerce_price') {
$product = commerce_product_load($product_id);
$price = $variables['element']['#object']->commerce_price['und'][0]['amount'];
$rounded_price = number_format(round($price,-4), 0);
if (
$rounded_price == 0) {$variables['items'][0]['#markup'] = 'цена уточняется после заказа';
$variables['classes_array'][] = 'zero-price';
}
}
}
?>