ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

FAQ 2.0 - вопросы и ответы (не флудить!)

 

318
Алекс @Рой31
Imho пишет:

Foggy пишет:

Imho пишет:

Всем привет. Кто может подсказать каким образом в верхний фрейм можно вывести иконку из никлиста? Что-то на подобии этого **********

Прикольная идея.
В скриптах находишь
icon="<img src="+icon+" border=0>";
set_privat=icon;

после этого вставляешь
if(nick==mynick && loaded) document.getElementById('myicon').innerHTML = icon;
В нужном месте в верхнем блоке вставляешь любой элемент с id="myicon". К примеру, <div id="myicon"></div>.

Показать текст

В общем сделал так :
if(icon_on) {
if((icon=="")||(icon==0)) icon=icon1;
icon="<img width=28 height=28 src="+icon+" style='-webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius:3px;' border='0'>";
set_privat=icon;
if(nick==mynick && loaded) document.getElementById('myicon').innerHTML = icon;

}

Но так не загружается ник в никлисте)

А блок с идентификатором myicon в топ ставил или куда тебе там надо? то биш это <div id="myicon"></div> И вместо div лучше применить span.

Отредактировано Рой31 - 01.05.2014
37
Imho @Imho
Рой31 пишет:

Imho пишет:

Foggy пишет:

Прикольная идея.
В скриптах находишь
icon="<img src="+icon+" border=0>";
set_privat=icon;

после этого вставляешь
if(nick==mynick && loaded) document.getElementById('myicon').innerHTML = icon;
В нужном месте в верхнем блоке вставляешь любой элемент с id="myicon". К примеру, <div id="myicon"></div>.

Показать текст

В общем сделал так :
if(icon_on) {
if((icon=="")||(icon==0)) icon=icon1;
icon="<img width=28 height=28 src="+icon+" style='-webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius:3px;' border='0'>";
set_privat=icon;
if(nick==mynick && loaded) document.getElementById('myicon').innerHTML = icon;

}

Но так не загружается ник в никлисте)

А блок с идентификатором myicon в топ ставил или куда тебе там надо? то биш это <div id="myicon"></div> И вместо div лучше применить span.

Действительно,я думал Див просто выводит,по этому и без него должно загружатся.Но нет.Вот поставил всё,всё работает.Спасибо.

Вот что получилось:


Отредактировано Imho - 01.05.2014
37
Imho @Imho
Есть такой кодик

Показать текст


Можно ли в нём задавать позиционирование для каждой картинки разное?
Ну к примеру в левом фрейме у меня так:

Показать текст


Картинка позиционирована в право,и размер на на весь див.Когда я через этот скрипт ставлю другую,она принемает размеры той что у меня в левом фрейме,и не на весь див её размер.В кратце.Как Добавить стилизирование к скрипту.И можно ли вообще?

2970
удалён @Foggy
Зачем div заменять на span? span - элемент строчный. Логикой подразумевается, что внутри него будет что-то строчное. div - блочный. Подразумевается, что внутри него может быть что-то блочное. В строчные элементы вставлять блочные - это плохое поведение, мама должна наказывать за это. Если очень нужно отменить перенос строки, лучше сделать в стилях #myicon {display: inline-block;}

По поводу скрипта... как-то так должно работать вроде
[spoiler=кусок кода]
// функция установки фона во всех фреймах
function fon(nnn, bg_r, bg_p, bg_s, bg_a){

var image = nnn ? 'url('+nnn+')' : 'none';
var bgi_r = bg_r ? bg_r : ''; // умолчание - повтор по обеим осям
var bgi_p = bg_p ? bg_p : ''; // умолчание - 0% 0%
var bgi_s = bg_s ? bg_s : ''; // умолчание - auto
var bgi_a = bg_a ? bg_a : ''; // умолчание - scroll

var leftdiv = document.getElementById("leftdiv");

leftdiv.style.backgroundImage = image;
leftdiv.style.backgroundRepeat = bgi_r;
leftdiv.style.backgroundPosition = bgi_p;
leftdiv.style.backgroundSize = bgi_s;
leftdiv.style.backgroundAttachment = bgi_a;
}

