Опубликовано 19/12/2017
Задача.
Открывать ссылку в всплывающем окне при высоте страницы более 800px или переходить по ссылке в противном случае. При переходе добавлять к странице действующую кнопку "назад".
В примере используются стили bootstrap.
- устанавливаем colorbox
- cоздаем custom модуль
В файле our_module.module
name = our_module_name
core = 7.x
description = "some description"
scripts[] = our_module.js
В файле our_module.module
function our_module_node_view($node, $view_mode, $langcode) {
if (isset($_GET['destination'])) {
$destination = $_GET['destination'];
$path = drupal_get_normal_path('page_need_to_load');
$nid= str_replace('node/', '', $path);
if ($nid == $node->nid){
$node->content['some_key'] = array (
'#markup' => l('Закрыть', $destination, array('attributes' => array('class' => 'rules_back btn btn-default'))),
'#weight' => 3,
);
}
}
}
В файле our_module.js
(function ($) {
$(function () {
if (typeof colorbox !== 'undefined') {
var h = $('body').height();
if (h > 800) {
//click once
if (!$(".some_class").hasClass("processed")){
$(".some_class").addClass("processed").colorbox({ top:"10px", width:"90%", close:"Закрыть"});
}
}
}
});
}) (jQuery);
Добавляем кнопку на страницу
$link .= '<div>';
$link .= l('Some title', 'page_need_to_load',
array('query' => drupal_get_destination(),
'attributes' => array('class' => 'btn btn-success some_class'),
'absolute' => TRUE) );
$link .= '</div>';
print $link;
Стили для отображения текста кнопки
.some_class {
float: right;
}
#cboxClose {
text-indent: 0;
width: auto;
height: auto;
border: 1px solid #ccc;
border-radius: 4px;
background-image: none;
background-color: #fff;
padding: 6px 12px;
}
#cboxClose:hover {
background-color: #e6e6e6;
border-color: #adadad;
}
Добавить комментарий