Battle Forum

Battle Forum (http://battlefox.rooty.ru/index.php)
-   Интернет и сети (http://battlefox.rooty.ru/forumdisplay.php?f=70)
-   -   Opera* (http://battlefox.rooty.ru/showthread.php?t=1051)

rumitr 30.05.2007 23:15

a2z, ошибки выдает, поправь, хочу попробывать :huh: о а ручками :) прошел все нормально

mxx 01.06.2007 17:36

a2z, что значит "сборка"? опера же закрытая.
или это просто хитро настроенный вариант+userjs?
на "официальном" сайте ничего толком не нашёл по этому поводу.

a2z 01.06.2007 17:50

MaXx, особо не вникал, ибо fx ближе 8)

Цитата:

Сообщение от http://opera-ac.clan.su/
С этой версией расширяются горизонты браузера opera, невозможности стали возможностями, многое реализовано, более удобное использование ресурсов сети и системных возможностей!

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

В отличие от мнений некоторых, команда AC Team не вмешивается в исходный код браузера Opera, и никакими средствами не видоизменяет его. Мы лишь стараемся по мере возможности добавлять в браузер авторские утилиты, улучшать открытые файлы браузера (файлы конфигурации), и интегрировать те или иные сервисы которые значительно облегчают работу в сети Интернет!


Niki4OFF 07.06.2007 12:35

Темы для Opera
 
Я предлагаю делиться скинами для Opera. Выкладываю имеющиеся три скина :
Fantastic
emil-3_4
macosx_grey-2_2

Если у кого то есть еще скины, заливайте сюда.

a2z 09.06.2007 22:55

Скрытый текст
Вы должны войти под своим логином или зарегистрироваться и иметь 25 сообщение(ий)
Правила форума | Регистрация на форуме
Предупреждение: увидев этот блок скрытого текста, не стоит сразу бросаться набивать бессмысленные сообщения. Освойтесь на форуме, проникнитесь его атмосферой и пишите, если Вам действительно есть, что сказать. Если Модератор решит, что Вы набиваете сообщения, он удалит их все, а Вам выдаст либо предупреждение, либо сразу заблокирует Ваш аккаунт.

a2z 10.06.2007 20:02

Вложений: 1
Что это за панель такая и зачем она нужна? Она всегда неактивна.

Вложение 17727

rmn 10.06.2007 20:35

a2z, вообще-то там написано, что это navigation bar :)
активна она там, где вебмастер продумал и реализовал навигацию на сайте согласно спецификации W3С на HTML.
Походи с включенной панелью по сайту самой Opera хотя бы и все поймешь. ;)

Спецификацию см. http://www.w3.org/TR/html401/types.html#type-links

Yagr 10.06.2007 21:45

a2z, ну да rmn, уже ответил.
Это своя панель, можешь бросать на неё свои ссылки, обычно скрывается для более удобного просмотра страниц, вызывается клавой или мышом (Кому как удобней)
з.ы. и перемещается как и все панели.

a2z 11.06.2007 00:38

Цитата:

Сообщение от rmn (Сообщение 129570)
активна она там, где вебмастер продумал и реализовал навигацию на сайте согласно спецификации W3С на HTML.

Много ли таких? :)

Yagr 11.06.2007 00:45

Цитата:

Сообщение от a2z (Сообщение 129693)
Много ли таких?

Об чём это вы?
Панели вибираются в настройках и там же их местоположение.
Оффтоп
Оффтоп Весьма удобно, правда я её скрываю до поры, до времени.
Мне боковой панели хватает за глаза

a2z 11.06.2007 00:51

Цитата:

Сообщение от Yagr (Сообщение 129701)
Об чём это вы?

Yagr, я про сайты вообще то ;) Много ли таких ресурсов в сети, где вебмастер продумал и реализовал навигацию на сайте согласно спецификации W3С на HTML, кроме офсайта Opera? ^)

Yagr 11.06.2007 00:54

ну так подробнее плиз об этом )
Что-то не работает или ещё что?

rmn 11.06.2007 01:55

Цитата:

