<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; Ищу ошибку в скрипте и немогу найти]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=727&amp;type=atom" />
	<updated>2008-04-01T11:43:46Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=727</id>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4732#p4732" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>pellets-wood сказал:</cite><blockquote><p>Согласен. Но в ней ошибок нет.</p></blockquote></div><p>Значит нет. Сожалею, но у меня нет желания с этим разбираться.</p><p>Движок сайта самописанный.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-04-01T11:43:46Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4732#p4732</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4729#p4729" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>$tpl_f = HW_MOD_TPL.&quot;setup.htm&quot;;</code></pre></div><p>Согласен. Но в ней ошибок нет.</p><p>Вот часть системы, в которой я подозреваю ошибку</p><p>pellets-wood.narod.ru/test.rar</p><p>P.S. Мне нравится движок Вашего сайта, где его можно потестить!</p>]]></content>
			<author>
				<name><![CDATA[pellets-wood]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1211</uri>
			</author>
			<updated>2008-04-01T07:54:11Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4729#p4729</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4706#p4706" />
			<content type="html"><![CDATA[<p><strong>pellets-wood</strong><br />80 строка первого файла. Очевидно, здесь формируется имя файла.<br /></p><div class="codebox"><pre><code>$tpl_f = HW_MOD_TPL.&quot;setup.htm&quot;;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-03-29T21:47:11Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4706#p4706</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4705#p4705" />
			<content type="html"><![CDATA[<p>Hanut, </p><p>содержимое файла lib.inc.php <br />мне ничего не подсказало<br />[code]&lt;?php</p><br /><p>function CheckLoggedInAdm( )<br />{<br />&nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/admin.inc.php&quot; );<br />&nbsp; &nbsp; if ( !isadmin( ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; header( &quot;Location: index.php?page=login&amp;ref_url=&quot;.urlencode( $_SERVER[&#039;REQUEST_URI&#039;] ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; exit( );<br />&nbsp; &nbsp; }<br />}</p><p>function IsBanned( $id, $UNBAN_MIN, $type = &quot;&quot; )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; if ( !$id || !$UNBAN_MIN )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $esc_ip = $db-&gt;esc( $_SERVER[&#039;REMOTE_ADDR&#039;] );<br />&nbsp; &nbsp; $ts = $db-&gt;one_data( &quot;SELECT UNIX_TIMESTAMP(bdate) FROM &quot;.TBL_IP.&quot; WHERE ip=INET_ATON(&quot;.$esc_ip.&quot;) AND link_id=&#039;{$id}&#039; AND type=&#039;{$type}&#039;&quot; );<br />&nbsp; &nbsp; if ( !$ts )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( &quot;INSERT IGNORE INTO &quot;.TBL_IP.&quot; (ip,link_id,bdate,type) VALUES (INET_ATON(&quot;.$esc_ip.&quot;),&#039;{$id}&#039;,&quot;.SQL_NOW.&quot;,&#039;{$type}&#039;)&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( HW_TIME - $UNBAN_MIN * 60 &lt; $ts )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( &quot;UPDATE &quot;.TBL_IP.&quot; SET bdate=&quot;.SQL_NOW.&quot; WHERE ip=INET_ATON(&quot;.$esc_ip.&quot;) AND link_id=&#039;{$id}&#039; AND type=&#039;{$type}&#039;&quot;.&quot; AND bdate&lt;DATE_SUB(&quot;.SQL_NOW.&quot;, INTERVAL {$UNBAN_MIN} MINUTE)&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $db-&gt;affected_rows( ) &lt; 1 )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return 0;<br />}</p><p>function get_daughter_cats( $catid, $tbl = TBL_CAT )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; static $A_RES = NULL;<br />&nbsp; &nbsp; if ( is_array( $catid ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cnt = count( $catid );<br />&nbsp; &nbsp; &nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; for ( ;&nbsp; &nbsp; $i &lt; $cnt;&nbsp; &nbsp; ++$i&nbsp; &nbsp; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !ctype_digit( ( boolean )$catid[$i] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $catid[$i] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $catid = implode( &quot;,&quot;, $catid );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( !ctype_digit( ( boolean )$catid ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $catid = preg_replace( &quot;/[^\\d,]/&quot;, &quot;&quot;, $catid );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !isset( $A_RES[$tbl][$catid] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $id_arr_tmp = explode( &quot;,&quot;, $catid );<br />&nbsp; &nbsp; &nbsp; &nbsp; $id_arr = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; while ( 0 &lt; count( $id_arr_tmp ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $id_arr = array_merge( $id_arr, $id_arr_tmp );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $id_arr_tmp = $db-&gt;one_col_array( &quot;SELECT id FROM &quot;.$tbl.&quot; WHERE pid IN(\&quot;&quot;.implode( &quot;\&quot;,\&quot;&quot;, $id_arr_tmp ).&quot;\&quot;)&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_RES[$tbl][$catid] = $id_arr;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return &quot;\&quot;&quot;.implode( &quot;\&quot;,\&quot;&quot;, $A_RES[$tbl][$catid] ).&quot;\&quot;&quot;;<br />}</p><p>function EvalBuffer( $buf, $vars = &quot;&quot;, $show = 0 )<br />{<br />&nbsp; &nbsp; $buf = HawkTpl::evalbuffer( $buf, $vars );<br />&nbsp; &nbsp; if ( $show )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; echo $buf;<br />&nbsp; &nbsp; &nbsp; &nbsp; return &quot;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $buf;<br />&nbsp; &nbsp; }<br />}</p><p>function EvalAdvTpl( $tf, $vars = &quot;&quot;, $show = 0 )<br />{<br />&nbsp; &nbsp; return evalbuffer( hwreadtpl( $tf ), $vars, $show );<br />}</p><p>function hwReadTpl( $f )<br />{<br />&nbsp; &nbsp; return file_get_contents( hwlnggetpath( $f ) );<br />}</p><p>function hwLngGetPath( $f, $lang = &quot;&quot; )<br />{<br />&nbsp; &nbsp; if ( !$lang )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = $HW_LANG;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $lang == &quot;en&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $f;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $ext = substr( ( $_s = strrchr( $f, &quot;.&quot; ) ) !== false ? $_s : &quot;&quot;, 1 );<br />&nbsp; &nbsp; if ( $ext == &quot;txt&quot; &amp;&amp; basename( $f ) != &quot;config_sel.txt&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $f;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $f_new = hwlngcalcpath( $f, $lang );<br />&nbsp; &nbsp; if ( $f_new != $f &amp;&amp; file_exists( $f_new ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f = $f_new;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $f;<br />}</p><p>function hwLngCalcPath( $f, $lang )<br />{<br />&nbsp; &nbsp; if ( $lang == &quot;en&quot; || strpos( $f, &quot;/Multi_Lang/&quot; ) !== false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $f;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $f_path = &quot;&quot;;<br />&nbsp; &nbsp; $f_dir = dirname( $f );<br />&nbsp; &nbsp; $lang_dir = MOD_DIR.&quot;Multi_Lang/language/&quot;;<br />&nbsp; &nbsp; if ( strpos( $f, &quot;modules/&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( substr( $f_dir, -4 ) == &quot;/tpl&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $mod = explode( &quot;/&quot;, $f );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $mod = $mod[count( $mod ) - 3];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $f_path = $lang_dir.$lang.&quot;/modules/&quot;.$mod;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( strpos( $f, FS_DIR.&quot;/&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $fs = explode( &quot;/&quot;, $f );<br />&nbsp; &nbsp; &nbsp; &nbsp; $fs = $fs[count( $fs ) - 2];<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_path = $lang_dir.$lang.&quot;/&quot;.FS_DIR.&quot;/&quot;.$fs;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( $f_dir.&quot;/&quot; == TPL_PATH )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $fn = array_pop( explode( &quot;/&quot;, $f ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_path = $lang_dir.$lang;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $f_path )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $fn = array_pop( explode( &quot;/&quot;, $f ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; $f = $f_path.&quot;/&quot;.$fn;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $f;<br />}</p><p>function DoNotCache( )<br />{<br />&nbsp; &nbsp; header( &quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot; );<br />&nbsp; &nbsp; header( &quot;Last-Modified: &quot;.gmdate( &quot;D, d M Y H:i:s&quot; ).&quot; GMT&quot; );<br />&nbsp; &nbsp; header( &quot;Cache-Control: no-store, no-cache, must-revalidate&quot; );<br />&nbsp; &nbsp; header( &quot;Cache-Control: post-check=0,pre-check=0&quot;, false );<br />&nbsp; &nbsp; header( &quot;Cache-Control: max-age=0&quot;, false );<br />&nbsp; &nbsp; header( &quot;Pragma: no-cache&quot; );<br />}</p><p>function JSRedirect( $url )<br />{<br />&nbsp; &nbsp; echo &quot;&lt;html&gt;&lt;script&gt;document.location=\&quot;&quot;.$url.&quot;\&quot;;&lt;/script&gt;&lt;/html&gt;&quot;;<br />}</p><p>function GetNavigation( $href, $max_rows, $max_cols, $numrows, $off, $ex_p = &quot;&quot; )<br />{<br />&nbsp; &nbsp; if ( $numrows &lt;= $max_rows )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return &quot;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( is_array( $ex_p ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = $ex_p;<br />&nbsp; &nbsp; &nbsp; &nbsp; $ex_p = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_v as $k =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $v != &quot;&quot; &amp;&amp; !is_array( $v ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p .= &quot;&amp;{$k}=&quot;.urlencode( $v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_nav = explode( &quot;|&quot;, hwlng( &quot;page_nav&quot; ) );<br />&nbsp; &nbsp; $var_off = &quot;off&quot;;<br />&nbsp; &nbsp; if ( strpos( $off, &quot;=&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; list( $var_off, $off ) = explode( &quot;=&quot;, $off );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $ex_p &amp;&amp; strpos( $ex_p, &quot;&amp;&quot;.$var_off.&quot;=&quot; ) !== false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ex_p = preg_replace( &quot;/&amp;&quot;.$var_off.&quot;=\\d*/&quot;, &quot;&quot;, $ex_p );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $off = abs( ( integer )$off );<br />&nbsp; &nbsp; $pg = intval( $off / $max_cols );<br />&nbsp; &nbsp; if ( substr( $href, -1 ) == &quot;&amp;&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_ch = &quot;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( strpos( $href, &quot;?&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_ch = &quot;&amp;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_ch = &quot;?&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $ex_p )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ex_p = $f_ch.substr( $ex_p, 1 ).&quot;&amp;&quot;.$var_off.&quot;=&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ex_p = $f_ch.$var_off.&quot;=&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $nav = &quot;&quot;;<br />&nbsp; &nbsp; if ( $pg != 0 )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $nav .= &quot;&lt;a href=\&quot;&quot;.$href.$ex_p.( $max_cols * $pg - 1 ).&quot;\&quot;&gt;&quot;.sprintf( $a_nav[0], $max_cols ).&quot;&lt;/a&gt;  &quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( 0 &lt; $off )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $nav .= &quot;&lt;a href=\&quot;&quot;.$href.$ex_p.( $off - 1 ).&quot;\&quot;&gt;&quot;.$a_nav[1].&quot;&lt;/a&gt;  &quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $i = 1;<br />&nbsp; &nbsp; for ( ;&nbsp; &nbsp; $i &lt;= $max_cols;&nbsp; &nbsp; ++$i&nbsp; &nbsp; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cur_i = $i + $pg * $max_cols;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $numrows &lt;= ( $cur_i - 1 ) * $max_rows )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $cur_i != $off + 1 )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $nav .= &quot;&lt;a href=\&quot;&quot;.$href.$ex_p.( $cur_i - 1 ).&quot;\&quot;&gt;&quot;.$cur_i.&quot;&lt;/a&gt;  &quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $nav .= $cur_i.&quot;  &quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $off + 1 &lt; ceil( $numrows / $max_rows ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $nav .= &quot;&lt;a href=\&quot;&quot;.$href.$ex_p.( $off + 1 ).&quot;\&quot;&gt;&quot;.$a_nav[2].&quot;&lt;/a&gt; &amp;nbsp&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $max_rows * $max_cols * ( $pg + 1 ) &lt; $numrows )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $nav .= &quot;&lt;a href=\&quot;&quot;.$href.$ex_p.$max_cols * ( $pg + 1 ).&quot;\&quot;&gt;&quot;.sprintf( $a_nav[3], $max_cols ).&quot;&lt;/a&gt; &amp;nbsp&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return &quot;&lt;b&gt;&quot;.$nav.&quot;&lt;/b&gt;&quot;;<br />}</p><p>function hwGetCatSQL( $cat_f, $sql_extra = &quot;&quot;, $tbl_cat = TBL_CAT )<br />{<br />&nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; static $A_TBL_LNG = NULL;<br />&nbsp; &nbsp; if ( !isset( $A_TBL_LNG ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_TBL_LNG = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TBL_LNG[TBL_CAT] = hwmodtable( &quot;Multi_Lang&quot;, &quot;category&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_tbl = hwmodtable( &quot;Regions&quot;, &quot;category&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TBL_LNG[$_tbl] = hwmodtable( &quot;Multi_Lang&quot;, &quot;region&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_tbl = TBL_DEP_MENU_TREE;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TBL_LNG[$_tbl] = hwmodtable( &quot;Multi_Lang&quot;, &quot;depmenu&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $_tbl );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $cat_f = substr( preg_replace( &quot;/,(?!c\\.)/&quot;, &quot;,c.&quot;, &quot;,&quot;.$cat_f ), 1 );<br />&nbsp; &nbsp; if ( $HW_LANG != &quot;en&quot; &amp;&amp; isset( $A_TBL_LNG[$tbl_cat] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_f = array( &quot;name&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $tbl_cat == TBL_CAT )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[] = &quot;descr&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $temp_tbl = &quot;_func_cat_sql_&quot;.$tbl_cat.&quot;_&quot;.$HW_LANG;<br />&nbsp; &nbsp; &nbsp; &nbsp; static $A_TBL_OK = NULL;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $A_TBL_OK[$temp_tbl] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TBL_OK[$temp_tbl] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( &quot;DROP TEMPORARY TABLE IF EXISTS &quot;.$temp_tbl );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( &quot;CREATE TEMPORARY TABLE &quot;.$temp_tbl.&quot; SELECT id,&quot;.implode( &quot;,&quot;, $a_f ).&quot; FROM &quot;.$A_TBL_LNG[$tbl_cat].&quot; WHERE lang_id=\&quot;&quot;.$HW_LANG.&quot;\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_f as $f )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cat_f = str_replace( &quot;c.{$f}&quot;, &quot;IF(m.{$f}&lt;&gt;&#039;&#039;,m.{$f},c.{$f}) AS {$f}&quot;, $cat_f );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $sql = &quot;SELECT &quot;.$cat_f.&quot; FROM &quot;.$tbl_cat.&quot; c LEFT JOIN &quot;.$temp_tbl.&quot; m ON c.id=m.id&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $sql = &quot;SELECT &quot;.$cat_f.&quot; FROM &quot;.$tbl_cat.&quot; c&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $sql .= &quot; WHERE 1 &quot;;<br />&nbsp; &nbsp; if ( $sql_extra )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $sql .= &quot; &quot;.$sql_extra;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $sql;<br />}</p><p>function ShowDropDownMultiCategoryList( $cat, $fset = &quot;_ALL_&quot;, $hide_id = 0 )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/class.categ_tree.php&quot; );<br />&nbsp; &nbsp; $o_cat =&amp; new HawkCategTree( TBL_CAT );<br />&nbsp; &nbsp; $o_cat-&gt;CAT_ORDER = &quot;c.weight DESC,name&quot;;<br />&nbsp; &nbsp; $o_cat-&gt;CAT_F = &quot;fset&quot;;<br />&nbsp; &nbsp; if ( EN_FSETS &amp;&amp; $fset != &quot;_ALL_&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_PID = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $cat &amp;&amp; ctype_digit( ( boolean )$cat ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $pid = $cat;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while ( $pid = $db-&gt;one_data( &quot;SELECT pid FROM &quot;.TBL_CAT.&quot; WHERE id=\&quot;&quot;.$pid.&quot;\&quot;&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_PID[] = $pid;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $o_cat[&#039;SQL_CAT&#039;] .= $A_PID ? &quot; AND (c.fset=&#039;{$fset}&#039; OR c.id IN(&quot;.implode( &quot;,&quot;, $A_PID ).&quot;))&quot; : &quot; AND c.fset=&#039;{$fset}&#039;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $hide_id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !is_array( $hide_id ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $hide_id = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $hide_id<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $hide_id = array_map( &quot;intval&quot;, $hide_id );<br />&nbsp; &nbsp; &nbsp; &nbsp; $hide_id = $db-&gt;one_col_array( &quot;SELECT id FROM &quot;.TBL_CAT.&quot; WHERE id IN(&quot;.implode( &quot;,&quot;, $hide_id ).&quot;)&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $hide_id )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $o_cat[&#039;SQL_CAT&#039;] .= &quot; AND c.id NOT IN(&quot;.get_daughter_cats( $hide_id ).&quot;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $page = ( boolean )$_GET[&#039;page&#039;];<br />&nbsp; &nbsp; if ( defined( &quot;TBL_CAT_EXTRA&quot; ) &amp;&amp; !defined( &quot;ADMIN_AREA&quot; ) &amp;&amp; ( $page == &quot;add&quot; || $page == &quot;modify&quot; ) &amp;&amp; PHP_SELF_BASE == &quot;index.php&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $no_ids = $db-&gt;one_col_array( &quot;SELECT cid FROM &quot;.TBL_CAT_EXTRA.&quot; WHERE type=\&quot;H\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $no_ids )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $o_cat[&#039;SQL_CAT&#039;] .= &quot; AND c.id NOT IN(&quot;.implode( &quot;,&quot;, $no_ids ).&quot;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $no_ids );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $o_cat-&gt;TPL_SHOW = FALSE;<br />&nbsp; &nbsp; return $o_cat-&gt;GetMenuPage( TPL_PATH.&quot;cat_menu_multi.htm&quot;, $cat );<br />}</p><p>function ShowDropDownCategoryList( $cat, $name = &quot;cat&quot;, $f_opt = &quot;&quot;, $hide_id = 0, $onCh = &quot;&quot;, $fset = &quot;_ALL_&quot; )<br />{<br />&nbsp; &nbsp; global $hwJsCats;<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $page = ( boolean )$_GET[&#039;page&#039;];<br />&nbsp; &nbsp; $is_ams_page = ( $page == &quot;add&quot; || $page == &quot;modify&quot; || $page == &quot;search&quot; ) &amp;&amp; PHP_SELF_BASE == &quot;index.php&quot;;<br />&nbsp; &nbsp; if ( EN_CAT_MULTI &amp;&amp; ( $is_ams_page || $EN_CAT_MULTI ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return showdropdownmulticategorylist( $cat, $fset, $hide_id );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $SEL = array( );<br />&nbsp; &nbsp; if ( is_array( $cat ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $cat as $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $SEL[$v] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $SEL[$cat] = 1;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/class.categ_tree.php&quot; );<br />&nbsp; &nbsp; $o_cat =&amp; new HawkCategory( TBL_CAT );<br />&nbsp; &nbsp; $o_cat-&gt;CAT_ORDER = &quot;c.weight DESC,name&quot;;<br />&nbsp; &nbsp; $o_cat-&gt;CAT_F = &quot;fset&quot;;<br />&nbsp; &nbsp; if ( EN_FSETS &amp;&amp; $fset != &quot;_ALL_&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $o_cat[&#039;SQL_CAT&#039;] .= &quot; AND fset=&#039;{$fset}&#039;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $hide_id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !is_array( $hide_id ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $hide_id = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $hide_id<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $hide_id = array_map( &quot;intval&quot;, $hide_id );<br />&nbsp; &nbsp; &nbsp; &nbsp; $hide_id = $db-&gt;one_col_array( &quot;SELECT id FROM &quot;.TBL_CAT.&quot; WHERE id IN(&quot;.implode( &quot;,&quot;, $hide_id ).&quot;)&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $hide_id )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $o_cat[&#039;SQL_CAT&#039;] .= &quot; AND c.id NOT IN(&quot;.get_daughter_cats( $hide_id ).&quot;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( defined( &quot;TBL_CAT_EXTRA&quot; ) &amp;&amp; !defined( &quot;ADMIN_AREA&quot; ) &amp;&amp; $is_ams_page &amp;&amp; ( $page == &quot;add&quot; || $page == &quot;modify&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $no_ids = $db-&gt;one_col_array( &quot;SELECT cid FROM &quot;.TBL_CAT_EXTRA.&quot; WHERE type=\&quot;H\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $no_ids )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $o_cat[&#039;SQL_CAT&#039;] .= &quot; AND c.id NOT IN(&quot;.implode( &quot;,&quot;, $no_ids ).&quot;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $no_ids );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = $o_cat-&gt;Get_CatFullPaths_Array( );<br />&nbsp; &nbsp; $cats = &quot;&quot;;<br />&nbsp; &nbsp; $cnt = count( $a_v );<br />&nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; for ( ;&nbsp; &nbsp; $i &lt; $cnt;&nbsp; &nbsp; ++$i&nbsp; &nbsp; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $v = $a_v[$i];<br />&nbsp; &nbsp; &nbsp; &nbsp; $cats .= &quot;&lt;OPTION &quot;.( $v[&#039;pid&#039;] ? &quot;&quot; : &quot;class=root &quot; ).&quot;VALUE=&quot;.$v[&#039;id&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( isset( $SEL[$v[&#039;id&#039;]] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cats .= &quot; SELECTED&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $cats .= &quot;&gt;&quot;.$v[&#039;cat_path&#039;].&quot;\n&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $hwJsCats = &quot;&quot;;<br />&nbsp; &nbsp; if ( EN_FSETS &amp;&amp; $fset == &quot;_ALL_&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_FSET = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; reset( $o_cat-&gt;CAT_FDATA );<br />&nbsp; &nbsp; &nbsp; &nbsp; while ( list( $_id, $_fs ) = each( $o_cat-&gt;CAT_FDATA ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_FSET[$_fs[&#039;fset&#039;]][] = $_id;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $A_FSET as $_fs =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $hwJsCats .= &quot;\&quot;|&quot;.implode( &quot;|&quot;, $v ).&quot;|\&quot;,&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $hwJsCats )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $hwJsCats = substr( $hwJsCats, 0, -1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return &quot;&lt;select name=&quot;.$name.&quot; &quot;.$onCh.&quot;&gt;&quot;.$f_opt.$cats.&quot;\n&lt;/select&gt;&quot;;<br />}</p><p>function ShowCategoryPath( $cid, $link_file = &quot;&quot;, $tbl_cat = TBL_CAT )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; if ( $link_file )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $href = &quot;&lt;a href=\&quot;&quot;.$link_file.&quot;\&quot;&gt;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; $href_end = &quot;&lt;/a&gt;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $cid = ( integer )$cid;<br />&nbsp; &nbsp; $sql = hwgetcatsql( &quot;c.pid,c.name&quot;, &quot;&quot;, $tbl_cat );<br />&nbsp; &nbsp; while ( $cid )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $v = $db-&gt;one_assoc( $sql.&quot; AND c.id=\&quot;&quot;.$cid.&quot;\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !$v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $href )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $name = str_replace( &quot;##cid##&quot;, $cid, $href );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $name = str_replace( &quot;##pcid##&quot;, $v[&#039;pid&#039;], $name );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $name = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $name .= $v[&#039;name&#039;].$href_end;<br />&nbsp; &nbsp; &nbsp; &nbsp; $path = $path ? $name.&quot; &gt; &quot;.$path : $name;<br />&nbsp; &nbsp; &nbsp; &nbsp; $cid = $v[&#039;pid&#039;];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $path;<br />}</p><p>function UploadIsOK( $k, $rm_f = &quot;&quot;, $out_dir = &quot;&quot; )<br />{<br />&nbsp; &nbsp; if ( !$out_dir )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $out_dir = FILE_DIR;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $f_up = is_uploaded_file( $_FILES[$k][&#039;tmp_name&#039;] );<br />&nbsp; &nbsp; if ( $rm_f &amp;&amp; ( $f_up || $_POST[&quot;delete_{$k}&quot;] ) &amp;&amp; strpos( $rm_f, &quot;..&quot; ) === false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; @unlink( $out_dir.$rm_f );<br />&nbsp; &nbsp; &nbsp; &nbsp; $GLOBALS[&#039;_POST&#039;][$k] = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !$f_up )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$f_up )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $fn = strtolower( basename( $_FILES[$k][&#039;name&#039;] ) );<br />&nbsp; &nbsp; if ( preg_match( &quot;/[^a-z0-9_\\.]/i&quot;, $fn ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ext = substr( ( $_s = strrchr( $fn, &quot;.&quot; ) ) !== false ? $_s : &quot;&quot;, 1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; $fn = mt_rand( ).( $ext ? &quot;.{$ext}&quot; : &quot;&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $i = 1;<br />&nbsp; &nbsp; $f = $fn;<br />&nbsp; &nbsp; while ( file_exists( $out_dir.$f ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( strstr( $fn, &quot;.&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $f = preg_replace( &quot;/\\.([^\\.]*)\$/&quot;, &quot;_{$i}.\\1&quot;, $fn );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $f = $fn.&quot;_&quot;.$i;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; ++$i;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; move_uploaded_file( $_FILES[$k][&#039;tmp_name&#039;], $out_dir.$f );<br />&nbsp; &nbsp; chmod( $out_dir.$f, 438 );<br />&nbsp; &nbsp; $GLOBALS[&#039;_POST&#039;][$k] = $f;<br />&nbsp; &nbsp; return 1;<br />}</p><p>function IsUser( $rd = true )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $ses_uid = ( integer )hwsessiongetvar( &quot;userid&quot; );<br />&nbsp; &nbsp; if ( $ses_uid )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_pg = array( &quot;order&quot; =&gt; 1, &quot;account&quot; =&gt; 1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_P_ADD )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_pg[&#039;add&#039;] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_P_MOD )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_pg[&#039;modify&#039;] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $page = ( boolean )$_REQUEST[&#039;page&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $rd &amp;&amp; hwisuserexpired( ) &amp;&amp; !$a_pg[$page] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; header( &quot;Location: &quot;.SITE_URL.&quot;index.php?page=account&amp;pg=payment&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit( );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; hwmemberupdateonline( );<br />&nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return hwmemberautologin( );<br />}</p><p>function hwIsUserExpired( )<br />{<br />&nbsp; &nbsp; if ( HW_TIME &lt; hwsessiongetvar( &quot;exp_date&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $pp_id = hwsessiongetvar( &quot;u_ac_pp&quot; );<br />&nbsp; &nbsp; if ( !strpos( hwsessiongetvar( &quot;hw_pay_plan&quot; ), $pp_id.&quot;-0]&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $uid = ( integer )hwsessiongetvar( &quot;userid&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;PP_ID&quot; =&gt; $pp_id,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ID&quot; =&gt; $uid<br />&nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; hwevent( &quot;PayPlanOff&quot;, $args );<br />&nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_PP_INTO = $db-&gt;two_col_assoc( &quot;SELECT id,pp_exp_into FROM &quot;.TBL_PAY_PLAN.&quot; WHERE type=\&quot;SUB\&quot; AND pp_exp_into&lt;&gt;\&quot;\&quot; AND enabled=\&quot;1\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $A_PP_INTO[$pp_id] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;PP_ID&quot; =&gt; $A_PP_INTO[$pp_id],<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ID&quot; =&gt; $uid<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwevent( &quot;PayPlanOn&quot;, $args );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; hwsessionsetvar( &quot;userid&quot;, 0 );<br />&nbsp; &nbsp; &nbsp; &nbsp; list( $login, $pwd ) = $db-&gt;one_row( &quot;SELECT &quot;.( EN_LOGIN_EM ? &quot;email&quot; : &quot;username&quot; ).&quot;,pwd FROM &quot;.TBL_USER.&quot; WHERE id=&#039;{$uid}&#039;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/auth.inc.php&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; userauthenticate( $login, $pwd );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( HW_TIME &lt; hwsessiongetvar( &quot;exp_date&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return 1;<br />}</p><p>function hwMemberAutoLogin( )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) || !$_COOKIE[COOKIE_LOG] || hwsessiongetvar( &quot;userid&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/auth.inc.php&quot; );<br />&nbsp; &nbsp; $auth = userauthenticate( &quot;&quot;, &quot;&quot;, TRUE );<br />&nbsp; &nbsp; if ( $auth )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; hwmemberupdateonline( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $auth;<br />}</p><p>function hwMemberUpdateOnline( )<br />{<br />&nbsp; &nbsp; $ses_uid = ( integer )hwsessiongetvar( &quot;userid&quot; );<br />&nbsp; &nbsp; if ( !$ses_uid || !EN_TRACK_ONLINE || defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; static $f_ok = NULL;<br />&nbsp; &nbsp; if ( isset( $f_ok ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $f_ok = 1;<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $db-&gt;query( &quot;UPDATE &quot;.TBL_USER_ON.&quot; SET accessdate=&quot;.SQL_NOW.&quot;,last_pg=&quot;.$db-&gt;esc( $_SERVER[&#039;REQUEST_URI&#039;] ).&quot; WHERE id=&quot;.$ses_uid );<br />}</p><p>function PrintParseTime( )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; if ( DEBUG_LEVEL &lt; 1 &amp;&amp; !$db-&gt;DEBUG || defined( &quot;NO_DEBUG_INFO&quot; ) &amp;&amp; NO_DEBUG_INFO )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/debug.inc.php&quot; );<br />&nbsp; &nbsp; echo hwgetdebuginfo( );<br />}</p><p>function IsUserOnline( $uid )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $sql_on = &quot;(&quot;.HW_TIME.&quot;-UNIX_TIMESTAMP(accessdate))&lt;&quot;.ONLINE_TIME.&quot; AS online&quot;;<br />&nbsp; &nbsp; if ( is_array( $uid ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $db-&gt;two_col_assoc( &quot;SELECT id,&quot;.$sql_on.&quot; FROM &quot;.TBL_USER_ON.&quot; WHERE id IN(\&quot;&quot;.implode( &quot;\&quot;,\&quot;&quot;, $uid ).&quot;\&quot;)&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $db-&gt;one_data( &quot;SELECT &quot;.$sql_on.&quot; FROM &quot;.TBL_USER_ON.&quot; WHERE id=\&quot;&quot;.$uid.&quot;\&quot;&quot; );<br />&nbsp; &nbsp; }<br />}</p><p>function hwDeleteUsers( $ql )<br />{<br />&nbsp; &nbsp; global $O_UFS;<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; if ( !is_object( $O_UFS ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $O_UFS =&amp; Factory::singleton( &quot;FieldsSet&quot;, &quot;{user_fields}&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_ids = array( );<br />&nbsp; &nbsp; $res = $db-&gt;query( $ql );<br />&nbsp; &nbsp; if ( mysql_num_rows( $res ) == 0 )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_ids[] = $v[&#039;id&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; hwdeleterelatedfiles( $v, $O_UFS-&gt;A_UPLOAD_DB );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_ids = implode( &quot;,&quot;, $a_ids );<br />&nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &quot;STR_IDS&quot; =&gt; $a_ids<br />&nbsp; &nbsp; );<br />&nbsp; &nbsp; hwmodevent( &quot;onUserDelete&quot;, $args );<br />&nbsp; &nbsp; hwdeleteads( &quot;SELECT * FROM &quot;.TBL_AD.&quot; WHERE userid IN(&quot;.$a_ids.&quot;)&quot; );<br />&nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_PAY_PEND.&quot; WHERE userid IN(&quot;.$a_ids.&quot;)&quot; );<br />&nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_SESSION.&quot; WHERE userid IN(&quot;.$a_ids.&quot;)&quot; );<br />&nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_USER.&quot; WHERE id IN(&quot;.$a_ids.&quot;)&quot; );<br />&nbsp; &nbsp; return 1;<br />}</p><p>function hwDeleteAds( $ql, $run_delete_sql = true )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $O_LFS =&amp; Factory::singleton( &quot;FieldsSet&quot; );<br />&nbsp; &nbsp; $res = $db-&gt;query( $ql );<br />&nbsp; &nbsp; $total = mysql_num_rows( $res );<br />&nbsp; &nbsp; if ( $total == 0 )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_IP.&quot; WHERE link_id=&quot;.$v[&#039;link_id&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_PAY_PEND.&quot; WHERE adid=&quot;.$v[&#039;link_id&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; hwdeleterelatedfiles( $v, $O_LFS-&gt;A_UPLOAD_DB );<br />&nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ID&quot; =&gt; $v[&#039;link_id&#039;],<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;AD_DATA&quot; =&gt; $v<br />&nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; hwmodevent( &quot;onAdDelete&quot;, $args );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $run_delete_sql )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ql = preg_replace( &quot;/^.*?FROM/is&quot;, &quot;DELETE FROM&quot;, $ql );<br />&nbsp; &nbsp; &nbsp; &nbsp; $db-&gt;query( $ql );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $total;<br />}</p><p>function hwDeleteRelatedFiles( $v, $a_upload )<br />{<br />&nbsp; &nbsp; if ( $a_upload )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_upload as $fid )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $f = $v[$fid];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $f != &quot;&quot; &amp;&amp; strpos( $f, &quot;..&quot; ) === false &amp;&amp; file_exists( FILE_DIR.$f ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unlink( FILE_DIR.$f );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $A_MEDIA = Factory::getmediaobj( &quot;ALL&quot; );<br />&nbsp; &nbsp; if ( $A_MEDIA )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( array_keys( $A_MEDIA ) as $media_id )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $v[$media_id] )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f = explode( &quot;\n&quot;, trim( $v[$media_id] ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $a_f )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_MEDIA[$media_id]-&gt;DeleteFiles( $a_f );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />}</p><p>function hwGetFsByCat( $id )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; static $a_v = NULL;<br />&nbsp; &nbsp; $id = ( integer )$id;<br />&nbsp; &nbsp; if ( isset( $a_v[$id] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $a_v[$id];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( CACHING_TIME_M &lt; 1 )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v[$id] = $db-&gt;one_data( &quot;SELECT fset FROM &quot;.TBL_CAT.&quot; WHERE id=&#039;{$id}&#039;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; return $a_v[$id];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $o_cache =&amp; Factory::singleton( &quot;Hw_Cache&quot; );<br />&nbsp; &nbsp; $a_v = $o_cache-&gt;get( &quot;f_GetFsByCat&quot; );<br />&nbsp; &nbsp; if ( is_null( $a_v ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = $db-&gt;two_col_assoc( &quot;SELECT id,fset FROM &quot;.TBL_CAT );<br />&nbsp; &nbsp; &nbsp; &nbsp; $o_cache-&gt;save( &quot;f_GetFsByCat&quot;, $a_v );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_v[$id];<br />}</p><p>function CheckLoggedIn( )<br />{<br />&nbsp; &nbsp; if ( !isuser( ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; header( &quot;Location: index.php?page=login&amp;ref_url=&quot;.urlencode( $_SERVER[&#039;REQUEST_URI&#039;] ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; exit( );<br />&nbsp; &nbsp; }<br />}</p><p>function GetCatPathCached( $cid, $w_link = 0 )<br />{<br />&nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; $o_cache =&amp; Factory::singleton( &quot;Hw_Cache&quot; );<br />&nbsp; &nbsp; $cat_path = $o_cache-&gt;get( &quot;f_Cat_Path_{$HW_LANG}_{$cid}&quot;, &quot;ShowCategoryPath({$cid},hwGetCatURL(&#039;##cid##&#039;))&quot; );<br />&nbsp; &nbsp; if ( !$w_link )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cat_path = strip_tags( $cat_path );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $cat_path;<br />}</p><p>function GetFSetFileName( $f, $fs = false )<br />{<br />&nbsp; &nbsp; if ( !EN_FSETS )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return TPL_PATH.$f;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $fs === false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $fs = $FSET_DIR;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $f_out = TPL_PATH.FS_DIR.&quot;/&quot;.$fs.&quot;/&quot;.$f;<br />&nbsp; &nbsp; $f_ok = 0;<br />&nbsp; &nbsp; if ( $f == &quot;fields.txt&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_ok = $db-&gt;one_data( &quot;SELECT COUNT(*) FROM &quot;.TBL_FIELD.&quot; WHERE fset=\&quot;&quot;.$fs.&quot;\&quot;&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$f_ok &amp;&amp; !file_exists( $f_out ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_out = TPL_PATH.$f;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $f_out;<br />}</p><p>function hwFilterSet( $id, $val = null )<br />{<br />&nbsp; &nbsp; $O_LFS =&amp; Factory::singleton( &quot;FieldsSet&quot; );<br />&nbsp; &nbsp; $f_db = $O_LFS-&gt;GetDbFByID( $id );<br />&nbsp; &nbsp; if ( !$f_db )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f_db = $id;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = hwsessiongetvar( &quot;HW_FILTER&quot; );<br />&nbsp; &nbsp; if ( !is_array( $a_v ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $val === null )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v[$f_db] );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v[$f_db] = $val;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; hwsessionsetvar( &quot;HW_FILTER&quot;, $a_v );<br />}</p><p>function hwFilterGetSQL( $tbl = &quot;&quot;, $w_ses = 1 )<br />{<br />&nbsp; &nbsp; $ql = &quot; AND &quot;.$tbl.&quot;approved=\&quot;1\&quot; AND &quot;.$tbl.&quot;user_approved=\&quot;1\&quot;&quot;;<br />&nbsp; &nbsp; if ( EN_EXP_DATE )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ql .= &quot; AND &quot;.$tbl.&quot;exp_date&gt;=&quot;.SQL_NOW;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$w_ses )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $ql;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = hwsessiongetvar( &quot;HW_FILTER&quot; );<br />&nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_v as $db_f =&gt; $val )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ql .= &quot; AND &quot;.$tbl.$db_f.&quot; IN (&quot;.$val.&quot;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $ql;<br />}</p><p>function hwSessionGetVar( $s, $scope = &quot;USER&quot; )<br />{<br />&nbsp; &nbsp; return isset( $_SESSION[$scope][$s] ) ? $_SESSION[$scope][$s] : &quot;&quot;;<br />}</p><p>function hwSessionSetVar( $s, $v = &quot;&quot;, $scope = &quot;USER&quot; )<br />{<br />&nbsp; &nbsp; if ( is_array( $s ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $s as $k =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_SESSION[$scope][$k] = $v;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $_SESSION[$scope][$s] = $v;<br />&nbsp; &nbsp; }<br />}</p><p>function hwSessionDelVar( $s, $scope = &quot;USER&quot; )<br />{<br />&nbsp; &nbsp; unset( $Var_0[$s] );<br />}</p><p>function hwSessionCleanup( )<br />{<br />&nbsp; &nbsp; $_SESSION = array( );<br />&nbsp; &nbsp; session_destroy( );<br />}</p><p>function hwSessionInit( )<br />{<br />&nbsp; &nbsp; global $A_LNG;<br />&nbsp; &nbsp; global $A_LOC_EXT;<br />&nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; $crawl = include( SITE_PATH.&quot;inc/robots.inc.php&quot; );<br />&nbsp; &nbsp; define( &quot;SE_CRAWL&quot;, $crawl );<br />&nbsp; &nbsp; if ( ( EN_DB_SESSION || SE_CRAWL ) &amp;&amp; $_SERVER[&#039;HTTP_HOST&#039;] )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; include( SITE_PATH.&quot;inc/session_db.php&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$_SERVER[&#039;HTTP_HOST&#039;] )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( SE_CRAWL )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; se_session_init( );<br />&nbsp; &nbsp; &nbsp; &nbsp; register_shutdown_function( &quot;se_session_flush&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; session_name( &quot;HW_SID&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; session_start( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $ip = $_SERVER[&#039;REMOTE_ADDR&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !defined( &quot;SES_OCTETS&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; define( &quot;SES_OCTETS&quot;, 3 );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $ses_oct = SES_OCTETS;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( 0 &lt; $ses_oct )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( strpos( $_SERVER[&#039;HTTP_USER_AGENT&#039;], &quot;AOL&quot; ) !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ses_oct = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if ( strpos( $_SERVER[&#039;HTTP_VIA&#039;], &quot;proxy.aol.com&quot; ) !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ses_oct = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $ses_oct &lt; 1 )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ip = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else if ( $ses_oct &lt; 4 )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_ip = explode( &quot;.&quot;, $ip );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while ( $ses_oct &lt; 4 )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; array_pop( $a_ip );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++$ses_oct;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ip = implode( &quot;.&quot;, $a_ip );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $fp = &quot;ES&quot;.$ip;<br />&nbsp; &nbsp; &nbsp; &nbsp; $keys = array( &quot;HTTP_USER_AGENT&quot;, &quot;HTTP_ACCEPT_LANGUAGE&quot;, &quot;HTTP_ACCEPT_CHARSET&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $keys as $k )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( isset( $_SERVER[$k] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $fp .= $_SERVER[$k];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $fp )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $fp = md5( $fp );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $fp &amp;&amp; $fp != hwsessiongetvar( &quot;ses_fp&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !function_exists( &quot;session_regenerate_id&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwloadfunction( &quot;session_regenerate_id&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; session_regenerate_id( TRUE );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_SESSION = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwsessionsetvar( &quot;ses_fp&quot;, $fp );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $token = substr( md5( uniqid( mt_rand( ), TRUE ) ), 0, 12 );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwsessionsetvar( &quot;ses_token&quot;, $token );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; define( &quot;TOKEN&quot;, hwsessiongetvar( &quot;ses_token&quot; ) );<br />&nbsp; &nbsp; $cook = &quot;ec_loc&quot;;<br />&nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = &quot;en&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( SE_CRAWL )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = LANG_DEF;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( $_COOKIE[$cook] )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = ( boolean )$_COOKIE[$cook];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = &quot;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_LOC_EXT = $db-&gt;two_col_assoc( &quot;SELECT id,name FROM &quot;.hwmodtable( &quot;Multi_Lang&quot;, &quot;language&quot; ).&quot; WHERE enabled=\&quot;1\&quot; ORDER BY name&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_LOC_EXT = array( &quot;en&quot; =&gt; 0 );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$lang || $_REQUEST[&#039;lang&#039;] &amp;&amp; $_REQUEST[&#039;lang&#039;] != $lang || !isset( $A_LOC_EXT[$lang] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $_REQUEST[&#039;lang&#039;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang = ( boolean )$_REQUEST[&#039;lang&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $A_LOC_EXT[$lang] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if ( !SE_CRAWL )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setcookie( $cook, $lang, time( ) + 31536000 );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !$lang )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang = LANG_DEF;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$A_LOC_EXT[$lang] || defined( &quot;ADMIN_AREA&quot; ) &amp;&amp; !isset( $_REQUEST[&#039;lang&#039;] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = &quot;en&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; hwlanginit( $lang );<br />}</p><p>function hwLangPhrase( $ph_id = &quot;&quot;, $ph_val = &quot;&quot; )<br />{<br />&nbsp; &nbsp; static $A_TRAN = NULL;<br />&nbsp; &nbsp; if ( !isset( $A_TRAN ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $HW_LANG == &quot;en&quot; || hwmodgetstate( &quot;Multi_Lang&quot; ) != &quot;A&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TRAN = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TRAN = $db-&gt;two_col_assoc( &quot;SELECT id,phrase FROM &quot;.hwmodtable( &quot;Multi_Lang&quot;, &quot;data&quot; ).&quot; WHERE lang_id=\&quot;&quot;.$HW_LANG.&quot;\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $ph_id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $A_TRAN[$ph_id] ? $A_TRAN[$ph_id] : $ph_val;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $A_TRAN;<br />}</p><p>function hwLangInit( $lang )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; if ( preg_match( &quot;/\\W/&quot;, $lang ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang = &quot;en&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $HW_LANG = $lang;<br />&nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $MOD_CFG = $O_HW-&gt;GetModOptions( &quot;Multi_Lang&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $p_lang = hwsessiongetvar( &quot;HW_FILTER&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $MOD_CFG[&#039;EN_ALL&#039;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $p_lang[&#039;DB_F&#039;] == &quot;hw_lang_id&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwfilterset( &quot;hw_lang_id&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ses_lang = &quot;\&quot;&quot;.( $HW_LANG == &quot;en&quot; ? &quot;&quot; : $HW_LANG ).&quot;\&quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $p_lang[&#039;VALUE&#039;] != $ses_lang )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwfilterset( &quot;hw_lang_id&quot;, $ses_lang );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; global $A_LOC_EXT;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TRAN = hwlangphrase( );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $A_TRAN )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $A_LOC_EXT as $k =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $A_TRAN[&quot;lang-{$k}&quot;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_LOC_EXT[$k] = $A_TRAN[&quot;lang-{$k}&quot;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_LngCfg = $db-&gt;one_assoc( &quot;SELECT * FROM &quot;.hwmodtable( &quot;Multi_Lang&quot;, &quot;language&quot; ).&quot; WHERE id=\&quot;&quot;.$HW_LANG.&quot;\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $a_LngCfg[&#039;locale&#039;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @setlocale( LC_TIME, $a_LngCfg[&#039;locale&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @setlocale( LC_CTYPE, $a_LngCfg[&#039;locale&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = array( &quot;CHARSET&quot;, &quot;DATE_FMT&quot;, &quot;DATE_TIME_FMT&quot;, &quot;DATE_MENU&quot;, &quot;META_K&quot;, &quot;META_D&quot; );<br />&nbsp; &nbsp; foreach ( $a_v as $k )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $_k = strtolower( $k );<br />&nbsp; &nbsp; &nbsp; &nbsp; $GLOBALS[&#039;GLOBALS&#039;][$k] = $a_LngCfg[$_k] ? $a_LngCfg[$_k] : constant( $k );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; hwlngloadfile( TPL_PATH );<br />&nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; hwlngloadfile( ADM_TPL_PATH );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !headers_sent( ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; header( &quot;Content-Type: text/html;charset=&quot;.$CHARSET );<br />&nbsp; &nbsp; }<br />}</p><p>function hwLngLoadFile( $path )<br />{<br />&nbsp; &nbsp; if ( !file_exists( $path.&quot;lang.ini&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; global $A_LNG;<br />&nbsp; &nbsp; if ( !is_array( $A_LNG ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_LNG = array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $f = hwlnggetpath( $path.&quot;lang.ini&quot; );<br />&nbsp; &nbsp; $a_v = parse_ini_file( $f );<br />&nbsp; &nbsp; $A_LNG = array_merge( $A_LNG, $a_v );<br />}</p><p>function hwFieldSetGetAll( )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; static $a_v = NULL;<br />&nbsp; &nbsp; if ( !isset( $a_v ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = $db-&gt;one_col_array( &quot;SELECT id FROM &quot;.TBL_FS.&quot; WHERE id NOT LIKE \&quot;&quot;.FS_CH1.&quot;%\&quot; ORDER BY id&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_v;<br />}</p><p>function hwIsDBUniqueTaken( $tbl, $col, $val, $q_addon = &quot;&quot;, $err_f = &quot;&quot; )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $ret = 0;<br />&nbsp; &nbsp; $res = $db-&gt;query( &quot;SELECT {$col} FROM {$tbl} WHERE {$col}=&quot;.$db-&gt;esc( $val ).&quot; {$q_addon}&quot; );<br />&nbsp; &nbsp; if ( 0 &lt; mysql_num_rows( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ret = 1;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$err_f )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $ret;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $ret ? sprintf( hwlng( &quot;err_unique_exists&quot; ), ucfirst( $err_f ), htmlspecialchars( $val, ENT_QUOTES, $CHARSET ) ) : &quot;&quot;;<br />}</p><p>function hwIsUniqueIDX( $tbl, $col )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $res = $db-&gt;query( &quot;SHOW KEYS FROM {$tbl}&quot; );<br />&nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $v[&#039;Column_name&#039;] == $col &amp;&amp; $v[&#039;Non_unique&#039;] == 0 )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return 0;<br />}</p><p>function hwTableColumnExists( $tbl, $col )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $res = $db-&gt;query( &quot;SHOW FIELDS FROM &quot;.$tbl );<br />&nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $v[&#039;Field&#039;] == $col )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return 0;<br />}</p><p>function hwEvent( $event, &amp;$args )<br />{<br />&nbsp; &nbsp; if ( !function_exists( &quot;hw_Ev_PayPlanOff&quot; ) &amp;&amp; !strncasecmp( $event, &quot;payplan&quot;, 7 ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/pay_plan.lib.php&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $func = &quot;hw_Ev_&quot;.$event;<br />&nbsp; &nbsp; if ( function_exists( $func ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $func( $args );<br />&nbsp; &nbsp; }<br />}</p><p>function hwModGetArray( )<br />{<br />&nbsp; &nbsp; static $a_mods = NULL;<br />&nbsp; &nbsp; if ( !isset( $a_mods ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_mods = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $res = $db-&gt;query( &quot;SELECT * FROM &quot;.TBL_MODULES.&quot; WHERE state=\&quot;A\&quot; OR state=\&quot;I\&quot; ORDER BY name&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $v[&#039;descr&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_mods[$v[&#039;dir&#039;]] = $v;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_mods;<br />}</p><p>function hwModVer( $v )<br />{<br />&nbsp; &nbsp; return 12 &lt;= $v &amp;&amp; $v &lt;= 13;<br />}</p><p>function hwModTable( $mod, $tbl )<br />{<br />&nbsp; &nbsp; return TBL_PREFIX.strtolower( $mod ).&quot;_&quot;.$tbl;<br />}</p><p>function hwModGetState( $mod )<br />{<br />&nbsp; &nbsp; $a_v = hwmodgetarray( );<br />&nbsp; &nbsp; return $a_v[$mod][&#039;state&#039;];<br />}</p><p>function hwModEvent( $event, &amp;$args )<br />{<br />&nbsp; &nbsp; static $A_FUNC = NULL;<br />&nbsp; &nbsp; if ( !is_array( $args ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $args = array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !isset( $A_FUNC ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_FUNC = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_mods = hwmodgetarray( );<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_mods as $mod =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !$v[&#039;event_capable&#039;] || $v[&#039;state&#039;] != &quot;A&quot; &amp;&amp; !strncmp( $mod, &quot;Member_&quot;, 7 ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $state = $v[&#039;state&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; include( SITE_PATH.&quot;modules/&quot;.$mod.&quot;/hw_event.php&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( function_exists( $mod.&quot;_Event&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_FUNC[$mod] = $state;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $A_BASE_EVENTS = array( &quot;onUserDelete&quot;, &quot;onAdDelete&quot;, &quot;onAdmSummary&quot;, &quot;onModuleActivate&quot;, &quot;onModuleRemove&quot; );<br />&nbsp; &nbsp; $a_v = $A_FUNC;<br />&nbsp; &nbsp; $en_cron_log = $event == &quot;onCronExecute&quot; &amp;&amp; function_exists( &quot;Cron_Log_Entry&quot; );<br />&nbsp; &nbsp; foreach ( $a_v as $mod =&gt; $state )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $state == &quot;I&quot; &amp;&amp; !in_array( $event, $A_BASE_EVENTS ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $en_cron_log )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cron_log_entry( $mod );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $func = $mod.&quot;_Event&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; $func( $event, $args );<br />&nbsp; &nbsp; }<br />}</p><p>function hwModLoadLng( $mod )<br />{<br />&nbsp; &nbsp; static $a_loaded = NULL;<br />&nbsp; &nbsp; if ( isset( $a_loaded[$mod] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_loaded[$mod] = 1;<br />&nbsp; &nbsp; hwlngloadfile( SITE_PATH.&quot;modules/&quot;.$mod.&quot;/tpl/&quot; );<br />&nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; hwlngloadfile( SITE_PATH.&quot;modules/&quot;.$mod.&quot;/tpl/admin/&quot; );<br />&nbsp; &nbsp; }<br />}</p><p>function hwRealmAllowed( $rm )<br />{<br />&nbsp; &nbsp; if ( !isuser( 0 ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 1;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( hwsessiongetvar( &quot;exp_date&quot; ) &lt; HW_TIME )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = hwgetoptsarrfromplans( hwsessiongetvar( &quot;hw_pay_plan&quot; ) );<br />&nbsp; &nbsp; return isset( $a_v[$rm] );<br />}</p><p>function hwRealm( $rm )<br />{<br />&nbsp; &nbsp; if ( hwrealmallowed( $rm ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; switch ( $rm )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; case &quot;U_BROWSE_CATS&quot; :<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_U_BROWSE_CATS )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; case &quot;U_LIST_ADS&quot; :<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_U_LIST_ADS )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; case &quot;U_VIEW_AD_DET&quot; :<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !EN_U_VIEW_AD_DET )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; header( &quot;Location: index.php?page=account&amp;pg=payment&amp;why=realm&quot; );<br />&nbsp; &nbsp; exit( );<br />}</p><p>function hwProcessBlocks( &amp;$tpl, $all_b = &quot;&quot;, $ex_p = &quot;&quot;, $depth = 0 )<br />{<br />&nbsp; &nbsp; if ( is_object( $tpl ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $str_wanted = false;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $str_wanted = true;<br />&nbsp; &nbsp; &nbsp; &nbsp; $buf = $tpl;<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl = new HawkTpl( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl-&gt;BUF = $buf;<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $buf );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_blocks = array( );<br />&nbsp; &nbsp; if ( !$ex_p &amp;&amp; hwmodgetstate( &quot;Banner_Ads&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_blocks[] = &quot;Banner_Ad&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( count( $a_blocks ) == 0 &amp;&amp; strpos( $tpl-&gt;BUF, &quot;&lt;!-- TPL_INSERT : b_&quot; ) === false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( is_array( $all_b ) &amp;&amp; !$all_b )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; preg_match_all( &quot;/&lt;!-- TPL_INSERT : b_(\\S+)\\s+(\\S+\\s+)?--&gt;.*?&lt;!-- \\/TPL_INSERT : b_\\1\\s+--&gt;/s&quot;, $tpl-&gt;BUF, $m );<br />&nbsp; &nbsp; $a_block_vars = array( );<br />&nbsp; &nbsp; $cell_ids = &quot;&quot;;<br />&nbsp; &nbsp; $cnt = count( $m[0] );<br />&nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; for ( ;&nbsp; &nbsp; $i &lt; $cnt;&nbsp; &nbsp; ++$i&nbsp; &nbsp; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $block_id = $m[1][$i];<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( is_array( $all_b ) &amp;&amp; !$all_b[$block_id] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_blocks[] = $block_id;<br />&nbsp; &nbsp; &nbsp; &nbsp; $cell_ids .= &quot;b_&quot;.$block_id.&quot;,&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; $b_vars = trim( $m[2][$i] );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $b_vars )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( strpos( &quot;[({&quot;, $b_vars[0] ) !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $b_vars = trim( substr( $b_vars, 1, -1 ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $b_vars )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s = explode( strpos( $b_vars, &quot;;&quot; ) ? &quot;;&quot; : &quot;,&quot;, $b_vars );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $b_vars = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $s as $pair )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list( $k, $v ) = explode( &quot;=&quot;, $pair );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $k = trim( $k );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $b_vars[$k] = trim( $v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_block_vars[$block_id] = $b_vars;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$a_blocks )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $cell_ids )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cell_ids = substr( $cell_ids, 0, -1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl-&gt;InitArray( $cell_ids );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; sort( $a_blocks );<br />&nbsp; &nbsp; $cache_file = &quot;f_Blocks_{$ex_p}&quot;;<br />&nbsp; &nbsp; static $a_ok = NULL;<br />&nbsp; &nbsp; if ( !$a_ok[$cache_file] )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_ok[$cache_file] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; $o_cache =&amp; Factory::singleton( &quot;Hw_Cache&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $o_cache-&gt;isExpired( $cache_file, $mtime ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $path = &quot;/blocks/&quot;.( $ex_p ? $ex_p.&quot;/&quot; : &quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_all = hwgetblocksindir( &quot;inc&quot;.$path );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $mod_ts = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $res = $db-&gt;query( &quot;SELECT dir,UNIX_TIMESTAMP(updated) FROM &quot;.TBL_MODULES.&quot; WHERE block_capable=\&quot;1\&quot; AND state=\&quot;A\&quot;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while ( list( $mod, $mod_ts1 ) = mysql_fetch_row( $res ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $mod_ts &lt; $mod_ts1 )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $mod_ts = $mod_ts1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $ex_p &amp;&amp; !is_dir( SITE_PATH.&quot;modules/&quot;.$mod.&quot;/addons&quot;.$path ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_all = array_merge( $a_all, hwgetblocksindir( &quot;modules/&quot;.$mod.&quot;/addons&quot;.$path ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $rebuild = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $mtime &lt; $mod_ts )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $rebuild = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_all as $f )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $mtime &lt; filemtime( SITE_PATH.$f ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $rebuild = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $rebuild )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_all as $f )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data .= file_get_contents( SITE_PATH.$f );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data = preg_replace( &quot;/[\\r\\n]\\/\\/.*/&quot;, &quot;&quot;, $data );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data = preg_replace( &quot;/[\\r\\n]+/&quot;, &quot;\n&quot;, $data );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data = preg_replace( &quot;/\\?&gt;\\n{0,1}&lt;\\?(?:php)?/&quot;, &quot;&quot;, $data );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $o_cache-&gt;save( $cache_file, $data, true );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $data );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $o_cache-&gt;setUpdatedNow( $cache_file );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; static $a_included = array( );<br />&nbsp; &nbsp; $file_name = CACHE_DIR.$cache_file;<br />&nbsp; &nbsp; if ( !isset( $a_included[$file_name] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_included[$file_name] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; include( $file_name );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; foreach ( $a_blocks as $block_id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $func = &quot;block_&quot;.( $ex_p ? $ex_p.&quot;_&quot; : &quot;&quot; ).$block_id;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( function_exists( $func ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $func( $tpl, $a_block_vars[$block_id] );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $str_wanted )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl = $tpl-&gt;Parse( &quot;&quot;, &quot;&quot;, 0 );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $depth == 0 &amp;&amp; strpos( $tpl, &quot;&lt;!-- TPL_INSERT : b_&quot; ) !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwprocessblocks( $tpl, $all_b, $ex_p, $depth + 1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />}</p><p>function hwGetBlocksInDir( $path )<br />{<br />&nbsp; &nbsp; $a_v = hwreaddir( SITE_PATH.$path, &quot;files&quot; );<br />&nbsp; &nbsp; foreach ( $a_v as $k =&gt; $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( strtolower( substr( $v, -4 ) ) != &quot;.php&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v[$k] );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[$k] = $path.$a_v[$k];<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_v;<br />}</p><p>function hwGetTopAds( $catid = 0, $s_field = &quot;hits&quot;, $amt = 10 )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; global $TITLE_FIELD;<br />&nbsp; &nbsp; if ( !$catid )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $catid = 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = array( );<br />&nbsp; &nbsp; $ql = &quot;SELECT &quot;.hwsqlfieldsget( ).&quot; FROM &quot;.TBL_AD.&quot; WHERE 1&quot;.hwfiltergetsql( );<br />&nbsp; &nbsp; if ( $catid != 0 )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ql .= &quot; AND catid IN (&quot;.get_daughter_cats( $catid ).&quot;)&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $ql .= &quot; ORDER BY &quot;.$s_field.&quot; DESC LIMIT 0,&quot;.$amt;<br />&nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; $res = $db-&gt;query( $ql );<br />&nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v[$i] = hwsqlrowget( $v );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v[$i][&#039;num&#039;] = $i + 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; ++$i;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_v;<br />}</p><p>function GetUnixTimeFromMySQLDate( $s )<br />{<br />&nbsp; &nbsp; list( $year, $month, $day, $hour, $minute, $second ) = preg_split( &quot;/[-:\\s]+/&quot;, $s );<br />&nbsp; &nbsp; if ( !$year )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $s = &quot;{$year}-{$month}-{$day}&quot;;<br />&nbsp; &nbsp; if ( isset( $hour ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $s .= &quot; {$hour}:{$minute}:{$second}&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return strtotime( $s );<br />}</p><p>function hwToTwoDigits( $v )<br />{<br />&nbsp; &nbsp; return ( $v &lt; 10 ? &quot;0&quot; : &quot;&quot; ).$v;<br />}</p><p>function hwGetPayMethods( $id = &quot;&quot; )<br />{<br />&nbsp; &nbsp; $buf = hwreadcfgfile( TPL_PATH.&quot;pay_methods.txt&quot; );<br />&nbsp; &nbsp; $a_v = array( );<br />&nbsp; &nbsp; foreach ( $buf as $s )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; list( $pm_id, $pm_val ) = explode( &quot; = &quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $pm_val != &quot;&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[$pm_id] = $pm_val;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &quot;A_GATES&quot; =&gt; $a_v<br />&nbsp; &nbsp; );<br />&nbsp; &nbsp; hwmodevent( &quot;onGetPayMethods&quot;, &amp;$args );<br />&nbsp; &nbsp; $a_v = $args[&#039;A_GATES&#039;];<br />&nbsp; &nbsp; if ( $id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $a_v[$id];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $s = &quot;&lt;select name=pay_method&gt;&quot;;<br />&nbsp; &nbsp; foreach ( $a_v as $k =&gt; $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $s .= &quot;&lt;OPTION &quot;.( $k == $_REQUEST[&#039;pay_method&#039;] ? &quot;SELECTED &quot; : &quot;&quot; ).&quot;VALUE=\&quot;&quot;.$k.&quot;\&quot;&gt;&quot;.$v;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $s .= &quot;&lt;/select&gt;&quot;;<br />&nbsp; &nbsp; return $s;<br />}</p><p>function hwIsBannedIP( $ban_file, $ban_ip )<br />{<br />&nbsp; &nbsp; $_hw_banned = 0;<br />&nbsp; &nbsp; if ( file_exists( $ban_file ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ban_time = &quot;ban_ts_&quot;.$ban_ip;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !hwsessiongetvar( $ban_time ) || hwsessiongetvar( $ban_time ) &lt; filemtime( $ban_file ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v = hwreadcfgfile( $ban_file );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ip = $_SERVER[&#039;REMOTE_ADDR&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ip .= &quot;\n&quot;.preg_replace( &quot;/\\s*,\\s*/&quot;, &quot;\n&quot;, $_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cnt = count( $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $k = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ( ;&nbsp; &nbsp; $k &lt; $cnt;&nbsp; &nbsp; ++$k&nbsp; &nbsp; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[$k] = preg_quote( $a_v[$k], &quot;/&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( 3 &lt;= substr_count( $a_v[$k], &quot;.&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[$k] .= &quot;\$&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_z = array_chunk( $a_v, 2000 );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_z as $a_v )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v = implode( &quot;|&quot;, $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v = str_replace( &quot;\\*&quot;, &quot;*&quot;, $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v = preg_replace( &quot;/[\\*]+/&quot;, &quot;\\d+&quot;, $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( preg_match( &quot;/^&quot;.$a_v.&quot;/m&quot;, $ip ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwsessionsetvar( array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ban_time =&gt; HW_TIME<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_hw_banned = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else if ( hwsessiongetvar( $ban_ip ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $_hw_banned = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$_hw_banned )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; hwsessionsetvar( array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ban_time =&gt; HW_TIME<br />&nbsp; &nbsp; &nbsp; &nbsp; ) );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $_hw_banned;<br />}</p><p>function hwGetUserHostIP( $ext_info = false )<br />{<br />&nbsp; &nbsp; $ip = $_SERVER[&#039;REMOTE_ADDR&#039;];<br />&nbsp; &nbsp; if ( $ext_info &amp;&amp; $_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;] )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ip .= &quot; (&quot;.strip_tags( $_SERVER[&#039;HTTP_X_FORWARDED_FOR&#039;] ).&quot;)&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $ip;<br />}</p><p>function hwCURL( $a_opt )<br />{<br />&nbsp; &nbsp; if ( !is_array( $a_opt ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; exit( &quot;Array required for hwCURL()&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; include_once( SITE_PATH.&quot;inc/curl.inc.php&quot; );<br />&nbsp; &nbsp; return hwrealcurl( $a_opt );<br />}</p><p>function hwProcessTags( &amp;$buf )<br />{<br />&nbsp; &nbsp; global $title;<br />&nbsp; &nbsp; global $META_K;<br />&nbsp; &nbsp; global $META_D;<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;&lt;!-- IF_TITLE&quot; ) !== false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( preg_match( &quot;/&lt;!-- IF_TITLE:(.*?),(.*?),(.*?)--&gt;/&quot;, $buf, $m ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $title = trim( $m[1] ) ? $m[2] : $m[3];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $m );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else if ( strpos( $buf, &quot;&lt;!-- TITLE&quot; ) !== false &amp;&amp; preg_match( &quot;/&lt;!-- TITLE:(.*?)--&gt;/&quot;, $buf, $m ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $title = trim( $m[1] );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) &amp;&amp; PHP_SELF_BASE == &quot;modules.php&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $title )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $title = &quot;{Module} &quot;.HW_MOD.&quot; - &quot;.$title;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $title = &quot;{Module} &quot;.HW_MOD;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;&lt;!-- META_K&quot; ) !== false &amp;&amp; preg_match( &quot;/&lt;!-- META_K:(.*?)--&gt;/&quot;, $buf, $m ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $META_K = trim( $m[1] );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;&lt;!-- META_D&quot; ) !== false &amp;&amp; preg_match( &quot;/&lt;!-- META_D:(.*?)--&gt;/&quot;, $buf, $m ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $META_D = trim( $m[1] );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; settype( $HW_WRAP, &quot;int&quot; );<br />&nbsp; &nbsp; $tpl_v = &quot;\$CHARSET,\$SITE_URL,\$FILE_URL,\$HW_WRAP,\$TOKEN,\$title&quot;;<br />&nbsp; &nbsp; if ( defined( &quot;HW_MOD&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl_v .= &quot;,\$HW_MOD,\$HW_MOD_URL&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( PHP_SELF_BASE == &quot;index.php&quot; &amp;&amp; $page )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $tpl_v .= &quot;,\$page&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $GLOBALS[&#039;GLOBALS&#039;][&#039;HTTPS&#039;] = $_SERVER[&#039;HTTPS&#039;] == &quot;on&quot; ? 1 : 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl_v .= &quot;,\$HW_LANG,\$SE_CRAWLER,\$HTTPS,\$META_K,\$META_D&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;&lt;!-- TPL_INSERT : b_&quot; ) !== false || hwmodgetstate( &quot;Banner_Ads&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; hwprocessblocks( &amp;$buf );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $tpl_v = HawkTpl::getvarsarrayfromstr( $tpl_v );<br />&nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $tpl_v[&#039;IS_ADMIN&#039;] = is_array( hwsessiongetvar( &quot;realm&quot;, &quot;ADM&quot; ) ) ? 0 : 1;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;##Mod_&quot; ) !== false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_mods = hwmodgetarray( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_mods as $mod =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $v[&#039;state&#039;] == &quot;A&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[&quot;Mod_{$mod}&quot;] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $a_mods );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $tpl_v += $a_v;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $buf = evalbuffer( $buf, $tpl_v );<br />&nbsp; &nbsp; unset( $tpl_v );<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;{&quot; ) !== false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $buf = hwlngfilter( $buf );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( strpos( $buf, &quot;&lt;!-- IF &quot; ) !== false )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_from = array( &quot;/&lt;!-- (else)?if (.*?) (==|!=|&gt;=|&lt;=) ([\\\&quot;&#039;])?(.*?)\\4? --&gt;/ie&quot;, &quot;/&lt;!-- (else)?if (.*?) --&gt;/ise&quot;, &quot;/&lt;!-- else --&gt;/i&quot;, &quot;/&lt;!-- endif --&gt;/i&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_to = array( &quot;\&quot;&lt;?php \\1if(&#039;\\2&#039;\\3&#039;\\5&#039;): ?&gt;\&quot;&quot;, &quot;\&quot;&lt;?php \\1if(&#039;\\2&#039;): ?&gt;\&quot;&quot;, &quot;&lt;?php else: ?&gt;&quot;, &quot;&lt;?php endif ?&gt;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; $buf = str_replace( &quot;&lt;?&quot;, &quot;&lt;?&quot;, $buf );<br />&nbsp; &nbsp; &nbsp; &nbsp; $buf = str_replace( &quot;?&gt;&quot;, &quot;?&gt;&quot;, $buf );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( ini_get( &quot;asp_tags&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf = str_replace( &quot;&lt;%&quot;, &quot;&lt;%&quot;, $buf );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf = str_replace( &quot;%&gt;&quot;, &quot;%&gt;&quot;, $buf );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $cell = preg_replace( $a_from, $a_to, $buf );<br />&nbsp; &nbsp; &nbsp; &nbsp; ob_start( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $res = eval( &quot;?&gt;&quot;.$cell );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $res === FALSE )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &quot;&lt;b&gt;Parsing Error&lt;/b&gt;&lt;hr size=1&gt;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( 2 &lt;= DEBUG_LEVEL )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; highlight_string( $cell );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo &quot;To get more information set DEBUG_LEVEL value to 2 or higher in application.php&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit( );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $cell = ob_get_contents( );<br />&nbsp; &nbsp; &nbsp; &nbsp; ob_end_clean( );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $res !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf = $cell;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $cell );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( EN_SE_URLS &amp;&amp; EN_SE_ADV )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !function_exists( &quot;ProcessSearchFriendlyURLs&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; include( SITE_PATH.&quot;inc/search_friendly.php&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; processsearchfriendlyurls( $buf );<br />&nbsp; &nbsp; }<br />}</p><p>function hwLng( $k, $fatal = true )<br />{<br />&nbsp; &nbsp; global $A_LNG;<br />&nbsp; &nbsp; if ( isset( $A_LNG[$k] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $lang_val = $A_LNG[$k];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $k1 = strtolower( $k );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( isset( $A_LNG[$k1] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( preg_match( &quot;/[a-z]/&quot;, $k ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang_val = ucwords( $A_LNG[$k1] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang_val = strtoupper( $A_LNG[$k1] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( isset( $lang_val ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( strpos( $lang_val, &quot;{&quot; ) !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang_val = hwlngfilter( $lang_val );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; return $lang_val;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$fatal )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return false;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; exit( &quot;No lang.ini entry for &#039;{$k}&#039;&quot; );<br />}</p><p>function hwLngFilter( $lang_val )<br />{<br />&nbsp; &nbsp; $a_old = array( );<br />&nbsp; &nbsp; if ( preg_match_all( &quot;/\\{(\\w+)\\}/&quot;, $lang_val, $m ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cnt = count( $m[0] );<br />&nbsp; &nbsp; &nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; for ( ;&nbsp; &nbsp; $i &lt; $cnt;&nbsp; &nbsp; ++$i&nbsp; &nbsp; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang_id = $m[1][$i];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $a_old[$lang_id] )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_old[$lang_id] = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $v = hwlng( $lang_id, false );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $v !== false )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $lang_val = str_replace( $m[0][$i], $v, $lang_val );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $lang_val;<br />}</p><p>function hwGetAdURL( $id )<br />{<br />&nbsp; &nbsp; static $code = NULL;<br />&nbsp; &nbsp; if ( !isset( $code ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_SE_URLS )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $url = defined( &quot;EN_SE_ADV&quot; ) ? &quot;page-o\$id-&quot;.$HW_LANG.&quot;.html&quot; : &quot;page-\$id.html&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $code = explode( &quot;\$id&quot;, $url );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $code = &quot;D&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( is_array( $code ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $url = $code[0].$id.$code[1];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; static $ex_p = NULL;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $ex_p ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p .= &quot;&amp;lang=&quot;.$HW_LANG;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $url = &quot;index.php?page=out&amp;id=&quot;.$id.$ex_p;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $url;<br />}</p><p>function hwGetCatURL( $id )<br />{<br />&nbsp; &nbsp; static $code = NULL;<br />&nbsp; &nbsp; if ( !isset( $code ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_SE_URLS )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $url = defined( &quot;EN_SE_ADV&quot; ) ? &quot;page-b\$id-&quot;.$HW_LANG.&quot;.html&quot; : &quot;category-\$id.html&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $code = explode( &quot;\$id&quot;, $url );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $code = &quot;D&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( is_array( $code ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $url = $code[0].$id.$code[1];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; static $ex_p = NULL;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $ex_p ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p .= &quot;&amp;lang=&quot;.$HW_LANG;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $url = &quot;index.php?page=browse&amp;cid=&quot;.$id.$ex_p;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $url;<br />}</p><p>function hwGetBrowseURL( $id, $off = 0 )<br />{<br />&nbsp; &nbsp; static $code = NULL;<br />&nbsp; &nbsp; $off = ( integer )$off;<br />&nbsp; &nbsp; if ( !isset( $code ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( EN_SE_URLS )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $url = defined( &quot;EN_SE_ADV&quot; ) ? &quot;page-b\$id_\$id-&quot;.$HW_LANG.&quot;.html&quot; : &quot;browse-\$id-\$id.html&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $code = explode( &quot;\$id&quot;, $url );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $code = &quot;D&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( is_array( $code ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $url = $code[0].$id.$code[1].$off.$code[2];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; static $ex_p = NULL;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $ex_p ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) == &quot;A&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ex_p .= &quot;&amp;lang=&quot;.$HW_LANG;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $url = &quot;index.php?page=search&amp;s_res=AND&amp;cid={$id}&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $off )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $url .= &quot;&amp;off=&quot;.$off;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $ex_p )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $url .= $ex_p;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $url;<br />}</p><p>function hwIsExecutable( $f )<br />{<br />&nbsp; &nbsp; if ( function_exists( &quot;is_executable&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return is_executable( $f );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return is_readable( $f );<br />}</p><p>function hwFindExecutable( $f, $dirs = false )<br />{<br />&nbsp; &nbsp; if ( !is_array( $dirs ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $dirs = array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $path_sep = HW_IS_WINDOWS ? &quot;;&quot; : &quot;:&quot;;<br />&nbsp; &nbsp; $dirs = array_merge( $dirs, split( $path_sep, getenv( &quot;PATH&quot; ) ) );<br />&nbsp; &nbsp; if ( HW_IS_WINDOWS &amp;&amp; substr( $f, -4 ) != &quot;.exe&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $f .= &quot;.exe&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; foreach ( $dirs as $dir )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ch = substr( $dir, -1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $ch == &quot;\\&quot; || $ch == &quot;/&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir = substr( $dir, 0, -1 );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( hwisexecutable( $dir.&quot;/&quot;.$f ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return str_replace( &quot;\\&quot;, &quot;/&quot;, $dir ).&quot;/&quot;.$f;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return false;<br />}</p><p>function hwMenuGetOpts( $a_v, $cur )<br />{<br />&nbsp; &nbsp; $s = &quot;&quot;;<br />&nbsp; &nbsp; foreach ( $a_v as $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $s .= &quot;&lt;OPTION &quot;.( $v == $cur ? &quot;SELECTED &quot; : &quot;&quot; ).&quot;VALUE=\&quot;{$v}\&quot;&gt;{$v}&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $s;<br />}</p><p>function hwReadDir( $d, $type = &quot;all&quot; )<br />{<br />&nbsp; &nbsp; $last = substr( $d, -1 );<br />&nbsp; &nbsp; if ( $last != &quot;/&quot; &amp;&amp; $last != &quot;\\&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $d .= &quot;/&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = array( );<br />&nbsp; &nbsp; $hd = opendir( $d );<br />&nbsp; &nbsp; while ( $f = readdir( $hd ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $f[0] != &quot;.&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[] = $f;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; closedir( $hd );<br />&nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $type == &quot;dirs&quot; || $type == &quot;files&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_v as $k =&gt; $f )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $type == &quot;files&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !is_file( $d.$f ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v[$k] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if ( !( $type == &quot;dirs&quot; ) &amp;&amp; is_dir( $d.$f ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v[$k] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sort( $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_v;<br />}</p><p>function hwExecMaintenance( )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_IP.&quot; WHERE bdate &lt; DATE_SUB(&quot;.SQL_NOW.&quot;,INTERVAL 1 DAY)&quot; );<br />&nbsp; &nbsp; $db-&gt;query( &quot;OPTIMIZE TABLE &quot;.TBL_IP );<br />&nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_REG_CONFIRM.&quot; WHERE regdate &lt; DATE_SUB(&quot;.SQL_NOW.&quot;,INTERVAL 3 DAY)&quot; );<br />&nbsp; &nbsp; $db-&gt;query( &quot;DELETE FROM &quot;.TBL_SESSION.&quot; WHERE expires &lt; &quot;.HW_TIME );<br />&nbsp; &nbsp; $db-&gt;query( &quot;OPTIMIZE TABLE &quot;.TBL_SESSION );<br />}</p><p>function hwReadCfgFile( $f, $f_trim = 1 )<br />{<br />&nbsp; &nbsp; $buf = @file( $f );<br />&nbsp; &nbsp; if ( !$buf )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; foreach ( $buf as $k =&gt; $s )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $f_trim )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s = trim( $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s = str_replace( &quot;\r&quot;, &quot;&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s = str_replace( &quot;\n&quot;, &quot;&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !$s || $s[0] == &quot;#&quot; )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $buf[$k] );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf[$k] = $s;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $buf ? array_values( $buf ) : array( );<br />}</p><p>function MultiLangMenuGet( )<br />{<br />&nbsp; &nbsp; global $A_LOC_EXT;<br />&nbsp; &nbsp; if ( hwmodgetstate( &quot;Multi_Lang&quot; ) != &quot;A&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return array( &quot;&quot; =&gt; &quot;English&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = $A_LOC_EXT;<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v[&#039;&#039;] = $a_v[&#039;en&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $a_v[&#039;en&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; asort( $a_v );<br />&nbsp; &nbsp; &nbsp; &nbsp; return $a_v;<br />&nbsp; &nbsp; }<br />}</p><p>function hwGetExtraOptions( )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; static $A_RES = NULL;<br />&nbsp; &nbsp; if ( isset( $A_RES ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $A_RES;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $sql = &quot;&quot;;<br />&nbsp; &nbsp; $a_v = array_keys( hwgetextraoptionids( ) );<br />&nbsp; &nbsp; foreach ( $a_v as $k )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( defined( &quot;ADMIN_AREA&quot; ) || constant( &quot;EN_AD_{$k}&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $sql .= &quot;,&#039;{$k}&#039;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $A_RES = array( );<br />&nbsp; &nbsp; if ( !$sql )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $A_RES;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = $db-&gt;select( &quot;SELECT * FROM &quot;.TBL_EXTRA_OPT.&quot; WHERE type IN(&quot;.substr( $sql, 1 ).&quot;) AND active=\&quot;1\&quot; ORDER BY type,price&quot; );<br />&nbsp; &nbsp; if ( hwismodeventallowed( &quot;onExtraOptionsGet&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;A_EXTRA&quot; =&gt; $a_v<br />&nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; hwmodevent( &quot;onExtraOptionsGet&quot;, &amp;$args );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = $args[&#039;A_EXTRA&#039;];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_TRAN = hwlangphrase( );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $A_TRAN )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_v as $k =&gt; $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $A_TRAN[&quot;ex_opt-{$v[&#039;id&#039;]}&quot;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[$k][&#039;descr&#039;] = $A_TRAN[&quot;ex_opt-{$v[&#039;id&#039;]}&quot;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v[] = false;<br />&nbsp; &nbsp; $a_fee = $a_descr = array( );<br />&nbsp; &nbsp; foreach ( $a_v as $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( isset( $p_v[&#039;type&#039;] ) &amp;&amp; $p_v[&#039;type&#039;] != $v[&#039;type&#039;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $id = &quot;AD_{$p_v[&#039;type&#039;]}&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_RES[$id] = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ID&quot; =&gt; $id,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;NAME&quot; =&gt; &quot;{ex_&quot;.$p_v[&#039;type&#039;].&quot;}&quot;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;INPUT&quot; =&gt; &quot;menu&quot;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;EN_ORD&quot; =&gt; 1,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;DT&quot; =&gt; EX_OPT_EXP * 86400,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;FEE&quot; =&gt; $a_fee,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;DESCR&quot; =&gt; $a_descr<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_fee = $a_descr = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $p_v = $v;<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_fee[$v[&#039;val&#039;]] = $v[&#039;price&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_descr[$v[&#039;val&#039;]] = $v[&#039;descr&#039;];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $A_RES;<br />}</p><p>function hwGetPayOptions( $f_by = &quot;&quot; )<br />{<br />&nbsp; &nbsp; static $A_RES = NULL;<br />&nbsp; &nbsp; if ( !isset( $A_RES ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_RES = hwgetextraoptions( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $buf = hwreadcfgfile( TPL_PATH.&quot;pay_options.txt&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;A_OPTS&quot; =&gt; array( )<br />&nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; hwmodevent( &quot;onPayOptionsGet&quot;, &amp;$args );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $args[&#039;A_OPTS&#039;] )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf = array_merge( $buf, $args[&#039;A_OPTS&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_MEDIA = array_keys( Factory::getmediaobj( &quot;ALL&quot; ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_f = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $buf_extra = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $cnt = count( $buf );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( 0 &lt; $cnt )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ( ;&nbsp; &nbsp; $i &lt;= $cnt;&nbsp; &nbsp; ++$i&nbsp; &nbsp; )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !strncmp( $buf[$i], &quot;AD_MEDIA_&quot;, 9 ) &amp;&amp; preg_match( &quot;/^AD_MEDIA_\\w+_\\|/&quot;, $buf[$i] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $A_MEDIA as $media_id )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s = preg_replace( &quot;/^(AD_MEDIA_\\w+_)\\|/&quot;, &quot;\\1&quot;.strtoupper( $media_id ).&quot;|&quot;, $buf[$i] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s = str_replace( &quot;{media_id}&quot;, &quot;{&quot;.$media_id.&quot;}&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf_extra[$media_id][] = $s;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $buf[$i] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $buf_extra )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( array_values( $buf_extra ) as $v )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $buf = array_merge( $buf, $v );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset( $buf_extra );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $buf )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $buf as $s )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list( , ,&nbsp; ) = explode( &quot;|&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list( ,&nbsp; ) = explode( &quot;|&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list(&nbsp; ) = explode( &quot;|&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list(&nbsp; ) = explode( &quot;|&quot;, $s );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_RES[$a_f[&#039;ID&#039;]] = $a_f;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $f_by )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $len = strlen( $f_by );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_out = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( array_keys( $A_RES ) as $k )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( !strncmp( $k, $f_by, $len ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_out[$k] = $A_RES[$k];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; return $a_out;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $A_RES;<br />&nbsp; &nbsp; }<br />}</p><p>function hwGetPayInfoFmt( $term, $sep = &quot;, &quot; )<br />{<br />&nbsp; &nbsp; $term = trim( $term );<br />&nbsp; &nbsp; if ( !strpos( $term, &quot;-&quot; ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $term;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_term = explode( &quot; &quot;, $term );<br />&nbsp; &nbsp; $A_OPTS = null;<br />&nbsp; &nbsp; foreach ( $a_term as $k =&gt; $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !strpos( $v, &quot;-&quot; ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; list( $o_id, $o_val ) = explode( &quot;-&quot;, $v );<br />&nbsp; &nbsp; &nbsp; &nbsp; $o_amt = 1;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( preg_match( &quot;#^[^/]+/\\d+\$#&quot;, $o_val ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; list( $o_val, $o_amt ) = explode( &quot;/&quot;, $o_val );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $A_OPTS ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_OPTS = hwgetextraoptions( );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = $A_OPTS[$o_id];<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_term[$k] = ( $a_v[&#039;NAME&#039;] ? $a_v[&#039;NAME&#039;] : $o_id ).&quot; - &quot;.( $a_v[&#039;DESCR&#039;][$o_val] ? $a_v[&#039;DESCR&#039;][$o_val] : $o_val );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( 1 &lt; $o_amt )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_term[$k] .= &quot; (&quot;.$o_amt.&quot;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return implode( $sep, $a_term );<br />}</p><p>function hwGetPayPlans( $pp_type = &quot;&quot;, $cid = 0, $u_ac_pp = &quot;&quot; )<br />{<br />&nbsp; &nbsp; static $A_TERMS = NULL;<br />&nbsp; &nbsp; if ( !EN_PP_CAT )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $cid = 0;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !isset( $A_TERMS ) || $cid || $u_ac_pp )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_TERMS = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_f = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $ql = &quot;SELECT p.* FROM &quot;.TBL_PAY_PLAN.&quot; p WHERE p.enabled=\&quot;1\&quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $cid )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ql = str_replace( &quot;p WHERE&quot;, &quot;p, &quot;.TBL_PP_CAT.&quot; pc WHERE p.id=pc.ppid AND pc.cid=\&quot;&quot;.$cid.&quot;\&quot; AND&quot;, $ql );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $u_ac_pp )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_p = $db-&gt;one_col_array( &quot;SELECT fee_id FROM &quot;.TBL_PP_USER.&quot; WHERE sub_id=&#039;{$u_ac_pp}&#039;&quot; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $a_p )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $ql .= &quot; AND p.id NOT IN (&#039;&quot;.implode( &quot;&#039;,&#039;&quot;, $a_p ).&quot;&#039;)&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $res = $db-&gt;query( $ql );<br />&nbsp; &nbsp; &nbsp; &nbsp; while ( $v = mysql_fetch_assoc( $res ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $id = $v[&#039;id&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;TYPE&#039;] = $v[&#039;type&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;GROUP&#039;] = $v[&#039;pgroup&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;FEE&#039;] = $v[&#039;fee&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;DT&#039;] = $v[&#039;exp_days&#039;] * 86400;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;OPTS&#039;] = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v = hwpayoptstoarr( $v[&#039;options&#039;] );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $a_v )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ( $a_v as $z )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;OPTS&#039;][&quot;{$z[&#039;ID&#039;]}&quot;] = $z[&#039;DT&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $key = $a_f[&#039;TYPE&#039;] == &quot;FEE&quot; ? &quot;AD&quot; : &quot;USER&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_f[&#039;OPTS&#039;][&quot;{$key}_EXP_DATE&quot;] = $a_f[&#039;DT&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $A_TERMS[$id] = $a_f;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( !$pp_type )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $A_TERMS;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = array( );<br />&nbsp; &nbsp; foreach ( array_keys( $A_TERMS ) as $id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $A_TERMS[$id][&#039;TYPE&#039;] == $pp_type )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_v[$id] = $A_TERMS[$id];<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $cid || $u_ac_pp )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; unset( $A_TERMS );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_v;<br />}</p><p>function hwGetBasePlanFromStr( $s )<br />{<br />&nbsp; &nbsp; if ( !$s )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = hwpayoptstoarr( $s );<br />&nbsp; &nbsp; foreach ( $a_v as $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( !isset( $v[&#039;VAL&#039;] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $v[&#039;ID&#039;],<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $v[&#039;DT&#039;]<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return array( );<br />}</p><p>function hwGetOptsArrFromPlans( $s )<br />{<br />&nbsp; &nbsp; static $A_CACHE = NULL;<br />&nbsp; &nbsp; if ( !$s )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( isset( $A_CACHE[$s] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $A_CACHE[$s];<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $A_TERMS = hwgetpayplans( );<br />&nbsp; &nbsp; $a_out = array( );<br />&nbsp; &nbsp; $a_v = hwpayoptstoarr( $s );<br />&nbsp; &nbsp; foreach ( $a_v as $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( isset( $v[&#039;VAL&#039;] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_out[&quot;{$v[&#039;ID&#039;]}&quot;] = $v[&#039;VAL&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; else<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_z = $A_TERMS[&quot;{$v[&#039;ID&#039;]}&quot;][&#039;OPTS&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ( $a_z )<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_out = array_merge( $a_out, $a_z );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $A_CACHE[$s] = $a_out;<br />&nbsp; &nbsp; return $a_out;<br />}</p><p>function hwPayOptsToArr( $a_v )<br />{<br />&nbsp; &nbsp; if ( !$a_v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return array( );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_z = array( &quot;ID&quot;, &quot;DT&quot;, &quot;VAL&quot; );<br />&nbsp; &nbsp; $i = 0;<br />&nbsp; &nbsp; if ( $a_v[0] == &quot;[&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = substr( $a_v, 1, -1 );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $a_v = explode( &quot;][&quot;, $a_v );<br />&nbsp; &nbsp; foreach ( $a_v as $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_cur = array( );<br />&nbsp; &nbsp; &nbsp; &nbsp; $v = explode( &quot;-&quot;, $v );<br />&nbsp; &nbsp; &nbsp; &nbsp; foreach ( $v as $k =&gt; $s )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $a_out[$i][&quot;{$a_z[$k]}&quot;] = $s;<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; ++$i;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $a_out;<br />}</p><p>function hwPayOptsToStr( $a_v )<br />{<br />&nbsp; &nbsp; if ( !$a_v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return &quot;&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $s = &quot;&quot;;<br />&nbsp; &nbsp; foreach ( $a_v as $v )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $s .= &quot;[&quot;.$v[&#039;ID&#039;].&quot;-&quot;.$v[&#039;DT&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( isset( $v[&#039;VAL&#039;] ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $s .= &quot;-&quot;.$v[&#039;VAL&#039;];<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $s .= &quot;]&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $s;<br />}</p><p>function hwPayPlanGetInfo( $pp, $id = 0 )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; static $A_PP_TYPE = NULL;<br />&nbsp; &nbsp; if ( !isset( $A_PP_TYPE ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $A_PP_TYPE = $db-&gt;two_col_assoc( &quot;SELECT id,type FROM &quot;.TBL_PAY_PLAN );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $z = array( );<br />&nbsp; &nbsp; if ( $A_PP_TYPE[$pp] == &quot;SUB&quot; )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $z[&#039;sql_tbl&#039;] = TBL_USER;<br />&nbsp; &nbsp; &nbsp; &nbsp; $z[&#039;sql_id&#039;] = &quot;id&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $z[&#039;sql_tbl&#039;] = TBL_AD;<br />&nbsp; &nbsp; &nbsp; &nbsp; $z[&#039;sql_id&#039;] = &quot;link_id&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $id = ( integer )$id;<br />&nbsp; &nbsp; if ( $id )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $z[&#039;hw_pay_plan&#039;] = $db-&gt;one_data( &quot;SELECT hw_pay_plan FROM &quot;.$z[&#039;sql_tbl&#039;].&quot; WHERE &quot;.$z[&#039;sql_id&#039;].&quot;=&#039;{$id}&#039;&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; return $z;<br />}</p><p>function hwPayPlanSwitchOn( $pp_new, $sql_where, $pp_time = 0 )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; $pp_info = hwpayplangetinfo( $pp_new );<br />&nbsp; &nbsp; if ( ctype_digit( ( boolean )$sql_where ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $sql_where = $pp_info[&#039;sql_id&#039;].&quot;=&quot;.$sql_where;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; $sql = &quot;SELECT &quot;.$pp_info[&#039;sql_id&#039;].&quot;,hw_pay_plan FROM &quot;.$pp_info[&#039;sql_tbl&#039;].&quot; WHERE &quot;.$sql_where;<br />&nbsp; &nbsp; $res = $db-&gt;query( $sql );<br />&nbsp; &nbsp; while ( list( $id, $hw_pay_plan ) = mysql_fetch_row( $res ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $pp_old = $pp_old_dt = &quot;&quot;;<br />&nbsp; &nbsp; &nbsp; &nbsp; list( $pp_old, $pp_old_dt ) = hwgetbaseplanfromstr( $hw_pay_plan );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( $pp_old &amp;&amp; 0 &lt; $pp_old_dt &amp;&amp; $pp_old != $pp_new )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;PP_ID&quot; =&gt; $pp_old,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ID&quot; =&gt; $id<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hwevent( &quot;PayPlanOff&quot;, &amp;$args );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; $args = array(<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;PP_ID&quot; =&gt; $pp_new,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;ID&quot; =&gt; $id,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;PP_TIME&quot; =&gt; $pp_time<br />&nbsp; &nbsp; &nbsp; &nbsp; );<br />&nbsp; &nbsp; &nbsp; &nbsp; hwevent( &quot;PayPlanOn&quot;, &amp;$args );<br />&nbsp; &nbsp; }<br />}</p><p>function hwSQLCalcRows( $sql )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; if ( 40000 &lt;= $db-&gt;version( ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; return $db-&gt;one_data( &quot;SELECT FOUND_ROWS()&quot; );<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; else<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $sql = preg_replace( &quot;/^.*? FROM /s&quot;, &quot;SELECT COUNT(*) FROM &quot;, $sql );<br />&nbsp; &nbsp; &nbsp; &nbsp; $a_v = preg_split( &quot;/ ORDER BY /i&quot;, $sql );<br />&nbsp; &nbsp; &nbsp; &nbsp; if ( 1 &lt; count( $a_v ) )<br />&nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $sql = implode( &quot; ORDER BY &quot;, array_slice( $a_v, 0, -1 ) );<br />&nbsp; &nbsp; &nbsp; &nbsp; }<br />&nbsp; &nbsp; &nbsp; &nbsp; return $db-&gt;one_data( $sql );<br />&nbsp; &nbsp; }<br />}</p><p>function Multi_Lang_Redirect( $sql )<br />{<br />&nbsp; &nbsp; global $db;<br />&nbsp; &nbsp; global $HW_LANG;<br />&nbsp; &nbsp; $_lang = $db-&gt;one_data( $sql );<br />&nbsp; &nbsp; if ( !$_lang )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $_lang = &quot;en&quot;;<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; if ( $_lang != $HW_LANG &amp;&amp; !isset( $_GET[&#039;lang&#039;] ) &amp;&amp; ctype_print( $_SERVER[&#039;REQUEST_URI&#039;] ) )<br />&nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; $ch_amt = $db-&gt;one_data( &quot;SELECT CO</p>]]></content>
			<author>
				<name><![CDATA[pellets-wood]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1211</uri>
			</author>
			<updated>2008-03-29T19:44:22Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4705#p4705</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4697#p4697" />
			<content type="html"><![CDATA[<p><strong>pellets-wood</strong><br />Смотрите выше формирование переменной $f и преобразования производимые в функции hwlnggetpath().</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-03-27T20:45:31Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4697#p4697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4696#p4696" />
			<content type="html"><![CDATA[<p>Искомая строка<br /></p><div class="codebox"><pre><code> return file_get_contents( hwlnggetpath( $f ) );</code></pre></div><p>Что с ней делать?<br />Задаю в поиске &quot;file_get_contents&quot; получаю файлы в которых встречается</p>]]></content>
			<author>
				<name><![CDATA[pellets-wood]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1211</uri>
			</author>
			<updated>2008-03-27T20:34:17Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4696#p4696</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4693#p4693" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>pellets-wood сказал:</cite><blockquote><p>lib.inc.php on line 93</p></blockquote></div><p>Смотрите здесь как формируется имя файла.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-03-27T17:19:46Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4693#p4693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4692#p4692" />
			<content type="html"><![CDATA[<p>Закомментировал! Вроде бы система модуль нашла, но<br />ролучаю сообщене<br /> Warning: file_get_contents(Y:/home/localhost/www/mysite/tpl/admin/u_setup.htm) [function.file-get-contents]: failed to open stream: No such file or directory in Y:\home\localhost\www\mysite\inc\lib.inc.php on line 93</p><p>В папке tpl/admin/ есть такие файлы в которых есть ~setup.php , но нет u_setup.htm</p><p>Похоже, что скрипту сказано искать неправильное имя файла</p>]]></content>
			<author>
				<name><![CDATA[pellets-wood]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1211</uri>
			</author>
			<updated>2008-03-27T14:24:41Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4692#p4692</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4689#p4689" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>// Попробуйте закомментировать эту.
$mod = ( boolean )$mod;</code></pre></div><p>Я предлагаю посмотреть на работу функции hwmodgetarray( ) и возвращаемый ею массив, а именно, наличие массива с индексом, который приходит с переменной $mod.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-03-26T22:05:57Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4689#p4689</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4688#p4688" />
			<content type="html"><![CDATA[<p>Hanut, <br />Вы предлагаете убрать строки:<br /></p><div class="codebox"><pre><code>if ( !$mod || !$a_mods[$mod] )
{
    exit( &quot;Module not found&quot; );</code></pre></div><p>?</p>]]></content>
			<author>
				<name><![CDATA[pellets-wood]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1211</uri>
			</author>
			<updated>2008-03-26T21:39:25Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4688#p4688</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4685#p4685" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>// Здесь в $mod вкладывается булево значение
$mod = ( boolean )$mod;

// Здесь переменная $mod стала ключом массива $a_mods, из чего выходит $a_mods[true]
//Ошибка: ключ массива может быть только целым числом или строкой.
if ( !$mod || !$a_mods[$mod] )</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2008-03-25T22:38:39Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4685#p4685</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Ищу ошибку в скрипте и немогу найти]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=4684#p4684" />
			<content type="html"><![CDATA[<p>Код скрипта следующий:</p><div class="codebox"><pre><code>&lt;?php
function ShowModSetupPage( $tpl_f = &quot;&quot; )
{
    global $O_HW;
    global $err_msg;
    global $MOD_CFG;
    $A_CFG = array( );
    include( SITE_PATH.&quot;modules/&quot;.HW_MOD.&quot;/hw_info.php&quot; );
    if ( $A_CFG )
    {
        $a_v = $O_HW-&gt;GetModOptions( HW_MOD );
        if ( is_array( $a_v ) )
        {
            foreach ( array_keys( $a_v ) as $k )
            {
                if ( !isset( $A_CFG[$k] ) )
                {
                    unset( $a_v[$k] );
                }
            }
            if ( $a_v )
            {
                $A_CFG = array_merge( $A_CFG, $a_v );
            }
            unset( $a_v );
        }
    }
    if ( $_POST[&#039;go&#039;] )
    {
        if ( $A_CFG )
        {
            foreach ( array_keys( $A_CFG ) as $k )
            {
                if ( !isset( $_POST[$k] ) &amp;&amp; substr( $k, 0, 3 ) != &quot;EN_&quot; )
                {
                    continue;
                }
                $A_CFG[$k] = $_POST[$k];
            }
        }
        $func = HW_MOD.&quot;_SetupValidate&quot;;
        if ( function_exists( $func ) )
        {
            $err_msg = $func( );
        }
        if ( !$err_msg )
        {
            $func = HW_MOD.&quot;_SetupOnSave&quot;;
            if ( function_exists( $func ) )
            {
                $func( $A_CFG );
            }
            $O_HW-&gt;SetModOptions( HW_MOD, $A_CFG );
            $MOD_CFG = $O_HW-&gt;GetModOptions( HW_MOD );
            $err_msg = hwlng( &quot;updated_ok&quot; );
        }
    }
    $z = array( );
    if ( $A_CFG )
    {
        foreach ( $A_CFG as $k =&gt; $v )
        {
            if ( substr( $k, 0, 3 ) == &quot;EN_&quot; )
            {
                $z[$k] = $v ? &quot;checked&quot; : &quot;&quot;;
            }
            else
            {
                $z[$k] = $v;
            }
        }
    }
    $func = HW_MOD.&quot;_SetupPrepare&quot;;
    if ( function_exists( $func ) )
    {
        $func( $z );
    }
    if ( !$tpl_f )
    {
        $tpl_f = HW_MOD_TPL.&quot;setup.htm&quot;;
    }
    return evaladvtpl( $tpl_f, $z );
}

function hwGetModuleDescr( $mod )
{
    global $db;
    list( $state, $descr ) = $db-&gt;one_row( &quot;SELECT state,descr FROM &quot;.TBL_MODULES.&quot; WHERE dir=&quot;.$db-&gt;esc( $mod ).&quot; AND admin_capable=\&quot;1\&quot;&quot; );
    if ( $state != &quot;A&quot; &amp;&amp; $state != &quot;I&quot; )
    {
        showadmheader( );
        echo &quot;Module is not available&quot;;
        showadmfooter( );
        exit( );
    }
    return $descr;
}

define( &quot;HTTP_HOST&quot;, $_SERVER[&#039;HTTP_HOST&#039;] );
define( &quot;ADMIN_AREA&quot;, 1 );
require( &quot;../inc/application.php&quot; );
if ( basename( __FILE__ ) != &quot;modules.php&quot; )
{
    exit( &quot;Access Denied&quot; );
}
$mod = $_POST[&#039;mod&#039;] ? $_POST[&#039;mod&#039;] : $_GET[&#039;mod&#039;];
$mod = ( boolean )$mod;
$a_mods = hwmodgetarray( );
if ( !$mod || !$a_mods[$mod] )
{
    exit( &quot;Module not found&quot; );
}
checkloggedinadm( );
$HW_MOD = $mod;
$HW_MOD_DIR = MOD_DIR.$HW_MOD.&quot;/&quot;;
$HW_MOD_URL = &quot;modules.php?mod=&quot;.$HW_MOD;
define( &quot;HW_MOD&quot;, $mod );
define( &quot;HW_MOD_DIR&quot;, MOD_DIR.HW_MOD.&quot;/&quot; );
define( &quot;HW_MOD_URL&quot;, &quot;modules.php?mod=&quot;.HW_MOD );
define( &quot;HW_MOD_TPL&quot;, HW_MOD_DIR.&quot;tpl/admin/&quot; );
$MOD_CFG = $O_HW-&gt;GetModOptions( HW_MOD );
$mod_descr = hwgetmoduledescr( HW_MOD );
if ( !hwhasvalidkey( HW_MOD ) )
{
    exit( &quot;Module is not licensed for this domain : &quot;.HW_MOD );
}
include( HW_MOD_DIR.&quot;hw_admin.php&quot; );
hwmodloadlng( HW_MOD );
$HW_WRAP = 1;
if ( $pg == &quot;setup&quot; || $_GET[&#039;pg&#039;] == &quot;setup&quot; )
{
    $buf = showmodsetuppage( );
}
else
{
    $func = HW_MOD.&quot;_main&quot;;
    if ( !function_exists( $func ) )
    {
        exit( );
    }
    ob_start( );
    $ret_buf = $func( );
    $buf = ob_get_contents( );
    ob_end_clean( );
    if ( empty( $buf ) )
    {
        $buf = $ret_buf;
    }
    unset( $ret_buf );
}
if ( $HW_WRAP )
{
    $buf = showadmheader( 0 ).$buf.showadmfooter( 0 );
}
hwprocesstags( $buf );
echo $buf;
printparsetime( );
?&gt;</code></pre></div><p>Запускаю в системе - получаю ответ</p><div class="quotebox"><blockquote><p>Module not found</p></blockquote></div><p>Очевидно, шибка в отрезке</p><div class="codebox"><pre><code>define( &quot;HTTP_HOST&quot;, $_SERVER[&#039;HTTP_HOST&#039;] );
define( &quot;ADMIN_AREA&quot;, 1 );
require( &quot;../inc/application.php&quot; );
if ( basename( __FILE__ ) != &quot;modules.php&quot; )
{
    exit( &quot;Access Denied&quot; );
}
$mod = $_POST[&#039;mod&#039;] ? $_POST[&#039;mod&#039;] : $_GET[&#039;mod&#039;];
$mod = ( boolean )$mod;
$a_mods = hwmodgetarray( );
if ( !$mod || !$a_mods[$mod] )
{
    exit( &quot;Module not found&quot; );
}</code></pre></div><p>а особенно в </p><div class="codebox"><pre><code>$mod = $_POST[&#039;mod&#039;] ? $_POST[&#039;mod&#039;] : $_GET[&#039;mod&#039;];
$mod = ( boolean )$mod;
$a_mods = hwmodgetarray( );</code></pre></div><p>Прошу помочь. Подозрение общее на ошибку в цикле, либо пропущена запятая или скобка!</p>]]></content>
			<author>
				<name><![CDATA[pellets-wood]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=1211</uri>
			</author>
			<updated>2008-03-25T20:31:23Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=4684#p4684</id>
		</entry>
</feed>
