[parasy commit] r46 - in trunk: sql upload upload/images/way upload/include/javascript upload/parasy upload/templ...

0 views
Skip to first unread message

codesite...@google.com

unread,
Mar 19, 2008, 10:03:03 AM3/19/08
to project...@googlegroups.com
Author: Saiccc
Date: Wed Mar 19 07:02:01 2008
New Revision: 46

Added:
trunk/upload/images/way/avatar_background.jpg (contents, props changed)
trunk/upload/include/javascript/reflection.js
trunk/upload/templates/babel/i_avatar.htm
Modified:
trunk/sql/parasy.mysql.sql
trunk/upload/index.php
trunk/upload/parasy/ParasyCore.php
trunk/upload/templates/babel/discuz.htm
trunk/upload/templates/babel/viewpro_classic.htm
trunk/upload/templates/css/css_babel.css
trunk/upload/viewpro.php

Log:
member avatar show

Modified: trunk/sql/parasy.mysql.sql
==============================================================================
--- trunk/sql/parasy.mysql.sql (original)
+++ trunk/sql/parasy.mysql.sql Wed Mar 19 07:02:01 2008
@@ -16,6 +16,7 @@
ALTER TABLE `cdb_members` ADD `idx_cloud` tinyint(1) NOT NULL default '0';
ALTER TABLE `cdb_members` ADD `usr_geo` varchar(100) NOT NULL default 'earth';
ALTER TABLE `cdb_members` ADD `side_buddy` TINYINT( 1 ) NOT NULL DEFAULT '0';
+ALTER TABLE `cdb_memberfields` ADD `hits` INT( 10 ) NOT NULL DEFAULT '0';

--
-- Table structure for table `cdb_savepoint`

Added: trunk/upload/images/way/avatar_background.jpg
==============================================================================
Binary file. No diff available.

