Страницы: 1
okkamas_knife,
Мда, таки я почему-то не сомневался, что VBS это умеет. Правда использовать его конечно не буду, более ужасного "языка" "скриптов" не видел в жизни и не хочу даже пытаться что-то на нём написать. Плеваться при его виде хочется, впрочем, как и при виде cmd. Попробую portable...
Да, но вот вопрос-то в том, как из cmd скрипта выцепить путь до профиля? Я привык к нормальным ОС, а винду пришлось использовать по необходимости, но насколько мне известно в ней нету всяких grep, awk и perl. Посему я что-то плохо представляю как устроить на том убожестве, что доступно в винде, разбор текстового ini файла. М.б. есть другой способ узнать путь до текущего профиля? Или кто из гуру cmd поделится наводками на решение столь банальной задачи, как разбор текстового файла по регекспам?
Задача: необходимо удалять и ставить расширения TB на компьютеры пользователей в сети. TB стоит с дефолтными настройками, то есть в Program Files, и профили для него тоже дефолтные - то есть непонятный набор буквоцифр.default. Собственно вопрос: как это сделать? Конечно есть домен и есть все его плюшки. Проблема у меня возникла только в определении полного пути к папке extensions в профиле пользователя, ибо этот путь содержит всё то же странное и для всех различное имя профиля. Так-то всё просто: небольшой user-logon bat скрипт, который при отсутствии папочки расширения в профиле копирует её с шары. Вопрос при этом один: как из bat скрипта узнать имя текущего профиля TB?
Ну да, я сделал так:
1. Конфиг тандербирда имеет такой вот вид:
all.js
// For AutoConfiguration pref("general.config.obscure_value", 0); pref('general.config.filename', 'thunderbird.cfg');
thunderbird.cfg
// Начальные параметры настройки Thunderbird грузим с сервера if(getenv("USER") != "") { // *NIX settings var env_user = getenv("USER"); var env_home = getenv("HOME"); } else { // Windows settings var env_user = getenv("USERNAME"); var env_home = getenv("HOMEPATH"); } lockPref("autoadmin.global_config_url", "http://mail.domain.com/tb/user/"+env_user); lockPref("autoadmin.append_emailaddr", false);
2. На сервере в .htaccess в папочке tb:
[code]Options -Indexes +ExecCGI
AddHandler cgi-script .pl
## make sure nobody gets the htaccess files
<Files ~ "^[\._]ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
RewriteEngine on
RewriteBase /tb
RewriteRule ^user/(.*) conf.pl?user=$1 [L][/co
Ну что ж, я опять дурак! Можно на сервере через правила разрулить перенаправление /conf/username в conf.pl?user=test. Но блин это называется гланды через задницу, и не удивлюсь, если на этом пути тоже окажутся проблемы.
Так что вопрос остаётся: как по нормальному сделать автоконфигурирование perl скриптом??
Ан нет. Мне необходимо передать в perl скрипт текущее имя пользователя системы. Делают так:
lockPref("autoadmin.global_config_url", "http://websrv0.dncm.ru/thunderbird/conf.pl?user=test");
Но эта сволочь не передаёт имя пользователя на сервер через GET! Вопрос опять остаётся в силе: как сделать автоконфигурирование с помощью perl скрипта, а не только JS. Куда ни плюнь - ничего не работает как должно((
Собственно стоит задача - настроить автоконфигурацию Thnuderbird. Чтобы новому пользователю вообще никаких настроек не пришлось вводить. Ну это просто:
http://mit.edu/~thunderbird/www/maintainers/autoconfig.html
Делаем примерно как там написано, при установке Thunderbird добавляем пару строчек в all.js, потом делаем подгрузку конфига с сервера и всё работает. Но в JS не получается разрулить нормально различные дополнительные опции. Несмотря на какой-то мутный механизм коннекта к LDAP, приконнектиться к AD с указанием пользователя и пароля невозможно. И много чего ещё не разрулить только исходя и переменных среды.
В итоге рождается сама собой идея: каким-нибудь раком возложить процесс установки нужных параметров на perl скрипт. И вот вопрос: каким? Я по старой памяти пытался сделать в автоконфиге объект XMLHttpRequest - не сработало. Как ещё можно получить данные в JS из стороннего скрипта? Мне необходима именно автоконфигурация, т.е. чтобы новый пользователь запускает тандербирд - и
…Просто на всей странице ни у одного из родителей pre нет ограничения ширины (100% у таблицы не в счёт из-за «волшебства» таблиц).
Одно из простейших решений, задать корневой таблице стиль table-layout: fixed.
ООО!! Спасибо! Я всю жизнь пребывал в уверенности, что auto лейаут всё равно не вылезет за явно заданные размеры. Но теперь вижу, что строго говоря про это нигде ни слова нет :)
Хе! :P Ну значит непростое не работает! :D Ладно, пошёл за бубном, буду танцевать ритуальные танцы вокруг CSS пока не найду ту самую комбинацию стилей, которая меня устроит. Но баг - налицо. Ибо ошибок в вёрстке help.ubuntu.ru нет и в теории всё должно работать)))
Круто! Но вопрос-то остаётся открытым: почему простое указание overflov: auto у тега pre не работает? По всем спецификациям w3c - должно работать, ан нет. Я без крупного бубна всё равно не смогу изменить вёрстку страницы - только стили, ибо за вёрстку отвечает движок, который патчить неохота)))
Malamut
и что там должно быть?
я ничего странного не заметил
Там всё даже написано))) Тег pre растягивает страницу на всю ширину содержимого вместо того, чтобы скрывать непомещающуюся часть и показывать полосу прокрутки.
Есть такой баг в последней стабильной версии тандербёрда:
https://bugzilla.mozilla-russia.org/show_bug.cgi?id=656
Но мне таки нужно управлять подписками пользователей со стороны сервера! Так что вопрос собственно как этого добиться? В принципе, у меня есть доступ к AppData пользователей (замаплены на самба шару), так что в крайнем случае я могу что-то поменять в профиле. Только вопрос: что? Чтобы оно работало безо всякого вмешательства со стороны пользователя.
Проблема: уже не один год в FF не чинят баг с неработоспособным свойством overflow. Для примера зайдите сюда:
http://help.ubuntu.ru/terms/стилистика_статей
Если ничего не заметите - сожмите окно FF по горизонтали. Вопрос: реально ли каким-нибудь хаком обойти этот баг? Ибо честно говоря достал он жутко.
Страницы: 1