Сообщение от a2z (Сообщение 129705)
Yagr, я про сайты вообще то ;) Много ли таких ресурсов в сети, где вебмастер продумал и реализовал навигацию на сайте согласно спецификации W3С на HTML, кроме офсайта Opera? ^)

Дело в том, что эта фича была в спецификации с конца 90-х, уважающие себя вебмастера, верстальщики и прочие сайтостроители, читающие стандарты, книжки, спецификации, рекомендации и прочую занятную литературу вроде статей и обзоров, о подобных вещах знали уже тогда. Другое дело, поддержка фич браузерами. Недобраузер IE, традиционно не поддерживающий или по-своему интерпретирующий половину фич современного веба, вроде до сих пор про link тэг не знает. В Opera полноценная поддержки появилась в ноябре 2002, в Mozilla в октябре 2001. Собственно, я-то эту вещь именно в тогдашней Mozilla впервые увидел...

Так что и получается, что фича вроде как давно есть, браузеры ее поддерживать начали несколько позже, а недобраузеры как не поддерживали, так и не поддерживают. А посколько бОльшая часть сайтов затачивается исключительно под недобраузеры, про навигацию средствами html вебмастера и вовсе забыли. Сверстают нав. меню и успокоятся, вместо того, чтобы грамотно продублировать его link-тэгами.

Для полного счастья еще и из firefox на каком-то этапе эту вещь выкинули (или даже изначально ампутировали, когда mozilla пилить-точить начали). Сейчас, скорее всего, оно в виде какого-нибудь расширения существует.

Что касается сайта Opera - сверстан профессионально (даже валидацию xhtml 1.0 strict проходит, гыгы :]), так что неудивительно, что про navbar они не забыли. В онлайн-хелпе Оперы навигация, кстати, тоже активно используется.

lpn_com 18.06.2007 12:14

Написал тут небольшую програмку, вроде плогинчега, но если кто хочет может пользоваться)
Задача проги переделывать ссылки из вида http://disk.karelia.ru в вид \\Diskpublic.karelia.ru
После установки в меню Оперы появятся новые пункты
http://vip.karelia.ru/files/menu_176.jpg
При выборе пункта "Open" файл откроется (можно прослушать например mp3 не закачивая сам файл)
При выборе пункта "Explore" откроется папка где лежит файл (удобно для скачки большой пачки файлов)

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

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

Скачать можно здесь -> http://disk.karelia.ru/?d=1&f=lpn_co...+Converter.exe

Если автоматом не ставится, то вот пособие по ручной установке
Спойлер
Берем отсюда программу http://disk.karelia.ru/?d=1&f=lpn_co...+Converter.exe и ложим её в папку C:\Program Files\Opera 9\program\plugins\ (здесь и далее путь до папки с Оперой конечно свой)
Далее открываем свое пользовательское меню (открывать блокнотом), оно находиться здесь C:\Program Files\Opera 9\defaults\standard_menu.ini
Если же используете не стандартное меню, то тогда изменения нужно вносить в него.
Смотреть какое меню активировано тут: Настройки->Дополнительно->Панели->Профили меню.
Варианты местонахождения .ini файлов :
C:\Program Files\Opera 9\profile\menu\
C:\Documents and Settings\USER\Application Data\Opera\Profile\
Теперь когда открыли .ini файл ищем раздел [Link Popup Menu]
и между строк "Item, 50216=Copy link" и "Item, 50761=Save link" втавляем две таких строчки
Item, "Explore" = Execute program,"C:\Program Files\Opera 9\Program\Plugins\Disk Link Converter.exe","Explore %l"
Item, "Open" = Execute program,"C:\Program Files\Opera 9\Program\Plugins\Disk Link Converter.exe","Open %l"
еще рас повторяю пути до Оперы подставляйте свои.


Исходик программы
Спойлер
Код:

#include <windows.h>

