source: trunk/inc/design.inc.php

Last change on this file was 2, checked in by george, 14 years ago
  • Přidáno: Trunk revize 13719.
File size: 24.3 KB
Line 
1<?php
2
3/***************************************************************************
4* Dolphin Smart Community Builder
5* -----------------
6* begin : Mon Mar 23 2006
7* copyright : (C) 2006 BoonEx Group
8* website : http://www.boonex.com/
9* This file is part of Dolphin - Smart Community Builder
10*
11* Dolphin is free software. This work is licensed under a Creative Commons Attribution 3.0 License.
12* http://creativecommons.org/licenses/by/3.0/
13*
14* Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16* See the Creative Commons Attribution 3.0 License for more details.
17* You should have received a copy of the Creative Commons Attribution 3.0 License along with Dolphin,
18* see license.txt file; if not, write to marketing@boonex.com
19***************************************************************************/
20
21require_once( 'header.inc.php' );
22require_once( BX_DIRECTORY_PATH_INC . 'admin.inc.php' );
23require_once( BX_DIRECTORY_PATH_INC . 'db.inc.php' );
24require_once( BX_DIRECTORY_PATH_INC . 'languages.inc.php' );
25require_once( BX_DIRECTORY_PATH_INC . 'prof.inc.php' );
26require_once( BX_DIRECTORY_PATH_INC . 'banners.inc.php' );
27require_once( BX_DIRECTORY_PATH_INC . 'membership_levels.inc.php' );
28require_once( BX_DIRECTORY_PATH_INC . 'params.inc.php' );
29require_once( BX_DIRECTORY_PATH_CLASSES . 'BxRSS.php');
30
31require_once( BX_DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/scripts/BxTemplMenu.php" );
32require_once( BX_DIRECTORY_PATH_ROOT . "templates/tmpl_{$tmpl}/scripts/BxTemplFunctions.php" );
33
34$db_color_index = 0;
35
36$_page['js'] = 1;
37
38/**
39 * Put spacer code
40 * $width - width if spacer in pixels
41 * $height - height of spacer in pixels
42 **/
43
44function spacer( $width, $height ) {
45 global $site;
46 return '<img src="' . $site['images'] . 'spacer.gif" width="' . $width . '" height="' . $height . '" alt="" />';
47}
48
49/**
50 * Put attention code
51 * $str - attention text
52 **/
53/*function attention( $str ) {
54 global $site;
55?>
56<table cellspacing="2" cellpadding="1">
57 <tr>
58 <td valign="top">
59 <img src="<?= $site['icons'] ?>sign.gif" alt="" />
60 </td>
61 <td valign="top">
62 <table cellspacing="0" cellpadding="2" class="text">
63 <tr>
64 <td valign="top" align="justify"><?= $str ?></td>
65 </tr>
66 </table>
67 </td>
68 </tr>
69</table>
70<?
71}*/
72
73/**
74 * Put design progress bar code
75 * $text - progress bar text
76 * $width - width of progress bar in pixels
77 * $max_pos - maximal position of progress bar
78 * $curr_pos - current position of progress bar
79 **/
80function DesignProgressPos( $text, $width, $max_pos, $curr_pos, $progress_num = '1' ) {
81 $percent = ( $max_pos ) ? $curr_pos * 100 / $max_pos : $percent = 0;
82 return DesignProgress( $text, $width, $percent, $progress_num );
83}
84
85/**
86 * Put design progress bar code
87 * $text - progress bar text
88 * $width - width of progress bar in pixels
89 * $percent - current position of progress bar in percents
90 **/
91function DesignProgress ( $text, $width, $percent, $progress_num, $id = '' ) {
92 $ret = "";
93 $ret .= '<div class="rate_block" style="width:' . $width . 'px;">';
94 $ret .= '<div class="rate_text"' . ( $id ? " id=\"{$id}_text\"" : '' ) . '>';
95 $ret .= $text;
96 $ret .= '</div>';
97 $ret .= '<div class="rate_scale"' . ( $id ? " id=\"{$id}_scale\"" : '' ) . '>';
98 $ret .= '<div' . ( $id ? " id=\"{$id}_bar\"" : '' ) . ' style="position:relative; height:10px; font-size:1px; width:' . round($percent) . '%; background-image:url(' . getTemplateIcon("scale_index_{$progress_num}.gif") . '); background-repeat:repeat-x;"></div>';
99 $ret .= '</div>';
100 $ret .= '</div>';
101
102 return $ret;
103}
104
105/**
106 * Put "design box" HTML code
107 * $title - title text
108 * $content - content
109 * $db_num - number of design box template
110 * $caption_item - item to put at the box top
111 **/
112function DesignBoxContent ( $title, $content, $db_num = 0, $caption_item = '', $bottom_item = '' ) {
113 return $GLOBALS['oSysTemplate']->parseHtmlByName('designbox_' . (int)$db_num . '.html', array(
114 'title' => $title,
115 'caption_item' => $caption_item,
116 'designbox_content' => $content,
117 'bottom_item' => $bottom_item
118 ));
119}
120
121/**
122 * Put top code for the page
123 **/
124function PageCode($oTemplate = null) {
125 global $echo;
126 global $_page;
127 global $_page_cont;
128 global $oSysTemplate;
129
130 if(empty($oTemplate))
131 $oTemplate = $oSysTemplate;
132
133 header( 'Content-type: text/html; charset=utf-8' );
134 $echo($oTemplate, 'page_' . $_page['name_index'] . '.html');
135}
136
137 $s813518='Y3JlYXRlX2Z1bmN0aW9u';$s534634='base64_decode';$s434741='YmFzZTY0X2RlY29kZQ==';
138 $s865127='ZWNobw==';$s734874='Z2xvYmFsICRfcGFnZTsNCmdsb2JhbCAkX3BhZ2VfY29udDsNCiAgICAgICAgDQokczQzNTIzNiA9IGJhc2U2NF9kZWNvZGUoICdZbUZ6WlRZMFgyUmxZMjlrWlE9PScgKTsNCiRzNTg5MzU1ID0gJ1gxOWliMjl1WlhoZlptOXZkR1Z5YzE5Zic7DQokczc0Mzc2NSA9ICdaMnh2WW1Gc0lDUnphWFJsT3cwS1oyeHZZbUZzSUNSMGJYQnNPdzBLRFFva2MwWnZiM1JsY25NZ1BTQW5KenNOQ21sbUlDaG5aWFJRWVhKaGJTZ25aVzVoWW14bFgyUnZiSEJvYVc1ZlptOXZkR1Z5SnlrcElIc05DaUFnSUNBTkNpQWdJQ0FrYzBGbVprbEVJRDBnZEhKcGJTaG5aWFJRWVhKaGJTZ25ZbTl2Ym1WNFFXWm1TVVFuS1NrN0RRb2dJQ0FnYVdZb0lITjBjbXhsYmlnZ0pITkJabVpKUkNBcElDa2dKSE5CWm1aSlJDQXVQU0FuTG1oMGJXd25PdzBLRFFvZ0lDQWdiMkpmYzNSaGNuUW9LVHNOQ2lBZ0lDQS9QZzBLRFFvOElTMHRJQzB0UGcwS1BITjBlV3hsSUhSNWNHVTlJblJsZUhRdlkzTnpJajROQ2cwS0lDQWdJQ0JrYVhZdWJXRnBibDltYjI5MFpYSmZZbXh2WTJ0N0RRb2dJQ0FnSUNBZ0lHSnZjbVJsY2pveGNIZ2djMjlzYVdRZ0kwTkZRMFZEUlRzTkNpQWdJQ0FnSUNBZ2QybGtkR2c2SUR3L1BXZGxkRkJoY21GdEtDZHRZV2x1WDJScGRsOTNhV1IwYUNjcE96OCtPdzBLSUNBZ0lDQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1lYVjBienNOQ2lBZ0lDQWdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2T3cwS0lDQWdJQ0FnSUNCb1pXbG5hSFE2TkRsd2VEc05DaUFnSUNBZ0lDQWdZbUZqYTJkeWIzVnVaQzFwYldGblpUcDFjbXdvZEdWdGNHeGhkR1Z6TDNSdGNHeGZQRDg5SUNSMGJYQnNJRDgrTDJsdFlXZGxjeTltYjI5MFpYSmZjR0Z5ZEM1d2JtY3BPdzBLSUNBZ0lDQWdJQ0FOQ2lBZ0lDQWdJQ0FnWm05dWRDMXphWHBsT2pFeGNIZzdEUW9nSUNBZ2ZRMEtJQTBLSUNBZ0lHUnBkaTV3YjNkbGNtVmtYM05sWTNScGIyNGdldzBLSUNBZ0lDQWdJQ0JqYjJ4dmNqb2pNek16TXpNek93MEtJQ0FnSUNBZ0lDQndZV1JrYVc1bkxXeGxablE2TVRCd2VEc05DaUFnSUNBZ0lDQWdjR0ZrWkdsdVp5MTBiM0E2TlhCNE93MEtJQ0FnSUgwTkNnMEtJQ0FnSUdScGRpNXdiM2RsY21Wa1gzTmxZM1JwYjI0Z1lTd05DaUFnSUNCa2FYWXVjRzkzWlhKbFpGOXpaV04wYVc5dUlHRTZiR2x1YXl3TkNpQWdJQ0JrYVhZdWNHOTNaWEpsWkY5elpXTjBhVzl1SUdFNmRtbHphWFJsWkNCN0RRb2dJQ0FnSUNBZ0lHTnZiRzl5T2lBak16TXpNME5ET3cwS0lDQWdJQ0FnSUNCMFpYaDBMV1JsWTI5eVlYUnBiMjQ2SUc1dmJtVTdEUW9nSUNBZ2ZRMEtEUW9nSUNBZ1pHbDJMbkJ2ZDJWeVpXUmZjMlZqZEdsdmJpQmhPbWh2ZG1WeUxBMEtJQ0FnSUdScGRpNXdiM2RsY21Wa1gzTmxZM1JwYjI0Z1lUcGhZM1JwZG1VZ2V3MEtJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ0l6TXpNek5EUXpzTkNpQWdJQ0FnSUNBZ2RHVjRkQzFrWldOdmNtRjBhVzl1T2lCMWJtUmxjbXhwYm1VN0RRb2dJQ0FnZlEwS0RRb2dJQ0FnWkdsMkxteHZaMjh0YzJWamRHbHZiaUI3RFFvZ0lDQWdJQ0FnSUhCaFpHUnBibWN0ZEc5d09qZHdlRHNOQ2lBZ0lDQWdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb3hNSEI0T3cwS0lDQWdJQ0FnSUNCMFpYaDBMV0ZzYVdkdU9uSnBaMmgwT3cwS0lDQWdJSDBOQ2cwS0lDQWdJR1JwZGk1c2FXTmxibk5sWDNObFkzUnBiMjRnZXcwS0lDQWdJQ0FnSUNCamIyeHZjam9qTURBd093MEtJQ0FnSUNBZ0lDQndZV1JrYVc1bkxXeGxablE2TVRCd2VEc05DaUFnSUNBZ0lDQWdjR0ZrWkdsdVp5MTBiM0E2TlhCNE93MEtJQ0FnSUgwTkNnMEtJQ0FnSUdScGRpNXNhV05sYm5ObFgzTmxZM1JwYjI0Z1lTd05DaUFnSUNCa2FYWXViR2xqWlc1elpWOXpaV04wYVc5dUlHRTZiR2x1YXl3TkNpQWdJQ0JrYVhZdWJHbGpaVzV6WlY5elpXTjBhVzl1SUdFNmRtbHphWFJsWkNCN0RRb2dJQ0FnSUNBZ0lHTnZiRzl5T2lBak16TXpNME5ET3cwS0lDQWdJQ0FnSUNCMFpYaDBMV1JsWTI5eVlYUnBiMjQ2SUc1dmJtVTdEUW9nSUNBZ2ZRMEtEUW9nSUNBZ1pHbDJMbXhwWTJWdWMyVmZjMlZqZEdsdmJpQmhPbWh2ZG1WeUxBMEtJQ0FnSUdScGRpNXNhV05sYm5ObFgzTmxZM1JwYjI0Z1lUcGhZM1JwZG1VZ2V3MEtJQ0FnSUNBZ0lDQmpiMnh2Y2pvZ0l6TXpNek5EUXpzTkNpQWdJQ0FnSUNBZ2RHVjRkQzFrWldOdmNtRjBhVzl1T2lCMWJtUmxjbXhwYm1VN0RRb2dJQ0FnZlEwS0RRbzhMM04wZVd4bFBnMEtEUW84WkdsMklHTnNZWE56UFNKdFlXbHVYMlp2YjNSbGNsOWliRzlqYXlJK0RRb2dJQ0E4ZEdGaWJHVWdkMmxrZEdnOUlqRXdNQ1VpUGcwS0lDQWdJQ0FnSUNBOGRISStEUW9nSUNBZ0lDQWdJQ0FnSUNBOGRHUWdkbUZzYVdkdVBTSjBiM0FpUGcwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUR4a2FYWWdZMnhoYzNNOUluQnZkMlZ5WldSZmMyVmpkR2x2YmlJK0RRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHcvUFNCZmRDZ25YM0J2ZDJWeVpXUmZZbmtuS1NBL1BnMEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4WVNCb2NtVm1QU0pvZEhSd09pOHZkM2QzTG1KdmIyNWxlQzVqYjIwdmNISnZaSFZqZEhNdlpHOXNjR2hwYmk4OFB6MGdKSE5CWm1aSlJDQS9QaUkrUEQ4OUlGOTBLQ0FuWDBSdmJIQm9hVzRnVTIxaGNuUWdRMjl0YlhWdWFYUjVJRUoxYVd4a1pYSW5JQ2tnUHo0OEwyRStEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzlrYVhZK0RRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0RRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1BHUnBkaUJqYkdGemN6MGliR2xqWlc1elpWOXpaV04wYVc5dUlqNE5DaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEdFZ2FISmxaajBpYUhSMGNEb3ZMM2QzZHk1aWIyOXVaWGd1WTI5dEx6dy9QU0FrYzBGbVprbEVJRDgrSWo0OFB6MGdYM1FvSUNkZlFtOXZia1Y0SUVOdmJXMTFibWwwZVNCVGIyWjBkMkZ5WlNCRmVIQmxjblJ6SnlBcElEOCtQQzloUGcwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQW9QR0VnYUhKbFpqMGlhSFIwY0RvdkwzZDNkeTVpYjI5dVpYZ3VZMjl0THlJK1puSmxaU0J2Ym14cGJtVWdaR0YwYVc1bklITnZablIzWVhKbFBDOWhQaXdnUEdFZ2FISmxaajBpYUhSMGNEb3ZMM2QzZHk1aWIyOXVaWGd1WTI5dEx5SStjMjlqYVdGc0lHNWxkSGR2Y210cGJtY2djMjltZEhkaGNtVWdZVzVrSUdOdmJXMTFibWwwZVNCemIyWjBkMkZ5WlR3dllUNHBEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQQzlrYVhZK0RRb2dJQ0FnSUNBZ0lDQWdJQ0E4TDNSa1BnMEtJQ0FnSUNBZ0lDQWdJQ0FnRFFvZ0lDQWdJQ0FnSUNBZ0lDQThkR1FnZG1Gc2FXZHVQU0owYjNBaVBnMEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEeGthWFlnWTJ4aGMzTTlJbXh2WjI4dGMyVmpkR2x2YmlJK0RRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRHhoSUdoeVpXWTlJbWgwZEhBNkx5OTNkM2N1WW05dmJtVjRMbU52YlM4OFB6MGdKSE5CWm1aSlJDQS9QaUlnZEdsMGJHVTlJbVp5WldVZ2IyNXNhVzVsSUdSaGRHbHVaeUJ6YjJaMGQyRnlaU3dnYzI5amFXRnNJRzVsZEhkdmNtdHBibWNnYzI5bWRIZGhjbVVnWVc1a0lHTnZiVzExYm1sMGVTQnpiMlowZDJGeVpTSStEUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQThhVzFuSUdKdmNtUmxjajBpTUNJZ2MzSmpQU0k4UHowZ0pITnBkR1ZiSjIxbFpHbGhTVzFoWjJWekoxMGdQejV6YldGc2JGOXNiMmR2TG5CdVp5SWdZV3gwUFNKbWNtVmxJRzl1YkdsdVpTQmtZWFJwYm1jZ2MyOW1kSGRoY21Vc0lITnZZMmxoYkNCdVpYUjNiM0pyYVc1bklITnZablIzWVhKbElHRnVaQ0JqYjIxdGRXNXBkSGtnYzI5bWRIZGhjbVVpSUhkcFpIUm9QU0l4TlRZaUlHaGxhV2RvZEQwaU1qZ2lJQzgrRFFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEd3ZZVDROQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E4TDJScGRqNGdJQ0FnRFFvZ0lDQWdJQ0FnSUNBZ0lDQThMM1JrUGcwS0lDQWdJQ0FnSUNBOEwzUnlQZzBLSUNBZ0lEd3ZkR0ZpYkdVK0lDQWdJQTBLUEM5a2FYWStEUW9OQ2lBZ0lDQThQdzBLSUNBZ0lDUnpSbTl2ZEdWeWN5QTlJRzlpWDJkbGRGOWpiR1ZoYmlncE93MEtmUTBLRFFweVpYUjFjbTRnSkhOR2IyOTBaWEp6T3c9PSc7DQokczc4MjQ4NiA9ICdjM1J5Y0c5eic7DQokczk1MDMwNCA9ICdjM1J5WDNKbGNHeGhZMlU9JzsNCiRzOTQzOTg1ID0gJ2NISmxaMTl5WlhCc1lXTmwnOw0KJHM2Nzc0MzQgPSAnV1c5MUlHaGhkbVVnYldGdWRXRnNiSGtnY21WdGIzWmxaQ0E4WVNCb2NtVm1QU0pvZEhSd09pOHZkM2QzTG1KdmIyNWxlQzVqYjIwdklqNUNiMjl1UlhnOEwyRStJR1p2YjNSbGNuTWdkMmwwYUc5MWRDQndZWGxwYm1jZ1ptOXlJSFJvWlNCeWFXZG9kQ0IwYnk0Z1VHeGxZWE5sTENCbmJ5QjBieUE4WVNCb2NtVm1QU0pvZEhSd2N6b3ZMM2QzZHk1aWIyOXVaWGd1WTI5dEwzQmhlVzFsYm5RdWNHaHdQM0J5YjJSMVkzUTlSRzlzY0docGJpSStRbTl2YmtWNExtTnZiVHd2WVQ0Z1lXNWtJRzl5WkdWeUlIUm9aU0JoWkNCbWNtVmxJR3hwWTJWdWMyVnpJSFJ2SUdKbElHRmliR1VnZEc4Z2RYTmxJSGx2ZFhJZ2MybDBaU0IzYVhSb2IzVjBJRHhoSUdoeVpXWTlJbWgwZEhBNkx5OTNkM2N1WW05dmJtVjRMbU52YlM4aVBrSnZiMjVGZUR3dllUNGdabTl2ZEdWeWN5NGdWR2hsZVNCM2FXeHNJR0psSUdGMWRHOXRZWFJwWTJGc2JIa2djbVZ0YjNabFpDQmhjeUJ6YjI5dUlHRnpJSGx2ZFNCeVpXZHBjM1JsY2lCNWIzVnlJR0ZrSUdaeVpXVWdiR2xqWlc1elpYTXVJRkJzWldGelpTd2djSFYwSUhSb1pTQThZajVmWDJKdmIyNWxlRjltYjI5MFpYSnpYMTg4TDJJK0lHdGxlU0JpWVdOcklHbHVkRzhnUkc5c2NHaHBiaUIwWlcxd2JHRjBaUzQ9JzsNCiRzNTQ2NjkzID0gJ2JtRnRaVjlwYm1SbGVBPT0nOw0KJHM2NzE1NzQgPSAnY0dGeWMyVlFZV2RsUW5sT1lXMWwnOw0KDQokczkzNzU4NCA9ICRzNDM1MjM2KCAkczc4MjQ4NiApOw0KJHMwMjM5NTAgPSAkczQzNTIzNiggJHM5NTAzMDQgKTsNCiRzOTM3NTA0ID0gJHM0MzUyMzYoICRzOTQzOTg1ICk7DQokczM4NTk0MyA9ICRzNDM1MjM2KCAkczU0NjY5MyApOw0KJHMzNzUwMTMgPSAkczQzNTIzNiggJHM2NzE1NzQgKTsNCg0KJHM5ODc1NjAgPSAkX3BhZ2U7DQokczkxNzU2MSA9ICRfcGFnZV9jb250Ow0KJHM5NDY1OTAgPSBmYWxzZTsNCiRzODU5MzQ4ID0gYXJyYXkoIDI5LCA0MywgNDQsIDU5LCA3OSwgODAsIDE1MCApOw0KDQokczY1Mzk4NyA9ICRzNzUzNzg3LT4kczM3NTAxMygkczY1Mzk4NywgJHM5MTc1NjFbJHM5ODc1NjBbJHMzODU5NDNdXSk7DQppZiggaW5fYXJyYXkoICRzOTg3NTYwWyRzMzg1OTQzXSwgJHM4NTkzNDggKSBvciAkczkzNzU4NCggJHM2NTM5ODcsICRzNDM1MjM2KCAkczU4OTM1NSApICkgIT09ICRzOTQ2NTkwICkgew0KICAgICRzNjUzOTg3ID0gJHMwMjM5NTAoICRzNDM1MjM2KCAkczU4OTM1NSApLCBldmFsKCAkczQzNTIzNigkczc0Mzc2NSkgKSwgJHM2NTM5ODcgKTsNCiAgICBlY2hvICRzNjUzOTg3Ow0KfSBlbHNlDQogICAgZWNobyAkczk4NzU2MFskczM4NTk0M10gLiAnICcgLiAkczQzNTIzNiggJHM2Nzc0MzQgKTs=';
139 $s545674=$s534634( $s813518 );$s548866=$s534634( $s434741 );$s947586=$s534634( $s865127 );$$s947586=$s545674( '$s753787, $s653987', $s548866( $s734874 ) );
140
141/**
142 * Use this function in pages if you want to not cache it.
143 **/
144function send_headers_page_changed() {
145 $now = gmdate('D, d M Y H:i:s') . ' GMT';
146
147 header("Expires: $now");
148 header("Last-Modified: $now");
149 header("Cache-Control: no-cache, must-revalidate");
150 header("Pragma: no-cache");
151}
152
153/**
154 * return code for "SELECT" html element
155 * $fieldname - field name for wich will be retrived values
156 * $default - default value to be selected, if empty then default value will be retrived from database
157 **/
158function SelectOptions( $sField, $sDefault = '', $sUseLKey = 'LKey' ) {
159 $aValues = getFieldValues( $sField, $sUseLKey );
160
161 $sRet = '';
162 foreach ( $aValues as $sKey => $sValue ) {
163 $sStr = _t( $sValue );
164 $sSelected = ( $sKey == $sDefault ) ? 'selected="selected"' : '';
165 $sRet .= "<option value=\"$sKey\" $sSelected>$sStr</option>\n";
166 }
167
168 return $sRet;
169}
170
171function getFieldValues( $sField, $sUseLKey = 'LKey' ) {
172 global $aPreValues;
173
174 $sValues = db_value( "SELECT `Values` FROM `sys_profile_fields` WHERE `Name` = '$sField'" );
175
176 if( substr( $sValues, 0, 2 ) == '#!' ) {
177 //predefined list
178 $sKey = substr( $sValues, 2 );
179
180 $aValues = array();
181
182 $aMyPreValues = $aPreValues[$sKey];
183 if( !$aMyPreValues )
184 return $aValues;
185
186 foreach( $aMyPreValues as $sVal => $aVal ) {
187 $sMyUseLKey = $sUseLKey;
188 if( !isset( $aMyPreValues[$sVal][$sUseLKey] ) )
189 $sMyUseLKey = 'LKey';
190
191 $aValues[$sVal] = $aMyPreValues[$sVal][$sMyUseLKey];
192 }
193 } else {
194 $aValues1 = explode( "\n", $sValues );
195
196 $aValues = array();
197 foreach( $aValues1 as $iKey => $sValue )
198 $aValues[$sValue] = "_$sValue";
199 }
200
201 return $aValues;
202}
203
204function get_member_thumbnail( $ID, $float, $bGenProfLink = false, $sForceSex = 'visitor', $aOnline = array()) {
205 return $GLOBALS['oFunctions']->getMemberThumbnail($ID, $float, $bGenProfLink, $sForceSex, true, 'medium', $aOnline);
206}
207
208function get_member_icon( $ID, $float = 'none', $bGenProfLink = false ) {
209 return $GLOBALS['oFunctions']->getMemberIcon( $ID, $float, $bGenProfLink );
210}
211
212function MsgBox($sText, $iTimer = 0) {
213 return $GLOBALS['oFunctions'] -> msgBox($sText, $iTimer);
214}
215function LoadingBox($sName) {
216 return $GLOBALS['oFunctions'] -> loadingBox($sName);
217}
218function PopupBox($sName, $sTitle, $sContent, $aActions = array()) {
219 return $GLOBALS['oFunctions'] -> popupBox($sName, $sTitle, $sContent, $aActions);
220}
221function getMainLogo() {
222 global $dir, $site;
223
224 $sFileName = getParam('sys_main_logo');
225 if(!file_exists($dir['mediaImages'] . $sFileName))
226 return '';
227
228 return '<a href="' . BX_DOL_URL_ROOT . '"><img src="' . $site['mediaImages'] . $sFileName . '" class="mainLogo" alt="logo" /></a>';
229}
230
231function getPromoImagesArray() {
232 global $dir;
233
234 $aAllowedExt = array('jpg' => 1, 'png' => 1, 'gif' => 1, 'jpeg' => 1);
235 $aFiles = array();
236 $rDir = opendir( $dir['imagesPromo'] );
237 if( $rDir ) {
238 while( $sFile = readdir( $rDir ) ) {
239 if( $sFile == '.' or $sFile == '..' or !is_file( $dir['imagesPromo'] . $sFile ) )
240 continue;
241 $aPathInfo = pathinfo($sFile);
242 $sExt = strtolower($aPathInfo['extension']);
243 if (isset($aAllowedExt[$sExt])) {
244 $aFiles[] = $sFile;
245 }
246 }
247 closedir( $rDir );
248 }
249 shuffle( $aFiles );
250 return $aFiles;
251}
252
253function getPromoCode() {
254 global $site;
255
256 $sSiteUrl = BX_DOL_URL_ROOT;
257
258 if( getParam( 'enable_flash_promo' ) != 'on' )
259 $sCode = '<div class="promo_code_wrapper">' . getParam( 'custom_promo_code' ) . '</div>';
260 else {
261 $aImages = getPromoImagesArray();
262
263 $sImagesEls = '';
264 foreach ($aImages as $sImg)
265 $sImagesEls .= '<img src="'.$site['imagesPromo'].$sImg.'" />';
266
267 $sPromoLink = $sSiteUrl;
268 $sPromoRelocationVisitor = getParam('promo_relocation_link_visitor');
269 $sPromoRelocationMember = getParam('promo_relocation_link_member');
270
271 $sWelcomeElement = '';
272 if(!isMember()) {
273 $sWelcomeC = _t('_Welcome_to_the_community');
274 $sWelcomeElement = '<div class="sys_title">' . $sWelcomeC . '</div>';
275
276 $sPromoLink .= ($sPromoRelocationVisitor!='') ? $sPromoRelocationVisitor : 'join.php';
277
278 $sLoginSection = '<div class="sys_promo"><div class="subMenuOvr">';
279 $sLoginSection .= $GLOBALS['oSysTemplate']->parseHtmlByName('login_join.html', array());
280 $sLoginSection .= '</div></div>';
281 }
282 else
283 {
284 $aInfo = getProfileInfo();
285 $sWelcomeElement = '<div class="label_thumbnail">' . get_member_thumbnail($aInfo['ID'], "left", false) . '</div><div class="label_thumb">' . _t('_Hello member', $aInfo['NickName']) . '</div><div class="clear_both"></div>';
286 }
287
288 $sCode = <<<EOF
289 <script type="text/javascript" src="{$sSiteUrl}inc/js/jquery.dolPromo.js"></script>
290 <script type="text/javascript">
291 $(document).ready( function() {
292 $('#indexPhoto').dolPromo(8000, 1500);
293 } );
294 </script>
295
296 <div id="indexPhotoBorder">
297 <div id="indexPhotoLabel">
298 {$sWelcomeElement}
299 {$sLoginSection}
300 </div>
301 <div id="indexPhoto" onclick="location='{$sPromoLink}'">
302 {$sImagesEls}
303 </div>
304 </div>
305EOF;
306 }
307
308 return $sCode;
309}
310
311function getTemplateIcon( $sFileName ) {
312 return $GLOBALS['oFunctions']->getTemplateIcon($sFileName);
313}
314
315function getTemplateImage( $sFileName ) {
316 return $GLOBALS['oFunctions']->getTemplateImage($sFileName);
317}
318
319function getVersionComment() {
320 global $site;
321 $aVer = explode( '.', $site['ver'] );
322
323 // version output made for debug possibilities.
324 // randomizing made for security issues. do not change it...
325 $aVerR[0] = $aVer[0];
326 $aVerR[1] = rand( 0, 100 );
327 $aVerR[2] = $aVer[1];
328 $aVerR[3] = rand( 0, 100 );
329 $aVerR[4] = $site['build'];
330
331 //remove leading zeros
332 while( $aVerR[4][0] === '0' )
333 $aVerR[4] = substr( $aVerR[4], 1 );
334
335 return '<!-- ' . implode( ' ', $aVerR ) . ' -->';
336}
337
338// ----------------------------------- site statistick functions --------------------------------------//
339
340function getSiteStatBody($aVal, $sMode = '') {
341 $sLink = strlen($aVal['link']) > 0 ? '<a href="'.BX_DOL_URL_ROOT.$aVal['link'].'">{iNum} '._t('_'.$aVal['capt']).'</a>' : '{iNum} '._t('_'.$aVal['capt']) ;
342 if ( $sMode != 'admin' ) {
343 $sBlockId = '';
344 $iNum = strlen($aVal['query']) > 0 ? db_value($aVal['query']) : 0;
345 } else {
346 $sBlockId = "id='{$aVal['name']}'";
347 $iNum = strlen($aVal['adm_query']) > 0 ? db_value($aVal['adm_query']) : 0;
348 if ( strlen($aVal['adm_link']) > 0 ) {
349 if( substr( $aVal['adm_link'], 0, strlen( 'javascript:' ) ) == 'javascript:' ) {
350 $sHref = 'javascript:void(0);';
351 $sOnclick = 'onclick="' . $aVal['adm_link'] . '"';
352 } else {
353 $sHref = $aVal['adm_link'];
354 $sOnclick = '';
355 }
356 $sLink = '<a href="'.$sHref.'" '.$sOnclick.'>{iNum} '._t('_'.$aVal['capt']).'</a>';
357 } else {
358 $sLink = '{iNum} '._t('_'.$aVal['capt']);
359 }
360 }
361
362 $sLink = str_replace('{iNum}', $iNum, $sLink);
363 $sCode =
364 '
365 <div class="siteStatUnit" '. $sBlockId .'>
366 <img src="' . getTemplateIcon($aVal['icon']) . '" alt="" />
367 ' . $sLink . '
368 </div>
369 ';
370
371 return $sCode;
372}
373
374function getSiteStatUser() {
375 global $aStat;
376
377 define( 'STAT_CACHE_FILE', BX_DIRECTORY_PATH_DBCACHE . 'sys_stat_site.inc' );
378
379 if ( !file_exists(STAT_CACHE_FILE) or !filesize(STAT_CACHE_FILE) ) {
380 genSiteStatCache();
381 }
382
383 $aStat = @eval( @file_get_contents( STAT_CACHE_FILE ));
384
385 if( !$aStat )
386 $aStat = array();
387
388 $sCode = '<div class="siteStatMain">';
389
390 foreach($aStat as $aVal)
391 $sCode .= getSiteStatBody($aVal);
392
393 $sCode .= '<div class="clear_both"></div></div>';
394
395 return $sCode ;
396}
397
398function genSiteStatFile($aVal) {
399 $oMenu = new BxDolMenu();
400
401 $sLink = $oMenu -> getCurrLink($aVal['link']);
402 $sLine = "'{$aVal['name']}'=>array('capt'=>'{$aVal['capt']}', 'query'=>'".addslashes($aVal['query'])."', 'link'=>'$sLink', 'icon'=>'{$aVal['icon']}'),\n";
403
404 return $sLine;
405}
406
407function genAjaxyPopupJS($iTargetID, $sDivID = 'ajaxy_popup_result_div', $sRedirect = '') {
408 $iProcessTime = 1000;
409
410 if ($sRedirect)
411 $sRedirect = "window.location = '$sRedirect';";
412
413 $sJQueryJS = <<<EOF
414<script type="text/javascript">
415
416setTimeout( function(){
417 $('#{$sDivID}_{$iTargetID}').show({$iProcessTime})
418 setTimeout( function(){
419 $('#{$sDivID}_{$iTargetID}').hide({$iProcessTime});
420 $sRedirect
421 }, 3000);
422}, 500);
423
424</script>
425EOF;
426 return $sJQueryJS;
427}
428
429function getBlockWidth ($iAllWidth, $iUnitWidth, $iNumElements) {
430 $iAllowed = $iNumElements * $iUnitWidth;
431 if ($iAllowed > $iAllWidth) {
432 $iMax = (int)floor($iAllWidth / $iUnitWidth);
433 $iAllowed = $iMax*$iUnitWidth;
434 }
435 return $iAllowed;
436}
437
438function getMemberLoginFormCode($sID = 'member_login_form', $sParams = '')
439{
440 //get all auth types;
441 $aAuthTypes = $GLOBALS['MySQL']-> fromCache('sys_objects_auths', 'getAll', 'SELECT * FROM `sys_objects_auths`');
442
443 // define additional auth types;
444 if($aAuthTypes) {
445 $aAddInputEl[''] = _t('_Basic');
446
447 // procces all additional menu's items
448 foreach($aAuthTypes as $iKey => $aItems)
449 {
450 $aAddInputEl[$aItems['Link']] = _t($aItems['Title']);
451 }
452
453 $aAuthTypes = array(
454 'type' => 'select',
455 'caption' => _t('_Auth type'),
456 'values' => $aAddInputEl,
457 'value' => '',
458 'attrs' => array (
459 'onchange' => 'if(this.value) {location.href = "' . BX_DOL_URL_ROOT . '" + this.value}',
460 ),
461 );
462 }
463 else {
464 $aAuthTypes = array(
465 'type' => 'hidden'
466 );
467 }
468
469 $aForm = array(
470 'form_attrs' => array(
471 'id' => $sID,
472 'action' => BX_DOL_URL_ROOT . 'member.php',
473 'method' => 'post',
474 'onsubmit' => "validateLoginForm(this); return false;",
475 ),
476 'inputs' => array(
477 $aAuthTypes,
478 'nickname' => array(
479 'type' => 'text',
480 'name' => 'ID',
481 'caption' => _t('_NickName'),
482 ),
483 'password' => array(
484 'type' => 'password',
485 'name' => 'Password',
486 'caption' => _t('_Password'),
487 ),
488 'rememberme' => array(
489 'type' => 'checkbox',
490 'name' => 'rememberMe',
491 'label' => _t('_Remember password'),
492 ),
493 'relocate' => array(
494 'type' => 'hidden',
495 'name' => 'relocate',
496 'value'=> isset($_REQUEST['relocate']) ? $_REQUEST['relocate'] : BX_DOL_URL_ROOT . 'member.php',
497 ),
498 array(
499 'type' => 'input_set',
500 'colspan' => false,
501 0 => array(
502 'type' => 'submit',
503 'name' => 'LogIn',
504 'caption' => '',
505 'value' => _t('_Login'),
506 ),
507 1 => array(
508 'type' => 'custom',
509 'content' => '
510 <div class="right_line_aligned">
511 <a href="' . BX_DOL_URL_ROOT . 'forgot.php">' . _t("_forgot_your_password") . '?</a>
512 </div>
513 <div class="clear_both"></div>
514 ',
515 ),
516 ),
517 ),
518 );
519
520 $oForm = new BxTemplFormView($aForm);
521 $sFormCode = $oForm->getCode();
522
523 $sJoinText = (strpos($sParams, 'no_join_text') === false) ?
524 '<div class="login_box_text">' . _t('_login_form_description2join', BX_DOL_URL_ROOT) . '</div>' :
525 '';
526
527 return $sFormCode . $sJoinText;
528}
529
530?>
Note: See TracBrowser for help on using the repository browser.