Блог пользователя - Shift-Web

RSS Feed Upgrade XSLT Based extension

23 ноября 2010 в 10:50

Увлёкся XSL и решил немного поэкспериментировать. В общем идея заключается в допиливании внешнего вида RSS канала формируемого Ядром.

После апгрейда фид приобретает читабельный вид и из набора xml тегов превращается в полноценню страничку со своим оформлением и разными плюшками.

Проблема в том, что для темизации использован мехинизм XSL трасформации, что позволяет засунуть в RSS канал что угодно, хоть рекламу, хоть любую другую приблуду, оставив его при этом всё тем-же RSS каналом(т.е. все приколы происходят на стороне клиента и никак не мешают сервисам и поисковики xslt тупо не понимают). Я ради эксперимента и экспириенса приделал социальные пимпы от Dimox.

Проблема заключается в том, что для трансформации нужно второй строкой подключить файл стилей XSL, в котором заложена вся логика мутации, а как это сделать я тупо не знаю.

<?xml version="1.0" encoding="utf-8"?>
<!-- Inject the transform logic -->
<?xml-stylesheet href="feed-transform.xsl" type="text/xsl" media="all"?>
<rss version="2.0" xml:base="http://some.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">

Ну и собсно код, думаю лишние комментарии ни к чему:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Doctype Declaration Configurate -->
<xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" indent="yes" />
  <!-- Bind the Root variables -->
  <xsl:variable name="title" select="/rss/channel/title" />

Вопрос по редиректам в контексте нагрузоустойчивости

20 ноября 2010 в 23:31

На сколько редиректы нагружают сервер?

Грубо говоря, имеем смартёвую систему шаблонов с и вот такой вот код в .htacess

Full Ajax > What you think about

18 ноября 2010 в 5:28

Quote:
Fullajax = AJAX + AHAH — технология, подход к построению, переводу сайтов и веб-приложений на AJAX. Направлен на выработку правил и методов максимального внедрения всей мощности AJAX & AHAH. Наша технология уменьшает сложность и расширяет узконаправленность области применения AJAX.

Технология Fullajax — дает возможность использовать AJAX технологию на полную силу, и позволяет быстро и безболезненно внедрить AJAX в любой сайт. Вам не нужно знать тонкости работы AJAX и тонкости программирования Javascript, если вы понимаете основы HTML и верстки, вы сможете без проблем внедрить Fullajax в свой сайт.

Одна из основных возможностей Fullajax ― программируете как обычно, а подключив нашу библиотеку получаете AJAX. Это достигается за счет специально разработанного механизма фильтрации: ссылки по заданным критериям автоматически превращаются в AJAX. Область применения не ограничена: в простых сайтах, на системах управления, в порталах, везде. При подключении Fullajax — Ваш сайт станет настоящим современным Веб-приложением.

бла-бла-бла .... сабж по адресу: http://fullajax.ru/

Условие вида if ($user->[???]) bla-bla; {роль, поле в профиле

25 октября 2010 в 14:51

Буксую с ролями и профилями.

Нужно сделать простое условие через ядро без прямого взгляда в БД по типу роли к торому относится юзер, что-то вроде

if ($user->ProfileRole) { пыщь-пыщь что-то; }, где ProfileRole -- присвоенная роль.

И условие типа

if ($user->ParameterProfile) { пыщь-пыщь что-то; }, где ParameterProfile -- условие выбора одного из ряда параметров списка в профайле.

Как-то через ядро это делается без прямых SQL условий?

Гы )

24 сентября 2010 в 15:02

Перенёс на друпал один из своих первых сайтов.

Первоначально была драконья кольцевая связка dle(null)+vBulletin(null)+MediaWiki, что накладывало отпечаток на удобство администрирования. Со временем на хостинге что-то на..сь и движок википедии посыпался.

На сборку пакета модулей, настройку ядра и первёрстывание дизайна с таблиц на div-dl структуру ушло примерно 3 дня. Собсна сабж.

Дизайн мой Smile

[решено]Forum глючит

22 сентября 2010 в 6:43

Quote:
warning: Invalid argument supplied for foreach() in /home/[poskeipano]/modules/forum/forum.module on line 670.

Quote:
Вы не можете добавлять новое содержимое в форум

Я его только включил... И ничего не трогал ...

================

после выключения и включения ожил

Закладочные ништяки

19 сентября 2010 в 22:01

Наткнулся на jquery примочку для реализации плавающей панели с кнопка добавления в твиттеры, соц-закладки и т.д. Собсна сабж тут. Качается тут или тут.

Написано, что надо jQuery 1.4.2, на младших не пробовал.

Установка панели соц-закладок в друпал 6

Сам скрипт можно подключить тимплэйтом, модулем или в инфо темы(как вам нравится). В скрипте покрутить отступы:

var m1 = 140; /* расстояние от начала страницы до плавающей панели */
var m2 = 20; /* расстояние от верха видимой области страницы до плавающей панели */
var f = '/examples/socializ-floating-panel/i/'; /* путь к папке с изображениями кнопок */

В page.tpl.php перед <?php print $content ?> вставляем

<script type="text/javascript">socializ(encodeURIComponent('http://www.SITE.ru<?php if ( (arg(0) == 'node') && is_numeric($nid = arg(1)) ) {echo url('node/'.$nid); } ?>'),encodeURIComponent('<?php if ( (arg(0) == 'node') && is_numeric($nid = arg(1)) ) {echo $title; } else { print $site_name; } ?>'))</script>

, домен заменить своим (_ttp://www.SITE.ru).

Это задёт адрес ноды и тайтл активной странички. Немного непродумано в отношении таксономии ...

В стили темы:
 

Проектное предприятие

1 августа 2010 в 22:09

Проектное предприятие Инцерт выполнит проектные работы различных уровней ответственности.

Организация обладает 20 летним опытом архитектурно-строительного проектирования. Подход к проектированию подразумевает ведение проекта от стадий формирования пакета предложений до согласования разрешительной документации и проведения авторского надзора за объектом строительства.

По сабжу:

Базовая тема — DropShadow(переконструирована и частично доработана).
Пара самописных примочек на Jquery.
Галерея — DaGallery.

Всё довольно просто. Остаточное наполнение на момент выхода из отпуска людей, у которых описаловки проектов и термнологии.

=======================================================

"digital_sword" wrote:
Нафига на главной текст? Читать его никто не будет. Я понимаю, что для поисковиков полезно, но он вообще ни под какие слова не оптимизирован... Можно было бы на главную воткнуть картинки-ссылки с направлениями деятельности. Чтобы было понятно, о чем вообще сайт. Ну а потом текст.

+ Скроллер с резюме по услугам
+ Частично разделы

"digital_sword" wrote:
В верхнем меню: можно жать только на ссылочки, а курсор постоянного наводится на рисунки. Их же тоже можно ссылками сделать

+ fixed

"Eugeny" wrote:
И уберите дерганье иконок при наведении очень раздражает.

+ большинству нравится после fixed

"digital_sword" wrote:
Цвет шапки: УГ. Если хотите серый, то можно и получше подобрать

+ отложено на неопределённое кол-во времени

Конфиг robots.txt для Drupal 6.x "коробка" + кастомы

16 июня 2010 в 20:11

Выкладываю свой обкатанный конфиг robots.txt для Drupal 6 коробочного билда и пару советов. Удаляем все левые файлы с корня, убираем правила dissalow для update.php, cron.php, xmlrpc.php(эти вещи уже на автомате игнорятся).

User-agent: *        
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /sites/
Disallow: /themes/
Disallow: /comment/reply
Disallow: /comment
Disallow: /contact
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
Disallow: /filter
Disallow: /node$
Disallow: /*?sort*
Disallow: /*&sort*
Disallow: /tracker?
Sitemap: http://primary-mirror.ru/sitemap.xml

Host: primary-mirror.ru

Это «only-ЧПУ конфиг», наверное уже нет тех, кто не использует в Drupal эту возможность.

primary-mirror.ru — заменить на ваше головное зеркало сайта.

С директивой хост следующий прикол: если Вам не нужны оба зеркала имеет смысл склеить синонимы в .htaccess.

Лезем в файл, ищем условную директиву IfModule mod_rewrite.c, после RewriteEngine on втыкаем:

RewriteCond %{HTTP_HOST} ^www\.primary-mirror\.ru$ [NC]
RewriteRule ^(.*)$ http://primary-mirror.ru/$1 [L,R=301]

Эта шняга редиректит с www-синонима на без-www-синоним. Или обратная конструкция(есть глюки, может не сработать на некоторых хостингах):

RewriteCond %{HTTP_HOST} ^primary-mirror\.ru$ [NC]

$object -> homepage как вытащить?

14 июня 2010 в 21:26

Здравствуйте. Проблема следующего характера: пытаюсь переверстать друлю на RDFa, встал вопрос, как вытащить из комментатора переменную

$object->homepage

Если использвать функцию через template.php

<?php
function phptemplate_username($object) {

  if (

$object->uid && $object->name) {
    if (
drupal_strlen($object->name) > 20) {
      
$name drupal_substr($object->name015) .'...';
    }
    else {
      
$name $object->name;
    }

    if (

user_access('access user profiles')) {
      
$output l($name'user/'$object->uid, array('attributes' => array('title' => t('View user profile.'))));
    }
    else {
      
$output check_plain($name);
    }
  }
  else if (
$object->name) {

    if (!empty(

$object->homepage)) {
      
$output l($object->name$object->homepage, array('attributes' => array('rel' => 'nofollow')));
    }
    else {
      
$output check_plain($object->name);
    }
  }
  else {
    
$output check_plain(variable_get('anonymous't('Anonymous')));
  }

  return 

$output;
}
?>

То на участке:

<?php
 
if (!empty($object->homepage)) {
      
$output l($object->name$object->homepage, array('attributes' => array('rel' => 'nofollow')));
    }
    else {
      
$output check_plain($object->name);
?>

Происходит проскок проверки наличия

<?php
if (!empty($object->homepage))
?>

И имя комментатора сразу обретает вид:

<?php
$output 
check_plain($object->name);
?>

Подскажите проверенный набор пожалуйста

10 июня 2010 в 16:51

Заказ сделать сайт магазина автозапчастей. Тему отрисовал, отверстал, посадил на двигатель. Теперь стоит выбор между реализацией каталога товаров на уровне типичных нод и серьезного каталога с позициям, возможностью добавлять товары уже сугубо через интерфейс (т.е. автоматизировать процесс).

Товаров много... порядка 40к. Заказчик колеблется, я тоже. Т.е. до конца не определились надо ли такую приблуду или будет достаточно нескольких описаловок по категориям.

Поскольку такой каталог с поиском и сортировкой будет несомненно удобнее и круче, то задумываюсь о том, как это всё реализовать.

Была мысль сделать простой билдер нод. Т.е. интерфейс, который будет автоматически при заполнении полей на уровне html строить вывод товара.

Я так понимаю, что cck по сути это делает? Т.е., грубо говоря, каждому товару будет присвоен отдельный узел. Если это так, то меня тревожит вопрос производительности и "уклюжести" такой связки, всё таки 40к не мало и это не предел.

Помимо CCK и Uber есть какие-то удобоваримые аналоги? Есть ли альтернативные варианты?

Что за нафик? href даз конфликтен ла rel ?

24 мая 2010 в 10:29

Объясните почему друпал отказывается билдить в ссылку атрибут rel? Ваще логику не улавливаю ...

$items[] = array(    
        'class' => 'pager-last',
      );
return theme('item_list', $items, NULL, 'ul', array('class' => 'some_class'));

Это тупо список. Я сюда могу засунуть любой атрибут, даже если он физически является полной хренью, например, так:

$items[] = array(    
        'jopa' => 'he-he',
        'ahtung' => 'fatamt',
        'class' => 'pager-last',

      );
return theme('item_list', $items, NULL, 'ul', array('class' => 'some_class'));

При этом друля без проблем подставляет атрибуты и всё чики пуки.

Вопрос: почему как только появляется атрибут href друпал начинает нещадно резать атрибуты?

Пример:

 $links['some_place'] = array(
          'title' => t('bla-bla-bla'),
          'href' => "some-url-variables"
        );

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

Если убрать href, друля тупо завернёт в <span>

$links['some_place'] = array(
          'title' => t('bla-bla-bla'),
        );

Но мне надо добавить rel, который он тупо не добавляет ): Как заставить и что покрутить, чтобы можно было втыкать свои атрибуты, например те-же onclick

 $links['some_place'] = array(
          'title' => t('bla-bla-bla'),

Подскажите функцию списка радиокнопок на BUEditor

20 мая 2010 в 8:10

В общем домучал досканально Geshi фильтр. Встал вопрос реализации для BuEditor примерно такого-же, как здесь выпадающего списка с подстановкой класса тегу code. Поискал на офф сайте, найти примера работы с

js:
диалог {бла бла бла}
экшин  {бла бла бла}

не получилось.

Разница в установке модуля напрямую в ядерную папку или /sites/all/modules

2 мая 2010 в 1:49

Есть ли вообще какая-то разница куда ставится модуль? Могут ли быть какие-то побочки от установки напрямую в папку modules?

JS-Kit Echo — новый взгляд на комментирование

30 апреля 2010 в 15:54
Echo новый подход к комметированию

Сегодня утром сортируя тушки неизвестых пауков я наткнулся на интересный экземпляр, который привёл меня на js-kit.com. Находка меня очень обрадовала, хоть и не была должным образом руссифицирована.

Что же такое Echo?

Во первых, это не просто какая-то приблуда сбоку экрана на подобие унылого «Reformal», это мощная система комментирования, которая интегрируется с Twitter, Blogger, OpenID, Google и другими популярными сервисами.

Интеграция с сервисами

Комментировать можно просто, никуда не входя, что добалвяет удобства.

Комментирвание

Подробности >>> Echo — старые вещи по-новому

p.s.: сори, если сбоянил, сам сегодня такую штуку увидел

Кумулюс XSS Санадаль

21 апреля 2010 в 16:10

вот пример pt:

http://SITE.ru/modules/cumulus/cumulus.swf?mode=tags&tagcloud=%3Ctags%3E%3Ca+href=%27java%20script:%20alert%28document.cookie%29%27+style=%27font-size:+50pt%27%3EClick%20me%3C/a%3E%3C/tags%3E

Второй пример:

Альтернатива. Лиса скоро умрёт

10 апреля 2010 в 5:49

Я хочу поделиться с Вами незаменимым инструментом любого разработчика. Он воистину мощный, быстрый и удобный. Всё еще сидите на файрфоксе? Пользуетесь файрбагом?

Вызовете у меня только снисходительную улыбку. Прошло уже больше года моего первого знакомства с Google Chrome. Более года нашего с ним тесного сотрудничества принесли ощутимые плоды.

Заядлый файрфоксер, читая эти строки, насупится и изречёт что-то наподобие: "А.. знаем мы ваши мажорские штучки. Всё рано лучше фокса не бывает".

Готов поспорить. Я не хочу и не буду писать длинных строк о том, как удобен, быстр и функционален этот зверь, наделенный движком V8, просто покажу пару скриншотов ;-). Кто «в теме», тот оценит.

Файрбаг инсайд

Это полноценный аналог firebug. Он предустановлен и не надо ничего качать. Кроме того имеется ещё куча опций.

Спидометр

Встроенный спидометр всего, что подгружается с сайта + оценка скорости рендеринга.

Камень и память

Оценка пожирания ресурсов CPU и ОЗУ.

SEO

SEO? Да на здоровье! Экспресс анализ с «полпинка».

Сайт о вёрстке, юзабилити и seo

5 апреля 2010 в 11:38

На Shift The Web Вы найдете массу интересного о web технологиях, вёрстке, seo, да и вообще всему, что так или иначе связано с интернет деятельностью homo sapiens. Ресурс ориентирован в первую очередь на неискушённых.

скрин

Писать стараюсь сам, шкура свёрстана с нуля. Поскольку наполнение сайта в процессе и материалов пока маловато, не стал выделять категории сразу.

На момент публикации этой темы использованы модули:

  • xmlsitemap
  • sitemap
  • nodewords
  • privatemsg
  • author pane
  • advanced forum
  • bueditor

Jquery взят с модуля Jquery Update. Кое что обработано напильником Smile Адекватная критика приветствуется!