Avatar for phpBB3(虛擬形象)

網站架設,免費空間申請,架站技術交流區

ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2010-12-17 2:34 pm

前言:

這功能是2003年時期的作品,當時改自飄在北京以及CTB,只支援phpBB2跟vbb

一週前提起動力,改成支援phpBB3

由於phpBB3與phpBB2差異頗大,花了些時間了解phpBB3的設計架構

很高興phpBB進步很多,但感覺開發mod上,難度提高不少(或許是我個人不能適應這種改變)

這版的虛擬形象功能上做了異動及移除
  • 拍賣(移除)
  • 收藏(移除)
  • 貨幣改成文章數
  • 使用期限(移除)
  • 後台(移除)
  • 圖片替換成CTB

只支援prosilver風格,其他風格請自行修改

注意: 此mod有許多地方,沒有按照phpBB3的規範來製作,不適合做為開發mod參考及範例

Demo(演示):
http://www.et99.net/face.php

QQ截圖未命名.png
QQ截圖未命名.png (69 KiB) 被瀏覽 34401 次

QQ截圖未命名2.png
QQ截圖未命名2.png (85.04 KiB) 被瀏覽 34401 次


主程式:
http://www.et99.net/tool/face_for_phpbb3.rar
資料庫:
http://www.et99.net/tool/face_sql.rar
圖片:
http://www.et99.net/tool/face_img.rar