var imgfon = []; // массив ссылок на фоны и параметров фонов

// пример:
// imgfon[номер] = ["адрес_фона", "повтор", "положение", "растягивание", "скролл"];

imgfon[0]=["http://imgs.su/tmp/2014-05-01/1398967653-319.jpg", "no-repeat", null, "auto", "fixed"];

document.write('<div class="imgfon">');
for (var i=0; i<imgfon.length; i++) {
document.write('<img style="border-radius: 100px" border="1" width="45" height="45" onClick="fon(imgfon['+i+'][0], imgfon['+i+'][1], imgfon['+i+'][2], imgfon['+i+'][3], imgfon['+i+'][4]);" src='+imgfon[i][0]+' >');
}
document.write('</div>');

[/spoiler]
1. Если любой из новых параметров не задан явно, он берётся из css. Собственно какие могут быть параметры и их значения: **********, **********, **********, **********.
2. Размеры картинки в отдельные переменные нет смысла выносить, раз они везде одинаковые.
3. null надо писать, если нужно значение из css или умолчание браузера, если в css не указано.
4. После какой картинки делать перенос - убрал это из скрипта. Это можно сделать стилями. Либо **********, либо регулировать ширину #imgfon, что куда проще, по-моему.
5. Для справки: border-radius не имеет смысла ставить больше размеров картинки, он всё равно применится максимальный возможный. Максимум - половина большей стороны.

37
Imho @Imho
Foggy пишет:

Зачем div заменять на span? span - элемент строчный. Логикой подразумевается, что внутри него будет что-то строчное. div - блочный. Подразумевается, что внутри него может быть что-то блочное. В строчные элементы вставлять блочные - это плохое поведение, мама должна наказывать за это. Если очень нужно отменить перенос строки, лучше сделать в стилях #myicon {display: inline-block;}

По поводу скрипта... как-то так должно работать вроде
[spoiler=кусок кода]
// функция установки фона во всех фреймах
function fon(nnn, bg_r, bg_p, bg_s, bg_a){

var image = nnn ? 'url('+nnn+')' : 'none';
var bgi_r = bg_r ? bg_r : ''; // умолчание - повтор по обеим осям
var bgi_p = bg_p ? bg_p : ''; // умолчание - 0% 0%
var bgi_s = bg_s ? bg_s : ''; // умолчание - auto
var bgi_a = bg_a ? bg_a : ''; // умолчание - scroll

var leftdiv = document.getElementById("leftdiv");

leftdiv.style.backgroundImage = image;
leftdiv.style.backgroundRepeat = bgi_r;
leftdiv.style.backgroundPosition = bgi_p;
leftdiv.style.backgroundSize = bgi_s;
leftdiv.style.backgroundAttachment = bgi_a;
}

var imgfon = []; // массив ссылок на фоны и параметров фонов

// пример:
// imgfon[номер] = ["адрес_фона", "повтор", "положение", "растягивание", "скролл"];

imgfon[0]=["http://imgs.su/tmp/2014-05-01/1398967653-319.jpg", "no-repeat", null, "auto", "fixed"];

document.write('<div class="imgfon">');
for (var i=0; i<imgfon.length; i++) {
document.write('<img style="border-radius: 100px" border="1" width="45" height="45" onClick="fon(imgfon['+i+'][0], imgfon['+i+'][1], imgfon['+i+'][2], imgfon['+i+'][3], imgfon['+i+'][4]);" src='+imgfon[i][0]+' >');
}
document.write('</div>');

[/spoiler]
1. Если любой из новых параметров не задан явно, он берётся из css. Собственно какие могут быть параметры и их значения: **********, **********, **********, **********.
2. Размеры картинки в отдельные переменные нет смысла выносить, раз они везде одинаковые.
3. null надо писать, если нужно значение из css или умолчание браузера, если в css не указано.
4. После какой картинки делать перенос - убрал это из скрипта. Это можно сделать стилями. Либо **********, либо регулировать ширину #imgfon, что куда проще, по-моему.
5. Для справки: border-radius не имеет смысла ставить больше размеров картинки, он всё равно применится максимальный возможный. Максимум - половина большей стороны.

