Мне пришлось выполнить задачу, создав обработчик области пользовательского вида. Все работает отлично, и я могу разместить обработчик в области заголовка через интерфейс представления. К сожалению, из-за структуры развертывания в этом проекте я не могу просто обновить код, относящийся к представлению. Мой модуль, создающий обработчик настраиваемой области, также должен изменить представление, чтобы поместить обработчик области в заголовок.Как разместить обработчик области пользовательских представлений в заголовках представлений программно?
Я создал вид зоны обработчика штраф следующим кодом:
/**
* Implements hook_views_data().
*
* Purpose: Establish a views area handler for displaying.
*/
function custom_shipping_notification_views_data() {
// Initialize data array.
$data = array();
// Define a handler for an area used to display if qualifies for free ship.
$data['commerce_order']['free_shipping_message'] = array(
'title' => t('Free Shipping Notification'),
'help' => t('Displays the free shipping notification on cart form.'),
'area' => array(
'handler' => 'custom_shipping_notification_handler',
),
);
// Return data.
return $data;
}
Это все работает, так что я не попасть в сам обработчик. Я могу разместить это через представление UI без проблем. Мне нужно поместить это в заголовок определенного вида. Управление видом осуществляется в функциях, но из-за развертывания клиентов и структуры репо я не могу изменить эту функцию. Мне нужно изменить представление изнутри моего модуля, содержащего настраиваемую область.
Я попытался использовать этот код без толка:
function custom_shipping_notification_views_pre_build(&$view){
if ($view->name == 'commerce_cart_form') {
$id = $view->add_item('default', 'header', 'views', 'free_shipping_message');
}
}
Кто-нибудь есть какие-нибудь идеи? Я, очевидно, попадаю в туманную территорию, так как метод add_item имеет однострочное описание и примеры кодирования. Большая часть документации по этой области также не разработана.