1
laguna
xmobile running in xoops?
  • 2009/8/26 20:42

  • laguna

  • Just popping in

  • Posts: 46

  • Since: 2004/10/9


There is some hack to work properly xmobile module on xoops? Currently, the module makes calls to class not available in xoops, but if XOOPS Cube.

Currently the module runs on my website in a test section, but with errors.

NOTE: xmobile works fine (running on xoops) with pico, eguide, xoopspoll and d3blog modules (also system login and comments)

Debug mode:

News
Fatal error: Class 'XmobileNewsPluginAbstract' not found in MyROOT/modules/xmobile/plugins/news.php(28) : eval()'d code on line 2

Newbb
Blank page (contents)

piCal
Fatal error: Class 'XmobilePicalPluginAbstract' not found in MyROOT/modules/xmobile/plugins/piCal.php(28) : eval()'d code on line 2

myAlbum
Fatal error: Class 'XmobileMyalbumPluginAbstract' not found in MyROOT/modules/xmobile/plugins/myalbum.php(27) : eval()'d code on line 2

Bulletin
Fatal error: Class 'XmobileBulletinPluginAbstract' not found in MyROOT/modules/xmobile/plugins/bulletin.php(32) : eval()'d code on line 2

Thanks for your help!

2
ghia
Re: xmobile running in xoops?
  • 2009/8/26 23:30

  • ghia

  • Community Support Member

  • Posts: 4953

  • Since: 2008/7/3 1


Could it be, that you have no plugin file for these modules?

3
laguna
Re: xmobile running in xoops?
  • 2009/8/27 1:21

  • laguna

  • Just popping in

  • Posts: 46

  • Since: 2004/10/9


If I do, but the module returns these errors.

I think it's because XOOPS Cube has other class in their core. Or I'm wrong? Do not know much about php...

For example, news plugin (returns the following error)

