Михаил(WiseMan)

Сайт или домашняя страница
http://www.tochka-starta.ru/blog
Мои_работы_для_Drupal
Помощь пользователям на форумах
Реальное имя
Михаил
Город
Саратов
Пол
мужской
Предлагаю_сервисы_для_Drupal
Консалтинг
Вёрстка и дизайн тем оформления
Создание коммерческих сайтов
Блог
Просмотреть последние записи в блоге
Темная материя
Материалов: 0/42, комментариев: 1/838
Время участия
9 лет 2 months
Пользователь поблагодарил
Материалы: , Комментарии:
Пользователя поблагодарили
Материалы: , Комментарии:

WiseMan Пнд, 25/05/2015 - 15:01

Помогите с обработкой массива [РЕШЕНО]

Ребят, помогите с обработкой массива.

Есть массив:

Ключевые слова: 
0 Спасибо

WiseMan Вс, 13/10/2013 - 18:36

[РЕШЕНО] Помогите с докрутить sql-запрос к нескольким таблицам (drupal6 + ubercart)

Всем привет. Давненько тут не был.

Помогите докрутить запрос для 6-го друпала + уберкарт.

Имеем стандартные таблицы
uc_cart_products (данные корзин)
users
uc_products

Требуется составить таблицу со списком пользователей, где для каждого пользователя будет отражено:
-id-пользователя
-сумма товара в корзине
-кол-во товара в корзине
-дата последнего изменения в корзине

Пока сделал вот так:

<?php$sql = "SELECT u.uid, 
  (SELECT COUNT(DISTINCT(cart_item_id)) FROM {uc_cart_products} as o WHERE o.cart_id = u.uid) as qty_list_products, 
  (SELECT SUM(qty) FROM {uc_cart_products} as ps WHERE cart_id = u.uid) as total_products 
  FROM {users} as u WHERE u.uid > 0 GROUP BY u.uid";?>
Тип материала: 
Ключевые слова: 
Версия Drupal: 
0 Спасибо

WiseMan Вс, 29/04/2012 - 06:46

Пингеры от Яндекса для индексации страниц (офциальные модули)

Яндекс выпустил модули "пингеры" для облегчения индексации страниц.

Цитирую Яндекс:
«Вы можете повысить приоритет индексирования некоторых страниц вашего сайта с помощью дополнений для CMS, которые могут отсылать запросы на индексацию автоматически. Дополнение, установленное в CMS, отслеживает изменения на сайте и генерирует запросы на индексацию при создании или изменении документов.»

Тип материала: 
Ключевые слова: 
Версия Drupal: 
0 Спасибо

WiseMan Чт, 01/12/2011 - 10:41

Как сделать комплексный аудит сайта или дизайн-макета. Новый сервис - мне понравился.

Буквально на днях наткнулся на отличный сервис по комплексному аудиту сайтов.

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

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

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

Я не буду лишний раз распространяться стоит или не стоит делать аудит в принципе. Мое мнение - аудит обязателен если вы не хотите эффекта упущенной выгоды и даже реальных потерь как денег, так и клиентов.

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

Почитал top100 открытых аудитов - это не только указание на недостатки, но и рекомендации, что можно улучшить с примерами. Все разбирается по полочкам, как уже упоминал.

P.S. Кроме заказчиков аудита приглашаются так же специалисты, готовые стать аудиторами.

Ключевые слова: 
Версия Drupal: 
0 Спасибо

WiseMan Сб, 10/09/2011 - 12:46

Как защитить drupal.ru от спамеров и флуда - решение возможно.

Думаю, выражу общее мнение, что спам в последнее время просто достал.

Вводить модерацию для комментариев и постов - спорный вопрос, так уж сложилось, что друг друга начнут клевать на раз два (ничего личного - ко всем отношусь с уважением и в перепалки не вступаю)

Каптчу - жестоко, ИМХО.

Кнопка "это спам" - сродни модерации => см. пункт первый )

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

Основы модуля уже есть captcha_after + правило для проверки на ссылки blockanonymouslinks

Остается написать правило на проверку даты регистрации, а в перспективе добавить правило для исключений - типа белого писка пользователей по ролям, по срокам регистрации, по кол-ву публикаций и т.п.

Такая превентивная мера по крайней мере обломает явный спам которым сейчас просто кишит сайт.

Срабатывание событий выдачи каптчи писать в лог - потом можно сделать выводы и совершенствовать.

Понимаю, что это все больше идея, но возможно кто-то из программистов сообщества сочтет за несложную работу и облегчит нам жизнь без спамеров.

Тип материала: 
0 Спасибо

WiseMan Чт, 01/09/2011 - 11:57