char* NDH="disk.karelia.ru\0";
char NetBiosStr[1000];
BYTE KOI[]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
                        0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
                        0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
                        0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
                        0xA0,0xA1,0xA2,0xA3,0xBA,0xBD,0xB3,0xBF,
                        0xA8,0xA9,0xB4,0xAB,0xAC,0xB4,0xAE,0xB7,
                        0xB0,0xB1,0xB6,0xA6,0xAD,0xB5,0xB2,0xAF,
                        0xB8,0xB9,0xA4,0xBB,0xBC,0xA5,0xBE,0xA7,
                        0xE1,0xE2,0xF7,0xE7,0xE4,0xE5,0xF6,0xFA,
                        0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,
                        0xF2,0xF3,0xF4,0xF5,0xE6,0xE8,0xE3,0xFE,
                        0xFB,0xFD,0xFF,0xF9,0xF8,0xFC,0xE0,0xF1,
                        0xC1,0xC2,0xD7,0xC7,0xC4,0xC5,0xD6,0xDA,
                        0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,
                        0xD2,0xD3,0xD4,0xD5,0xC6,0xC8,0xC3,0xDE,
                        0xDB,0xDD,0xDF,0xD9,0xD8,0xDC,0xC0,0xD1};
BOOL Open;

INT WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
        if(strstr(lpCmdLine,"Open")==lpCmdLine) Open=TRUE;else Open=FALSE;
       
        //////////////////////////////////////////////////////////////////////////
        //                Поиск строки "disk.karelia.ru" в ссылке
        size_t Temp=strlen(NDH);
        while(_strnicmp(lpCmdLine,NDH,Temp)!=NULL)
        {
                if(*(lpCmdLine+1)==0) return FALSE;
                lpCmdLine+=1;
        }
        //////////////////////////////////////////////////////////////////////////
        //
        strcpy(NetBiosStr,"\\\\Diskpublic.karelia.ru\\public\\\0");
        //////////////////////////////////////////////////////////////////////////
        //        двигаем строку
        lpCmdLine+=Temp+2;
        //////////////////////////////////////////////////////////////////////////
        //        Ищем параметр "f=" в ссылке
        while(_strnicmp(lpCmdLine,"f=\0",2)!=NULL)
        {
                if(*(lpCmdLine+2)=='/') return FALSE;
                lpCmdLine+=1;
        }
        //////////////////////////////////////////////////////////////////////////
        // первая буква в имени пользователя как папка
        Temp=strlen(NetBiosStr);
        memcpy(NetBiosStr+Temp,lpCmdLine+2,1);
        CharLower(NetBiosStr+Temp);
        memset(NetBiosStr+Temp+1,'\0',1);
        strcat(NetBiosStr,"\\\0");
        //////////////////////////////////////////////////////////////////////////
        //        двигаем строку
        lpCmdLine+=2;
        //////////////////////////////////////////////////////////////////////////
        //        копируем остальную ссылку попутно меняя слэши и символы
        char* p_Temp=NetBiosStr+strlen(NetBiosStr);
        char Ch[]="0x00";
        BYTE chB;
        while(*lpCmdLine!='\0')
        {
                switch(*lpCmdLine)
                {
                case '+':
                        *p_Temp=' ';
                        lpCmdLine+=1;
                        p_Temp+=1;
                        break;
                case '/':
                        *p_Temp='\\';
                        lpCmdLine+=1;
                        p_Temp+=1;
                        break;
                case '%':
                        memcpy(Ch+2,lpCmdLine+1,2);
                        chB=(BYTE)strtol(Ch,NULL,16);
                        if(chB>=128&&chB<=255)
                        {                       
                                switch(chB)
                                {
                                case 0xA3: *p_Temp=0xB8;break; // буквы Ёё
                                case 0xB3: *p_Temp=0xA8;break;
                                default:
                                        int i;i=0;
                                        while(chB!=KOI[i]&&i<=128) i+=1;
                                        *p_Temp=i+128;
                                    break;
                                }
                        }
                        else *p_Temp=chB;
                        lpCmdLine+=3;
                        p_Temp+=1;
                        break;
                default:
                        *p_Temp=*lpCmdLine;
                        lpCmdLine+=1;
                        p_Temp+=1;
                    break;
                }
        }

        //////////////////////////////////////////////////////////////////////////
        //        Узнаем существует ли файл
                DWORD GFA=GetFileAttributes(NetBiosStr);
                if(GFA==-1)                // если не существует то выходим и копируем путь в буфер обмена
                {
                        char Buf[500];
                        strcpy(Buf,"Не удаётся найти \0");
                        strcat(Buf,NetBiosStr);
                        strcat(Buf+strlen(Buf),"\n\0");
                        strcat(Buf,"Путь скопирован в буфер обмена.");

                        OpenClipboard(NULL);
                        HGLOBAL hgBuffer;
                        char* chBuffer;
                        EmptyClipboard();
                        hgBuffer= GlobalAlloc(GMEM_DDESHARE, strlen(NetBiosStr)+1);
                        chBuffer= (char*)GlobalLock(hgBuffer);
                        strcpy(chBuffer,NetBiosStr);
                        GlobalUnlock(hgBuffer);
                        SetClipboardData(CF_TEXT,hgBuffer);
                        CloseClipboard();
                       

                        MessageBox(NULL,Buf,"Error",MB_OK);
                        return FALSE;
                }
                //////////////////////////////////////////////////////////////////////////
                //
                if(GFA&FILE_ATTRIBUTE_DIRECTORY)                // Если дирка
                {
                        ShellExecute(NULL,"Open",NetBiosStr,"","", SW_SHOWNORMAL);
                }
                else                                                                        // Если файл
                {
                        if(Open)
                        {
                                if(strcmpi(NetBiosStr+strlen(NetBiosStr)-4,".exe")==0)
                                {
                                        MessageBox(NULL,"низя","Exe",MB_OK|MB_ICONSTOP);
                                        return FALSE;
                                }
                                ShellExecute(NULL,"Open",NetBiosStr,"","", SW_SHOWNORMAL);
                        }
                        else
                        {
                                *(strrchr(NetBiosStr,'\\'))='\0';
                                ShellExecute(NULL,"Open",NetBiosStr,"","", SW_SHOWNORMAL);
                        }
                }
               

       
        return TRUE;
}