Блин...Надо в ваши ученики записаться,спасибо за очень подробное разъеснение.

А что касается бордер радиус,я просто так хотел сделать:


Просто по другому я заукруглять не умею.

Отредактировано Imho - 02.05.2014
2970
удалён @Foggy
Хотите учиться - **********)

128
Drongo @Drongo
Как работает "режим разработчика"? Там написано "Выбрав определённый режим, чат будет загружать созданные в данном режиме файлы только для Вас!" - для кого "Вас" админа? какой приоритет должен быть или порядковый номер статуса?
Поиск юзал ничё не нашёл.

2615
Сергей @Pegass
Drongo пишет:

Как работает "режим разработчика"? Там написано "Выбрав определённый режим, чат будет загружать созданные в данном режиме файлы только для Вас!" - для кого "Вас" админа? какой приоритет должен быть или порядковый номер статуса?
Поиск юзал ничё не нашёл.

Режим разработчика
запуск чата в режиме разработчика зависит от куки, а значит запускается для конкретного браузера в котором его включили. Включить можно в админке, можно прописать куки руками, можно войти в чат с параметром dev
Параметр dev может принимать 4 значения
0 - основной чат
1-3 соответственно режимы разраба 1-3

пример **********

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

Отредактировано Pegass - 09.05.2014
37
Imho @Imho
Можно переделать под своего бота в чат?

Показать текст


Подскажите как можно реализовать.И возможно ли вообще?

2970
удалён @Foggy
Это LioBot, он написан на CoffeScript...
Тут его код не пригодится. Нужно гуглить Google Search Images Api js.
********** и ********** есть примеры исполнения вывода на jQuery. ********** официальные примеры на js с использованием гуглобиблиотеки (вряд ли пригодятся).
Imho, если сам не справишься, вечером после работы мб гляну, коли время будет.

Как написать сообщение от имени бота:
wr('<span onclick="tonick(\'' + nick_r + ': \')" style="color: '+ color_r +'">' + nick_r + ':</span> Сообщение от имени бота');

37
Imho @Imho
Foggy пишет:

Как написать сообщение от имени бота:
wr('<span onclick="tonick(\'' + nick_r + ': \')" style="color: '+ color_r +'">' + nick_r + ':</span> Сообщение от имени бота');

Вот это полезно,но никак не могу разобрать как сделать что он писал юзеру в приват

2970
удалён @Foggy
Если нужно вывести только самому себе, то нет нужды даже обращаться к движку сообщений, можно вывести сообщение прямо в лог чата. Только тот юзер, у кого отработал этот кусок кода, это сообщение увидит, посему в строке /privat нет смысла:
document.getElementById('leftdiv').innerHTML += set_time + symbols[4] + '<span onclick="tonick(\'' + nick_r + ': \')" style="color: '+ color_r +'; cursor: pointer;">'+nick_r+'</span>: '+ mynick +' Сообщение';

37
Imho @Imho
Foggy пишет:

Если нужно вывести только самому себе, то нет нужды даже обращаться к движку сообщений, можно вывести сообщение прямо в лог чата. Только тот юзер, у кого отработал этот кусок кода, это сообщение увидит, посему в строке /privat нет смысла:
document.getElementById('leftdiv').innerHTML += set_time + symbols[4] + '<span onclick="tonick(\'' + nick_r + ': \')" style="color: '+ color_r +'; cursor: pointer;">'+nick_r+'</span>: '+ mynick +' Сообщение';

последний маленький вопрос.Прошу извинение за наглость)Это всё стало как надо,но не могу никак сделать цвет ника и сообщений.Ну к примеру в оригинале ставишь set_nick и как бы получается цвет ника.Можно ли боту именно к этому скрипту так сделать?