Как сделать e-mail рассылку дайджестов любых материалов сайта в автоматическом режиме

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

Здесь для удобства обсуждения еще раз расскажу как настроить автоматическую e-mail рассылку практически любых материалов с вашего сайта.
Настроить так, чтобы вебмастер не тратил время на составление рассылки и ее отправку.

Материалы публикуются на сайте и тут же попадают в рассылку, на основе определенных правил. Эти правила задаются через views.

Как это делается - всего 3 простых шага:

  1. Берете мой модуль подписки - он нужен для набора подписчиков. Или используете "ручную" форму подписки от сервиса
  2. Настраиваете любой фильтр через views на отдачу материалов в виде rss
  3. Скармливаете один, два или сколько вам нужно вариантов rss сервису рассылок и... вуаля: письма уходя автоматически.

Подробнее о том как скормить и настроить rss для отправки писем.

Это не просто банальное транслирование rss на e-mail. Вы получаете:

  • Возможность настроить дизайн рассылки под свой корпоративный стиль;
  • Гибкую настройка правил отправки сообщений;
Тип материала: 
Версия Drupal: 
0 Спасибо

WiseMan Ср, 24/11/2010 - 20:25

Мой топ хостинга для drupal и не только. Личный опыт.

безлимитный хостинг drupalКак и многие из вас я однажды задался вопросом — так есть ли идеальный и, желательно, безлимитный хостинг drupal?

Ну хочется же, чтобы все работало как часы: и uptime 100%, и тех поддержка на уровне, и работать удобно, и гибкость, и производительность, и все это за приемлемые деньги. Этакий выделенный хостинг... шаред хостинг )))

В общем помыкался я от одного провайдера к другому + сайты клиентов понаблюдал. Один из важных критериев выбора — должна быть с русскоязычная поддержка, т. к. думал прежде всего не про себя, а про клиентов с минимальными техническими навыками. Это немного осложняло задачу.

Прошло время и… мой ответ — идеального хостинга нет. Впрочем, есть весьма неплохие. Список ниже, с кратким акцентом на особенностях.

nic.ru или ру центр хостинг — вариант неплохой, но дороговато. Рекомендую выбирать тариф не ниже 301-го. Drupal-cайты на нем работают довольно шустро. Есть все необходимые акселераторы и возможность настраивать параметры php.ini под себя, включая php-memory. Можно устанавливать свои nginx, php, mysql и т.д. Хотя, даже используя возможности настроек «из коробки» все будет работать.

Тип материала: 
0 Спасибо

WiseMan Пнд, 09/08/2010 - 21:15

Новый модуль для SMS и E-mail рассылок, в т.ч. для Ubercart

Написал пару небольших модулей для интеграции с сервисом UnisendResponder.ru - сервис персонализированных массовых e-mail рассылок и sms-рассылок. В том числе сервис умеет делать авторассылки, типа Смартреспондера.

Подробнее изучите сами, при желании :)

Разве что ссылка на тарифы

Что умеют эти модули.

Оба модуля работают незаметно для пользователя, через API UnisendResponder

1. модуль unisendresponder

Позволяет подписывать ваших пользователей на рассылки на этапе регистрации на сайте. Возможны варианты, влоть до обязательной подписки. Если вы знаете что такое авторассылки, то поймете его пользу.

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

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

2. модуль sms_unisendresponder

Данный модуль зависит от smsframework - устанавливается как gateway для него.

Позволяет делать как массовые рассылки по вашим пользователям, указавшим мобильные телефоны. Так и в Ubercart уведомлять покупателей через SMS о смене статуса заказа.
Для этого требуется дополнительно модуль uc_ca_sms

Версия Drupal: 
0 Спасибо

WiseMan Сб, 07/08/2010 - 17:29

Готовая платформа для создания корпоративных социальных сетей

Компания Acquia, курирующая разработку свободной системы управления web-контентом Drupal, представила новый проект - Drupal Commons 1.0....

Собственно, копипастить не буду, все по ссылке

Updated by webmaster: добавлена презентация Drupal Commons с http://buytaert.net/drupal-commons-meet-jive-software

0 Спасибо

WiseMan Втр, 30/03/2010 - 12:28

как задать видимость блока в модуле?

Решил написать небольшой модуль для облегчения задачи управления видимостью блоков на страницах словарей и их терминов.

Все это можно сделать сниппетом (приведу ниже, мож кому пригодится), но для менеджера сайта это слишком сложно.

Споткнулся на этапе, когда нужно вывести блок. Настройки, с указанием в каком словаре выводить - сделал:

<?php
/**
 * Implementation of hook_form_alter().
 */
