[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта


Скрипты и коды для юкоз - Форум аццкого кодера » Системные скрипты. Вопросы, решения, примеры при работе с системными функциями. » Замена стандартных надписей в ajax-окнах

Замена стандартных надписей в ajax-окнах
[1] WolFoX [30.04.2013, 20:04]
Пытаюсь "пристроить" себе на форум скрипт по замене стандартных надписей в Репутации пользователей.
Код
<a href="javascript://" onclick="rep_open();">История уважения</a>   
   <script type="text/javascript">    
    function rep_open(){    
    new _uWnd('Rh','История уважения',400,250,{autosize:1,closeonesc:1,maxh:300,minh:100,oncontent:function(){    
    _uWnd.setTitle('Rh','История уважения');    

    $('td:first').html('Уважение '+ $('td:first').html().split(' ')[1] );    
    if($('div').html().indexOf('пользователя пуста') != -1){    
    $('.myWinCont').find('div:contains("История репутации для данного пользователя пуста.")').html('<div style="border: 1px solid rgba(0,0,0,0.30); padding: 7px; color: rgba(0,0,0,0.65); background: rgba(255,255,255,0.25); margin: -5px;">История уважения данного человека не найдена.</div>');    
    } // uSite.su    
    }},{url:'/index/9-$_USER_ID$'});return false;    
    };    
    </script>


В моем случае репутации была изменена на наличные / бюджет. Скрипт вроде как встает, при наведении мышой на сумму "денег" я вижу, что при клике должен сработать скрипт. Но когда открывается окошко, мне система пишет "Доступ запрещен". Меняла $_USER_ID$ на $UID$. Окно открывается со всеми внесенными изменениями, но информация отображается только от одного пользователя. Не пойму почему. То есть, я изменила репутацию пользователю №1, стала просматривать репутацию у других пользователей, но у них отображается информация о репутации пользователя №1. При смене $_USER_ID$ на $CUR_USER_ID$, окно открывается без проблем, но естественно, информация только по пользователю, зашедшему на сайт. И такие проблемы как в Виде материалов форума, так и на Персональной странице пользователя.

Буду очень признательна, если подскажете, какой момент я упустила =)
P.S. Ссыль на пост игрока, которому меняла репутацию. Просмотр доступен и для гостей.


Сообщение отредактировал WolFoX - Вторник, 30.04.2013, 20:05
[2] likbezz [01.05.2013, 03:04]
WolFoX,
Цитата (WolFoX, Вт, 30.04.2013, 20:04:02)
Буду очень признательна, если подскажете, какой момент я упустила =)

Тот, что скрипт предназначен для профиля, а не для форума.
У вас с каждому пользователю одинаковая функция прописана, а из множества одинаковых функций, выполняется всегда последняя.

Так что делаем вот так:
В шаблон вид материалов форума вот это:
Код
<a href="javascript://" onclick="rep_open('$UID$');return false;">История уважения</a>


А куда нибудь в шаблон форум общий вид, вот это:
Код
<script type="text/javascript">     
function rep_open(id){
if(!id)return;
new _uWnd('Rh','История уважения',400,250,{autosize:1,closeonesc:1,maxh:300,minh:100,oncontent:function(){ _uWnd.setTitle('Rh','История уважения');
$('td:first').html('Уважение '+ $('td:first').html().split(' ')[1] );
if($('div').html().indexOf('пользователя пуста') != -1){
$('.myWinCont').find('div:contains("История репутации для данного пользователя пуста.")').html('<div style="border: 1px solid rgba(0,0,0,0.30); padding: 7px; color: rgba(0,0,0,0.65); background: rgba(255,255,255,0.25); margin: -5px;">История уважения данного человека не найдена.</div>');     
}}},{url:'/index/9-'+id});return false;
};     
</script>
[3] WolFoX [01.05.2013, 09:48]
День добрый!
При установке вышло то, что и выше - окно не открывается вообще) причем скрипт не работает и в Профиле пользователя, хотя предназначен для него.
[4] likbezz [01.05.2013, 10:05]
WolFoX,
Цитата (WolFoX, Ср, 01.05.2013, 09:48:48)
При установке вышло то, что и выше - окно не открывается вообще) причем скрипт не работает и в Профиле пользователя, хотя предназначен для него.

Цитата (likbezz, Ср, 01.05.2013, 03:04:44)
А куда нибудь в шаблон форум общий вид, вот это:
Код

<script type="text/javascript">
function rep_open(id){
if(!id)return;
new _uWnd('Rh','История уважения',400,250,{autosize:1,closeonesc:1,maxh:300,minh:100,oncontent:function(){ _uWnd.setTitle('Rh','История уважения');
$('td:first').html('Уважение '+ $('td:first').html().split(' ')[1] );
if($('div').html().indexOf('пользователя пуста') != -1){
$('.myWinCont').find('div:contains("История репутации для данного пользователя пуста.")').html('<div style="border: 1px solid rgba(0,0,0,0.30); padding: 7px; color: rgba(0,0,0,0.65); background: rgba(255,255,255,0.25); margin: -5px;">История уважения данного человека не найдена.</div>');
}}},{url:'/index/9-'+id});return false;
};
</script>