Added: trunk/upload/include/javascript/reflection.js
==============================================================================
--- (empty file)
+++ trunk/upload/include/javascript/reflection.js Wed Mar 19 07:02:01 2008
@@ -0,0 +1,170 @@
+/**
+ * reflection.js v1.6
+ *
+ * Contributors: Cow http://cow.neondragon.net
+ * Gfx http://www.jroller.com/page/gfx/
+ * Sitharus http://www.sitharus.com
+ * Andreas Linde http://www.andreaslinde.de
+ * Tralala, coder @ http://www.vbulletin.org
+ *
+ * Freely distributable under MIT-style license.
+ */
+
+/* From prototype.js */
+document.getElementsByClassName = function(className) {
+ var children = document.getElementsByTagName('*') || document.all;
+ var elements = new Array();
+
+ for (var i = 0; i < children.length; i++) {
+ var child = children[i];
+ var classNames = child.className.split(' ');
+ for (var j = 0; j < classNames.length; j++) {
+ if (classNames[j] == className) {
+ elements.push(child);
+ break;
+ }
+ }
+ }
+ return elements;
+}
+
+var Reflection = {
+ defaultHeight : 0.5,
+ defaultOpacity: 0.5,
+
+ add: function(image, options) {
+ Reflection.remove(image);
+
+ doptions = { "height" : Reflection.defaultHeight, "opacity" : Reflection.defaultOpacity }
+ if (options) {
+ for (var i in doptions) {
+ if (!options[i]) {
+ options[i] = doptions[i];
+ }
+ }
+ } else {
+ options = doptions;
+ }
+
+ try {
+ var d = document.createElement('div');
+ var p = image;
+
+ var classes = p.className.split(' ');
+ var newClasses = '';
+ for (j=0;j<classes.length;j++) {
+ if (classes[j] != "reflect") {
+ if (newClasses) {
+ newClasses += ' '
+ }
+
+ newClasses += classes[j];
+ }
+ }
+
+ var reflectionHeight = Math.floor(p.height*options['height']);
+ var divHeight = Math.floor(p.height*(1+options['height']));
+
+ var reflectionWidth = p.width;
+
+ if (document.all && !window.opera) {
+ /* Copy original image's classes & styles to div */
+ d.className = newClasses;
+ p.className = 'reflected';
+
+ d.style.cssText = p.style.cssText;
+ p.style.cssText = 'vertical-align: bottom';
+
+ var reflection = document.createElement('img');
+ reflection.src = p.src;
+ reflection.style.width = reflectionWidth+'px';
+
+ reflection.style.marginBottom = "-"+(p.height-reflectionHeight)+'px';
+ reflection.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity='+(options['opacity']*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(options['height']*100)+')';
+
+ d.style.width = reflectionWidth+'px';
+ d.style.height = divHeight+'px';
+ p.parentNode.replaceChild(d, p);
+
+ d.appendChild(p);
+ d.appendChild(reflection);
+ } else {
+ var canvas = document.createElement('canvas');
+ if (canvas.getContext) {
+ /* Copy original image's classes & styles to div */
+ d.className = newClasses;
+ p.className = 'reflected';
+
+ d.style.cssText = p.style.cssText;
+ p.style.cssText = 'vertical-align: bottom';
+
+ var context = canvas.getContext("2d");
+
+ canvas.style.height = reflectionHeight+'px';
+ canvas.style.width = reflectionWidth+'px';
+ canvas.height = reflectionHeight;
+ canvas.width = reflectionWidth;
+
+ d.style.width = reflectionWidth+'px';
+ d.style.height = divHeight+'px';
+ p.parentNode.replaceChild(d, p);
+
+ d.appendChild(p);
+ d.appendChild(canvas);
+
+ context.save();
+
+ context.translate(0,image.height-1);
+ context.scale(1,-1);
+
+ context.drawImage(image, 0, 0, reflectionWidth, image.height);
+
+ context.restore();
+
+ context.globalCompositeOperation = "destination-out";
+ var gradient = context.createLinearGradient(0, 0, 0, reflectionHeight);
+
+ gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
+ gradient.addColorStop(0, "rgba(255, 255, 255, "+(1-options['opacity'])+")");
+
+ context.fillStyle = gradient;
+ if (navigator.appVersion.indexOf('WebKit') != -1) {
+ context.fill();
+ } else {
+ context.fillRect(0, 0, reflectionWidth, reflectionHeight*2);
+ }
+ }
+ }
+ } catch (e) {
+ }
+ },
+
+ remove : function(image) {
+ if (image.className == "reflected") {
+ image.className = image.parentNode.className;
+ image.parentNode.parentNode.replaceChild(image, image.parentNode);
+ }
+ }
+}
+
+function addReflections() {
+ var rimages = document.getElementsByClassName('reflect');
+ for (i=0;i<rimages.length;i++) {
+ var rheight = null;
+ var ropacity = null;
+
+ var classes = rimages[i].className.split(' ');
+ for (j=0;j<classes.length;j++) {
+ if (classes[j].indexOf("rheight") == 0) {
+ var rheight = classes[j].substring(7)/100;
+ } else if (classes[j].indexOf("ropacity") == 0) {
+ var ropacity = classes[j].substring(8)/100;
+ }
+ }
+
+ Reflection.add(rimages[i], { height: rheight, opacity : ropacity});
+ }
+}
+
+var previousOnload = window.onload;
+window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }

Modified: trunk/upload/index.php
==============================================================================
--- trunk/upload/index.php (original)
+++ trunk/upload/index.php Wed Mar 19 07:02:01 2008
@@ -65,6 +65,16 @@
@shuffle($dash_commend);
/* Parasy || E:Hot Topic */

+/* Parasy || S:Avatar Show */
+if((@!include('forumdata/cache/cache_avatar_show.php')) || $commend_expiration < time()) {
+ $avatar_show = rand_avatars();
+} else {
+ $avatar_show = $avatar_show;
+}
+@shuffle($avatar_show);
+/* Parasy || E:Avatar Show */
+
+
$gid = !empty($gid) ? intval($gid) : 0;
if(!$gid) {
/* Parasy || S:Buddy SVP Push */

Modified: trunk/upload/parasy/ParasyCore.php
==============================================================================
--- trunk/upload/parasy/ParasyCore.php (original)
+++ trunk/upload/parasy/ParasyCore.php Wed Mar 19 07:02:01 2008
@@ -373,7 +373,6 @@
}

