Я не нашел простого расширения, чтобы грузилась страница в Боковой панели с набором смайликов и при клике на :) вставлялся текст "[ img]URL Smile[/img]" где находится курсор.

Самому мне в лом сейчас разбираться в XUL, а обычными возможностями JavaScripts тут похоже не обойтись...

Написал парсер на Пыхе для генерации списка.

Кто хочет закончить начатое? :D

Выделить код

Код:

<?php

function getpage($host, $headers)
{
	$site = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
	if (!$site) return false;
	
	socket_bind($site, 0, 0);
	socket_connect($site, gethostbyname($host), 80);
	
	socket_write($site, $headers, strlen($headers));
	$html = '';
	while (($text = socket_read($site, 1024, PHP_BINARY_READ)) !== false)
	{
		$text = preg_replace("/\r\n.{1,3}\r\n/", '', $text);
		$html .= $text;
//		print $text;
		if (strrpos($html, '</html>') || strrpos($html, '</HTML>') || strrpos($html, 'TTP/1.1 302 Found') ) break;
	}
	
	socket_shutdown($site);
	socket_close($site);
	
	return preg_replace("/\r\n.{1,3}\r\n/", '', $html);
}

$GET = "GET /content_plugins/gallery/gallery.php HTTP/1.1\r\n";
$headers = "Host: www.kolobok.us\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: ru,en-us;q=0.7,en;q=0.3\r\nAccept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\nKeep-Alive: 300\r\nConnection: keep-alive\r\n\r\n";

$page = getpage('www.kolobok.us', $GET.$headers);
if ($page === false) die('Not get!');

if (!preg_match_all("/<a href=\"gallery.php\?smiles\.(\d+)\">([^(<\/a>)]*)<\/a>/", $page, $smlist)) {die("\nFINISH!!!!!!\n");}

print_r($smlist);

$html = <<<HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang="ru">
<head>
<title>Смайлики</title>
<meta http-equiv='content-type' content='text/html; charset=utf-8' />
</head>
<body>
<table>
	<tr>
		<td>Kolobok.us</td>
	</tr>
HTML;

$fhtml = fopen('smiles.html', 'w');
fwrite($fhtml, $html);

foreach ($smlist[1] as $smnum => $sm)
{
	$GET = "GET /content_plugins/gallery/gallery.php?smiles.{$sm} HTTP/1.1\r\n";
	$page = getpage('www.kolobok.us', $GET.$headers);
	if ($page === false) print $sm." - Not get!\n";

	fwrite($fhtml, "\t<tr>\r\n\t\t<td>".$smlist[2][$smnum]."</td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td>");
	
	if (preg_match_all("/\/smiles\/([^\"]*)/", $page, $smiles))
		{
			foreach ($smiles[1] as $smile)
			{
				fwrite($fhtml, "<img onclick=\"DoSmiley(this.src);\" src=\"http://www.kolobok.us/smiles/".$smile."\"> ");
			}
	}

	if (preg_match_all("/href=\".*gallery\.php\?smiles\.".$sm."\.(\d+)\"/", $page, $smpages))
	{
		foreach ($smpages[1] as $smpage)
		{
			$GET = "GET /content_plugins/gallery/gallery.php?smiles.{$sm}.{$smpage} HTTP/1.1\r\n";
			$page = getpage('www.kolobok.us', $GET.$headers);
			if ($page === false) print $smpage." - Not get!\n";

			if (preg_match_all("/\/smiles\/([^\"]*)/", $page, $smiles))
			{
				foreach ($smiles[1] as $smile)
				{
					fwrite($fhtml, "<img onclick=\"DoSmiley(this.src);\" src=\"http://www.kolobok.us/smiles/".$smile."\"> ");
				}
			}
		}
	}

	fwrite($fhtml, "<td>\r\n\t</tr>\r\n");
}

fwrite($fhtml, "</table>\r\n</body>\r\n</html>\r\n");
fclose($fhtml);

?>

Раз никто не хочет браться...

Выделить код

Код:

<?xml version="1.0"?>

<?xml-stylesheet href="chrome://browser/skin/browser.css" type="text/css" ?>

<overlay id="myOverlay"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

<!-- browser type="content" autocompleteenabled="true" src="chrome://emptysidebar/content/smiles.html" / -->

<!-- button label="Save" accesskey="S" / -->

<!-- chrome://emptysidebar/content/smiles.html -->

<iframe src="http://www.google.com" flex="2" id="browserTable" name="table_frame" />

</overlay>

Как всеже должен выглядеть код, чтобы страница грузилась?

https://developer.mozilla.org/En/Creating_a_Firefox_sidebar - это взял за основу

Ну объясните: почему <browser> или <iframe> не грузят страницу ???

Эх... никто не откликнулся... cray.gif

http://rapidshare.com/files/231504011/Smiley.xpi.html - вот мое первое расширение
Лично мне не хватает только scrollbar - http://forum.mozilla-russia.org/viewtop … pid=324014

Не возражаю, если кто-то доведет до финальной стадии drinks.gif

P.S. При установке нужно вырубить проверку версии в Лисе (тоже странная проблема)

http://rapidshare.com/files/231534731/Smiley.xpi.html - саму структуру файлов только подправил

Keepun пишет

Лично мне не хватает только scrollbar

Выделить код

Код:

<grid width="100%" height="100%" style="overflow:auto;" flex="1">
Keepun пишет

P.S. При установке нужно вырубить проверку версии в Лисе (тоже странная проблема)

guid firefox неверный. Должно быть

Выделить код

Код:

<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- firefox -->

Anton, спасибо за помощь clapping.gif


Вот вам профиксиная версия:
http://rapidshare.com/files/231708343/Smiley_1.0.xpi.html

Keepun
Прикольно!  good.gif Только кое-чего не хватает: 1) кнопки для открытия/закрытия панели смайлов, чтоб можно было прикрутить её к панели AiOS. 2) Кнопок открыть/закрыть возле папок (надписей), а то у иеня сейчас они открываются только если упереть курсор в левый край экрана.  scare3.gif

Keepun
Для загрузки есть: http://forum.mozilla-russia.org/uploads.php

http://forum.mozilla-russia.org/uploaded/Smiley_1.1.xpi - добавил кнопку для открытия панели

Keepun
good2.gif  Вот теперь стало удобнее. Ещё бы со вторым пунктом вопрос решить ... А то приходится по нескольку раз кликать мышем перемещая курсор, пока не найдёшь нужное место. Или это только у меня так? to_take_umbrage.gif

Хм... у меня список расскрывается, если клик на строчке и не зависимо в какой части...

Вообще позже дизайн доработаю.

https://addons.mozilla.org/ru/firefox/addon/11903

Keepun пишет

Хм... у меня список расскрывается, если клик на строчке и не зависимо в какой части...

Возможно это мой персональный баг, но он почему-то у меня на разных профилях и в разных версиях ФФ.  JC_thinking.gif

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

MySh
По моей просьбе Anton написал код кнопки (Custom Buttons). Вот! Работает без нареканий.

68agasfer
Спасибо. Но к чему изобретать работающий велосипед? :)

MySh
Это так, на всякий случай. Вообще-то, когда код писали, родной кнопки ещё не было. blush.gif

А я не понял, что он сделал...

Сама загвоздка в type="checkbox" и если кнопка будет на панели AinO Sidebar, то действие будет вполе логичное, но пока не понимаю, как "отжать" на самой панели при сворачивании.

12-05-2009 18:57:08
Кнопка типа Закладки из toolbarbuttons себя так ведет

Keepun пишет

Сама загвоздка в type="checkbox" и если кнопка будет на панели AinO Sidebar, то действие будет вполе логичное, но пока не понимаю, как "отжать" на самой панели при сворачивании.

Кнопке надо добавить атрибут

observes="viewSmileySidebar"

И ещё, возможно стоит сменить "yourdomain" в id расширения ?

Хорошо бы добавить тэгам row для заголовков и картинок разные идентификаторы или классы, чтобы было проще Stylish'ем внешний вид перекраивать ;)

Версия 1.2.1:
Добавлены id и class для Stylish
Профиксил кнопку

Anton пишет

И ещё, возможно стоит сменить "yourdomain" в id расширения ?

Я не прочь, но Мозилла не дает сменить GUID girl_cray2.gif

Keepun

Добавлены id и class для Stylish
Профиксил кнопку

Спасибо. Вот теперь можно попробовать заняться украшательством  connie_xmas-moose.gif  ;)
И ещё: в расширении заявлена поддержка локалей, а на самом деле её практически нет — все пункты меню прописаны напрямую в XML-файле и выводятся только по-русски. Надо бы, наверное, что-то с этим сделать.

Версия 1.2.2:
+ Добавлены "потерянные" смайлики :)
+ Добавлена возможность перевода на другие языки

https://addons.mozilla.org/ru/firefox/addon/11903

Keepun
   После обновления до 1.2.2 :
1) Пропала кнопка. В настройках панелей её тоже нет.
2) Из меню "Вид > Боковая панель >" исчезла надпись SmileySidebar.
   Пробовал в 3.5b4, 3.5b5pre, 3.6a1pre на 3 разных профилях. :angry:

Duble3, проверил на 3.5б4 - пашет

Duble3 пишет

2) Из меню "Вид > Боковая панель >" исчезла надпись SmileySidebar.

"Смайлики :)"

Duble3
Не подтверждаю, всё работает.

Keepun пишет

Duble3, проверил на 3.5б4 - пашет

А у меня не хочет. Возможно, конфликт с чем-то.

Keepun пишет

"Смайлики :)"

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

А если не секрет, для чего это всё?
Есть ведь давным-давно "kolobok smiles", в том числе и для firefox.