У вас этот скрипт вставлен?



Цитата (likbezz, Ср, 01.05.2013, 03:04:44)
а из множества одинаковых функций, выполняется всегда последняя.

..
Прикрепления: 2323981.png (10.3 Kb)
[5] WolFoX [01.05.2013, 10:21]
likbezz, к тому моменту, как вы написали, я уже там все менять начала =) но я поняла, в чем была ошибка в Виде материалов - у меня через условные операторы был прописан просмотр репутации для админа отдельно, для пользователей отдельно. Эту часть я поставила только для пользователей, поэтому когда просматривала сама, у меня ничего и не открывалось biggrin

Код
<a href="javascript://" onclick="rep_open('$UID$');return false;">


Ох, и не внимательная я =) благодарю Вас за помощь!
А вот почему в профиле стандартный скрипт срабатывать не хочет, мне тоже не ясно =) пойду дальше копаться.


Сообщение отредактировал WolFoX - Среда, 01.05.2013, 10:24
[6] likbezz [01.05.2013, 10:37]
WolFoX,
Цитата (WolFoX, Ср, 01.05.2013, 10:21:13)
А вот почему в профиле стандартный скрипт срабатывать не хочет, мне тоже не ясно =)

Потому что там нет оператора $UID$, но есть $_USER_ID$ ..
[7] WolFoX [01.05.2013, 11:06]
likbezz, перекопала скрипт по новой - при установке стандартного, да и при всех манипуляциях по замене условных операторов окно истории просто не открывается. Если ставить стандартную ссылку системы, все открывается, но, соответственно, без замены слова репутация. Как только ставлю скрипт обратно, окошко перестает всплывать 0_0
[8] likbezz [01.05.2013, 11:17]
WolFoX,
Цитата (WolFoX, Ср, 01.05.2013, 11:06:10)
перекопала скрипт по новой - при установке стандартного, да и при всех манипуляциях по замене условных операторов окно истории просто не открывается.




WolFoX,
Цитата (WolFoX, Ср, 01.05.2013, 11:06:10)
перекопала скрипт по новой

А зачем? я вам дал все готовое - ничего копать не надо, просто аккуратно поставить.

Цитата (WolFoX, Ср, 01.05.2013, 11:06:10)
да и при всех манипуляциях по замене условных операторов

Какие там условия? ..
На форуме $uid$ в профиле $_user_ID$ ..
Прикрепления: 5171501.png (125.7 Kb)
[9] WolFoX [01.05.2013, 12:22]
likbezz, я сейчас веду речь про отображение на странице профиля пользователя) на самом форуме все, благодаря Вам, прекрасно работает. А при открытии Профиля пользователя отдельной страницей скрипт не вызывается.
Прикрепления: 6459498.jpg (891.2 Kb)


Сообщение отредактировал WolFoX - Среда, 01.05.2013, 12:23
[10] likbezz [01.05.2013, 12:27]
WolFoX,
Цитата (WolFoX, Ср, 01.05.2013, 12:22:14)
А при открытии Профиля пользователя отдельной страницей скрипт не вызывается.

Для профиля тот же скрипт, только вместо:
Код
<a href="javascript://" onclick="rep_open('$UID$');return false;">История уважения</a>

вот это:
Код
<a href="javascript://" onclick="rep_open('$_USER_ID$');return false;">История уважения</a>


.. И желательно правильно писать.. и закрывать теги.


..
Прикрепления: 4666804.png (15.6 Kb)
[11] WolFoX [01.05.2013, 12:37]
likbezz, невнимательность biggrin благодарю!
[12] likbezz [01.05.2013, 12:39]
И уберите вот этот фрагмент из шаблона форума:
Код
$(function() {prettyPrint();});

- ошибка - нет такой функции у вас.

И вот это:
Код
<script type="text/javascript" language="javascript">
var colorID = document.addform.fcolor.options.length;
var colors = new Array();
colors[0] = new Array("Мысли","#A52A2A","color:#A52A2A");
for(i=0;i<colors.length;i++) {
document.addform.fcolor.options[colorID] = new Option(colors[i][0],colors[i][1]);
document.addform.fcolor.options[colorID].setAttribute("style",colors[i][2]);
colorID++;}
</script>


замените на вот это:
Код
<script type="text/javascript">  
if(document.getElementById('fcolor')){
var colorID = document.addform.fcolor.options.length;
var colors = new Array();
colors[0] = new Array("Мысли","#A52A2A","color:#A52A2A");
for(i=0;i<colors.length;i++) {
document.addform.fcolor.options[colorID] = new Option(colors[i][0],colors[i][1]);
document.addform.fcolor.options[colorID].setAttribute("style",colors[i][2]);
colorID++;}};
</script>


Полная версия сайта