0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 3366 Просмотров

пишу мамбот. нужно узнать id статьи которую он обрабатывает
также нужно узнать залогинен ли юзер, и, если да, то его id
« Последнее редактирование: 03.01.2007, 17:18:14 от ply »
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
$row->id


global $my;
if( $my->id ) {...}
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

спасибо.
id статьи раотает

Забыл добавить что id юзера надо узнать в скрипте который обрабатывает ajax-запрос. там $my не определен
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей

global $my;
echo gettype($my);
echo $my->id;

сервак отвечает NULL
скрипт выполняется отдельно (ajax-запрос идет напрямую к этому скрипту).
может подключить файлы какие?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
опиши процесс вызова - кто, откуда, куда...
$row же у тебя как-то присутствует?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

$row мне нужно в мамботе вызывать

пишу ajax-рейтинг
Процес вызова:
пользователь голосует и скрипту передается номер статьи и рейтинг который он поставил статье. В скрипте надо добавить рейтинг в базу и отправить ответ, чтото типа "все ок. голос принят".
мамбот:
Код
$_MAMBOTS->registerFunction( 'onPrepareContent', 'plyRating' );

function plyRating($published, &$row, &$params, $page=0 ) {
global $database, $_MAMBOTS, $Itemid,$mosConfig_live_site,$my;

        //getting settings
        $placement = intval($params->get( 'imageplacement', 2 ));
        $out = '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/smallajax.js"></script>';
        $out .= '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/rate.js"></script>';
        $out .= '<script type="text/javascript">var url1="'.$mosConfig_live_site.'";var cid="'.$row->id.'";</script>';

        $out .= '<form method="post" id="ratingform">

      <input type="radio" name="rate" value="5" onclick="r1=5;addrating();" /><span onclick="nodeClick(this);">5</span>
      <input type="radio" name="rate" value="4" onclick="r1=4;addrating();" /><span onclick="nodeClick(this);">4</span>
      <input type="radio" name="rate" value="3" onclick="r1=3;addrating();" /><span onclick="nodeClick(this);">3</span>
      <input type="radio" name="rate" value="2" onclick="r1=2;addrating();" /><span onclick="nodeClick(this);">2</span>
      <input type="radio" name="rate" value="1" onclick="r1=1;addrating();" /><span onclick="nodeClick(this);">1</span>
    </form>' ;
     $row->text .= $out;
}

rate.js
Код
var r1=0;
var r2=0;
var htmlReyt='';
function addrating(){
if(r1 && r2){
    if(cid){
alert('r1='+r1);
      url2=url1+"/mambots/content/plyrating/setrating.php?cid="+cid+"&r1="+r1+"&r2="+r2;
      alert(url2);
      sajax(url2,'ratingform');
      htmlReyt=document.getElementById('ratingform').innerHTML;
      document.getElementById('ratingform').innerHTML='<span class="loading">Загрузка...</span>';
    }
  }
}

smallajax.js
Код
function sajax(ajaxurl, element){
    var ro;

    try {ro = new ActiveXObject("Msxml2.XMLHTTP");}
    catch(e){
        try  {ro = new ActiveXObject("Microsoft.XMLHTTP");}
        catch(f) {ro = null;}
        }
    if(!ro && typeof(XMLHttpRequest) != 'undefined'){
        ro = new XMLHttpRequest();
        }
    try {
        ro.onreadystatechange = function(){
          try {
              if((ro.readyState == 4) && (ro.status == 200)){
                  alert('asdasd');
                  var response = ro.responseText;//Получаем в переменную response весь код XML - фаила
                  alert(response);
                  document.getElementById(element).innerHTML = response;//эта DHTML, с помощью него мы присвоим свойству id с именем reload наше содержимое XML-файла
                  }
              }
          catch(e)//А это нужно, чтобы у нас небыло никаких ошибок
              {
              }
          }
        ro.open("GET", ajaxurl, true);
        ro.setRequestHeader('Accept-Language', 'en');
        ro.setRequestHeader('Accept-Charset', 'windows-1251');
        ro.send(null);
        }
    catch(e)
        {
        }
    }

setrating.php
Код
 global $my;
 echo gettype($my);
 echo $my->id;

что я не так делаю? все работает, только вот id юзера незнаю
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
все работает, только вот id юзера незнаю
ну а почему бы id пользователя не передать параметром из мамбота, а потом обработать?

или вместо

function plyRating($published, &$row, &$params, $page=0 ) {
   global $database, $_MAMBOTS, $Itemid,$mosConfig_live_site,$my;

        //getting settings
        $placement    = intval($params->get( 'imageplacement', 2 ));
        $out = '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/smallajax.js"></script>';


написать

function plyRating($published, &$row, &$params, $page=0 ) {
   global $database, $_MAMBOTS, $Itemid,$mosConfig_live_site,$my;
       
        $userid = ($my->id) ? $my->id : '';
        //getting settings
        $placement    = intval($params->get( 'imageplacement', 2 ));
        $out = '<script type="text/javascript">var user_id=<?php echo $userid; ?></script>';
        $out .= '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/smallajax.js"></script>';

а потом обрабатывай себе user_id в js.
« Последнее редактирование: 03.01.2007, 21:57:29 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

если передавать id юзера то тогда, насколько я понимаю, можно будет с помощью несложного запроса к скрипту обрабатывающему ajax-запрос голосовать за любого пользователя.

userxp, спасибо за оперативную помощь;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мамбот для поиска одинаковых названий и удаления дубликатов

Автор Terys

Ответов: 11
Просмотров: 6735
Последний ответ 10.01.2021, 12:12:30
от Sergeych
Мамбот "Одобрено"

Автор fs-p

Ответов: 16
Просмотров: 8073
Последний ответ 03.05.2013, 03:15:17
от gessle
как узнать если пользователь авторизован?

Автор ilma55

Ответов: 2
Просмотров: 3311
Последний ответ 10.01.2012, 13:08:29
от ilma55
Две колонки текста в материале статьи

Автор Trok

Ответов: 7
Просмотров: 8069
Последний ответ 25.03.2011, 13:37:44
от klubnichkaaa
Название статьи в две строки

Автор Димонтий

Ответов: 1
Просмотров: 1890
Последний ответ 05.09.2010, 07:50:46
от effrit