Показаны сообщения с ярлыком js. Показать все сообщения
Показаны сообщения с ярлыком js. Показать все сообщения

26 октября 2011

Простые хлебные крошки для Pylons и не только...

В интернете множество советов как делать хлебные крошки. Для Pylons эти советы довольно запутанные, сложные в реализации и рутинны в поддержке на мой взгляд. Поэтому я рассмотрю простой способ парсить URI. Нас будет интересовать только URN (та часть которая идет после названия сайта).

Пример:
URI: http://example.ru/js/scripts/test
URN: js/scripts/test
breadcrumbs: js >> scripts >> test

Есть хороший пример http://www.webreference.com/js/scripts/breadcrumbs/, но он отображает в последней крошке(текущей) не распарсенный URN, а название сайта document.title. Это не очень удобно в некоторых случаях.

Вот мой вариант этого решения:
добавляем public/js/breadcrumbs.js

function breadcrumbs(){
  sURL = new String;
  bits = new Object;
  var x = 0;
  var stop = 0;
  var output = "<a href=\"/\">Home</a> &nbsp;&#187;&nbsp; ";
  var end = "";
  sURL = location.href;
  sURL = sURL.slice(8,sURL.length);
  chunkStart = sURL.indexOf("/");
  sURL = sURL.slice(chunkStart+1,sURL.length)
  while(!stop){
    chunkStart = sURL.indexOf("/");
    if (chunkStart != -1){
      bits[x] = sURL.slice(0,chunkStart)
      sURL = sURL.slice(chunkStart+1,sURL.length);
    }else{
      chunkStart = sURL.length;
      end = sURL.slice(0,chunkStart)
      stop = 1;
    }
    x++;
  }

  for(var i in bits){
    output += "<a href=\"";
    for(y=1;y<x-i;y++){
      output += "../";
    }
    output += bits[i] + "/\">" + bits[i] + "</a> &nbsp;&#187;&nbsp;";
  }

  document.write(output + end);
}

В шаблон вставляем следующий код:


breadcrumbs + javascript

25 октября 2011

Pylons javascript и css link

В Pylons, в шаблоны есть возможноть вставить CSS при помощи WebHelpers - stylesheetlink. Но существует расширение MinificationWebHelpers которое позволяет также удобно добавлять javascript файлы.

Установка:
pip install MinificationWebHelpers

Пример использования:
${ h.javascript_link('/js/file1.js',
                       '/js/file2.js',
                       minified=True,
                       combined=True,
                       combined_filename='all_javascript_files') }
${ h.stylesheet_link('/css/style1.css',
                     '/css/style2.css',
                     minified=True,
                     combined=True,
                     beaker_kwargs=dict(invalidate_on_startup=False)) }


Очень удоная штука, особенно когда нужно добавить много файлов.