[РЕШЕНО] popups & dinamic skins

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

Аватар пользователя xom940k xom940k 27 июня 2011 в 18:06

Всем привет еще раз Smile
Вот ломаю голову, как бы заставить popups всплывать разные окошка в разных скинах. Тоесть например для обычных страничек - скин Facebook, для авторизации - свой скин.

1. Искал как бы добавлять класс обертке:

<div class="popups-box" id="popups-1" style="height: 498px; top: 61.5px; left: 285.5px;">
...
</div>

Причем видно, что id у него нумерованный. По какому принципу это происходит - хз: подозреваю, что просто нумерует в порядке сканирования на предмет

class="popups"

Это пофиг, мне главное бы добавить класс этому элементу, чтобы хотя бы можно было бы зацепиться в CSS как то... Ну или задавать id самому (если это возможно) - так было бы гораздо кошерней.
2. Помучался я с предыдущим вариантом и решил помучаться со следующим. В общем глянул скины в модуле popups - ничего сложного. Подумал насоздавать там их. Вопрос как их менять на лету? Порылся в коде модуля, набрел на строки

<?php
    
// Allow skinning of the popup.
    
$skin variable_get('popups_skin''Basic');
?>

Попробовал запихать в preprocess_page. Но опытным путем (и опять же порывшисть в модуле) понял, что на page модулю вообще пофиг! Он берет контент из node шаблона:
Запихал в preporcess_node строку

<?php
  
// скин для карты
  
if ($_SERVER['REDIRECT_URL'] == '/cities') {
    
variable_set('popups_skin''Facebook');
  }
  else {
    
variable_set('popups_skin''Basic');
  }
?>

Работает не предсказуемо. Порылся немного еще в модуле, наткнулся на вот это:

<?php
    
if (!$reset && ($cache cache_get('popups:skins')) && !empty($cache->data)) {
      
$skins $cache->data;
    }
?>

Кэширует Sad
В общем как обмануть скатинку?
Хотелось бы либо класс вешать, либо айдишник, либо вообще корденально подсовывать разные скины (что менее вероятно по ходу дела: кеширование)...
Кто какой опыт имеет с попсами? Lol Даже если будет не сильно связано с вопросом - все равно буду благодарен Smile

Комментарии

Аватар пользователя xom940k xom940k 27 июня 2011 в 18:11

style="height: 498px; top: 61.5px; left: 285.5px;"
надо кстати выдрать руки тем кто назначает стили прямо в шаблоне! Но дотянутся бы до них...

Аватар пользователя alexandr.poddubsky alexandr.poddubsky 27 июня 2011 в 19:22

"xom940k" wrote:
надо кстати выдрать руки тем кто назначает стили прямо в шаблоне! Но дотянутся бы до них...

частично они правы, моргунчики устраняются тогда. по вашему вопросу советую статейку http://xandeadx.ru/blog/javascript

Аватар пользователя xom940k xom940k 27 июня 2011 в 23:16

"alexandr.poddubsky" wrote:
моргунчики

моргания?
"xom940k" wrote:
советую статейку

вы мне советуете использовать уи диалог?
Кстати, добавил в закладки на всякий. Еще раз убеждаюсь, что jQuery UI - power!

Аватар пользователя Cyber Cyber 27 июня 2011 в 22:31

"xom940k" wrote:
от ломаю голову, как бы заставить popups всплывать разные окошка в разных скинах. Тоесть например для обычных страничек - скин Facebook, для авторизации - свой скин.

можно так: http://www.shift-web.ru/perekluchenie-css-jquery-cookies, тока чуть напильником допилить

"xom940k" wrote:
<?php
    // Allow skinning of the popup.
    $skin = variable_get('popups_skin', 'Basic');
// скин для карты
if ($_SERVER['REDIRECT_URL'] == '/cities') {
variable_set('popups_skin', 'Facebook');
}
else {
variable_set('popups_skin', 'Basic');
}
?>

Это не друпал метод -- это п*здец. Как в зависимоти от урла выставить нужный парматр на стиль, наверное сами догадаетесь

Аватар пользователя xom940k xom940k 27 июня 2011 в 23:34

"Cyber" wrote:
можно так

Спасибо за статью: добавил в закладки. Я как раз думал недавно по поводу такого функционала на клиенте, вы мне дали готовое решение Smile
"Cyber" wrote:
Это не друпал метод -- это п*здец.

согласен, но иначе я не представлял как "обмануть" popups на сервере.
"Cyber" wrote:
Как в зависимоти от урла

у меня были уже мысли перетащить описанный в первом посту функционал на клиент. Только не думал над тем "как". С тегом  <link/> - клево Smile Даже не знал, что disabled - так отразится на стилях, хотя все довольно логично Smile

Всем спасибо. Резюмирую: у popaps нет функционала, реализующего мои требования. Пилить модуль - не есть хорошо. Перетащим функционал в тему. Вопрос - решен.

Аватар пользователя xom940k xom940k 28 июня 2011 в 16:33

"Cyber" wrote:

в общем, как я уже писал тебе в личку, у <link /> нет атрибута disabled. Поэтому то что мы проставляем в DOM disabled=true - не имеет ровным счетом никакого эффекта. Зато можно использовать

$('#init').append('<link ...>') /*и */ $('#init').remove('link[title=...]')
Аватар пользователя Cyber Cyber 28 июня 2011 в 19:41

"xom940k" wrote:
$('#init').append('') /*и */ $('#init').remove('link[title=...]')

Хех. Ну да, вариант. Я бы если честно зацепился за что то другое. Например за media Wink Туда можно вписать фэйковый переключатель и по нему обрабатывать вкл\выкл.

p.s.: фаяфокс голимая редиска ):