Столкнулся с проблемой что в Netbeans развернутом на весь экран не корректно работает главное меню. Выделяются не те пункты что надо и т.п.
Нашел в сети занятное решение, прежде чем разворачивать Netbeans на весь экран просто перетащите окно в левый верхний угол, затем разверните окно и меню работает как должно.
При добавлении итема MENU_LOCAL_TASK в раздел user/%/edit/ пропадали табы когда происходил переход по добавленному табу, за все отвечает функция в модуле user.module
Привожу уже исправленный вариант, по дефолту использовалась закомментированная строка.
/**
* Return a user object after checking if any profile category in the path exists.
*/
function user_category_load($uid, &$map, $index) {
static $user_categories, $accounts;
// Cache $account - this load function will get called for each profile tab.
if (!isset($accounts[$uid])) {
$accounts[$uid] = user_load($uid);
}
$valid = TRUE;
//if (($account = $accounts[$uid]) && isset($map[$index + 1]) && $map[$index + 1] == 'edit') {
if (($account = $accounts[$uid]) && $map[0] == 'user' && $map[1] == $index && $map[2] == 'edit') {
// Since the path is like user/%/edit/category_name, the category name will
// be at a position 2 beyond the index corresponding to the % wildcard.
$category_index = $index + 2;
// Valid categories may contain slashes, and hence need to be imploded.
$category_path = implode('/', array_slice($map, $category_index));
if ($category_path) {
// Check that the requested category exists.
$valid = FALSE;
if (!isset($user_categories)) {
$empty_account = new stdClass();
$user_categories = _user_categories($empty_account);
}
foreach ($user_categories as $category) {
if ($category['name'] == $category_path) {
$valid = TRUE;
// Truncate the map array in case the category name had slashes.
$map = array_slice($map, 0, $category_index);
// Assign the imploded category name to the last map element.
$map[$category_index] = $category_path;
break;
}
}
}
}
return $valid ? $account : FALSE;
}
\033[0m все атрибуты по умолчанию
\033[1m жирный шрифт (интенсивный цвет)
\033[2m полу яркий цвет (тёмно-серый, независимо от цвета)
\033[4m выделение (ярко-белый, независимо от цвета)
\033[5m мигающий
\033[7m реверсия (знаки приобретают цвет фона, а фон -- цвет знаков)
\033[22m установить нормальную интенсивность
\033[24m отменить подчеркивание
\033[25m отменить мигание
\033[27m отменить реверсию
\033[30 чёрный цвет знаков
\033[31 красный цвет знаков
\033[32 зелёный цвет знаков
\033[33 коричневый цвет знаков
\033[34 синий цвет знаков
\033[35 фиолетовый цвет знаков
\033[36 цвет морской волны знаков
\033[37 серый цвет знаков
\033[40 чёрный цвет фона
\033[41 красный цвет фона
\033[42 зелёный цвет фона
\033[43 коричневый цвет фона
\033[44 синий цвет фона
\033[45 фиолетовый цвет фона
\033[46 цвет морской волны фона
\033[47 серый цвет фона
#Для каких интерфейсов и сетей открыт доступ
interfaces = lo eth0 wlan0 192.168.0.1/24
hosts allow = 127. 192.168.0.
#Пример публичной шары открытой на запись и чтение
[Video]
comment = Video
path = /mnt/Video
public = yes
guest ok = yes
browseable = yes
writable = yes
read only = no
create mask = 0666
directory mask = 0777
4. Не забудьте проверить права папки на запись и чтение
5. Добавим правила в iptables для доступа к самбе
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
Все XBMC установлен и готов к работе пока его не трогаем.
2. HTS Tvheadend — программа с удобным web – интерфейсом, которая позволяет расшарить тюнер по локальной сети, и уже имеет camd клиент (и даже сервер), для хитрого просмотра.
Качаем самые свежие исходники по ссылке
Распаковываем в удобное место, например в /opt/tvheadend
./configure –disable-ahavi –release
Если config на что то ругается значит не установлены кодеки. Ставим что он хочет еще раз config
./make
Если все прошло успешно то в папке /opt/tvheadend/build.Lnux появится бинарник tvheadend
Добавляем его в автозагрузку от обычного пользователя, главное чтобы пользователь являлся членом группы video
Первый раз запускать его нужно так
./tvheadend -C
Ключ -C сбросит пароль на вход в вебинтерфейс. Далее запускаем браузер, и заходим на сервер HTS например http://127.0.0.1:9981 или используем другой IP если он установлен на сетевой машине и видим
Настраиваем Tvheadend.
Начинаем с настройки LNB.
Жмём: Configuration-> TV Adapters-> Select TV adapter... -> Выбираем Вашу карту → Satellite config-> Add entry-> LNB type выбираем-> Cirlular 10750-> Можете поменять Name (например 36) -> Save changes
Прописываем параметры шаринга Code Wordl Client → Add entry → Hostname (адрес сервера) → Port → Username (имя) → Password (пароль) → DES Key (обычно 01:02:03:04:05:06:07:08:09:10:11:12:13:14 можно без двоеточий, он потом сам поставит) → Update Card (поставить галочку) → Enabled (поставить галочку) → Save changes ( Если несколько пакетов, то добавляем ещё). Если сервер законнектился, то данные сервера станут зелёными, если нет — красными.
Переходим к сканированию. У HTS Tvheadend есть список спутников, но в списке нет EutelsatW4W7. Добавить в список его нетрудно, но HTS tvheadend некорректно сканирует список транспондеров с круговой поляризацией . Он забывает переключить частоту гетеродина на 10750 мгц , но при ручном вводе параметров транспондеров , делает это правильно.
Последовательность операций такова.
Отключаем автоматический поиск транспондеров:
Configuration -> TV Adapters -> General -> Убираем все галочки -> делаем Save.
Для того , чтобы Tvheadend нашел все каналы нужно прописать по одному транспондеру каждого провайдера, остальные он найдёт сам. Прописываем транспондер провайдера New Media Legend.
Multiplexes -> Add muxe(es) manually... Прописываем транспондер провайдера New Media Legend ( у них два транспондера 12054000 R и 12015180 R ).
Прописываем транспондер НТВ+ (S 11785020 R , S2 11823000 R , S 11862000 R , S2 12073000 H , S 12245000 R . S 12265000 H , S 12284000 R , S 12322000 R , S 12380000 H , S 12399000 R , S2 12418000 H , S 12437000 R , S 12456000 H , S 12476000 R).
Frequency (khz): 11785000
Symbolrate (baud): 27500000
FEC: 3/4
Delivery System: SYS_DVBS
Constellation: QPSK
Polarisation: Circular right
Satellite config: 36
ADD
Теперь поставьте галочки Configuration-> TV Adapters-> General-> Autodetect muxes ( поиск транспондеров ), Idle scanning , Monitor signal qualiti , сделайте Save, и в списке Multiplexes сразу правильно пропишутся все транспондеры.
Могут случайно прописаться дубликаты некоторых транспондеров.
Отключаем автосканирование транспондеров, оно больше не нужно.
Для этого убираем галочку Configuration-> TV Adapters-> General-> Autodetect muxes ( поиск транспондеров ) -> делаем Save.
Удаляем дубликаты транспондеров , если они прописались. Для этого выделяем ненужный транспондер и жмём Delete selected… . Выглядеть он должен так:
Для этого нужно подождать несколько минут пока полность просканируются все каналы, а для проверки периодически обновлять браузер.
Теперь Мапим все каналы , т. е. Включаем их в список каналов.
General -> Map DVB services to channels... -> Ждем когда в System log закончится процесс Now idle. Проверяем в Services все ли каналы промапились. Если не все повторите.
Теперь эти программы есть в списке Channels и могут быть переданы в XBMC.
Делаем автозагрузку Tvheadend, если не хотите запускать из терминала. Система -> Параметры -> Запускаемые приложения -> Добавить -> Название (Tvheadend) -> Команда tvheadend -> Комментарий (любой ).
Либо кидаем символическую ссылку на бинарник в /home/user_name/.kde/Autostart
После перезагрузки Tvheadend будет загружаться автоматически.
Когда Tvheadend загружен, Kaffeine или другие SatTV программы работать не будут.
3. Теперь запускаем xbmc и в категории «видео» добавляем новый источник
Имя: ‘Спутник’ – или любое другое, которое вам нравится.
Путь: http://127.0.0.1:9982 (127.0.0.1 — в случае если HTS установлен на локальной машине, или IP адрес сетевой машины, как у меня)Внимание! Проверьте настройки доступа в HTS. Разрешите доступ из LAN если у Вас возникла ошибка.
‘*’ – значит любой юзер или пароль
И так, мы видим каналы «прямой трансляции»
Жмем на любой канал и наслаждаемся результатом
4. Устанавливаем Lirc и утилиту для настройки пульта
В моем случае пульт это ComproVideomate. Значит наше устройство будет event5 и оно определилось,
теперь запускаем
gnome-lirc-properties
В появившемся окне выбираем наш пульт и жмем автоконфиг.
/etc/init.d/lirc restart
В результате в файле /etc/lirc/lirc.conf.gnome будет наш конфиг
# LIRC configuration file for linux-input-layer
# Generated by GNOME LIRC properties on Tue Apr 5 17:50:06 2011
# from linux-input-layer-lircd.conf
#
# brand: Generic
# model no. of remote control: Linux Input Layer compatible Remote
#
begin remote
name COMPRO
bits 32
begin codes
BTN_0 0x10100
BTN_1 0x10101
BTN_2 0x10102
BTN_3 0x10103
BTN_4 0x10104
...
Там где name написано название нашего пульта запомните его оно понадобится дальше.
Теперь нужно привязать пульт с XBMC для этого копируем файл Lircmap.xml из /usr/share/xbmc/system в /home/user_name/.xbmc/userdata
Осталось только настроить, открываем файл видим
Теперь в remote device пишем название пульта то что мы выше смотрели
дальше команды в тегах типа это команды XBMC между тегами нужно писать название кнопки вашего пульта что бы посмотреть как называется кнопка в консоли запускаем
irw
и жмем нужные кнопки на пульте в консоль будет выдана инфа по кнопке