2970
удалён @Foggy
Чтоб настроить цвет ника, зарегистрируйте пользователя с ником бота, если его ещё нет. В настройках укажите нужный цвет.
Но в случае такого вывода, как я предложил выше, цвет взять прямо из настроек бота не получится, ибо среди скриптов нет такой настройки. Кроме вас никто же ботом не управляет? Если захотите поменять, придётся менять в настройках анкеты бота и тут:
document.getElementById('leftdiv').innerHTML += set_time + symbols[4] + '<span onclick="tonick(\'' + nick_r + ': \')" style="color: '+ color_r +'; cursor: pointer;">'+nick_r+'</span><span style="color: #000;">: '+ mynick +' Сообщение'</span>;
Собственно цвет текста это color: #000;.

p.s. set_nick это не цвет ника, а сам ник. и только в выводе никлиста, в других местах рекомендую не использовать.

2970
удалён @Foggy
Вопрос: как перезагрузить флэш элемент при помощи js? Есть вот такой embed
Показать текст

И нужно его не подключить снова в другом месте, а именно перезагрузить. Как это сделать? Поменять атрибут src на такой же, как был не срабатывает. Поменять на другой и следом вернуть - тоже.

2615
Сергей @Pegass
Foggy пишет:

Вопрос: как перезагрузить флэш элемент при помощи js? Есть вот такой embed
Показать текст

И нужно его не подключить снова в другом месте, а именно перезагрузить. Как это сделать? Поменять атрибут src на такой же, как был не срабатывает. Поменять на другой и следом вернуть - тоже.

<div id=test><embed .....></div>

document.getElementById("test").innerHTML="<embed .....>";

или ваять SWF принимающий параметры от js))))

424
ishkiniaev @ishkiniaev
BETEPAH пишет:

Еще вариант предложу:
<input id="setStyle" type="button" value="сменить стиль" style="cursor:pointer;">
<script>
var arstyle= [
'style.css',
'bstyle.css',
'cstyle.css'
];
document.getElementById('butt').onclick = function() {
var newStyle = arstyle.splice(0,1)[0];
arstyle.push(newStyle);
setstyle(newStyle);
}
</script>


Ваш вариант не работает 🙁
Вопрос о смене стиля в чате по нажатию одной и той же кнопки.


Кому не лень, помогите за одно сделать запоминание через куки. Кнопка выглядит следующим образом:
<a class="change_style" id="setStyle" style='border-bottom:1px dashed #ccc; text-decoration:none; font-weight:normal; cursor:pointer;' onclick="setstyle('beautiful_style.css')">Сменить оформление</a>

Отредактировано ishkiniaev - 05.06.2014
318
Алекс @Рой31
ishkiniaev пишет:

BETEPAH пишет:

Еще вариант предложу:
<input id="setStyle" type="button" value="сменить стиль" style="cursor:pointer;">
<script>
var arstyle= [
'style.css',
'bstyle.css',
'cstyle.css'
];
document.getElementById('butt').onclick = function() {
var newStyle = arstyle.splice(0,1)[0];
arstyle.push(newStyle);
setstyle(newStyle);
}
</script>


Ваш вариант не работает 🙁
Вопрос о смене стиля в чате по нажатию одной и той же кнопки.

тут возможно поможет реализация на jQuery или HDOM.

1007
BETEPAH @BETEPAH
ishkiniaev пишет:

BETEPAH пишет:

Еще вариант предложу:
<input id="setStyle" type="button" value="сменить стиль" style="cursor:pointer;">
<script>
var arstyle= [
'style.css',
'bstyle.css',
'cstyle.css'
];
document.getElementById('butt').onclick = function() {
var newStyle = arstyle.splice(0,1)[0];
arstyle.push(newStyle);
setstyle(newStyle);
}
</script>


Ваш вариант не работает 🙁
Вопрос о смене стиля в чате по нажатию одной и той же кнопки.


Кому не лень, помогите за одно сделать запоминание через куки.

За какое одно?
вариант не работает, конечно. Поменяйте id на нужный, чтоб заработал.

424
ishkiniaev @ishkiniaev
ВЕТЕРАН, айди менял - не помогло.

Ребят, есть обычное выпадающее меню, как сделать, чтобы оно выпадало только при нажатии?

**********