解壓縮face_for_phpbb3.rar
解壓縮face_img.rar
copy: face.php
to: face.php
copy: facealbum.php
to: facealbum.php
copy: facebuy.php
to: facebuy.php
copy: facedata.php
to: facedata.php
copy: style/prosilver/template/face_album.html
to: style/prosilver/template/face_album.html
copy: style/prosilver/template/face_body.html
to: style/prosilver/template/face_body.html
copy: style/prosilver/template/face_center.html
to: style/prosilver/template/face_center.html
copy: style/prosilver/template/face_left.html
to: style/prosilver/template/face_left.html
copy: style/prosilver/template/face_view.html
to: style/prosilver/template/face_view.html
copy: style/prosilver/template/face_ctb_js.js
to: style/prosilver/template/face_ctb_js.js
copy: style/prosilver/template/face_ctb_js2.js
to: style/prosilver/template/face_ctb_js2.js
copy: images/*.*
to: images/*.*

解壓縮face_sql.rar
import face_sql.sql to database

open
viewtopic.php
find
代碼: 選擇全部
// Posts are stored in the $rowset array while $attach_list, $user_cache
// and the global bbcode_bitfield are built

after add
代碼: 選擇全部
// face_show BEGIN
$poster_list=array();
$poster_sex_list=array();
// face_show END

find
代碼: 選擇全部
   // Set max_post_time
   if ($row['post_time'] > $max_post_time)

before add
代碼: 選擇全部
   // face_show BEGIN
   if($row['user_avatar_type']==AVATAR_SHOW)
   {
      $poster_list[$row['poster_id']] = (int) $row['poster_id'];
   }
   // face_show END


find
代碼: 選擇全部
            'avatar'         => ($user->optionget('viewavatars')) ? get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height']) : '',
            'age'         => '',


replace
代碼: 選擇全部
            'avatar'         => ($user->optionget('viewavatars')) ? get_user_avatar($row['user_avatar'], $row['user_avatar_type'], $row['user_avatar_width'], $row['user_avatar_height'],'USER_AVATAR',false, $row['poster_id']) : '',
            'age'         => '',


find
代碼: 選擇全部
      $cp_row = (isset($profile_fields_cache[$poster_id])) ? $cp->generate_profile_fields_template('show', false, $profile_fields_cache[$poster_id]) : array();

replace
代碼: 選擇全部
      // face_show BEGIN
      if(isset($profile_fields_cache[$poster_id]))
      {
         $cp_row=$cp->generate_profile_fields_template('show', false, $profile_fields_cache[$poster_id]);
         if(array_key_exists("sex",$profile_fields_cache[$poster_id]))
         {
            if($profile_fields_cache[$poster_id]['sex']['value']==1)
            {
               $poster_sex_list[$poster_id]="m";
            }elseif($profile_fields_cache[$poster_id]['sex']['value']==2)
            {
               $poster_sex_list[$poster_id]="f";
            }
         }
      }else
      {
         $cp_row=array();
      }
      // face_show END

find
代碼: 選擇全部
unset($rowset, $user_cache);

after add
代碼: 選擇全部
// face_show BEGIN
if(count($poster_list)>0)
{
   $sql="SELECT id,userid,classid,facepicid,face_fitherd FROM week9_userdata where userid in (".implode(",",$poster_list).") and dafaultuse = '1' order by userid";
   $face = $db->sql_query($sql);
   $face_array = array();
   while ($faces = $db->sql_fetchrow($face))
   {
      if($poster_sex_list[$faces["userid"]]!=$faces["face_fitherd"] && ($faces["face_fitherd"] != 't'))
      {
         $db->sql_query("UPDATE week9_userdata SET dafaultuse = '0'
                     where id = ".$faces["id"]." and classid = '$faces[classid]' and facepicid = '$faces[facepicid]'
                      ");
      }else
      {
         $face_array[$faces["userid"]][$faces["classid"]] = $faces["facepicid"];
      }
   }
   $db->sql_freeresult($face);
   foreach($poster_list as $k=>$v)
   {
      $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值
      if ($poster_sex_list[$v] == "m")
      {
         $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值
      }
      elseif($poster_sex_list[$v] == "f")
      {
         $tempequip = '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //女性的初始值
      }
      $cookiearray = explode('-', $tempequip);
      if(count($face_array[$v])>0)
      {
         foreach($face_array[$v] as $k1=>$v1)
         {
            $cookiearray[$k1] = $v1;
         }
      }
      $face_array[$v]["show"]=implode("-", $cookiearray);
      $template->assign_block_vars('face', array(
            'FACE_SHOW'   => $face_array[$v]["show"],
            'UID'      => $v
            )
         );
   }
}
unset($face_array,$cookiearray,$usercaifu,$poster_sex_list,$poster_list);
// face_show END

open
/includes/constants.php
find
代碼: 選擇全部
define('AVATAR_GALLERY', 3);

after add
代碼: 選擇全部
define('AVATAR_SHOW', 4);


open
/includes/functions_display.php
find
代碼: 選擇全部
function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR', $ignore_config = false)

replace
代碼: 選擇全部
function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR', $ignore_config = false,$uid=0)

find
代碼: 選擇全部
empty($avatar)

replace
代碼: 選擇全部
(empty($avatar) && $avatar_type!=AVATAR_SHOW)

find
代碼: 選擇全部
      case AVATAR_REMOTE:
         if (!$config['allow_avatar_remote'] && !$ignore_config)
         {
            return '';
         }
      break;

after add
代碼: 選擇全部
      case AVATAR_SHOW:
         return '<DIV name="Show'.$uid.'" id="Show'.$uid.'" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: 120px; PADDING-TOP: 0px; POSITION: relative; TOP: 0px; HEIGHT: 150px;"></DIV>';
      break;


open
/includes/functions_user.php
find
代碼: 選擇全部
   else if (isset($_POST['delete']) && $change_avatar)
   {
      $sql_ary['user_avatar'] = '';
      $sql_ary['user_avatar_type'] = $sql_ary['user_avatar_width'] = $sql_ary['user_avatar_height'] = 0;
   }

after add
代碼: 選擇全部
else if(isset($_POST['face']))
   {
      if($_POST['face']=="1"){$sql_ary['user_avatar_type'] = AVATAR_SHOW;}
   }


open
includes/ucp/ucp_profile.php
find
代碼: 選擇全部
            {
               $error[] = $user->lang['AVATAR_TYPE_NOT_ALLOWED'];
            }

after add
代碼: 選擇全部
            // Custom Profile Fields
            $profile_fields = array();
            $user_id=$user->data['user_id'];
            if ($config['load_cpf_viewprofile'])
            {
               include_once($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx);
               $cp = new custom_profile();
               $profile_fields = $cp->generate_profile_fields_template('grab', $user_id);
               // face_show BEGIN
               if(isset($profile_fields[$user_id]))
               {
                  if(array_key_exists("sex",$profile_fields[$user_id]))
                  {
                     if($profile_fields[$user_id]['sex']['value']==1)
                     {
                        $sex=1;
                     }elseif($profile_fields[$user_id]['sex']['value']==2)
                     {
                        $sex=2;
                     }
                  }
               }
               // face_show END
               $profile_fields = (isset($profile_fields[$user_id])) ? $cp->generate_profile_fields_template('show', false, $profile_fields[$user_id]) : array();
            }
            // face_show BEGIN
            if($user->data['user_avatar_type']==AVATAR_SHOW)
            {
               $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值
               if ($sex == 1)
               {
                  $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值   
               }
               elseif($sex == 2)
               {
                  $tempequip = '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //女性的初始值   
               }
               $cookiearray = explode('-', $tempequip);
               $facecookie = $db->sql_query("SELECT classid,facepicid FROM week9_userdata where userid = ".$user_id." and dafaultuse = '1'");
               while ($usercaifu = $db->sql_fetchrow($facecookie))
               {
                  $cookiearray[$usercaifu["classid"]] = $usercaifu["facepicid"];
               }
               $db->sql_freeresult($facecookie);
               $tempequip = implode("-", $cookiearray);
            }
            // face_show END

find
代碼: 選擇全部
               'L_AVATAR_EXPLAIN'   => sprintf($user->lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], $config['avatar_filesize'] / 1024),

after add
代碼: 選擇全部
               // face_show BEGIN
               'FACE'            => ($user->data['user_avatar_type']==AVATAR_SHOW)?true:false,
               'UID'            => 0,
               'FACE_SHOW'         => $tempequip
               // face_show END


open
memberlist.php
find
代碼: 選擇全部
         $profile_fields = $cp->generate_profile_fields_template('grab', $user_id);

after add
代碼: 選擇全部
         // face_show BEGIN
         if(isset($profile_fields[$user_id]))
         {
            if(array_key_exists("sex",$profile_fields[$user_id]))
            {
               if($profile_fields[$user_id]['sex']['value']==1)
               {
                  $sex=1;
               }elseif($profile_fields[$user_id]['sex']['value']==2)
               {
                  $sex=2;
               }
            }
         }
         // face_show END

find
代碼: 選擇全部
      else
      {
         $member['posts_in_queue'] = 0;
      }

after add
代碼: 選擇全部
      // face_show BEGIN
      if($member['user_avatar_type']==AVATAR_SHOW)
      {
         $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值
         if ($sex == 1)
         {
            $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值   
         }
         elseif($sex == 2)
         {
            $tempequip = '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0'; //女性的初始值   
         }
         $cookiearray = explode('-', $tempequip);
         $facecookie = $db->sql_query("SELECT classid,facepicid FROM week9_userdata where userid = ".$user_id." and dafaultuse = '1'");
         while ($usercaifu = $db->sql_fetchrow($facecookie))
         {
            $cookiearray[$usercaifu["classid"]] = $usercaifu["facepicid"];
         }
         $db->sql_freeresult($facecookie);
         $tempequip = implode("-", $cookiearray);
      }
      // face_show END

find
代碼: 選擇全部
         'U_REMOVE_FOE'      => ($foe && $foes_enabled) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=zebra&amp;remove=1&amp;mode=foes&amp;usernames[]=' . $user_id) : '',

after add
代碼: 選擇全部
         // face_show BEGIN
         'FACE'            => ($member['user_avatar_type']==AVATAR_SHOW)?true:false,
         'UID'            => 0,
         'FACE_SHOW'         => $tempequip
         // face_show END



open
/styles/prosilver/template/viewtopic_body.html
find
代碼: 選擇全部
<!-- INCLUDE overall_header.html -->

after add
代碼: 選擇全部
<script type="text/javascript" src="{T_TEMPLATE_PATH}/face_ctb_js.js"></script>

find
代碼: 選擇全部
<!-- INCLUDE overall_footer.html -->

before add
代碼: 選擇全部
<script type="text/javascript">
<!-- BEGIN face -->
   var currface="{face.FACE_SHOW}";
   start_face({face.UID});
<!-- END face -->
</script>


open
/styles/prosilver/template/ucp_avatar_options.html
find
代碼: 選擇全部
<div class="panel">

before add
代碼: 選擇全部
<script type="text/javascript" src="{T_TEMPLATE_PATH}/face_ctb_js.js"></script>

find
代碼: 選擇全部
   </fieldset>

   <!-- IF S_IN_AVATAR_GALLERY -->

before add
代碼: 選擇全部
      <dl>
         <dt><label for="yes">是否使用虛擬形象:</label><br /><span>是否使用<a href="face.php">形象中心</a>的造型做為頭像?<br />使用後若欲關閉,請勾選刪除圖片。</span></dt>
         <dd>
            <label for="yes"><input type="checkbox" name="face" id="yes" value="1" class="inputbox autowidth" /> 是</label> &nbsp;&nbsp;
         </dd>
      </dl>

find
代碼: 選擇全部
   <span class="corners-bottom"><span></span></span></div>
</div>

after add
代碼: 選擇全部
<!-- IF FACE -->
   <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
   var currface="{FACE_SHOW}";
   start_face({UID});
   </script>
<!-- ENDIF FACE -->

open
/styles/prosilver/template/memberlist_view.html
find
代碼: 選擇全部
<!-- INCLUDE overall_header.html -->

after add
代碼: 選擇全部
<script type="text/javascript" src="{T_TEMPLATE_PATH}/face_ctb_js.js"></script>

find
代碼: 選擇全部
<!-- INCLUDE jumpbox.html -->

before add
代碼: 選擇全部
<!-- IF FACE -->
   <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
   var currface="{FACE_SHOW}";
   start_face({UID});
   </script>
<!-- ENDIF FACE -->

open
/language/zh_cmn_hant/common.php
find
代碼: 選擇全部
   'AVATAR_WRONG_SIZE'   => '頭像的寬度必須大於 %1$d 像素,高度必須大於 %2$d 像素,並且寬度不得超過 %3$d 像素,高度不得超過 %4$d 像素。您送出的頭像寬為 %5$d 像素,高為 %6$d 像素。',

after add
代碼: 選擇全部
   'AVATAR_PAGE'      => '虛擬形象',


在管理員控制台新增性別欄位
欄位類型: 下拉選單
欄位定義: sex
公開地顯示個人資料欄位: 是
看得見的選項 (可複選)在會員控制台中顯示: 勾選
顯示在註冊的頁面: 勾選
顯示在文章頁面: 勾選
必填欄位: 勾選
輸入(請依序輸入):
男生
女生
未知
選項無輸入時等值: 請選擇未知

QQ截圖未命名4.png
管理員控制台設定
QQ截圖未命名4.png (50.2 KiB) 被瀏覽 34349 次


將「在主題頁面中顯示自訂個人資料欄位」設定為「是」
2010-12-24_112045.png
2010-12-24_112045.png (29.15 KiB) 被瀏覽 34344 次


close / finish

進入形象中心連結入口 /face.php


水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar(虛擬形象) for phpBB3

文章ETERNAL » 2010-12-21 10:22 pm

bug修正

第二個 /includes/function_user.php
改成/memberlist.php

然後
代碼: 選擇全部
         // face_show BEGIN
         if(array_key_exists("sex",$profile_fields[$user_id]))
         {
            if($profile_fields[$user_id]['sex']['value']==1)
            {
               $sex=1;
            }elseif($profile_fields[$user_id]['sex']['value']==2)
            {
               $sex=2;
            }
         }
         // face_show END


改成
代碼: 選擇全部
         // face_show BEGIN
         if(isset($profile_fields[$user_id]))
         {
            if(array_key_exists("sex",$profile_fields[$user_id]))
            {
               if($profile_fields[$user_id]['sex']['value']==1)
               {
                  $sex=1;
               }elseif($profile_fields[$user_id]['sex']['value']==2)
               {
                  $sex=2;
               }
            }
         }
         // face_show END



水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2010-12-22 8:11 pm

安裝說明漏了這段
open
/includes/functions_display.php
find
代碼: 選擇全部
function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR', $ignore_config = false)

replace
代碼: 選擇全部
function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $alt = 'USER_AVATAR', $ignore_config = false,$uid=0)


修改一個bug
open
viewtopic.php
find
代碼: 選擇全部
      if ($poster_sex_list[$v] == "m")
      {
         $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值
      }

before add
代碼: 選擇全部
      $tempequip = '0-0-0-0-0-0-0-0-init-init-0-init-0-init-init-0-0-0-init-0-0-0-0-0-0-0';  //男性的初始值



水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2010-12-23 4:09 pm

修復Notice提示錯誤

異動的檔案
/root/
face.php
facealbum.php
facebuy.php
facedata.php
/root/styles/prosilver/template/
face_left.html
face_center.html
face_ctb_js2.js


水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2010-12-24 9:38 am

修改內容如下

open
/language/zh_cmn_hant/common.php
find
代碼: 選擇全部
   'AVATAR_WRONG_SIZE'   => '頭像的寬度必須大於 %1$d 像素,高度必須大於 %2$d 像素,並且寬度不得超過 %3$d 像素,高度不得超過 %4$d 像素。您送出的頭像寬為 %5$d 像素,高為 %6$d 像素。',

after add
代碼: 選擇全部
   'AVATAR_PAGE'      => '虛擬形象',



水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2010-12-28 10:27 am

修復memberlist.php出現的Notice提示錯誤

尋找
代碼: 選擇全部
$cookiearray[$usercaifu[classid]] = $usercaifu[facepicid];


替換成
代碼: 選擇全部
$cookiearray[$usercaifu["classid"]] = $usercaifu["facepicid"];



水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2010-12-28 11:35 am

修改安裝說明
1.增加會員控制台頭象顯示
異動檔案:
includes/ucp/ucp_profile.php
/styles/prosilver/template/ucp_avatar_options.html


水色論壇 http://www.et99.net
簡恩峻分享

IKOBOY
 
文章: 9
註冊時間: 2012-06-21 11:50 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章IKOBOY » 2012-06-22 12:53 am

安裝系統:Apache/2.2.22 (Unix) PHP/5.3.10+mysql:5.1.49+GD:2.0.34

安裝Face for phpBB3 (虛擬形象)並修正路徑後,基本上使用ok的,僅在照像功能上有些問題。
不知這裡是否還有朋友有此經驗給些指引,以下是各程式執行的圖檔:

商品中心face.php(沒有問題)
圖檔

物品管理facedata.php(沒有問題)
圖檔

個人相冊facealbum.php(未知問題,因為還沒照像)
圖檔

這是問題所在,要儲存相片時,程式反應是一片空白,也沒有任何檔案完成儲存,我是有
在 images/face/ 下建立 album 資料夾並給予權限,但沒有任何檔案建立。
圖檔

另這是我主機GD資訊:
圖檔

雖照相功能對我並不是最重要,但總是希望能再完美些,希望能幫忙指教,謝謝!




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2012-06-23 2:48 pm

有什麼錯誤訊息嗎?

我這邊測試沒問題


水色論壇 http://www.et99.net
簡恩峻分享

IKOBOY
 
文章: 9
註冊時間: 2012-06-21 11:50 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章IKOBOY » 2012-06-23 8:02 pm

ETERNAL 寫:有什麼錯誤訊息嗎?

我這邊測試沒問題

感謝你的回應,我用除錯模式來找問題,發現會出現這樣的錯誤顯示:

Fatal error: Cannot use object of type mysqli_result as array in /volume1/web/work/facealbum.php on line 141

我打開facealbum.php,找出錯誤地方($nr = $faceidrows["nr"];),如果我將下列這整段程式碼刪除,就可以成功使用照相功能,但限制照片
儲存數量的功能即無法使用,現在我將此段程式碼貼上,麻煩你看一看,謝謝:

代碼: 選擇全部
      $faceidrows = $result = $db->sql_query("SELECT COUNT(*) AS nr FROM week9_facealbum WHERE userid = ".$user_id);
       $nr = $faceidrows["nr"];
      if ($nr > 30)
      {
         trigger_error("你的相冊裏面的相片數量已經達到最大值30個,如果你還要保存請你刪除你的相冊裏面的不喜歡的形象! <a href=".getenv("HTTP_REFERER")." class=nav>返回</a>");
      }


謝謝!!




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2012-06-23 11:32 pm

喔 你用的是mysqli阿...

先試試看這樣改吧,我不確定可不可以用


代碼: 選擇全部
$faceidrows = $result = $db->sql_query("SELECT COUNT(*) AS nr FROM week9_facealbum WHERE userid = ".$user_id);

改成
代碼: 選擇全部
$result = $db->sql_query("SELECT COUNT(*) AS nr FROM week9_facealbum WHERE userid = ".$user_id);
$faceidrows = $db->sql_fetchrow($result);



水色論壇 http://www.et99.net
簡恩峻分享

IKOBOY
 
文章: 9
註冊時間: 2012-06-21 11:50 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章IKOBOY » 2012-06-24 3:56 pm

ETERNAL 寫:喔 你用的是mysqli阿...

先試試看這樣改吧,我不確定可不可以用


代碼: 選擇全部
$faceidrows = $result = $db->sql_query("SELECT COUNT(*) AS nr FROM week9_facealbum WHERE userid = ".$user_id);

改成
代碼: 選擇全部
$result = $db->sql_query("SELECT COUNT(*) AS nr FROM week9_facealbum WHERE userid = ".$user_id);
$faceidrows = $db->sql_fetchrow($result);

Yes, 這樣就ok了!感謝你的幫忙!!
但發現另一個問題,就是如果直接由face.php後進入facealbum.php,會發現虛擬形象的圖無法顯示,並出現錯誤訊息於頁頂:
[phpBB Debug] PHP Notice: in file [ROOT]/facealbum.php on line 98: Undefined index: tempequip
在facealbum.php內是
代碼: 選擇全部
         'UFC'         => $_COOKIE["tempequip"],

但如果由face.php後先進入facedata.php就不會影這樣的錯誤訊息顯示,並可正確顯示虛擬頭像的圖片,或者回到facedata.php
後再次進入就也就正常,有什麼bug嗎?這問題在你的虛擬形象也會有相同錯誤!

謝謝你!!

補上圖片圖檔




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2012-06-25 3:44 pm

修改facealbum.php

代碼: 選擇全部
      elseif($gender == 2)
      {
         $usergender = "美女";
         $tempequip = '0-0-0-0-0-0-0-0-initf-initf-0-initf-0-initf-initf-0-0-0-initf-0-0-0-0-0-0-0';
         $sex = "f";   
      }

後面增加這段
代碼: 選擇全部
      $cookiearray = explode('-', $tempequip);
      $facecookie = $db->sql_query("SELECT a.face_wear,a.classid,a.buydata,a.facepicid,a.face_from,a.face_data_id,b.sp_sxgraphic,b.sp_name
                FROM week9_userdata a,week9_data b where a.userid = $user_id  and a.dafaultuse = '1' and a.face_data_id=b.id ");
      while ($usercaifu = $db->sql_fetchrow($facecookie))
      {
         $cookiearray[$usercaifu["classid"]] = $usercaifu["facepicid"];
      }
      $db->sql_freeresult($facecookie);
      $tempequip = implode("-", $cookiearray);
      setcookie("tempequip", "$tempequip");



代碼: 選擇全部
      'UFC'         => $_COOKIE["tempequip"],

改成
代碼: 選擇全部
      'UFC'         => $tempequip,



水色論壇 http://www.et99.net
簡恩峻分享

IKOBOY
 
文章: 9
註冊時間: 2012-06-21 11:50 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章IKOBOY » 2012-06-25 5:36 pm

謝謝你再次修正了程式,這樣就不會有錯誤了,雖然有些麻煩你很不好意思,但有個疑問是:
在facedata.php, facealbum.php內按下原始造型是否應該是脫下所有的衣服配件?好像失效耶,有空再幫忙,已經很感謝了!!

:lol:




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: Avatar for phpBB3(虛擬形象)

文章ETERNAL » 2012-06-28 9:55 am

IKOBOY 寫:謝謝你再次修正了程式,這樣就不會有錯誤了,雖然有些麻煩你很不好意思,但有個疑問是:
在facedata.php, facealbum.php內按下原始造型是否應該是脫下所有的衣服配件?好像失效耶,有空再幫忙,已經很感謝了!!

:lol:


facedata.php facealbum.php 的原始造型,是指脫下所有試穿尚未儲存到身上的衣服


水色論壇 http://www.et99.net
簡恩峻分享

下一頁

回到 架站討論

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客