Темизация блока, созданного при помощи собственного модуля.

Главные вкладки

Аватар пользователя mega-burunduk mega-burunduk 14 апреля 2015 в 18:39

Здравствуйте, экспереминтирую с модулесозданием )
Не могу разрбраться, как сделать чтобы блок выводил вот такое соержимое

<?php
<section class="content-section video-section">
  <
div class="pattern-overlay">
  <
a id="bgndVideo" class="player" data-property="{videoURL:' тут адрес видео параметр ',containment:'.video-section', quality:'highres', autoPlay:true, mute:true, opacity:1}">bg</a>
    <
div class="container">
        <
div class="col-lg-12">
        <
h1Тут заголовок 1 </h1>
        <
center>Тут заголовок два</center>
        </
div>
    </
div>
  </
div>
</
section>
?>

Пока что созрел только вот до этого....

<?php
function ytvideobg_block_info() {
  
$blocks = array();
  
$blocks['youtube_block'] = array(
    
'info' => t('YouTube Video Block'),
  );
  return 
$blocks;
}
/**
 * Implements hook_block_view().
 */
function ytvideobg_block_view($delta '') {
    if (
$delta == 'youtube_block'){
        
$block = array();
        
$block['subject'] = '';
        
$block['content'] = array(
            
'#theme' => 'html_tag',        
            
'#tag' => 'div',        
            
'#attributes' => array(
                
'class' => 'pattern-overlay',
            ),        
            
            
'css' => array(
                
drupal_get_path('module''ytvideobg') . 'css/ytvideobg.css',
            ),
        );
        return 
$block;
    }
    
    return 
$block;
}
?>

Помогите, пожалуйста, найти решение

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 14 апреля 2015 в 19:45

Используйте tpl - так на первых порах Вам будет удобней. Пишите например

...
$block['content'] = array(
'#theme' => 'youtube',
'#videoURL' => 'http://...',
'#title1' => t('Title 1'),
'#title2' => t('Title 2'),
);
....

function ytvideobg_theme(){
 return array(
    'youtube' => array(
      'variables' => array('videoURL' => NULL, 'title1' => NULL, 'title2' => NULL),
      'template' => 'youtube',
    ),
 );
}

В папку модуля помещаете youtube.tpl.php
где можно использовать $videoURL, $title1, $title2

Аватар пользователя mega-burunduk mega-burunduk 15 апреля 2015 в 10:39

Спасибо большое! Теперь понял... А как обернуть в t('') переменную из variable_get? Значение переменное (тот же заголовок передается из админ панели модуля и хотелось бы чтобы он был переводимым).

'#theme' => 'youtube',
'#videoURL' => variable_get('ytvideobg_default_video_url'),
'#title1' => variable_get('ytvideobg_default_title_text'),
'#title2' => variable_get('ytvideobg_default_description_text'),

Аватар пользователя mega-burunduk mega-burunduk 15 апреля 2015 в 11:17

Как в самом модуле обернуть в тэ пока что не понял... Но сделал на уровне youtube.tpl.php - обернул в t значение title перед выводом...

Аватар пользователя sas@drupal.org sas@drupal.org 15 апреля 2015 в 11:33

Можно например t('@title', array('@title' => $title)); в tpl прописать, но это не решит вопрос перевода переменной, как я уже и писал - надо будет использовать https://www.drupal.org/project/variable + https://www.drupal.org/project/i18n