Исходник инсталятора
Спойлер
Код:

#include <windows.h>

INT WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
        DWORD PathLen=MAX_PATH;
        char ModPath[MAX_PATH];
        char PlugPath[MAX_PATH];
        char SelfPath[MAX_PATH];
        char INIBuff[1000];
        char newINIBuff[1000];
        char* Params[25];
        BOOL Install;

        char* Str1="Item, \"Explore\" = Execute program,\"";
        char* Str2="\",\"Explore %l\"";
        char* Str3="Item, \"Open\" = Execute program,\"";
        char* Str4="\",\"Open %l\"";

        //Item, "Explore" = Execute program,"","explore %l"
        //Item, "Open"        = Execute program,"","open %l"

        switch(MessageBox(NULL,"Для установки нажмите Yes, Для удаления нажмите No.","Disk Link Converter Installer",MB_YESNOCANCEL))
        {
        case IDYES:
                Install=TRUE;
                break;
        case IDNO:
                Install=FALSE;
            break;
        default:
                return TRUE;
            break;
        }
       
       

        //////////////////////////////////////////////////////////////////////////
        //        Читаем пути до Оперы из реестра
        HKEY m_HWNDK;
        RegOpenKey(HKEY_CURRENT_USER,"Software\\Opera Software",&m_HWNDK);
        if(RegQueryValueEx(m_HWNDK,"Plugin Path",NULL,NULL,(LPBYTE)PlugPath,&PathLen))
        {
                MessageBox(NULL,"Opera не найдена.","Error",MB_OK|MB_ICONSTOP);
                return FALSE;
        }
        RegQueryValueEx(m_HWNDK,"Last CommandLine",NULL,NULL,(LPBYTE)ModPath,&PathLen);
        RegCloseKey(m_HWNDK);
        //////////////////////////////////////////////////////////////////////////
        //        Копируем или удаляем программу
        GetModuleFileName(NULL,SelfPath,MAX_PATH);
        *(strrchr(SelfPath,'\\')+1)=0;
        strcat(SelfPath,"Disk Link Converter.exe\0");
        strcat(PlugPath,"\\Disk Link Converter.exe\0");
        if(Install) CopyFile(SelfPath,PlugPath,FALSE);
        else DeleteFile(PlugPath);
        //////////////////////////////////////////////////////////////////////////
        //        Вставляем пункты своего меню
        *(strrchr(ModPath,'\\')+1)=0;
        strcat(ModPath,"defaults\\standard_menu.ini\0");
        if(!GetPrivateProfileSection("Link Popup Menu",INIBuff,999,ModPath))
        {
                if(Install)
                {
                        MessageBox(NULL,"Файл \"standard_menu.ini\" не найден.","Error",MB_OK|MB_ICONSTOP);
                        return FALSE;
                }
                else
                {
                        MessageBox(NULL,"Удалено успешно.","Disk Link Converter Installer",MB_OK);
                        return TRUE;
                }
               
        }
        char* p_Sec=INIBuff;int i=0;
        Params[i]=p_Sec;
        while(*p_Sec!=0||*(p_Sec+1)!=0)
        {
                if(*p_Sec==0)
                {
                        i+=1;
                        Params[i]=p_Sec+1;
                        if(Install&&(strstr(p_Sec+1,"\"Explore\"")||strstr(p_Sec+1,"\"Open\"")))
                        {
                                MessageBox(NULL,"Уставлено успешно.","Disk Link Converter Installer",MB_OK);
                                return TRUE;        // уже установлено
                        }
                }
                p_Sec+=1;
        }
        p_Sec=newINIBuff;
        for (int j=0;j<=i;j++)
        {
                if((!Install)&&(strstr(Params[j],"\"Explore\"")||strstr(Params[j],"\"Open\""))) continue;
                strcpy(p_Sec,Params[j]);
                p_Sec+=strlen(Params[j])+1;
                if((Install)&&strstr(Params[j],"50216"))
                {
                        strcpy(p_Sec,Str1);p_Sec+=strlen(Str1);
                        strcpy(p_Sec,PlugPath);p_Sec+=strlen(PlugPath);
                        strcpy(p_Sec,Str2);p_Sec+=strlen(Str2)+1;
                        strcpy(p_Sec,Str3);p_Sec+=strlen(Str3);
                        strcpy(p_Sec,PlugPath);p_Sec+=strlen(PlugPath);
                        strcpy(p_Sec,Str4);p_Sec+=strlen(Str4)+1;
                }       
        }
        *p_Sec=0;
       
        if(!WritePrivateProfileSection("Link Popup Menu",newINIBuff,ModPath))
        {
                if(Install) MessageBox(NULL,"Установка не удалась.","Error",MB_OK|MB_ICONSTOP);
                else MessageBox(NULL,"Удаление не удалось.","Error",MB_OK|MB_ICONSTOP);
                return FALSE;
        }
       
        if(Install) MessageBox(NULL,"Установка завершилась успешно.\nПерезапустите Opera.","Disk Link Converter Installer",MB_OK);
        else MessageBox(NULL,"Удаление завершилась успешно.\nПерезапустите Opera.","Disk Link Converter Installer",MB_OK);

        return TRUE;
}


SoaT 19.06.2007 13:40

Оффтоп
Оффтоп lpn_com, а для FireFox'ика ни напишешь? ^^

rumitr 20.06.2007 00:09

lpn_com, все встало, но когда нажимаю, что одно, что другое
Цитата:

Сообщение от lpn_com (Сообщение 133431)
При выборе пункта "Open" файл откроется (можно прослушать например mp3 не закачивая сам файл)
При выборе пункта "Explore" откроется папка где лежит файл (удобно для скачки большой пачки файлов)

Пишет файл не найден, где я накосячил

zhurah 22.06.2007 00:38

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

lpn_com 22.06.2007 15:17

Вложений: 1
Soul of a tiger, в процессе:rolleyes:
rumitr, вот так вот пишет ?
Вложение 18854

Progresso 22.06.2007 15:48

lpn_com, а на других сервисах использывать нельзя? Ну там на ФТП?

lpn_com 22.06.2007 16:11

нет, нельзя, переделывает только сцылки с диска и только из http в NetBIOS, но за идею спасибо:)


Текущее время: 15:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot