(c) Bonum
1 способ:
Код вставляется в HTML в форме ответа
<img onclick="bbcode(' [img]адрес_смайла[/img] ', '')" src="адрес_смайла" alt="Смайл" />
Будет отображаться смайл, по клику на который в текст сообщения будет вставлен необходимый BBCode
2 способ:
Код вставляется в HTML в форме ответа
<img onclick="return changeVisibility('id_смайлов', this)" src="адресс_смайла" alt="описание_смайлов" /> <div class="container" id="id_смайлов" style="display:none; width:199px; position: absolute; z-index: 2"> <div id="smilies-block"> <img src="адрес_смайла" alt="описание_смайла" style="cursor: pointer" onclick="bbcode(' [img]адрес_смайла[/img] ', ''); return changeVisibility('id_смайлов', this)" /> </div> </div>
id_смайлов - название блока смайлов. Например: smiles-icq, smiles-area2, smiles.
описание_смайла - по желанию, вешь вообщем-то ненужная, ИМХО, так что можно смело удалять.
Добавлять смайлы просто копируя строчку:
<img src="адрес_смайла" alt="описание_смайла" style="cursor: pointer" onclick="bbcode(' -- ', ''); return changeVisibility('id_смайлов', this)" />
Адреса можно писать в формате: uploads/имя_форума/имя_файла , исключение - адрес между --, там адрес должен быть полным, начиная с http:// и т.д.
Выглядит это так:
Используя этот способ можно создать несколько наборов смайлов, оформляя каждый набор отдельным блоком. Каждому блоку надо присваивать уникальные id.
3 способ (© karpoff):
Этот скрипт позволяет при нажатии на ссылку показать окошко с дополнительными смайлами.
При нажатии на доп. смайл его код дописывается в окно быстрого ответа.
Первая часть - её можно распологать где угодно - хоть в html-верхе, хоть в низе, хоть в объявлении.
<script language="JavaScript"> function popwnd() { var smiles = new Array //Добавлять смайлики здесь smiles.push("http://www.mysmiles.ru/super_smilies101.gif") smiles.push("http://www.mysmiles.ru/super_smilies097.gif") smiles.push("http://www.mysmiles.ru/super_smilies104.gif") smiles.push("http://www.mysmiles.ru/super_smilies088.gif") smiles.push("http://www.mysmiles.ru/super_smilies079.gif") smiles.push("http://www.mysmiles.ru/super_smilies070.gif") var msg = new String("") msg = "<html><head><TITLE>Дополнительные смайлики</TITLE></head>\r\n" msg += "<body bgcolor=#F5F5F5 >" msg = msg + "<" + "script language=\"JavaScript\">\r\n" msg += "function insert(a){\r\n" msg += "txt = \"[img]\"+a.src+\"[/img] \";\r\n" msg += "window.opener.bbcode(txt,'');\r\n" msg += "window.focus()\r\n" msg += "return false}\r\n" msg = msg + "</" + "script>\r\n" i=0 msg += "<div style=\"width: 100%; text-align : justify;\" >" while(smiles[i]) { msg = msg + "<img src=\"" + smiles[i] + "\" onclick=\"return insert(this)\">\r\n" i++ } msg += "</div><br><br><center><a href=\"\" onclick=\"window.close()\">Закрыть</a></center>" msg += "</BODY></html>"; popup = window.open("","popDialog","height=390,width=258") popup.document.write(msg) popup.document.close() return false } </script>
Добавлять смайлики нужно после "//Добавлять смайлики здесь". Просто скопируйте строчку smiles.push("...") и в кавычках пропишите URL смайла
Вторая часть кода - ссылка
<a id="addsmile" href="" onclick="return popwnd()">Дополнительные смайлики</a> <script language="JavaScript"> str=document.URL page=str.substring(str.lastIndexOf('/')+1) if(page.indexOf("viewtopic.php")==-1) document.getElementById("addsmile").style.display = "none"; </script>
Этот код распологайте там, где хотите расположить ссылку на доп. смайлики.
Только не забудьте скрипт, который идёт после ссылки. Благодаря ему ссылка отображается только при просмотре тем.
Более современные методы в этой теме - ♥ Дополнительные смайлы в одном окне со стандартными ♥