/* Thread List */
-
function timeline_remix () {
global $db, $_DCACHE, $timestamp, $tablepre, $discuz_uid, $groupid, $fid;
$_timeline = array();
@@ -511,6 +510,23 @@
return $data['dash_commend'];
}

+/* S:Index Avatar Show || written by Exgbit */
+function rand_avatars() {
+ global $db, $_DCACHE, $timestamp, $tablepre, $discuz_uid, $member;
+ $data = array();
+ $query_avatar = $db->query("SELECT m.uid,m.username,mf.nickname,mf.avatar from {$tablepre}members m LEFT JOIN {$tablepre}memberfields mf ON m.uid=mf.uid WHERE mf.avatar !='' ORDER BY rand() LIMIT 20");
+ while($avatar = $db->fetch_array($query_avatar)) {
+ $data['avatar_show'][$avatar[uid]]['uid'] = $avatar['uid'];
+ $data['avatar_show'][$avatar[uid]]['name'] = $avatar['username'];
+ $data['avatar_show'][$avatar[uid]]['nickname'] = $avatar['nickname'];
+ $data['avatar_show'][$avatar[uid]]['avatar'] = $avatar['avatar'];
+ }
+ $data['avatar_expiration'] = 900 + time();
+ nmwritetocache(cache_avatar_show, '', nmgetcachevars($data),'','cache');
+ return $data['avatar_show'];
+}
+/* E:Index Avatar Show || written by Exgbit */
+
/* Page Functions */
function now_multi($num, $perpage, $curpage, $mpurl, $maxpages = 0, $page = 10, $simple = 0, $onclick = '',$postfix ='') {
$multipage = '';
@@ -614,6 +630,20 @@
}

/* User Functions */
+function add_hits($uid) {
+ global $db, $_DCACHE, $timestamp, $tablepre, $discuz_uid, $member;
+ if ($uid != $discuz_uid) {
+ session_start();
+ if (isset($_SESSION['add_hits'][$uid])) {
+ $_SESSION['add_hits'][$uid] = 1;
+ } else {
+ $_SESSION['add_hits'][$uid] = 1;
+ $query = $db->query("UPDATE {$tablepre}memberfields SET hits = (hits + 1) WHERE uid = {$uid} LIMIT 1");
+ }
+ }
+ return true;
+}
+
function svp_update($uid,$del = 0) {
global $db, $_DCACHE, $timestamp, $tablepre, $discuz_uid, $member;
$data = array();

Modified: trunk/upload/templates/babel/discuz.htm
==============================================================================
--- trunk/upload/templates/babel/discuz.htm (original)
+++ trunk/upload/templates/babel/discuz.htm Wed Mar 19 07:02:01 2008
@@ -107,6 +107,8 @@
</table>
</div>

+{template i_avatar}
+
<!--{if $supe['status'] && $supe['items']['status'] && $_DCACHE['supe_updateitems']}-->
<div class="maintable" align="left">
<img src="{IMGDIR}/pico_zen.gif" align="absmiddle" /> �������������־������

Added: trunk/upload/templates/babel/i_avatar.htm
==============================================================================
--- (empty file)
+++ trunk/upload/templates/babel/i_avatar.htm Wed Mar 19 07:02:01 2008
@@ -0,0 +1,13 @@
+<!--{eval $js_reflection= autoVer($jsdir.'/reflection.js');}-->
+<script type="text/javascript" src="$bbsdir/scripts/$js_reflection"></script>
+<div class="avatartable" align="left">
+<img src="{IMGDIR}/group.png" align="absmiddle"> ��Աͷ��չʾ ...
+<table class="fav" border="0" cellpadding="0" cellspacing="0" width="100%" align="center"><tbody><tr><td>
+<!--{loop $avatar_show $avatar}-->
+<!--{eval $i_avatar ++;}-->
+<!--{if $i_avatar < 7}-->
+<a href="$bbsdir/u-$avatar[uid].html" class="friend"><img src="$bbsdir/$avatar[avatar]" class="reflect" width="75" height="75"><div class="tip">$avatar[name]</div></a>
+<!--{/if}-->
+<!--{/loop}-->
+</td></tr></tbody></table>
+</div>
\ No newline at end of file

Modified: trunk/upload/templates/babel/viewpro_classic.htm
==============================================================================
--- trunk/upload/templates/babel/viewpro_classic.htm (original)
+++ trunk/upload/templates/babel/viewpro_classic.htm Wed Mar 19 07:02:01 2008
@@ -22,7 +22,7 @@
<!--{/if}-->
<!--{if $member['username']==$discuz_user}-->
<tr>
- <td colspan="2" align="center" class="section_odd"><img src="{IMGDIR}/house.png" align="absmiddle" />&nbsp;���������־��ҳ��ַ&nbsp;&nbsp;&nbsp;<input type="text" class="sll" onclick="this.select()" value="http://$_SERVER[HTTP_HOST]$bbsdir/u-$member[uid].html" readonly="readonly" />&nbsp;&nbsp;&nbsp;<span class="tip_i">... ��ҳһ����������-��</span>
+ <td colspan="2" align="center" class="section_odd"><img src="{IMGDIR}/house.png" align="absmiddle" />&nbsp;���������־��ҳ��ַ&nbsp;&nbsp;&nbsp;<input type="text" class="sll" onclick="this.select()" value="http://$_SERVER[HTTP_HOST]$bbsdir/u-$member[uid].html" readonly="readonly" />&nbsp;&nbsp;&nbsp;<span class="tip_i">... ��ҳһ���������� $member['hits'] ��</span>
</td>
</tr>
<!--{/if}-->

Modified: trunk/upload/templates/css/css_babel.css
==============================================================================
--- trunk/upload/templates/css/css_babel.css (original)
+++ trunk/upload/templates/css/css_babel.css Wed Mar 19 07:02:01 2008
@@ -386,6 +386,17 @@
-webkit-border-radius: 7px;
}

