пятница, 10 декабря 2010 г.

Используйте в IE событие onclick вместо onchange

IE logo

Обнаружился новый интересный баг в ИЕ, причем насколько я понял он присутствует практически во всех версиях: в IE5, IE5.5, IE6, IE7, IE8. В Internet Explorer как-то своеобразно работает событие onchange в полях checkbox и radio в формах. При нажатии не происходит события onChange, оно происходит только, например, при нажатии в области формы.

<input type="radio" name="btn" value="1" onchange="alert(this.value);"/>1
<input type="radio" name="btn" value="2" onchange="alert(this.value);"/>2

Пример:

1
2

Решение - для совместимости с IE использовать в формах для полей checkbox и radio не событие onchange, а onclick
<input type="radio" name="btn" value="1" onclick="alert(this.value);"/>1

четверг, 11 ноября 2010 г.

Баг в Avira AntiVir Personal EN 10.0.0.561 нарушает работу Windows

Avira AntiVir Personal

Avira AntiVir Personal хороший антивирус, использую его довольно давно, да и по тестам постоянно показывает хорошие результаты. Но с последней версией разработчики что-то намудрили.

После обновления с компьютером стали твориться неприятные вещи: после некоторого времени работы, хотя по показаниям свободной памяти оставалось еще много всплывало сообщение (Всплывающее окно приложения Windows) "Слишком мало виртуальной памяти : Свободная виртуальная память системы заканчивается. Windows увеличит размер файла подкачки виртуальной памяти. Во время этого процесса некоторые приложения могут получить отказ на запросы к памяти. Дополнительные сведения содержатся в справочной системе."

После этого переставали отрисовываться окна и текст, программы аварийно заканчивали работу, терялись их настройки и данные, открытые файлы не сохраняись, а новые файлы не открывались. Лог заполнялся ошибками "Не найдено описание для события с кодом ( XX ) в источнике ( YY ). Возможно, на локальном компьютере нет нужных данных в реестре или файлов DLL сообщений для отображения сообщений удаленного компьютера. Попробуйте использовать ключ /AUXSOURCE= для получения этого описания, - дополнительные сведения об этом содержатся в справке. В записи события содержится следующая информация..."

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

Хотя на форуме писали, что помогает открыть Avira -> Configuration -> General -> Security и отключить "Protect processes from unwanted termination", но у меня система пришла в норму только после полного удаления Авиры.

Так что, если у вас возникают описанные симптомы и установлена Avira AntiVir Personal EN 10.0.0.561, то вы знаете что делать - сначала измените настройки, если же не поможет, то удалите до выхода исправленной версии.

вторник, 21 июля 2009 г.

Открытие файлов docx и xlsx в Office 2003

Иконка xlsx Иконка docx

В Микрсофт Офис 2007 создаются файлы с расширением docx (Microsoft Word) и xlsx (Microsoft Excel) и их можно открыть только в 2007 офисе.

Для того, чтобы открыть их в 2003 Офисе можно загрузить и установить "Пакет обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoint 2007" с сайта Майкрософт:
http://www.microsoft.com/downloads/details.aspx?FamilyId=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=ru

вторник, 19 мая 2009 г.

TinyMCE и оборачивание в параграф (p)

TinyMCE logo

По умолчанию TinyMCE любит обрачивать все в параграфы (p), а это не всегда удобно. Можно конечно задать стиль для параграфов, чтобы они не портили верстку,

p {margin: 0; padding: 0;}

но это не наш метод, так как параграфы могут еще пригодиться в тексте.

Для отключения автоматическиого оборачивания в параграф (<p> </p>) в TinyMCE нужно прописать, там, где он инициализируется:

tinyMCE.init({
...
forced_root_block : '', // необходимо для версий 3.x
force_br_newlines : true,
force_p_newlines : false
});

Про другие настройки можно почитать в документации к TinyMCE.



В заключение немного улыбнуться

tinymce problems - утиные истории
Оказывается подсказка гугла для помощи при поиске "tinymce problems" будет "утиные истории".

Хорошего дня!

пятница, 17 апреля 2009 г.

Как скачать полную версию IE6 SP1

