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

[решено] Установка D7 с pgsql на FreeBSD 8 - трабл с БД

27 марта 2011 в 16:14

Приветствую.

Ставлю D7 с БД pgsql на vds под FreeBSD 8 - на шаге Set up database выдает ошибку:

Failed to connect to your database server. The server reports the following message: SQLSTATE[08006] [7] FATAL: no pg_hba.conf entry for host "::1", user "d7", database "d7", SSL off.

нагуглил, что в pg_hba.conf нужно добавить строку
host all all 127.0.0.1 trust (или md5)

добавил, ребутнул - новая ошибка:
Failed to connect to your database server. The server reports the following message: SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?.

Вот содержимое pg_hba.conf до:

local template1 pgsql password
host template1 pgsql 0.0.0.0 0.0.0.0 password
local all pgsql password
local   d7      d7      password
local   pge2e4  pge2e4  password

и после:

local template1 pgsql password
host template1 pgsql 0.0.0.0 0.0.0.0 password
local all pgsql password
local   d7      d7      password
local   pge2e4  pge2e4  password
host all all 127.0.0.1 trust

чего ему не хватает?
(про баги в ДНК - в курсе, я действительно аццкий чайнег Smile

upd.
надо было прописать

host    имяБД  имяПользователя    ::1/128 password

Как спрашивать

27 февраля 2011 в 9:56

Мы почти всё время переводим с одного языка на другой. Это так, даже если мы умеем говорить только по-русски. А почему? Потому что одни и те же слова у разных людей ассоциированы с разными смыслами.

Для кого-то «менять шаровые» - это провести выходные в гараже. А для кого-то - заехать утром на СТО, весь день ездить на такси, а вечером получить свою машину. Для одних людей «решить квадратное уравнение» - это мгновенное действие, не подразумевающее напряжения, а для других - это звонок сыну коллеги, который как раз учится в университете, поэтому сможет справиться.

Когда перед человеком возникает задача, то он её сначала переводит с языка того, кто проблему ставит, на свой язык, чтобы понять её и выработать план решения. Поэтому лучше всего взаимодействие идёт между примерно равными людьми. Если же постановщик задачи и исполнитель очень далеки, то могут возникать неожиданные и сложные недопонимания (их даже бывает трудно обнаружить, так как люди совсем не понимают друг друга). По этой причине важно, чтобы тот, кто формулирует задачу, умел влезть в шкуру того, кто её будет выполнять. Мне кажется, что часто люди недовольны своим начальником именно из-за его неспособности или нежелания помочь с переводом задачи со своего языка на язык исполнителя. Орать на «идиотов вокруг» может каждый, а уметь внятно объяснить, чего надо делать - это обязательный навык для руководителя.

Клонировать тип материала product kit

28 декабря 2010 в 0:30

Удавался кому-нибудь сабж?

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

Добавить в menu block функционал jquerymenu

27 декабря 2010 в 18:41

Привет.

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

Этого недостатка лишен модуль menu block, но он лишен функционала jquery.

Итак, скрещиваем ужа с ежом.

В файле template.php своей темы добавляем функции:

function название-темы_menu_item__menu_block__номер-блока($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
  $class = ($menu && $in_active_trail ? 'parent open' : ($has_children ? 'parent closed' : 'leaf')); // Для того, чтобы
// menu_block выводил на страницу все подпункты меню, а не только верхнего уровня
// (а то разворачивать будет нечего), нужно либо в настройках меню, либо в настройках
// блока menu_block раскрыть все подпункты меню, но в таком случае оно будет изначально
// выводиться на страницу полностью раскрытым, что не есть хорошо. Здесь всем пунктам
// меню назначается класс closed, кроме тех, которые in_active_trail

//  if (!empty($extra_class)) {     Тут добавляются дополнительные классы,
//    $class .= ' '. $extra_class;  вроде lirst, last, menu-его номер
//  }                               мне они без надобности, поэтому отключаю

  if ($in_active_trail) {         // Добавляется класс active-trail
    $class .= ' active-trail';    // чтобы меню разворачивалось до
  }                               // активного пункта

Заменить CSS модулей своими

18 декабря 2010 в 13:55

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

Решения:
1. Править файлы css, которые лежат в папках с модулями - некошерно.

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

Решил заменить таблицы стилей модулей своими, используя решение с ДрупалКукБука:
в template.php своей темы в функции имя-темы_preprocess_page добавил:

  $path_to_theme = drupal_get_path('theme', 'имя-темы');
  foreach ( $vars['css']['all']['module'] as $css =>$val ){
        $vars['css']['all']['module'][$path_to_theme . '/css/' . basename($css)] = $val;
        unset($vars['css']['all']['module'][$css]);
  }
  $vars['styles'] = drupal_get_css($vars['css']);
  unset($path_to_theme);

Остается скопировать файлы CSS из папок с модулями в подпапку /css своей темы, и править их как угодно.

Недостатки - при добавлении модулей надо помнить о необходимости копирования его стилей в свою тему.
решено, вопрос - по нагрузке (я не ощутил) и кошерности кода (N лет назад кодил на vb6, php - со словарем)

Склеивание значений Имя и Адрес

28 ноября 2010 в 16:48

Здравствуйте.

Обратил внимание, что при оформлении заказа значение поля Имя (переменная $order_first_name) попадает в Адрес (переменная $order_shipping_address)
Как это можно побороть?

[Решено] Views - как вывести подтермины таксономии

16 мая 2010 в 3:30

Здравствуйте.

Делаю каталог товаров, основанный на словаре таксономии, вывожу его через views (стандртный модуль uc_catalog отключен)
Словарь ссылается на 2 типа материалов - стандартный product и клонированный page, который называется 'Описание категории' (просто чтобы не путаться в типах материалов).

Термины словаря имеют 3 уровня вложенности:

термин 1
--термин 1.1
----термин 1.1.1
----термин 1.1.2
---- ...
--термин 1.2
----термин 1.2.1
и т.д.

Ноды типа 'товар' привязаны к последним (по вложенности) терминам словаря, а 'описания категории' - ко всем.

Создал 2 представления: category_list и product_grid, выбираю какой из них использовать с помощью модуля TVI.
Со вторым представлением все хорошо, а в первом застрял на такой проблеме:

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

Заголовок 1

Содержимое 1

Заголовок 1.1

Содержимое 1.1

Заголовок 1.2

Содержимое 1.2

(заголовки описаний подкатегорий являются ссылками на следующий уровень)

для этого в представлении category_list создаю вид 'вложение' который прикреплен к странице и выводится перед ней.
аргумент - таксономия:ID термина, поля - Материал:Заголовок, Материал:Содержимое, здесь тоже все хорошо.

Теперь в виде 'страница' нужно вывести ноды, у которых термины таксономии являются дочерними к текущему термину.