<?php if (!defined('XOOPS_ROOT_PATH')) exit(); $mydirname = strtolower(basename(__FILE__,'.php')); $Pluginname = ucfirst($mydirname); if (!preg_match("/^w+$/", $Pluginname)) { trigger_error('Invalid pluginName'); exit(); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// eval(' class Xmobile'.$Pluginname.'Plugin extends XmobileNewsPluginAbstract { function Xmobile'.$Pluginname.'Plugin() { $this->__construct(); } } class Xmobile'.$Pluginname.'PluginHandler extends XmobileNewsPluginHandlerAbstract { function Xmobile'.$Pluginname.'PluginHandler($db) { $this->__construct("'.$mydirname.'",$db); } } '); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class XmobileNewsPluginAbstract extends XmobilePlugin { function __construct() { // call parent constructor XmobilePlugin::XmobilePlugin(); // define object elements $this->initVar('storyid', XOBJ_DTYPE_INT, '0', true); $this->initVar('uid', XOBJ_DTYPE_INT, '0', true); $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', true, 255); $this->initVar('created', XOBJ_DTYPE_INT, '0', true); $this->initVar('published', XOBJ_DTYPE_INT, '0', true); $this->initVar('expired', XOBJ_DTYPE_INT, '0', true); $this->initVar('hostname', XOBJ_DTYPE_TXTBOX, '', true, 20); $this->initVar('nohtml', XOBJ_DTYPE_INT, '0', true); $this->initVar('nosmiley', XOBJ_DTYPE_INT, '0', true); $this->initVar('hometext', XOBJ_DTYPE_TXTAREA, '', true); $this->initVar('bodytext', XOBJ_DTYPE_TXTAREA, '', true); $this->initVar('counter', XOBJ_DTYPE_INT, '0', true); $this->initVar('topicid', XOBJ_DTYPE_INT, '0', true); $this->initVar('ihome', XOBJ_DTYPE_INT, '0', true); $this->initVar('notifypub', XOBJ_DTYPE_INT, '0', true); $this->initVar('story_type', XOBJ_DTYPE_TXTBOX, '', true, 5); $this->initVar('topicdisplay', XOBJ_DTYPE_INT, '0', true); $this->initVar('topicalign', XOBJ_DTYPE_TXTBOX, '', true, 1); $this->initVar('comments', XOBJ_DTYPE_INT, '0', true); // define primary key $this->setKeyFields(array('storyid')); $this->setAutoIncrementField('storyid'); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function assignSanitizerElement() { $dohtml = 0; $dosmiley = 0; if ($this->getVar('nohtml') == 0) $dohtml = 1; if ($this->getVar('nosmiley') == 0) $dosmiley = 1; $this->initVar('dohtml',XOBJ_DTYPE_INT,$dohtml); $this->initVar('dosmiley',XOBJ_DTYPE_INT,$dosmiley); } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class XmobileNewsPluginHandlerAbstract extends XmobilePluginHandler { var $template = 'xmobile_news.html'; var $moduleDir = 'news'; var $categoryTableName = 'topics'; var $itemTableName = 'stories'; var $category_id_fld = 'topic_id'; var $category_pid_fld = 'topic_pid'; var $category_title_fld = 'topic_title'; var $category_order_fld = 'topic_id'; var $item_id_fld = 'storyid'; var $item_cid_fld = 'topicid'; var $item_title_fld = 'title'; var $item_description_fld = 'hometext'; var $item_order_fld = 'published'; var $item_date_fld = 'published'; var $item_uid_fld = 'uid'; var $item_hits_fld = 'counter'; var $item_comments_fld = 'comments'; var $item_extra_fld = array('bodytext'=>''); // var $item_order_sort = 'DESC'; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function __construct($mydirname,$db) { XmobilePluginHandler::XmobilePluginHandler($db); $this->moduleDir = $mydirname; if ( preg_match("/^D+(d*)$/", $mydirname,$matches) ) { $number = $matches[1]; $this->categoryTableName = 'topics'. $number; $this->itemTableName = 'stories'. $number; } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function setItemCriteria() { $this->item_criteria =& new CriteriaCompo(); $item_criteria_1 = new CriteriaCompo(); $item_criteria_1->add(new Criteria('published', 0, '>')); $item_criteria_1->add(new Criteria('published', time(), '<=')); $item_criteria_2 = new CriteriaCompo(); $item_criteria_2->add(new Criteria('expired', 0)); $item_criteria_2->add(new Criteria('expired', time(), '>'),'OR'); $this->item_criteria->add($item_criteria_1); $this->item_criteria->add($item_criteria_2); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } ?>



xmobile .40 rc2
xoops 2.0.18.2

4
ghia
Re: xmobile running in xoops?
  • 2009/8/27 6:38

  • ghia

  • Community Support Member

  • Posts: 4953

  • Since: 2008/7/3 1


Weird! The eval function tries to extend classes that are defined below.
So, I would try with changing it and put the eval block at the very end of the file:
le="color: #000000"><?php ... function setItemCriteria() { ... } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// eval(' class Xmobile'.$Pluginname.'Plugin extends XmobileNewsPluginAbstract { function Xmobile'.$Pluginname.'Plugin() { $this->__construct(); } } class Xmobile'.$Pluginname.'PluginHandler extends XmobileNewsPluginHandlerAbstract { function Xmobile'.$Pluginname.'PluginHandler($db) { $this->__construct("'.$mydirname.'",$db); } } '); ?>


NB
I don't understand why the plugin is evaluated only partially. I assume it is for cloned modules. But then the fix part seems to become double.
But maybe you don't have cloned modules and then there will be no problem.

5
laguna
Re: xmobile running in xoops?
  • 2009/8/29 14:14

  • laguna

  • Just popping in

  • Posts: 46

  • Since: 2004/10/9


Excellent! It works! Thanks for your help!

Now I have other problems. For example, unable to read or create private messages

Debug
Fatal error: Class 'XoopsMultiTokenHandler' not found in MyHome/modules/xmobile/actions/PmessageAction.php on line 198

File (PmessageAction.php)
<?php if (!defined('XOOPS_ROOT_PATH')) exit(); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class PmessageAction extends XmobileAction { var $template = 'xmobile_pmessage.html'; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function PmessageAction() { global $xoopsConfig; // include_once XOOPS_ROOT_PATH.'/language/'.$xoopsConfig['language'].'/pmsg.php'; // $this->ticket = new XoopsGTicket; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function setTitle() { $this->controller->render->setTitle(_MD_XMOBILE_INBOX); $this->controller->render->template->assign('page_title',_MD_XMOBILE_INBOX); $base_url = $this->utils->getLinkUrl('pmessage',null,null,$this->sessionHandler->getSessionID()); $title_link = '<a href="'.$base_url.'">'._MD_XMOBILE_INBOX.'</a>'; $this->controller->render->template->assign('page_title_link',$title_link); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getDefaultView() { global $xoopsModuleConfig; $myts =& MyTextSanitizer::getInstance(); $op = $myts->makeTboxData4Show($this->utils->getGetPost('op', '')); $session_id = $this->sessionHandler->getSessionID(); $uid = $this->sessionHandler->getUid(); if ($uid == 0) { $base_url = $this->utils->getLinkUrl('register',null,null,$this->sessionHandler->getSessionID()); $message = _MD_XMOBILE_PM_SORRY.'<br /><a href="'.$base_url.'">'._MD_XMOBILE_REGISTERNOW.'</a>.'; $this->controller->render->redirectHeader($message,5,$base_url); exit(); } $pm_handler =& xoops_gethandler('privmessage'); $criteria =& new Criteria('to_userid', $uid); $criteria->setSort('msg_time'); $criteria->setOrder('DESC'); $extra_arg = $this->baseUrl; $pm_count = $pm_handler->getCount($criteria); $pageNavi =& new XmobilePageNavigator($pm_count, $xoopsModuleConfig['pm_title_row'], 'pm_start', $extra_arg); $start = $pageNavi->getStart(); $criteria->setLimit($pageNavi->getPerpage()); $criteria->setStart($pageNavi->getStart()); $pm_arr =& $pm_handler->getObjects($criteria); $total_messages = count($pm_arr); if ($total_messages == 0) { $display = 0; } else { $display = 1; $pms = array(); for($i = 0; $i < $total_messages; $i++) { $pms[$i]['read_msg'] = $pm_arr[$i]->getVar('read_msg'); $poster_name = XoopsUser::getUnameFromId($pm_arr[$i]->getVar('from_userid')); if (!$poster_name) { $poster_name = $xoopsConfig['anonymous']; } $pms[$i]['poster_name'] = $poster_name; // $ext¤ÎÃͤÏgetLinkUrl()¤Çhtmlspecialchars()¤ò³Ý¤±¤é¤ì¤ë¤Î¤Ç&amp;¤Ç¤Ï¤Ê¤¯&¤Èµ­½Ò¤·¤Æ¤ª¤¯ // $ext = 'start='.$i.'&total_messages='.$total_messages; $ext = 'start='.($start + $i).'&total_messages='.$total_messages; $base_url = $this->utils->getLinkUrl('pmessage','detail',null,$this->controller->sessionHandler->getSessionID(),$ext); $subject = '<a href="'.$base_url.'">'.$pm_arr[$i]->getVar('subject').'</a>'; $pms[$i]['subject'] = $subject; $msg_time = formatTimestamp($pm_arr[$i]->getVar('msg_time')); $pms[$i]['msg_time'] = $msg_time; } $this->controller->render->template->assign('pms',$pms); } $this->controller->render->template->assign('pm_page_navi',$pageNavi->renderNavi()); $ext = 'send=1'; $base_url = $this->utils->getLinkUrl('pmessage','confirm',null,$this->controller->sessionHandler->getSessionID(),$ext); $base_url = preg_replace('/&amp;/i','&',$base_url); $this->controller->render->template->assign('base_url',$base_url); $this->controller->render->template->assign('total_messages',$total_messages); $this->controller->render->template->assign('show_list',true); $this->controller->render->template->assign('display',$display); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getDetailView() { if (isset($_POST['cancel'])) { $base_url = XMOBILE_URL.'/?act=pmessage&sess='.$this->sessionHandler->getSessionID(); header('Location: '.$base_url); exit(); } $this->controller->render->template->assign('show_detail',true); $myts =& MyTextSanitizer::getInstance(); // $op = $myts->makeTboxData4Show($this->utils->getGetPost('op', '')); $msg_id = intval($this->utils->getGetPost('msg_id', 0)); $session_id = $this->sessionHandler->getSessionID(); $uid = $this->sessionHandler->getUid(); $message = ''; /* if (isset($_POST['reply'])) { $base_url = XMOBILE_URL.'/?act=pmessage&view=confirm&reply=1&msg_id='.$msg_id.'&sess='.$this->sessionHandler->getSessionID(); header('Location: '.$base_url); exit(); } */ if ($uid == 0) { $base_url = $this->utils->getLinkUrl('register',null,null,$this->sessionHandler->getSessionID()); $message = _MD_XMOBILE_PM_SORRY.'<br /><a href="'.$base_url.'">'._MD_XMOBILE_REGISTERNOW.'</a>.'; $this->controller->render->redirectHeader($message,5,$base_url); exit(); } $pm_handler =& xoops_gethandler('privmessage'); /* if (!empty($_POST['delete'])) { $pm =& $pm_handler->get(intval($_POST['msg_id'])); if (!is_object($pm) || $pm->getVar('to_userid') != $uid || !$pm_handler->delete($pm)) { $base_url = $this->utils->getLinkUrl($this->controller->getActionState(),null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader(_MD_XMOBILE_DELETE_FAILED,5,$base_url); exit(); } else { $base_url = $this->utils->getLinkUrl($this->controller->getActionState(),null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader(_MD_XMOBILE_PM_DELETED,3,$base_url); exit(); } } */ // $start = !empty($_GET['start']) ? intval($_GET['start']) : 0; // $total_messages = !empty($_GET['total_messages']) ? intval($_GET['total_messages']) : 0; /* $criteria = new Criteria('to_userid', $uid); $criteria->setLimit($limit); $criteria->setStart($start); $criteria->setSort('msg_time'); $criteria->setOrder('DESC'); $pm_arr =& $pm_handler->getObjects($criteria); */ $criteria =& new Criteria('to_userid', $uid); $criteria->setSort('msg_time'); $criteria->setOrder('DESC'); $extra_arg = $this->baseUrl; $total_messages = $pm_handler->getCount($criteria); $limit = 1; $pageNavi =& new XmobilePageNavigator($total_messages, $limit, 'start', $extra_arg); $criteria->setLimit($limit); $criteria->setStart($pageNavi->getStart()); $pm_arr =& $pm_handler->getObjects($criteria); if (empty($pm_arr)) { $has_message = false; } else { $has_message = true; $pm_handler->setRead($pm_arr[0]); // check read_msg $poster = new XoopsUser($pm_arr[0]->getVar('from_userid')); if ($poster->isActive()) { $poster_name = $poster->getVar('uname'); // $ext¤ÎÃͤÏgetLinkUrl()¤Çhtmlspecialchars()¤ò³Ý¤±¤é¤ì¤ë¤Î¤Ç&amp;¤Ç¤Ï¤Ê¤¯&¤Èµ­½Ò¤·¤Æ¤ª¤¯ // $ext = 'uid='.$pm_arr[0]->getVar('from_userid'); $ext = 'uid='.$poster->getVar('uid'); $base_url = $this->utils->getLinkUrl('userinfo',null,null,$this->controller->sessionHandler->getSessionID(),$ext); $poster_name = '<a href="'.$base_url.'">'.$poster->getVar('uname').'</a>'; $reply = true; } else { $poster_name = $xoopsConfig['anonymous']; $reply = false; } $token =& XoopsMultiTokenHandler::quickCreate('pm'); // $base_url = $this->utils->getLinkUrl($this->controller->getActionState(),$this->controller->getViewState(),null,$this->sessionHandler->getSessionID()); $ext = 'send=1'; $base_url = $this->utils->getLinkUrl('pmessage','confirm',null,$this->controller->sessionHandler->getSessionID(),$ext); $base_url = preg_replace('/&amp;/i','&',$base_url); $this->controller->render->template->assign('base_url',$base_url); $this->controller->render->template->assign('ticket_html',$token->getHtml()); $this->controller->render->template->assign('session_name',session_name()); $this->controller->render->template->assign('session_id',session_id()); $this->controller->render->template->assign('referer_url',$this->getBaseUrl()); $this->controller->render->template->assign('subject',$pm_arr[0]->getVar('subject')); $this->controller->render->template->assign('poster_name',$poster_name); $this->controller->render->template->assign('msg_time',formatTimestamp($pm_arr[0]->getVar('msg_time'))); $this->controller->render->template->assign('msg_text',$pm_arr[0]->getVar('msg_text')); $this->controller->render->template->assign('msg_id',$pm_arr[0]->getVar('msg_id')); $this->controller->render->template->assign('reply',$reply); // page navigation /* $previous = $start - 1; $next = $start + 1; $pm_page_navi = ''; if ($previous >= 0) { // $ext¤ÎÃͤÏgetLinkUrl()¤Çhtmlspecialchars()¤ò³Ý¤±¤é¤ì¤ë¤Î¤Ç&amp;¤Ç¤Ï¤Ê¤¯&¤Èµ­½Ò¤·¤Æ¤ª¤¯ $ext = 'start='.$previous.'&total_messages='.$total_messages; $base_url = $this->utils->getLinkUrl('pmessage','detail',null,$this->sessionHandler->getSessionID(),$ext); $pm_page_navi .= '<a href="'.$base_url.'">'._MD_XMOBILE_PM_PREVIOUS.'</a>&nbsp;&nbsp;'; } if ($next < $total_messages) { // $ext¤ÎÃͤÏgetLinkUrl()¤Çhtmlspecialchars()¤ò³Ý¤±¤é¤ì¤ë¤Î¤Ç&amp;¤Ç¤Ï¤Ê¤¯&¤Èµ­½Ò¤·¤Æ¤ª¤¯ $ext = 'start='.$next.'&total_messages='.$total_messages; $base_url = $this->utils->getLinkUrl('pmessage','detail',null,$this->sessionHandler->getSessionID(),$ext); $pm_page_navi .= '<a href="'.$base_url.'">'._MD_XMOBILE_PM_NEXT.'</a>'; } $this->controller->render->template->assign('pm_page_navi',$pm_page_navi); */ $this->controller->render->template->assign('pm_page_navi',$pageNavi->renderNavi()); } $this->controller->render->template->assign('message',$message); $this->controller->render->template->assign('has_message',$has_message); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getConfirmView() { global $xoopsModuleConfig,$xoopsDB; $myts =& MyTextSanitizer::getInstance(); if (isset($_POST['cancel'])) { $base_url = XMOBILE_URL.'/?act=pmessage&sess='.$this->sessionHandler->getSessionID(); header('Location: '.$base_url); exit(); } // [url=http://xoopscube.sourceforge.net/]XOOPS Cube[/url] 2.1 ¤Î¾ì¹çÁ÷¿®ÀèÆþÎÏÊýË¡¤òÈ¿±Ç¤¹¤ë $send_type = 0; if (preg_match("/^XOOPS Cube/",XOOPS_VERSION)) { $module_handler =& xoops_gethandler('module'); $pm_module =& $module_handler->getByDirName('pm'); if (is_object($pm_module)) { $pm_mid = $pm_module->getVar('mid'); } $config_handler =& xoops_gethandler('config'); $pm_moduleConfig =& $config_handler->getConfigsByCat(0, $pm_mid); $send_type = $pm_moduleConfig['send_type']; } $this->controller->render->template->assign('send_type',$send_type); // [url=http://xoopscube.sourceforge.net/]XOOPS Cube[/url] 2.1 ¤Î¾ì¹çÁ÷¿®ÀèÆþÎÏÊýË¡¤òÈ¿±Ç¤¹¤ë $this->controller->render->template->assign('show_edit',true); $op = $myts->makeTboxData4Show($this->utils->getGetPost('op', '')); $reply = intval($this->utils->getGetPost('reply', 0)); $delete = intval($this->utils->getGetPost('delete', 0)); $send = intval($this->utils->getGetPost('send', 0)); $send2 = intval($this->utils->getGetPost('send2', 0)); $to_userid = intval($this->utils->getGetPost('to_userid', '')); $msg_id = intval($this->utils->getGetPost('msg_id', 0)); $subject = $myts->makeTboxData4Save($this->utils->getPost('subject', '')); $msg_text = $myts->makeTareaData4Save($this->utils->getPost('msg_text', ''),0,1,1); $session_id = $this->sessionHandler->getSessionID(); $uid = $this->sessionHandler->getUid(); if (isset($_POST['reply'])) $reply = 1; if (isset($_POST['delete'])) $delete = 1; // ÉÔÍס© /* if (empty($_GET['refresh'] ) && isset($_POST['op']) && $_POST['op'] != 'submit') { // $jump¤ÎÃͤÏgetLinkUrl()¤Çhtmlspecialchars()¤ò³Ý¤±¤é¤ì¤ë¤Î¤Ç&amp;¤Ç¤Ï¤Ê¤¯&¤Èµ­½Ò¤·¤Æ¤ª¤¯ $jump = ''; if ($send == 1) { $jump .= 'send='.$send.''; } elseif ($send2 == 1) { $jump .= 'send2='.$send2.'&to_userid='.$to_userid.''; } elseif ($reply == 1) { $jump .= 'reply='.$reply.'&msg_id='.$msg_id.''; } $base_url = $this->utils->getLinkUrl($this->controller->getActionState(),null,null,$this->sessionHandler->getSessionID(),$jump); $this->controller->render->redirectHeader($message,5,$base_url); exit(); } */ if ($uid) { if ($op == 'submit' && XoopsMultiTokenHandler::quickValidate('pm')) { $res = $xoopsDB->query('SELECT COUNT(*) FROM '.$xoopsDB->prefix('users').' WHERE uid='.$to_userid); list($count) = $xoopsDB->fetchRow($res); if ($count != 1) { $base_url = $this->utils->getLinkUrl('pmessage',null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader(_MD_XMOBILE_USERNOEXIST.'<br />'._MD_XMOBILE_PLZTRYAGAIN,5,$base_url); exit(); } else { $pm_handler =& xoops_gethandler('privmessage'); $pm =& $pm_handler->create(); $pm->setVar('subject', $subject); $pm->setVar('msg_text', $msg_text); $pm->setVar('to_userid', $to_userid); $pm->setVar('from_userid', $uid); if (!$pm_handler->insert($pm)) { $base_url = $this->utils->getLinkUrl('pmessage',null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader($pm->getHtmlErrors(),5,$base_url); exit(); } else { $base_url = $this->utils->getLinkUrl('pmessage',null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader(_MD_XMOBILE_PM_MESSAGEPOSTED,5,$base_url); exit(); } } } elseif ($delete == 1 && XoopsMultiTokenHandler::quickValidate('pm')) { $pm_handler =& xoops_gethandler('privmessage'); $pm =& $pm_handler->get($msg_id); if (!is_object($pm) || $pm->getVar('to_userid') != $uid || !$pm_handler->delete($pm)) { $base_url = $this->utils->getLinkUrl($this->controller->getActionState(),null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader(_MD_XMOBILE_DELETE_FAILED,5,$base_url); exit(); } else { $base_url = $this->utils->getLinkUrl($this->controller->getActionState(),null,null,$this->sessionHandler->getSessionID()); $this->controller->render->redirectHeader(_MD_XMOBILE_PM_DELETED,3,$base_url); exit(); } } elseif ($reply == 1 || $send == 1 || $send2 == 1) { $token =& XoopsMultiTokenHandler::quickCreate('pm'); $pm_uid = ''; $pm_uname = ''; $msg_text = ''; include_once XOOPS_ROOT_PATH.'/include/xoopscodes.php'; if ($reply == 1) { $pm_handler =& xoops_gethandler('privmessage'); $pm =& $pm_handler->get($msg_id); if ($pm->getVar('to_userid') == $uid) { $pm_uname = XoopsUser::getUnameFromId($pm->getVar('from_userid')); $msg_text = '>'.$pm->getVar('msg_text', 'E'); } else { unset($pm); $reply = $send2 = 0; } } if ($reply == 1) { $pm_uid = $pm->getVar('from_userid'); } elseif ($send2 == 1) { $pm_uid = $to_userid; $pm_uname = XoopsUser::getUnameFromId($to_userid); } else { $pm_uids = array(); $i = 0; $result = $xoopsDB->query('SELECT uid, uname FROM '.$xoopsDB->prefix('users').' WHERE level > 0 ORDER BY uname'); // while(list($ftouid, $ftouname) = $xoopsDB->fetchRow($result)) while($row = $xoopsDB->fetchArray($result)) { // $pm_uids[$i]['uid'] = $ftouid; // $pm_uids[$i]['uname'] = $myts->makeTboxData4Show($ftouname); $pm_uids[$i]['uid'] = intval($row['uid']); $pm_uids[$i]['uname'] = $myts->makeTboxData4Show($row['uname']); $i++; } $this->controller->render->template->assign('pm_uids',$pm_uids); } $subject = ''; if ($reply == 1) { $subject = $pm->getVar('subject', 'E'); if (!preg_match('/^Re:/i',$subject)) { $subject = 'Re: '.$subject; } } $base_url = $this->utils->getLinkUrl('pmessage','confirm',null,$this->controller->sessionHandler->getSessionID()); $base_url = preg_replace('/&amp;/i','&',$base_url); $this->controller->render->template->assign('base_url',$base_url); $this->controller->render->template->assign('ticket_html',$token->getHtml()); $this->controller->render->template->assign('session_name',session_name()); $this->controller->render->template->assign('session_id',session_id()); $this->controller->render->template->assign('referer_url',$this->getBaseUrl()); $this->controller->render->template->assign('msg_text',$msg_text); $this->controller->render->template->assign('reply',$reply); $this->controller->render->template->assign('send2',$send2); $this->controller->render->template->assign('pm_uid',$pm_uid); $this->controller->render->template->assign('pm_uname',$pm_uname); $this->controller->render->template->assign('subject',$subject); $this->controller->render->template->assign('tarea_cols',$xoopsModuleConfig['tarea_cols']); $this->controller->render->template->assign('tarea_rows',$xoopsModuleConfig['tarea_rows']); } } else { $base_url = $this->utils->getLinkUrl('register',null,null,$this->sessionHandler->getSessionID()); $message = _MD_XMOBILE_PM_SORRY.'<br /><a href="'.$base_url.'">'._MD_XMOBILE_REGISTERNOW.'</a>.'; $this->controller->render->redirectHeader($message,5,$base_url); } } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } ?>


NOTES:

1. Debug mode on
2. Use the following information to log
User: Liliana
Password: Liliana


[EN]Inbox - [ES]Bandeja de entrada

Thanks for your help!

6
dashbord
Re: xmobile running in xoops?
  • 2009/9/19 8:56

  • dashbord

  • Just popping in

  • Posts: 39

  • Since: 2004/4/19


XoopsMultiTokenHandler is core source on XOOPS Cube, or XOOPS 2.0.16a ( Fork version by Japanese community)

So, currently it's not running in the other core. It should be change to other common token or include it as xMobile class.

7
laguna
Re: xmobile running in xoops?
  • 2009/9/21 1:09

  • laguna

  • Just popping in

  • Posts: 46

  • Since: 2004/10/9


Oh, that hurts. Thanks for your answer!

I have seen on their website which has now taken up the development of this module. I encourage you to continue, is an excellent module.

Thanks again!

8
dashbord
Re: xmobile running in xoops?
  • 2009/9/22 0:08

  • dashbord

  • Just popping in

  • Posts: 39

  • Since: 2004/4/19


Hi laguna,

I prefer supporting various cores to selected core. So I changed XoopsMultiToken to gTicket as common ticket class.

Now, you can take it at SVN in sourceforge.jp

9
laguna
Re: xmobile running in xoops?
  • 2009/9/22 4:53

  • laguna

  • Just popping in

  • Posts: 46

  • Since: 2004/10/9


Excellent! I'm reviewing the repository! Thank you very much for your answer! I love this module!

10
laguna
Re: xmobile running in xoops?
  • 2009/10/1 4:23

  • laguna

  • Just popping in

  • Posts: 46

  • Since: 2004/10/9


I updated to xmobile version 040rc4. Private messages work perfectly. Excellent!

CORE: XOOPS 2.0.18.2
SERVER: Linux
PHP Version: 5.2.9
MySQL API Version: 5.0.81

Test site (debug mode on)

Congratulations by your great work!

Login

Donat-O-Meter

Stats
Goal: $15.00
Due Date: Jul 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $15.00
Make donations with PayPal!

Latest GitHub Commits