+div.avatartable {
+padding: 5px;
+border: 1px solid #E0E0E0;
+background-color: #FFF;
+margin-bottom: 10px;
+font-size: 12px;
+-moz-border-radius: 7px;
+-webkit-border-radius: 7px;
+background: url(/bbs/images/way/avatar_background.jpg) no-repeat;
+color:#fff;
+}

div.conclude {
text-align: right;
@@ -1477,7 +1488,7 @@
a.friend:hover div.tip, a.friend:active div.tip {
display: block;
position: relative;
- top: -160px;
+ top: -130px;
left: 0px;
padding: 2px;
-webkit-border-radius: 5px;

Modified: trunk/upload/viewpro.php
==============================================================================
--- trunk/upload/viewpro.php (original)
+++ trunk/upload/viewpro.php Wed Mar 19 07:02:01 2008
@@ -121,7 +121,6 @@
$member['lastpost'] = $member['lastpost'] ? gmdate("$dateformat $timeformat", $member['lastpost'] + ($timeoffset * 3600)) : 'x';


-
$member['taobaoas'] = addslashes($member['taobao']);

$member['olupgrade'] = $member['totalol'] ? 20 - $member['totalol'] % 20 : 20;
@@ -132,6 +131,9 @@
$member['bday'] = str_replace('j', $day, $member['bday']);
$member['bday'] = str_replace('Y', $year, $member['bday']);
$member['bday'] = str_replace('y', substr($year, 2, 4), $member['bday']);
+
+add_hits($member[uid]);
+
//S:new thread
$query = $db->query("SELECT m.*, t.subject, t.fid, t.displayorder, t.closed, t.lastposter, t.lastpost FROM {$tablepre}mythreads m, {$tablepre}threads t
WHERE m.uid = '{$member[uid]}' $threadadd AND m.tid=t.tid ORDER BY m.dateline DESC LIMIT 10");

Reply all
Reply to author
Forward
0 new messages