Проблема - если вы хотите скачать Internet Explorer 6 с сайта Microsoft, то вам удасться скачать только установщик, размером примерно 483Кб. Затем, чтобы установить IE6 надо его запустить и он будет выкачивать из интернета необходимые для вашей версии Windows файлы. Это превращается в проблему если вам это надо проделать на компьютере без подключения к интернету (с медленным интернетом) или на большом количестве компьютеров. Но это можно обойти, для этого:
  1. Качаем инсталлятор ie6setup.exe в папку C:\Downloads.

  2. Создаем ярлык или идем в Пуск -> Выполнить и вставляем туда строку

    "C:\Downloads\ie6setup.exe" /c:"ie6wzd.exe /d /s:""#E"

    Диалоговое окно скачивания IE6 SP1

    Нажимаем ентер, выскакивает окно, в котором мы соглашаемся с условиями, выбираем путь для сохранения и версию(версии) windows и качаем.

    Диалоговое окно установщика IE6 SP1



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

Из полученной папки теперь при запуске ie6setup.exe можно устанавливать IE6 SP1 без подключения к инетрнету.

При входе в Windows происходит завершение сеанса

Окно входа в Windows XP

Симптомы - при входе в Windows сразу происходит завершение сеанса и выводится диалог выбора пользователя, но при каждой новой попытке входа в систему происходит "Загрузка личных настроек"... затем сразу "Сохранение" и вновь выход из системы.
Такая же читуация происходит в безопасном режиме и могут не работать точки восстановления.

Это могут быть:
1) Последствия вируса - тогда надо загрузится с загрузочного диска LiveCD и подключится к удаленному реестру.
Затем найти и проверить в реестре наличие параметра в точно таком виде:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="C:\WINDOWS\system32\userinit.exe,"


и наличие файла userinit.exe в папке \WINDOWS\system32.

А также если есть следующий параметр то он должен быть в виде

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"PersistBrowsers"=dword:00000000


Если все в порядке или не помогло, то:
2) Возможно были изменены буквы у разделов, тогда надо читать в помощь от микрософт:

http://support.microsoft.com/kb/249321
(Не удается войти в систему после изменения буквы диска с загрузочным разделом)

и
http://support.microsoft.com/kb/223188
(Изменение буквы системного или загрузочного диска в Windows)


пятница, 10 апреля 2009 г.

CubeCart Empties Basket and sessions fix

CubeCart logo

Symptoms - you add product to busket, but when you open it - you see empty basket. In result you lost customer, "clicking 'checkout' Empties Basket For 30% Of Customers"...

This solution applyed for CubeCart 3 with SEO Urls (User Friendly URL, Human Friendly URL, SEF) but I believe that in CubeCart 4 problem the same.

First of all I scrutinize symptoms and see that if we first open url with category (or document), than it was ok - we have only one cookie and one session.

But if we first open product than if we go to category - we have one more cookie with same name and new session.

After testing I found part of code that in use (session.inc.php)
if(!isset($_SESSION['ccUser']) && $results == FALSE) {
...
} else {
...
}


And in second case (first open product url) if we go to category we have no session (!isset($_SESSION['ccUser']===TRUE) and so create it one more time.

I decide that problem was in $session name and comment two lines of code (sessionStart.inc.php)

@ini_set("session.cookie_path",$sessionDomain);
session_name($sessionName);


and wow - its working, no more double session/cookies. I think that this is bug with name of session.

But when I went to sleep I think about this again and decide that if it was bug with session name it was fixed very soon.

And I understand that problem was in cookie_path. Of course - why I don't understand early - products have bigger nesting level

domain/category
domain/category/product

than product, so cookie set for certain category will work only with products inside of this category. I check and see that

$sessionDomain = substr($GLOBALS['rootRel'],0, strlen($GLOBALS['rootRel'])-1);

if $GLOBALS['rootRel'] ='\' return '' to us ($sessionDomain = ''). So used relative url for cookies, not cookies for whole domain (so if we first visit product page our first cookie set only for products with same category, not for whole domain and we can't see it in another category or basket etc.).

This is as I think - category nested in domains, so cookie set for category work for whole domain, and cookie for products only work for products in certain category.

So if you wanna fix - you need to find something like this
@ini_set("session.cookie_path",$sessionDomain);

in files working with session and just comment.

It took me whole day to find problem, and I hope this help to decide you problem faster.
What reason for redefinition session.cookie_path I really don't understand. (probably to separate site and admin part, but in result we lost customers.)

If you want to thank or you have a questions please comment.