alex_past пишет

А если не секрет, для чего это всё?

Для меня girl_blum.gif

alex_past пишет

Есть ведь давным-давно "kolobok smiles"

На сайте расширений Лисы его не видно...

Ну, не хочь - не юзай... мне мой удобнее girl_angel.gif

Keepun: нет, прошу прощения, если это по-хамски прозвучало. Я только "за" :)
Кстати, глянь то расширение - имхо, очень удобно. Оно привязано к kolobok.su - самому здоровому складу смайликов. Там смайлики разбиты по галереям и на панельке этого расширения галереи автообновляются.
Я не к тому, что не делай своё, а про то, что такой функционал и тебе бы надо включить - популярная штука будет. Особенно если будет возможность такие галереи на лету делать: зашел на любой сайт, открыл страничку с галереей рисунков, нажал пимпочку - и твоя штуковина страничку распарсила и выдернула себе на склад все ссылки на картинки :) И на боковой панельке с твоим расширением у меня появилась еще одна папочка - с именем, которое я ей придумал при нажатии на пимпочку. И я могу на эту папочку нажать, она открывается, и я могу насладиться картинками в ней, а когда тычу в картинку, ссылка летит в поле ввода.
Ну, я художник, я так вижу.... :rolleyes:

Странная, однако, штука - решил обновить 3.6a1pre ru (обычно использую нелокализованные ночнушки), открываю и ...  wacko1.gif  SmileySidebar прекрасно отображается.  dash2.gif  Решил проверить остальные профили, в которых он установлен - везде виден!  Проверил локализованные 3.5b4 и 3.5b5pre - всё O'K! В нелокализованных - не отображается. Интересно - это мой персональный глюк?  JC_thinking.gif  JC_see_stars.gif

alex_past пишет

kolobok.su - самому здоровому складу смайликов.

http://www.msnhiddenemoticons.com/ - здесь мало? laugh1.gif
А ведь я и его распарсить могу yahoo.gif

alex_past пишет

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

ИМХО, это мало кому нужно... зря только Лису нагружать, которая и так 200мб оперативы сжирает.
Иль смайликов не хватает?

Keepun пишет

ИМХО, это мало кому нужно...

Может, ты и прав. Но, имхо, смайлики - это кучеряшки, а любители кучеряшек и ценят в основном их за необычность - чтоб не как у всех было.
Я вот пятьсот мульёнов раз попадал на гнилые форумы или блоги, где делать вообще нечего, а смайлики у них очень классные. Так вот нажал бы пимпочку и их не потерял... :)

Лису нагружать, которая и так 200мб оперативы сжирает.

Фигу. Это мелкомягкий осёл сжирает - иначе у него все глюки не помещаются, приходится половину глюков в своп сбрасывать. А лиса кушает. С пользой для дела. :)

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

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

вот это расширение > EmotiConverter кажется позволяет делать что то подобное....и не только со смайликами  :)

Всем привет
Кто знает подскажите пожалуйста как показать моему дополнению что у меня все смайлы находятся в папке smile
и путь к ней такой
chrome/content/smile/

Вот мой файл манифеста, я его делал по типу speeddial
overlay chrome://browser/content/browser.xul chrome://ikariam/content/ikariam.xul
content     ikariam    chrome/content/
skin    ikariam    chrome/content/smile/

Вот мой xul файл , он конечно только начат, но смайлик уже не хочет отображаться. Также учитывайте что он анимированный, может в этом загвоздка.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="jquery.js" type="application/x-javascript"/>
<script src="script.js" type="application/x-javascript"/>
    <label value="Смайлики для чата Икариам"/>
    <vbox minheight="50px">
    <image id="im_1" src="smile/bp.gif" class="cell" onclick="Hello()"/>
        <label control="massageone" value="Вводите текст:"/>
        <textbox id="massageone" value="Привет Мир!" multiline="true"/>
    </vbox>
</window>

Это гениально! :)

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

Спрашиваю, потому что я в этом не просто полный ноль, а ноль по Кельвину. :)

Тайлер, в файле "c:\Documents and Settings\{USER}\Application Data\Mozilla\Firefox\Profiles\{PROF}\extensions\smileys@yourdomain.com\chrome\content\smileypage.xul" все хранится. Если заменить адреса на свои, то Лис будет их вставлять. Достаточно соблюдать аналогию кода.

Файл свой сохранить в другое место тоже не забывайте, а то он затрется при обновлении.

Keepun, спасибо :)
Можно попробовать, что получиться... Примерно понимаю, где что там прописано.
А никак нельзя запретить обновления?

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

KOLOBOK Smiles 1.1 - Боковая панель смайликов, которые можно вставлять как BB код, HTML код или просто ссылку на картинку.

V.K.L чтобы добавить изображение на веб-станицу оно обязательно должно быть предварительно загруженно в интернет :)