function custom_mod_form_alter(&$form, &$form_state$form_id) {
  if ((
$form_id == 'block_admin_configure' || $form_id == 'block_box_form' || $form_id == 'block_add_block_form')) {

      $module $form['module']['#value'];
      
$delta $form['delta']['#value'];
      
      
$form['custom_mod_vis_settings'] = array(
        
'#type' => 'fieldset',
        
'#title' => t('Vocabulary visibility settings'),
        
'#collapsible' => TRUE,
        
'#collapsed' => FALSE,
        
'#weight' => 0,
      );

  // Vocab-based visibility settings
  
$default_vocab_vis_options = array();
  
$result db_query("SELECT vid FROM {blocks_vocabulary} WHERE module = '%s' AND delta = '%s'"$module$delta);
  while (
$vocab db_fetch_object($result)) {
    
$default_vocab_vis_options[] = $vocab->vid;
  }
  
$result db_query('SELECT vid, name FROM {vocabulary} ORDER BY name');
  
$vocab_vis_options = array();
  while (
$vocab db_fetch_object($result)) {
    
$vocab_vis_options[$vocab->vid] = $vocab->name;
  }  
      
     
$form['custom_mod_vis_settings']['vocab_visability_blocks'] = array(
    
'#type' => 'radios'//checkboxes?>

Версия Drupal: 
0 Спасибо

WiseMan Пнд, 30/11/2009 - 10:43

Страница с комментариями отдельно - как?

Давно хочу на своих сайтах все комментарии вынести на отдельную страницу, чтобы у комментируемого материала была только ссылка на отдельную страницу комментариев с указанием количества комментов.

При переходе на страницу комментариев в начале только тизер материала, а дальше комментарии. При этом url материала и страницы комментариев разный.

Собственно, как это сделано на вебпланете

Кто пробовал делать или есть идеи как?

Версия Drupal: 
0 Спасибо

WiseMan Чт, 29/10/2009 - 21:54

Снижение нагрузки через JavaScript/AJAX

Наткнулся на модуль JavaScript/AJAX page callback.

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

Что можете сказать о полезности данного модуля?

Ключевые слова: 
Версия Drupal: 
0 Спасибо

WiseMan Сб, 12/09/2009 - 21:55

Выделенный сервер за 1000 руб. - новая услуга на рынке хостинга

Кто что думает об этой новости? уже есть, но мало, и у других хостеров аналогичные предложения.

UP: Насколько понял здесь получается что-то на стыке между VPS и полноценным выделенным сервером, но предлагаю в обсуждениях не делать акцент в сравнениях именно на отставание в характеристиках от выделенного сервера. Это и так понятно.

А вот как альтернатива VPS - было бы полезно обменяться мнениями, а может кто-то даже опытом поделится.

Ключевые слова: 
0 Спасибо

WiseMan Пнд, 24/08/2009 - 15:59

Функция замены в template.php - как лучше сделать?

Для шаблона для ubercart в файле template.php сделал следующее:

<?php
 
if ($vars['template_files'][0] == 'node-product') {
       
$node node_build_content(node_load($vars['nid']));

    $vars['fusion_uc_image'] = drupal_render($node->content['image']);
    
$vars['fusion_uc_body'] = drupal_render($node->content['body']);
    
$vars['fusion_uc_display_price'] = drupal_render($node->content['display_price']);
    
$vars['fusion_uc_add_to_cart'] = drupal_render($node->content['add_to_cart']);
    
$vars['fusion_uc_weight'] = drupal_render($node->content['weight']);
    
$vars['fusion_uc_dimensions'] = drupal_render($node->content['dimensions']);
    
$vars['fusion_uc_model'] = drupal_render($node->content['model']);
    
$vars['fusion_uc_list_price'] = drupal_render($node->content['list_price']);

//эта строка НЕ РАБОТАЕТ :(
    
$vars['fusion_uc_list_price'] = str_replace('USD'''drupal_render($node->content['list_price'])); 

    $vars['fusion_uc_sell_price'] = drupal_render($node->content['sell_price']);
    
$vars['fusion_uc_cost'] = drupal_render($node->content['cost']);
    
$vars['fusion_uc_additional'] = drupal_render($node->content);
  }
?>

В шаблоне затем использую <?php print $fusion_uc_image?> и т.п.

Все хорошо и все работает, кроме строки $vars['fusion_uc_list_price'] - мне нужно символ валюты для этой строки убрать. Никак не получается.
Точнее в самом шаблоне легко прокатывает <?php $fusion_uc_list_price str_replace('USD'''$fusion_uc_list_price);?>

Модули и темы: 
Версия Drupal: 
0 Спасибо

WiseMan Ср, 19/08/2009 - 20:20

Помогите расширить запрос к базе [решено]

Есть три таблицы {reg_code}, {users} и {uc_addresses} все имеют пересечение по uid.

Хочу сделать выборку из всех трех таблиц одним запросом, а точнее добавить выборку из третьей таблицы {uc_addresses} вот к этому рабочему запросу:

<?php
$sql 
'SELECT u.uid, u.name, u.mail, r.created, r.referer
    FROM {reg_code} r INNER JOIN {users} u USING(uid)
    WHERE r.reg_uid = %d
    AND u.status = 1' 
tablesort_sql($header);
  
$result pager_query($sqlREFERRAL_PAGE_COUNT0NULL$uid);
  while (
$data db_fetch_object($result)) {
    
$rows[] = array(
      array(
'data' => $data->name),
      array(
'data' => $data->city), //это поле нужно взять из таблицы {uc_addresses}
      
array('data' => $data->mail),
      array(
'data' => format_date($data->created'custom'REFERRAL_DATE_FORMAT)),
      array(
'data' => $data->referer),
    );
  }
?>

Важно чтобы результат был с условием выборки данных по списку $uid.
Кроме u.name, u.mail, r.created, r.referer из третьей таблицы мне нужно взять поле city. Пометил комментарием в коде.

Интуитивно понимаю что через INNER JOIN делать надо или что-то подобное, но никак не соображу :(
Не силен в сложных запросах.

Кто подскажет код запроса?

Ключевые слова: 
Версия Drupal: 
0 Спасибо

WiseMan Вс, 16/08/2009 - 15:46

Улучшаем drupal.ru - теги, поиск, навигация

Уже не один раз поднималась тема об удобстве поиска и навигации по этому сайту. Unitag admin screenshots

Вроде как есть два словаря "Версия Drupal" и "Ключевые слова", но...

Если термины из словаря "Версия Drupal" реально полезны и помогают сориентироваться, то термины второго словаря находятся в состоянии "анархии" и практически не способствуют улучшению навигации по сайту. Не говорю что совсем бесполезные, но полезность для посетителя весьма не высока, ИМХО.

Если для личных блогов, фотосток и т.п. сайтов свободные теги больше похожи на порядок (там более очевиды темы), то на drupal.ru новичкам часто элементарно не хватает знаний для грамотной и правильно формулировки тегов к посту.

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

Кто что скажет?

Версия Drupal: 
0 Спасибо

WiseMan Сб, 18/07/2009 - 06:54

Модуль nodeword - будьте аккуратны!

Всем привет. Возможно то, что напишу это баян, но я только заметил и был неприятно удивлен. Проблема меня на сайте решена - см. решение в комментариях.

Но, стоит обратить внимание, т.к. по умолчанию устанавливая модуль nodeword на сайте в seo целях вы можете фактически получить отрицательный эффект.

Оказывается модуль nodeword во все "вторые" страницы, начиная с ?page=1 и далее, ставит в header тег content="noindex,follow"
Заметил совершенно случайно, просматривая ошибки в панели Яндекс-вебмастер.

Фактически получается, что все эти страницы не индексируются поисковиками - во как! seo-модуль ;)

В результате:
1. имеем существенные потери в посетителях за счет игнорирования поисковиками уникального контента
2. модули поиска по сайту, использующие поисковые движки - "отдыхают" и огромная доля контента становится неискабельна

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

Неожиданное открытие. Сайт Drupal.ru не исключение! ПРИМИТЕ МЕРЫ, пжта.

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

Или можно искать вот так:

Ключевые слова: 
Версия Drupal: 
0 Спасибо

WiseMan Ср, 15/07/2009 - 12:18

Настройка хостов в Linux под мультисатинг

Коллеги, подскажите, как реализовать настройку хостов в Ubuntu для поддержки Wildcard, т.е. чтобы хост, например, mydrupal.ru откликался на все его как существующие так и "не существующие" поддомены.

В конфиге apache мне понятно как сделать, через *.mydrupal.ru

На боевых хостингах это реализовано как правило в виде подключаемой опции.

А вот как реализовать это у себя в локальной системе никак не догоню.

Как добавить такой "мультихост"?

Добавляю хосты и управляю сервером через Webmin.

0 Спасибо

WiseMan Ср, 03/06/2009 - 15:00

Удобство администрирования друпал

Только что поставил себе модуль admin - впечатления определенно положительные.

Уже сейчас понравилось как сделано, а если будут развивать в этом направлении то модуль бесценный с точки зрения usability, ИМХО.

Да, о самом модуле - это красивое и удобное административное меню для сайта. Включает в себя топ-меню и контекстные меню для редактирования блоков и т.п.

Ключевые слова: 
Версия Drupal: 
0 Спасибо

Страницы