пятница, 20 марта 2009 г.

Апострофы в украинской раскладке

Прямой и обратный апострофы

При наборе на украинской раскладке очень напрягает, то, что когда надо набрать апостроф надо переключаться на английскую раскладку. Немного поискав по инернету нашел несколько более простых способов:

1) Чтобы набрать апостроф () в Microsoft Word-е в украинской раскладке наберите
"Ctrl+э, э"

2) Для других приложений (впрочем, в ворде тоже работает) зажмите Alt и на цифровой клавиатуре (справа) с включенным Num Lock наберите 39
"Alt+39"

3) Чтобы набрать обратный апостроф () наберите
"Ctrl+~, ~"
(клавиша под Esc, где находится буква Ё)

четверг, 19 марта 2009 г.

Бесплатные антивирусы

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


http://www.virustotal.com/ru/ - онлайн проверка файлов на вирусы различными антивирусами.
http://online.drweb.com/?url=1 - онлайн проверка адресов (урлов) на вирусы с помощью dr.web.

А здесь можно скачать хорошие бесплатные антивирусы для постоянного использования

среда, 18 марта 2009 г.

Просмотр справки для Adobe CS4 в офлайне

adobe

Чтобы справка для приложений из пакета Adobe CS4 открывалась локально, а не лезла каждый раз в интернет, нужно для интересующих приложений в соответсвующей папке из
C:\Program Files\Common Files\Adobe\Help\
найти файл
helpmapBaseUrl.txt,
в котором прописан путь к справке на сервере и переименовать или удалить его.

среда, 10 декабря 2008 г.

FlashPlayerTrust - настройка безопасности в Flash Player для локальных папок и файлов

Если вы локально попытаетесь запустить свой флеш ролик в Flash Player больше 8 версии, который должен взаимодействовать с JavaScript на странице с помощью ExternalInterface, или должен взаимодействовать с серверным приложением, запущенным на компьютере или должен загружать данные с удаленного домена то у вас ничего не получится и вы увидите примерно такое сообщение:

Flash Player Security alert

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

Варианты решения проблемы:
1) Если есть интернет соединение, то используем менеджер настроек (Settings Manager) плеера - идем на специальную страницу настроек менеджера на сайте Macromedia, выбираем "Edit locations…" - "Add location…" и указываем путь к SWF-ролику или папке:

Flash Player Security alert

2) Без использования интернет соединения можно добавить ролик или папку в доверенную зону (Local-Trusted sandbox) используя конфигурационный файл FlashPlayerTrust.

Для этого надо попасть в папку FlashPlayerTrust (если ее нет, то создать) которая находится:

В Windows для всех пользователей:
\Macromed\Flash\FlashPlayerTrust
(например C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust)

В Windows для конкретного пользователя:
\Macromedia\Flash Player\#Security\FlashPlayerTrust
(например c:\Documents and Settings\fred\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust)

В Mac OS для всех пользователей:
/Macromedia/FlashPlayerTrust
(например /Library/Application Support/Macromedia/FlashPlayerTrust)

В Mac OS для одного пользователя:
/Macromedia/Flash Player/#Security/FlashPlayerTrust
(например /Users/fred/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust)

Там создаем конфигурационный файл (обычный текстовый файл с расширением .cfg), например flash-sec.cfg и в него вписываем путь к файлам, которым будем доверять, например:
D:\test

Требования к файлу простые:
- новый путь пишется с новой строки
- комментарии начинаются с решетки #
- если путь содержит не ASCII символы, файл должен быть в формате UTF-8 или UTF-16
- пути только к локальным папкам и файлам, возможны пробелы, кавычки не желательны

Также умельцы написали бат-файл, которым можно автоматизировать процедуру, создаем .bat файл с содержимым CLS
ECHO OFF
ECHO Регистрируем папку с роликом доверенной зоне...
ECHO %CD% > "%APPDATA%\Macromedia\FlashPlayer\#Security\FlashPlayerTrust\myfolder%RANDOM%.cfg"
ECHO Сделано. Перезапустите браузер если запущен.
PAUSE
EXIT

или

md "%appdata%\Macromedia\Flash Player\#Security\FlashPlayerTrust"
cd > "%appdata%\Macromedia\Flash Player\#Security\FlashPlayerTrust\MyFlash.cfg"

Взято с Adobe.com