Discuz教程网

ucenter 程序问题

[复制链接]
authicon pftlwcbf 发表于 2012-9-20 09:04:42 | 显示全部楼层 |阅读模式
Ucenter客户端开发文件
  client/model/app.php中方法 get_apps 方法如下:
   function get_apps($col = '*', $where = '') {
    $arr = $this->db->fetch_all("SELECT $col FROM ".UC_DBTABLEPRE."applications".($where ? ' WHERE '.$where : ''), 'appid');
    foreach($arr as $k => $v) {
     isset($v['extra']) && !empty($v['extra']) && $v['extra'] = unserialize($v['extra']);//如果extra 字段有值,就会unserialize一值
     unset($v['authkey']);
     $arr[$k] = $v;
    }
    return $arr;
   }
  client/control/app.php中有一个调用
   function onls() {
    $this->init_input();
    $applist = $_ENV['app']->get_apps('appid, type, name, url, tagtemplates, viewprourl, synlogin');
    $applist2 = array();
    /*注意这个地方的$this->unserialize($app['tagtemplates']),下面有一个比较*/
    foreach($applist as $key => $app) {
     $app['tagtemplates'] = $this->unserialize($app['tagtemplates']);
     $applist2[$app['appid']] = $app;
    }
    return $applist2;
   }
  现在看下client/control/cache.php 中的方法 onupdate()
   function onupdate($arr) {
    $this->load("cache");
    $_ENV['cache']->updatedata();
   }
  ,转到client/model/cache.php 中updatedate()代码如下
   function _get_apps() {
    $this->base->load('app');
    $apps = $_ENV['app']->get_apps();//在这个函数中,好像extra字段,已经unserialize 一次了,
    $apps2 = array();
    if(is_array($apps)) {
     foreach($apps as $v) {
      $v['extra'] = unserialize($v['extra']);//注意这个地方,unserialize了一次,好像这是第二次,是不是有问题?
      $apps2[$v['appid']] = $v;               
     }
    /*应该改成
     isset($v['extra']) && !empty($v['extra']) && $v['extra'] = unserialize($v['extra']);
     $arr[$k] = $v;
   */
    }
    return $apps2;
   }
  问题在注释中已经提交,不是这是不是BUG~~



上一篇:搜索框能否加入全站搜索的选项
下一篇:使用脚轮注意事项
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-6 09:12

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表