В этой статья я покажу 3 полезные фитчи, которые улучшат комфортное провождение в чате.
Когда в чате меняешь размер приватного окна, после обновления страницы или после выхода и входа в чат все стает на прежние места и приходится все настраивать заново. Сейчас мы сделаем чтобы фреймы запоминали свой размер, а точнее браузер пользователя запоминал размер фреймов который он выбрал, и будут его помнить не только после обновления, а в течении месяца, или пока не почистить куки браузера.
Что мы получаем: 1. Запоминание размера привата (при изменении его стрелочками) 2. Запоминание размера фрейма со смайлами (если включено растягивание фреймов в чате) 3. Убираем баг, когда админ нажимает на стрелочку изменения размера, уезжают админские/шаманские кнопки в нижнем фрейме
Установка: 1. Размер привата Открываем designes/ваш дизайн/menu_private.php Функцию var fr_size = 30;
function change_size(side)
{
if(side==1) fr_size-=4;
if(side==2) fr_size = 30;
if(side==0) fr_size+=4;
if(fr_size <10) { fr_size=10; }
if(fr_size >90) { fr_size=90; }
var po = null;
po = parent.document.getElementById('pvt_frameset');
if(!po) po= parent.document.all('pvt_frameset');
if(po) po.rows = "*,"+ fr_size + "%, 60";
else alert('You have too exotic old browser to support =)');
}
Заменяем на var fr_size = <?php echo (!empty($_COOKIE['size_privat'])) ? $_COOKIE['size_privat'] : 30; ?>;
function change_size(side) {
if(side==1) fr_size-=4;
if(side==2) fr_size = 30;
if(side==0) fr_size+=4;
if(fr_size <10) {
fr_size=10;
}
if(fr_size >90) {
fr_size=90;
}
var po = null;
po = parent.document.getElementById('pvt_frameset');
if (!po) {
po = parent.document.all('pvt_frameset');
}
if (po) {
po.rows = "*," + fr_size + "%, " + po.rows.split(',')[2];
setCookie('size_privat', fr_size, 3600 * 24 * 30);
} else {
alert('You have too exotic old browser to support =)');
}
}
function setCookie(name, value, expires, path, domain, secure) {
expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(+(new Date) + expires * 1e3)).toGMTString());
var r = [name + "=" + escape(value)], s, i;
for(i in s = {expires: expires, path: path, domain: domain}){
s[i] && r.push(i + "=" + s[i]);
}
return secure && r.push("secure"), document.cookie = r.join(";"), true;
}
Здесь мы сразу и пофиксили баг с заежанием админских кнопок
Открываем designes/ваш дизайн/voc.php перед if($cu_array[USER_CLASS] > 0 or $cu_array[USER_CUSTOMCLASS] != 0) {
вставляем // clever frames
$privat_size = (!empty($_COOKIE['size_privat'])) ? $_COOKIE['size_privat'] : $ex[3][1];
$privat_size = (int) $privat_size;
if ($privat_size > 100 || $privat_size < 5) {
$privat_size = 30;
}
// clever frames end
В строке <frameset name="pvt_frameset" rows="*, 30%, 80" bordercolor="#3D4976" framespacing="3">
30% заменяем на
<?=$privat_size;?>%
так же и в следующей строке
<frameset name="pvt_frameset" rows="*, 30%, 60" bordercolor="#3D4976" framespacing="3">
Приват у нас стал умным, теперь если нужем умный фрейм со смайлами,
(показан пример для мода smiles 2.0) в этом же файле перед
<frameset cols="*,<?php if(!$cu_array[USER_REDUCETRAFFIC]) { ?>50, <?php } ?>200,0" bordercolor="#3D4976" framespacing="1" frameborder="YES" scrolling=auto>
вставляем <?php
// clever frames (с) skriptoff mvoc.ru
$size_smiles = (!empty($_COOKIE['size_smiles'])) ? $_COOKIE['size_smiles'] : 50;
if ($size_smiles < 50) $size_smiles = 50;
// clever frames end
?>
где 50 это стандартный размер окна со смайлами, можно заменить на любое другое значение
строку
<frameset cols="*,<?php if(!$cu_array[USER_REDUCETRAFFIC]) { ?>50, <?php } ?>200,0" bordercolor="#3D4976" framespacing="1" frameborder="YES" scrolling=auto>
заменяем на
<frameset cols="*,<?php if(!$cu_array[USER_REDUCETRAFFIC]) { echo $size_smiles . ','; } ?>200,0" bordercolor="#3D4976" framespacing="1" frameborder="YES" scrolling=auto>
Открываем
designes/ваш дизайн/pictures.php после <? if ($DISPLAY == 'frame'): ?>
<script type="text/javascript">
вставляем /* clever frimes (c) Scriptoff */
window.onresize = function() {
setCookie('size_smiles', window.innerWidth, 3600 * 24 * 30);
}
function setCookie(name, value, expires, path, domain, secure) {
expires instanceof Date ? expires = expires.toGMTString() : typeof(expires) == 'number' && (expires = (new Date(+(new Date) + expires * 1e3)).toGMTString());
var r = [name + "=" + escape(value)], s, i;
for(i in s = {expires: expires, path: path, domain: domain}){
s[i] && r.push(i + "=" + s[i]);
}
return secure && r.push("secure"), document.cookie = r.join(";"), true;
}
/* clever frimes end */
Готово, фреймы стали умными, нижний фрейм перестал прыгать после изменения размера привата,
Автор поста:
Skriptoff,
Просмотров:
3605
Создан:
25 мая. 2016 в
18:30
Открываем designes/ваш дизайн/voc.php
после вставляем
после (ранее вставленного)
if ($size_smiles < 50) $size_smiles = 50;
вставляем
И ниже где мы вставляли это Заменить на это
1