Viewing file: core.php (50.37 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<? //error_reporting(0); exit; include"database.php"; include"user/config.php";
$conn = mysql_connect(DB_HOSTNAME, DB_USER, DB_PASSWORD) or trigger_error(mysql_error(), E_USER_ERROR); mysql_select_db(DB_NAME); mysql_query("SET NAMES utf8", $conn); require_once(SMARTY_DIR . 'Smarty.class.php'); if ($_SERVER['SERVER_NAME'] != SERVER_NAME && $_SERVER['SERVER_NAME'] != "www.".SERVER_NAME && GetParam('deny_email') == 'yes') mail("morozov.andriy@gmail.com", "Нелегальное испольщование системы AMCMS v4.0", serialize($_SERVER)); session_start(); // include_once("fckeditor/fckeditor.php"); //define("TIME_OFFSET_NOW", "-2 hours 7 minute"); function detect_browser($HTTP_USER_AGENT) { // Браузер и его версия if (eregi("(Opera Mini/)([0-9]{1,2}.[0-9]{1,3}.[0-9]{1,5}/[0-9]{1,5}){0,1}", $HTTP_USER_AGENT, $match)) { $browser[name] = "Opera Mini"; $browser[version] = $match[2]; } elseif (eregi("(METASpider)", $HTTP_USER_AGENT, $match)) { $browser[name] = "METASpider"; $browser[version] = ""; } elseif (eregi("(opera) ([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match) || eregi("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match)) { $browser[name] = "Opera"; $browser[version] = $match[2]; } elseif (eregi("(Yandex)", $HTTP_USER_AGENT, $match)) { $browser[name] = "Yandex-bot"; $browser[version] = ""; } elseif (eregi("(HostTracker.com)", $HTTP_USER_AGENT, $match)) { $browser[name] = "HostTracker.com"; $browser[version] = ""; } elseif (eregi("(Aport)", $HTTP_USER_AGENT, $match)) { $browser[name] = "Aport-bot"; $browser[version] = ""; } elseif (eregi("(Googlebot/)([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match)) { $browser[name] = "Google-Bot"; $browser[version] = $match[2]; } elseif (eregi("(SurveyBot/)([0-9]{1,2}.[0-9]{1,3}){0,1}", $HTTP_USER_AGENT, $match)) { $browser[name] = "Survey-Bot (Whois)"; $browser[version] = $match[2]; } elseif (eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Konqueror"; $browser[version] = $match[2]; } elseif (eregi("(Chrome)/([0-9]{1,2}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Google Chrome"; $browser[version] = $match[2]; } elseif (eregi("(Firefox)/([0-9]{1,2}.[0-9]{1,3}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Firefox"; $browser[version] = $match[2]; } elseif (eregi("(Firefox)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Firefox"; $browser[version] = $match[2]; } elseif (eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Lynx"; $browser[version] = $match[2]; } elseif (eregi("(links) \(([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Links"; $browser[version] = $match[2]; } elseif (eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "MSIE"; $browser[version] = $match[2]; } elseif (eregi("(netscape6)/(6.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Netscape"; $browser[version] = $match[2]; } elseif (eregi("(safari)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Safari"; $browser[version] = $match[2]; } elseif (eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})", $HTTP_USER_AGENT, $match)) { $browser[name] = "Netscape"; $browser[version] = $match[2]; } elseif (eregi("mozilla/5", $HTTP_USER_AGENT)) { $browser[name] = "Netscape"; $browser[version] = "Unknown"; } elseif (eregi("w3m", $HTTP_USER_AGENT)) { $browser[name] = "w3m"; $browser[version] = "Unknown"; } else { $browser[name] = "Unknown"; $browser[version] = "Unknown"; } // Операционная система if (eregi("linux", $HTTP_USER_AGENT)) $browser[os] = "Linux"; elseif (eregi("METASpider", $HTTP_USER_AGENT)) $browser[os] = "METASpider"; elseif (eregi("Opera Mini", $HTTP_USER_AGENT)) $browser[os] = "Мобильное устройство"; elseif (eregi("Yandex", $HTTP_USER_AGENT)) $browser[os] = "Yandex"; elseif (eregi("SurveyBot", $HTTP_USER_AGENT)) $browser[os] = "Bot"; elseif (eregi("METASpider", $HTTP_USER_AGENT)) $browser[os] = "Bot"; elseif (eregi("HostTracker.com", $HTTP_USER_AGENT)) $browser[os] = "HostTracker.com"; elseif (eregi("Aport", $HTTP_USER_AGENT)) $browser[os] = "Bot"; elseif (eregi("Googlebot", $HTTP_USER_AGENT)) $browser[os] = "Bot"; elseif (eregi("win32", $HTTP_USER_AGENT)) $browser[os] = "Windows"; elseif ((eregi("(win)([0-9]{2})", $HTTP_USER_AGENT, $match)) || (eregi("(windows) ([0-9]{2})", $HTTP_USER_AGENT, $match))) $browser[os] = "Windows ".$match[2]; elseif (eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "Windows NT ".$match[2]; elseif (eregi("(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) { if ($match[3] == "5.1") $browser[os] = "Windows XP"; elseif ($match[3] == "5.0") $browser[os] = "Windows 2000"; elseif ($match[3] == "5.2") $browser[os] = "Windows 2003/XP x64"; elseif ($match[3] == "6.0") $browser[os] = "Windows Vista"; else $browser[os] = "Windows NT ".$match[3]; } elseif (eregi("mac", $HTTP_USER_AGENT)) $browser[os] = "Macintosh"; elseif (eregi("(sunos) ([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "SunOS ".$match[2]; elseif (eregi("(beos) r([0-9]{1,2}.[0-9]{1,2}){0,1}", $HTTP_USER_AGENT, $match)) $browser[os] = "BeOS ".$match[2]; elseif (eregi("freebsd", $HTTP_USER_AGENT)) $browser[os] = "FreeBSD"; elseif (eregi("openbsd", $HTTP_USER_AGENT)) $browser[os] = "OpenBSD"; elseif (eregi("irix", $HTTP_USER_AGENT)) $browser[os] = "IRIX"; elseif (eregi("os/2", $HTTP_USER_AGENT)) $browser[os] = "OS/2"; elseif (eregi("plan9", $HTTP_USER_AGENT)) $browser[os] = "Plan9"; elseif (eregi("unix", $HTTP_USER_AGENT) || eregi("hp-ux", $HTTP_USER_AGENT)) $browser[os] = "Unix"; elseif (eregi("osf", $HTTP_USER_AGENT)) $browser[os] = "OSF"; else { $browser[os] = "Unknown"; } return $browser; }
function GetCurrentDateAndTime() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("Y-m-d H:i:s", $time); return $fecha; } function GetYesterday() { $time = strtotime("-1 day ".GetParam("TimeOffset")); $fecha = date("Y-m-d", $time); return $fecha; } function GetCurrentYear() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("Y", $time); return $fecha; } function GetCurrentMonth() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("m", $time); return $fecha; } function GetCurrentDay() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("d", $time); return $fecha; } function GetCurrentDayOfWeek() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("D", $time); switch ($fecha) { case 'Mon': return 1; case 'Tue': return 2; case 'Wed': return 3; case 'Thu': return 4; case 'Fri': return 5; case 'Sat': return 6; case 'Sun': return 7; } return $fecha; } function GetCurrentHours() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("H", $time); return $fecha; } function GetCurrentMinutes() { $time = strtotime(GetParam("TimeOffset")); $fecha = date("i", $time); return $fecha; } function DateConvert($year, $month, $day, $hours, $minutes) { $date = ""; if ($year != 0) { $date = "{$year}-{$month}-{$day} "; if ($hours != 0 || $minutes != 0) { $date .= "{$hours}:{$minutes}"; } } return $date; } function DateExplode($dateString) { $date_components = explode(" ", $dateString); $date = explode("-", $date_components[0]); $time = explode(":", $date_components[1]); return array($date[0], $date[1], $date[2], $time[0], $time[1], $time[2]); } function DateSimplify($dateString) { $date = DateExplode($dateString); return DateConvert($date[0], $date[1], $date[2], $date[3], $date[4]); } function GetUsefulDate($dateString, $auto = false, $showdate = true, $showtime = true) { global $AMCMS_User_Lang; $html = ""; $parts = DateExplode($dateString); if ($showdate && $parts[0] != 0) { $html .= (int)$parts[2]." ".$ULANG['MonthRP'.((int)$parts[1])]." ".$parts[0]." ".$ULANG['YearRP']; } if (($showtime && $auto == false) || (($auto)&&($parts[3] != 0)) ) { $html .= " ".$parts[3].":".$parts[4]; } return $html; }
function DateForAdmin($dateString, $auto = false, $showdate = true, $showtime = true) { global $ALANG; $html = ""; $parts = DateExplode($dateString); if ($showdate) { $html .= (int)$parts[2]." ".$ALANG['MonthRP'.((int)$parts[1])]." ".$parts[0]." ".$ALANG['YearRP']; } if (($showtime && $auto == false) || (($auto)&&($parts[3] != 0) ) ) { $html .= " ".$parts[3].":".$parts[4]; } return $html; } function fckeditor($name, $value = "", $width = 800, $height = 300) { $html = "<textarea name=\"{$name}\">{$value}</textarea>"; $html .= "<script type=\"text/javascript\">"; // $html .= "var ckeditor = CKEDITOR.replace( '{$name}', {filebrowserBrowseUrl : '/aja/index.php', filebrowserUploadUrl : '/aja/index.php'});"; $html .= "var ckeditor = CKEDITOR.replace( '{$name}', {filebrowserBrowseUrl : '/modules-alien/ckeditor/ckfinder/ckfinder.html', filebrowserUploadUrl : '/modules-alien/ckeditor/ckfinder/ckfinder.html'});"; // $html .= "AjexFileManager.init({returnTo: 'ckeditor', editor: ckeditor, );"; $html .= "</script>"; return $html; $sBasePath = "/fckeditor/"; $content = ""; /* if (isset($_POST[$name])) $content = $_POST[$name];*/ $oFCKeditor = new FCKeditor($name) ; // $oFCKeditor->Config["EnterMode"] = "br"; // $oFCKeditor->Config["ShiftEnterMode"] = "p"; $oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/office2003/' ; $oFCKeditor->Config['AutoDetectLanguage'] = false ; $oFCKeditor->Config['DefaultLanguage'] = "uk"; $oFCKeditor->Config['EditorAreaCSS'] = '/user-fckeditor.css'; $oFCKeditor->BasePath = $sBasePath; //$oFCKeditor->Value = $content; $oFCKeditor->Value = $value; $oFCKeditor->Width = $width."px"; $oFCKeditor->Height = $height."px"; $oFCKeditor->ToolbarSet = "Default"; return $oFCKeditor->CreateHtml(); }
class SField { var $FieldName; var $FieldType; var $FieldLenght; var $Default; var $AutoIncrement = false; var $Multilingual = false; var $FullText = false; } class AMTable { var $FirstRecord = null; var $TableName; var $Fields; var $IndexFieldName; var $PositionFieldName; var $Only; function AMTable($tableName) { $this->TableName = $tableName; $this->Fields = array (); $this->Only = null; $this->RowsByPage = 0; } function GetTableName() { return $this->TableName; } function GetIndexFieldName() { return $this->IndexFieldName; } function AddPositionField($fieldName) { $this->PositionFieldName = $fieldName; $this->AddField($fieldName, "BIGINT", 0, "", false); } function AddIndexField($fieldName) { $field = new SField ( ); $field->FieldName = $fieldName; $field->FieldType = "BIGINT"; $field->AutoIncrement = true; $this->Fields [$fieldName] = $field; $this->IndexFieldName = $fieldName; } function AddField($fieldName, $fieldType, $fieldLength, $default, $multilingual, $autoIncrement = false) { $field = new SField ( ); $field->FieldName = $fieldName; $field->FieldType = $fieldType; $field->FieldLenght = $fieldLength; $field->AutoIncrement = $autoIncrement; $field->Multilingual = $multilingual; $field->Default = $default; $this->Fields [$fieldName] = $field; } function SetFullText($fieldName) { $this->Fields [$fieldName]->FullText = true; } function GenerateSQL($ifNotExists = false) { global $_LANG_ID; $sql = "CREATE TABLE "; if ($ifNotExists) $sql .= "IF NOT EXISTS "; $sql .= "`{$this->TableName}` ( "; foreach ( $this->Fields as $key => $value ) { foreach($_LANG_ID as $key1 => $lang) { $preffix = ""; if ($value->Multilingual) $preffix = "_".$lang; $sql .= "`{$value->FieldName}{$preffix}` "; $sql .= "{$value->FieldType} "; if ($value->FullText) $searchF .= ", FULLTEXT KEY `{$value->FieldName}{$preffix}` (`{$value->FieldName}{$preffix}`)"; else $searchF .= ""; if ($value->FieldType == "VARCHAR") $sql .= "($value->FieldLenght) "; if ($value->Default != "") $sql .= "default '{$value->Default}' "; if ($value->AutoIncrement) $sql .= "NOT NULL auto_increment "; else $sql .= "NULL "; $sql .= ","; if (!$value->Multilingual) break; } } echo $searchF; $sql .= "PRIMARY KEY (`{$this->IndexFieldName}`) {$searchF} ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"; return $sql; } function IsTableExists() { return mysql_query("SELECT 1 FROM `{$this->TableName}` WHERE 0") == true; } function DeleteTable() { mysql_query("DROP TABLE `{$this->TableName}`"); } function ClearTable() { mysql_query("TRUNCATE TABLE `{$this->TableName}`"); } function CreateTable() { mysql_query($this->GenerateSQL(true)); } function InsertRecord($valuesArray, $fieldsNames) { global $_LANG_ID; $fieldsSQL = ""; $valuesSQL = ""; $count = 0; foreach($fieldsNames as $index => $fieldName) { if ($this->Fields[$fieldName]->Multilingual) { foreach($_LANG_ID as $index2 => $lang) { if ($count > 0) { $fieldsSQL .= ", "; $valuesSQL .= ", "; } $fieldsSQL .= $fieldName . "_".$lang; $valuesSQL .= "'".$valuesArray[$fieldName. "_".$lang]."'"; $count++; } } else { if ($count > 0) { $fieldsSQL .= ", "; $valuesSQL .= ", "; } $fieldsSQL .= $fieldName; $valuesSQL .= "'".$valuesArray[$fieldName]."'"; $count++; } } $sql = "INSERT INTO `{$this->TableName}` ({$fieldsSQL}) VALUES ({$valuesSQL})"; $res = mysql_query($sql); $id = mysql_insert_id(); if (isset($this->PositionFieldName)) { mysql_query("UPDATE `{$this->TableName}` SET {$this->PositionFieldName} = '{$id}' WHERE {$this->IndexFieldName} = '{$id}'"); } if (isset($this->SearchField)) { } //echo $sql; return $id; } function UpdateRecord($valuesArray, $fieldsNames, $id) { global $_LANG_ID; $fieldsSQL = ""; $count = 0; foreach($fieldsNames as $index => $fieldName) { if ($this->Fields[$fieldName]->Multilingual) { foreach($_LANG_ID as $index2 => $lang) { if ($count > 0) { $fieldsSQL .= ", "; } $fieldsSQL .= $fieldName . "_".$lang." = ". "'".$valuesArray[$fieldName. "_".$lang]."'"; $count++; } } else { if ($count > 0) { $fieldsSQL .= ", "; } $fieldsSQL .= $fieldName. "=". "'".$valuesArray[$fieldName]."'"; $count++; } } $sql = "UPDATE `{$this->TableName}` SET {$fieldsSQL} WHERE {$this->IndexFieldName} = '{$id}'"; return mysql_query($sql); } function DeleteRecord($id) { mysql_query("DELETE FROM `{$this->TableName}` WHERE {$this->IndexFieldName} = '{$id}'"); } function GetRowById($id) { $res = mysql_query("SELECT * FROM {$this->TableName} WHERE {$this->IndexFieldName} = '{$id}' "); return mysql_fetch_array($res); } function GetPrevRecord($id, $where = "") { $whereStatement = ""; if ($where != "") $whereStatement = "AND ({$where})"; $query = "SELECT * FROM {$this->TableName} WHERE ({$this->PositionFieldName} > '{$id}') {$whereStatement} ORDER BY {$this->PositionFieldName} ASC"; $query_result = mysql_query($query); $row = mysql_fetch_array($query_result); return $row; } function GetNextRecord($id, $where = "") { $whereStatement = ""; if ($where != "") $whereStatement = "AND ({$where})"; $query = "SELECT * FROM {$this->TableName} WHERE ({$this->PositionFieldName} < '{$id}') {$whereStatement} ORDER BY {$this->PositionFieldName} DESC"; $query_result = mysql_query($query); $row = mysql_fetch_array($query_result); return $row; } function GetFirstRecord($id, $where = "") { $whereStatement = ""; if ($where != "") $whereStatement = "WHERE ({$where})"; $query = "SELECT * FROM {$this->TableName} {$whereStatement} ORDER BY {$this->PositionFieldName} DESC"; $query_result = mysql_query($query); $row = mysql_fetch_array($query_result); return $row; } function MoveRecordUp($id, $where = "") { $row1 = $this->GetRowById($id); $row2 = $this->GetNextRecord($row1[$this->PositionFieldName], $where); if ($row2 == null || $row1 == null) return; $id1 = $row1[$this->IndexFieldName]; $id2 = $row2[$this->IndexFieldName]; $pos1 = $row1[$this->PositionFieldName]; $pos2 = $row2[$this->PositionFieldName]; $query = "UPDATE {$this->TableName} SET {$this->PositionFieldName} = '{$pos2}' WHERE {$this->IndexFieldName} = '{$id1}'"; mysql_query($query) or die(mysql_error()); $query = "UPDATE {$this->TableName} SET {$this->PositionFieldName} = '{$pos1}' WHERE {$this->IndexFieldName} = '{$id2}'"; mysql_query($query) or die(mysql_error()); } function MoveRecordDown($id, $where = "") { $row1 = $this->GetRowById($id); $row2 = $this->GetPrevRecord($row1[$this->PositionFieldName], $where); if ($row2 == null || $row1 == null) return; $id1 = $row1[$this->IndexFieldName]; $id2 = $row2[$this->IndexFieldName]; $pos1 = $row1[$this->PositionFieldName]; $pos2 = $row2[$this->PositionFieldName]; $query = "UPDATE {$this->TableName} SET {$this->PositionFieldName} = '{$pos2}' WHERE {$this->IndexFieldName} = '{$id1}'"; mysql_query($query) or die(mysql_error()); $query = "UPDATE {$this->TableName} SET {$this->PositionFieldName} = '{$pos1}' WHERE {$this->IndexFieldName} = '{$id2}'"; mysql_query($query) or die(mysql_error()); } function GetRows($where = "", $order = "", $start = "", $count = "") { $whereSQL = ""; $orderSQL = ""; $limitSQL = ""; if ($start != "") { $limitSQL = "LIMIT ".$start; if ($count != "") $limitSQL = "LIMIT {$start}, {$count}"; } else if ($count != 0) { $limitSQL = "LIMIT 0, {$count}"; } if ($where != "") $whereSQL = "WHERE ".$where; if ($order != "") $orderSQL = "ORDER BY ".$order; $sql = "SELECT * FROM {$this->TableName} {$whereSQL} {$orderSQL} {$limitSQL}"; $res = mysql_query($sql); $rows = array(); $index = 0; while ($row = @mysql_fetch_assoc($res)) { $rows [$row[$this->IndexFieldName]] = $row; if ($index == 0) $this->FirstRecord = $row; $index++; } return $rows; } function GetCount($where = "", $order = "", $start = "", $count = "") { $whereSQL = ""; $orderSQL = ""; $limitSQL = ""; if ($start != "") { $limitSQL = "LIMIT ".$start; if ($count != "") $limitSQL = "LIMIT {$start}, {$count}"; } else if ($count != 0) { $limitSQL = "LIMIT 0, {$count}"; } if ($where != "") $whereSQL = "WHERE ".$where; if ($order != "") $orderSQL = "ORDER BY ".$order; $sql = "SELECT * FROM {$this->TableName} {$whereSQL} {$orderSQL} {$limitSQL}"; $res = mysql_query($sql); return mysql_affected_rows(); } function GetRestrictedRows($where = "", $order = "", $start = "", $count = "") { $whereSQL = ""; $orderSQL = ""; $limitSQL = ""; if ($start != "") { $limitSQL = "LIMIT ".$start; if ($count != "") $limitSQL = "LIMIT {$start}, {$count}"; } else if ($count != 0) { $limitSQL = "LIMIT 0, {$count}"; } if ($where != "") $whereSQL = "WHERE ".$where; if ($order != "") $orderSQL = "ORDER BY ".$order; $sql = "SELECT * FROM {$this->TableName} {$whereSQL} {$orderSQL} {$limitSQL}"; $res = mysql_query($sql); $rows = array(); $index = 0; while ($row = mysql_fetch_assoc($res)) { if ($_SESSION['admin_access']['admin_type'] == 'main') $rows [$row[$this->IndexFieldName]] = $row; else { if ($this->Only != null && in_array($row[$this->IndexFieldName], $this->Only)) $rows [$row[$this->IndexFieldName]] = $row; } if ($index == 0) $this->FirstRecord = $row; $index++; } return $rows; } function AllowOnly($array) { $this->Only = $array;; } } class AMAdminTable { var $SQL; var $Fields; var $Edit = false; var $Delete = false; var $AjaxDelete = false; var $Up = false; var $Down = false; var $CheckBox = false; var $IndexField; var $DeleteLinkPreffix; var $EditLinkPreffix; var $UpLinkPreffix; var $DownLinkPreffix; var $DeleteConfirmMessage; var $Links = array(); var $Only; var $ID; var $Module; var $Oper; function SetID($id) { $this->ID = $id; } function AllowOnly($array) { $this->Only = $array; } function AddFieldFunction($func, $title) { $this->Fields[] = array ('func' => $func, 'title' => $title); } function AddLink($link, $title, $class, $question = "") { $this->Links[] = array('link' => $link, 'title' => $title, 'class' => $class, 'question' => $question); }
function AddAjaxLink($title, $class, $mod, $oper, $question = "") { $this->Links[] = array( 'title' => $title, 'class' => $class, 'question' => $question, 'mod' => $mod, 'oper' => $oper, 'ajax' => ''); } function SetDeleteConfirmMessage($message) { $this->DeleteConfirmMessage = $message; } function AMAdminTable($sql, $indexField) { global $ALANG; $this->SQL = $sql; $this->IndexField = $indexField; $this->DeleteConfirmMessage = $ALANG['ConfirmDeleteRecord']; $this->Only = null; } function AllowCheckBox() { $this->CheckBox = true; } function AddField($fieldName, $fieldTitle, $noWrap = 'false') { $this->Fields[] = array('name' => $fieldName, 'title' => $fieldTitle, 'nowrap' => $noWrap); } function AllowEdit($linkPreffix) { $this->Edit = true; $this->EditLinkPreffix = $linkPreffix; } function AllowDelete($linkPreffix) { $this->Delete = true; $this->DeleteLinkPreffix = $linkPreffix; } function AllowAjaxDelete($mod, $oper = 'delete') { $this->AjaxDelete = true; $this->Module = $mod; $this->Oper = $oper; } function AllowUp($linkPreffix) { $this->Up = true; $this->UpLinkPreffix = $linkPreffix; } function AllowDown($linkPreffix) { $this->Down = true; $this->DownLinkPreffix = $linkPreffix; } function AddCustomField($myfunc) { $this->Fields[] = array('type' => 'custom', 'function' => $myfunc); } function Fetch() { global $ALANG; $html = ""; $html .= '<form name="adminform" id="adminform" method="post">'; $html .= '<table align="center" class="admintable" id="'.$this->ID.'">'; $res = mysql_query($this->SQL); $html .= '<thead>'; $html .= '<tr class="admintableheader">'; if ($this->CheckBox) $html .= '<td align="center"><input type="checkbox" name="all" onclick="checkAll(\'adminform\', \'oper[]\', this.checked);"/></td>'; if ($this->Delete || $this->AjaxDelete) $html .= '<td align="center"> </td>'; if ($this->Edit) $html .= '<td align="center"> </td>'; if ($this->Up) $html .= '<td align="center"> </td>'; if ($this->Down) $html .= '<td align="center"> </td>'; foreach($this->Links as $key => $value) $html .= '<td align="center"> </td>'; foreach($this->Fields as $key => $value) $html .= "<td align=\"center\">{$value['title']}</td>"; $html .= "</tr>"; $html .= '</thead>'; $count = 0; $i = 0; $field_list = array(); while ($i < @mysql_num_fields($res)) { $meta = mysql_fetch_field($res, $i); $field_list [$meta->name] = $meta; $i++; } while ($row = @mysql_fetch_assoc($res)) { $class = $count % 2 == 1 ? "admintablerow1" : "admintablerow2"; $class = "admintablerow1"; $html .= '<tr class="'. $class.'" id="'.$row[$this->IndexField].'">'; if ($this->CheckBox) $html .= '<td><input type="checkbox" name="oper[]" value="'.$row[$this->IndexField].'" /></td>'; if ($this->Delete) $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="?'.$this->DeleteLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="delete">'.$ALANG['Delete'].'</a></td>'; if ($this->AjaxDelete) { $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="javascript:ajaxRemoveRow'."({$row[$this->IndexField]}, '{$this->Module}', '$this->Oper');\" class=\"delete\">".$ALANG['Delete'].'</a></td>'; } if ($this->Edit) $html .= '<td align="center"><a href="?'.$this->EditLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="edit">'.$ALANG['Edit'].'</a></td>'; if ($this->Up) $html .= '<td align="center"><a href="?'.$this->UpLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="up">'.$ALANG['Up'].'</a></td>'; if ($this->Down) $html .= '<td align="center"><a href="?'.$this->DownLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="down">'.$ALANG['Down'].'</a></td>'; foreach($this->Links as $key => $value) { $onclick = ""; if ($value['question'] != "") $onclick = "onclick=\"return confirm('{$value['question']}');\""; if (isset($value['ajax'])) { // $html .= '<td align="center"><a {$onclick} href="javascript:'.$value['link']."({$row[$this->IndexField]})".'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; $html .= '<td align="center"><a {$onclick} href="javascript:ajaxRemoveRow'."({$row[$this->IndexField]}, '{$value['mod']}', '{$value['oper']}')".'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } else $html .= '<td align="center"><a {$onclick} href="?'.$value['link']."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } foreach($this->Fields as $key => $value) { $nowrap = ""; if ($value['nowrap'] == 'true') $nowrap = "nowrap=\"nowrap\""; if (isset($value['func'])) { $fet = $value['func']($row); $html .= '<td {$nowrap}><a onclick="return confirm(\''. $fet['message'] .'\');" href="?'.$fet['link'].'" class="'.$fet['class'].'">'.$fet['title']."</a></td>"; } else if ($field_list[$value['name']]->type == 'datetime') $html .= "<td {$nowrap}>".DateSimplify($row[$value['name']])."</td>"; else { if (isset($value['type']) == 'custom') { // echo $value['func']; $r = $value['function']($row); $html .= "<td>$r</td>"; } else
$html .= "<td {$nowrap}>{$row[$value['name']]}</td>"; } } $html .= "</tr>"; $count++; } $html .= '</table>'; $html .= '</form>'; return $html; } function FetchRestricted($className) { global $ALANG; $html = ""; $html .= '<form name="adminform" id="adminform" method="post">'; $html .= '<table align="center" class="admintable" id="'.$this->ID.'">'; $res = mysql_query($this->SQL); $html .= '<thead>'; $html .= '<tr class="admintableheader">'; if ($this->CheckBox) $html .= '<td align="center"><input type="checkbox" name="all" onclick="checkAll(\'adminform\', \'oper[]\', this.checked);"/></td>'; if ($this->Delete || $this->AjaxDelete) $html .= '<td align="center"> </td>'; if ($this->Edit) $html .= '<td align="center"> </td>'; if ($this->Up) $html .= '<td align="center"> </td>'; if ($this->Down) $html .= '<td align="center"> </td>'; foreach($this->Links as $key => $value) $html .= '<td align="center"> </td>'; foreach($this->Fields as $key => $value) $html .= "<td align=\"center\">{$value['title']}</td>"; $html .= "</tr>"; $html .= '</thead>'; $count = 0; $i = 0; $field_list = array(); while ($i < mysql_num_fields($res)) { $meta = mysql_fetch_field($res, $i); $field_list [$meta->name] = $meta; $i++; } while ($row = mysql_fetch_assoc($res)) { if ($_SESSION['admin_access']['admin_type'] != 'main') { if (!in_array($row[$this->IndexField], $_SESSION['admin_access'][$className])) continue; } $class = $count % 2 == 1 ? "admintablerow1" : "admintablerow2"; $class = "admintablerow1"; $html .= '<tr class="'. $class.'" id="'.$row[$this->IndexField].'">'; if ($this->CheckBox) $html .= '<td><input type="checkbox" name="oper[]" value="'.$row[$this->IndexField].'" /></td>'; if ($this->Delete) $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="?'.$this->DeleteLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="delete">'.$ALANG['Delete'].'</a></td>'; if ($this->AjaxDelete) { $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="javascript:ajaxRemoveRow'."({$row[$this->IndexField]}, '{$this->Module}', '$this->Oper');\" class=\"delete\">".$ALANG['Delete'].'</a></td>'; } if ($this->Edit) $html .= '<td align="center"><a href="?'.$this->EditLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="edit">'.$ALANG['Edit'].'</a></td>'; if ($this->Up) $html .= '<td align="center"><a href="?'.$this->UpLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="up">'.$ALANG['Up'].'</a></td>'; if ($this->Down) $html .= '<td align="center"><a href="?'.$this->DownLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="down">'.$ALANG['Down'].'</a></td>'; foreach($this->Links as $key => $value) { $onclick = ""; if ($value['question'] != "") $onclick = "onclick=\"return confirm('{$value['question']}');\""; if (isset($value['ajax'])) { // $html .= '<td align="center"><a {$onclick} href="javascript:'.$value['link']."({$row[$this->IndexField]})".'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; $html .= '<td align="center"><a {$onclick} href="javascript:ajaxRemoveRow'."({$row[$this->IndexField]}, '{$value['mod']}', '{$value['oper']}')".'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } else $html .= '<td align="center"><a {$onclick} href="?'.$value['link']."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } foreach($this->Fields as $key => $value) { $nowrap = ""; if ($value['nowrap'] == 'true') $nowrap = "nowrap=\"nowrap\""; if (isset($value['func'])) { $fet = $value['func']($row); $html .= '<td {$nowrap}><a onclick="return confirm(\''. $fet['message'] .'\');" href="?'.$fet['link'].'" class="'.$fet['class'].'">'.$fet['title']."</a></td>"; } else if ($field_list[$value['name']]->type == 'datetime') $html .= "<td {$nowrap}>".DateSimplify($row[$value['name']])."</td>"; else $html .= "<td {$nowrap}>{$row[$value['name']]}</td>"; } $html .= "</tr>"; $count++; } $html .= '</table>'; $html .= '</form>'; return $html; } } class AMCustomAdminTable extends AMAdminTable { var $Rows; function AMCustomAdminTable($rows, $indexField) { global $ALANG; $this->Rows = $rows; $this->IndexField = $indexField; $this->DeleteConfirmMessage = $ALANG['ConfirmDeleteRecord']; } function Fetch() { global $ALANG; $html = ""; $html .= '<form name="adminform" id="adminform" method="post">'; $html .= '<table align="center" class="admintable id="'.$this->ID.'">'; $html .= '<thead>'; $html .= '<tr class="admintableheader">'; if ($this->CheckBox) $html .= '<td align="center"><input type="checkbox" name="all" onclick="checkAll(\'adminform\', \'oper[]\', this.checked);"/></td>'; if ($this->Delete) $html .= '<td align="center"> </td>'; if ($this->AjaxDelete) $html .= '<td align="center"> </td>'; if ($this->Edit) $html .= '<td align="center"> </td>'; if ($this->Up) $html .= '<td align="center"> </td>'; if ($this->Down) $html .= '<td align="center"> </td>'; foreach($this->Links as $key => $value) $html .= '<td align="center"> </td>'; foreach($this->Fields as $key => $value) $html .= "<td align=\"center\">{$value['title']}</td>"; $html .= "</tr>"; $html .= '</thead>'; $count = 0; $i = 0; foreach($this->Rows as $key => $row) { $class = $count % 2 == 1 ? "admintablerow1" : "admintablerow2"; $class = "admintablerow1"; $html .= '<tr class="'. $class.'" id="'.$row[$this->IndexField].'">'; if ($this->CheckBox) $html .= '<td><input type="checkbox" name="oper[]" value="{$row[$this->IndexField]}" /></td>'; if ($this->Delete) $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="?'.$this->DeleteLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="delete">'.$ALANG['Delete'].'</a></td>'; if ($this->AjaxDelete) { $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="javascript:ajaxRemoveRow'."({$row[$this->IndexField]}, '{$this->Module}', '$this->Oper');\" class=\"delete\">".$ALANG['Delete'].'</a></td>'; } if ($this->Edit) $html .= '<td align="center"><a href="?'.$this->EditLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="edit">'.$ALANG['Edit'].'</a></td>'; if ($this->Up) $html .= '<td align="center"><a href="?'.$this->UpLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="up">'.$ALANG['Up'].'</a></td>'; if ($this->Down) $html .= '<td align="center"><a href="?'.$this->DownLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="down">'.$ALANG['Down'].'</a></td>'; foreach($this->Links as $key => $value) { $onclick = ""; if ($value['question'] != "") $onclick = "onclick=\"return confirm('{$value['question']}');\""; $html .= '<td align="center"><a {$onclick} href="?'.$value['link']."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } foreach($this->Fields as $key => $value) { $html .= "<td>{$row[$value['name']]}</td>"; } $html .= "</tr>"; $count++; } $html .= '</table>'; $html .= '</form>'; return $html; } } class AMHierarchyAdminTable extends AMAdminTable { var $Rows; var $Module; function AMHierarchyAdminTable($rows, $indexField, $module) { global $ALANG; $this->Module = $module; $this->Rows = $rows; $this->IndexField = $indexField; $this->DeleteConfirmMessage = $ALANG['ConfirmDeleteRecord']; } function Fetch() { global $ALANG; $html = ""; $html .= '<form name="adminform" id="adminform" method="post">'; $html .= '<table align="center" class="admintable id="'.$this->ID.'">'; $html .= '<tr class="admintableheader">'; if ($this->CheckBox) $html .= '<td align="center"><input type="checkbox" name="all" onclick="checkAll(\'adminform\', \'oper[]\', this.checked);"/></td>'; if ($this->Delete || $this->AjaxDelete) $html .= '<td align="center"> </td>'; if ($this->Edit) $html .= '<td align="center"> </td>'; if ($this->Up) $html .= '<td align="center"> </td>'; if ($this->Down) $html .= '<td align="center"> </td>'; foreach($this->Links as $key => $value) $html .= '<td align="center"> </td>'; foreach($this->Fields as $key => $value) $html .= "<td align=\"center\">{$value['title']}</td>"; $html .= "</tr>"; $count = 0; $i = 0; for($i = 0; $i < count($this->Rows); $i++) { $row = $this->Rows[$i]; $class = "admintablerow1"; $html .= '<tr class="'. $class.'">'; if ($this->CheckBox) $html .= '<td><input type="checkbox" name="oper[]" value="{$row[$this->IndexField]}" /></td>'; if ($this->Delete) $html .= '<td align="center"><a onclick="return confirm(\''. $this->DeleteConfirmMessage .'\');" href="?'.$this->DeleteLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="delete">'.$ALANG['Delete'].'</a></td>'; if ($this->Edit) $html .= '<td align="center"><a href="?'.$this->EditLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="edit">'.$ALANG['Edit'].'</a></td>'; if ($this->Up) $html .= '<td align="center"><a href="?'.$this->UpLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="up">'.$ALANG['Up'].'</a></td>'; if ($this->Down) $html .= '<td align="center"><a href="?'.$this->DownLinkPreffix."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="down">'.$ALANG['Down'].'</a></td>'; foreach($this->Links as $key => $value) { $onclick = ""; if ($value['question'] != "") $onclick = "onclick=\"return confirm('{$value['question']}');\""; $html .= '<td align="center"><a {$onclick} href="?'.$value['link']."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } for($j = 0; $j < count($this->Fields); $j++) { $value = $this->Fields[$j]; if ($j == count($this->Fields) - 1) { $link = ""; $parent_id = $row['item_id']; //if ($this->Rows[$i]['depth'] >= $this->Rows[$i + 1]['depth']) $link = " <span class=\"menu-add-subitem\"><a href=\"?mod=".$this->Module."&ItemAdd&item_parent_id={$parent_id}\">{$ALANG['MenuCreateSubItem']}</a></span>"; $html .= "<td><span class=\"hierarchy-table-td-text\">{$row[$value['name']]}<span>{$link}</td>"; } else $html .= "<td><span class=\"hierarchy-table-td-text\">{$row[$value['name']]}<span></td>"; } $html .= "</tr>"; $count++; if (false) for ($n = 0; $n < $this->Rows[$i]['depth'] - $this->Rows[$i + 1]['depth']; $n++) { $class = "admintablerow1"; $html .= '<tr class="'. $class.'">'; if ($this->CheckBox) $html .= '<td> </td>'; if ($this->Delete) $html .= '<td> </td>'; if ($this->Edit) $html .= '<td> </td>'; if ($this->Up) $html .= '<td> </td>'; if ($this->Down) $html .= '<td> </td>'; foreach($this->Links as $key => $value) { $onclick = ""; if ($value['question'] != "") $onclick = "onclick=\"return confirm('{$value['question']}');\""; $html .= '<td align="center"><a {$onclick} href="?'.$value['link']."&{$this->IndexField}={$row[$this->IndexField]}" .'" class="'.$value['class'].'">'.$value['title'].'</a></td>'; } for($j = 0; $j < count($this->Fields); $j++) { $value = $this->Fields[$j]; if ($j == count($this->Fields) - 1) { $link = ""; $spaces = ""; for ($k = 0; $k < $this->Rows[$i]['depth']- $n; $k++) $spaces .= " | "; $spaces .= "✚ "; $parent_id = $row['item_id']; if ($this->Rows[$i]['depth'] >= $this->Rows[$i + 1]['depth']) $link = " <a href=\"?mod=".$this->Module."&ItemAdd&item_parent_id={$parent_id}\">содать пункт</a>"; $html .= "<td class=\"menu-add-item hierarchy-table-td-text\">{$spaces}{$link}</td>"; } else $html .= "<td> </td>"; } $html .= "</tr>"; $count++; } } $html .= '</table>'; $html .= '</form>'; return $html; } } class AMNavigator{ var $Fields; function AMNavigator() { $this->Fields = array(); } function AddLink($title, $link) { $this->Fields[] = array('title' => $title, 'link' => $link); } function Fetch() { $html = ""; $html .= "<div class=\"navigator\">"; $filename = "/"; $html .= "<a href=\"{$filename}\"><img src=\"/design/user/images/m-home3.gif\" border=\"0\" align=\"absmiddle\" onmouseout=\"this.src='/design/user/images/m-home3.gif'\" onmouseover=\"this.src='/design/user/images/m-home1.gif'\" /></a>"; foreach ($this->Fields as $key => $value) { $html .= "<span class=\"navigator-delimiter\">›››</span> "; $html .= "<a href=\"{$value['link']}\">{$value['title']}</a> "; } $html .= "</div>"; return $html; } function GetTitleForPage() { global $ULANG, $language; $html = ""; foreach($this->Fields as $key => $value) $html .= " | ".$value['title']; return GetParam('site_name_'.$language).$html; } } function GetAdminLanguageCaptions($language) { include "data/languages/{$language}-admin.inc.php";
/* $sql = "SELECT * FROM AMCMS_admin_languages"; $res = mysql_query($sql); $rows = array(); while($row = mysql_fetch_assoc($res)) { $rows[$row['caption_name']] = $row['caption_'.$language]; } return $rows;*/ } function GetUserLanguageCaptions($language) { include "data/languages/{$language}-user.inc.php"; /* $sql = "SELECT * FROM AMCMS_user_languages"; $res = mysql_query($sql); $rows = array(); while($row = mysql_fetch_assoc($res)) { $rows[$row['caption_name']] = $row['caption_'.$language]; } return $rows; */ }
global $ALANG, $DefaultAdminLanguage, $ULANG; $ALANG = GetAdminLanguageCaptions($DefaultLanguage);
$directory = opendir("modules"); while ($s = readdir($directory)) { if ($s == "." || $s == "..") continue; $modulefile = "modules/".$s."/module.php"; if (file_exists($modulefile)) { include_once $modulefile; } }
function DateDiff ($interval, $date1, $date2) { $datearr1 = DateExplode($date1); $datearr2 = DateExplode($date2); $date1 = mktime($datearr1[3], $datearr1[4], $datearr1[5], $datearr1[1], $datearr1[2], $datearr1[0]); $date2 = mktime($datearr2[3], $datearr2[4], $datearr2[5], $datearr2[1], $datearr2[2], $datearr2[0]);
$timedifference = $date2 - $date1;
switch ($interval) { case 'w': $retval = bcdiv($timedifference, 604800); break; case 'd': $retval = bcdiv($timedifference, 86400); break; case 'h': $retval =bcdiv($timedifference, 3600); break; case 'n': $retval = bcdiv($timedifference, 60); break; case 's': $retval = $timedifference; break;
} return $retval;
} function IsEmailCorrect($email) { return preg_match("/^[\w]{1}[\w\.\-_]*@[\w]{1}[\w\-_\.]*\.[\w]{2,4}$/i", $email); } function IsSpam($text) { return strip_tags($text) != $text; }
function ImageResize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100) { if (!file_exists($src)) return false; $size = getimagesize($src); if ($size === false) return false; // Определяем исходный формат по MIME-информации, предоставленной // функцией getimagesize, и выбираем соответствующую формату // imagecreatefrom-функцию. $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1)); $icfunc = "imagecreatefrom" . $format; if (!function_exists($icfunc)) return false; $x_ratio = $width / $size[0]; $y_ratio = $height / $size[1]; $ratio = min($x_ratio, $y_ratio); $use_x_ratio = ($x_ratio == $ratio); /*$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio); $new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio); $new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2); $new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);*/ $new_width = floor($size[0] * $ratio); $new_height = floor($size[1] * $ratio); $new_left = 0; $new_top = 0; $isrc = $icfunc($src); $idest = imagecreatetruecolor($new_width, $new_height); imagefill($idest, 0, 0, $rgb); imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]); imagejpeg($idest, $dest, $quality); imagedestroy($isrc); imagedestroy($idest); return true; }
function SearchOnSite($words, $text, $titleField, $indexField, $fields, $tableName) { //if (count($words) == 1 && strlen($words[0]) == 0) // $simple = 1; $text = addslashes(implode(" ", $words)); $sql = ""; // echo var_dump($fields); $rows = array(); foreach($fields as $ind => $field) { if ($sql != "") $sql .= " UNION "; $sql = ""; $where = ""; foreach($words as $key => $value) { if ($where != "") $where .= " OR "; $where .= "($field LIKE '%$value%') "; } $sql .= " SELECT $indexField, $titleField, MATCH $field AGAINST ('$text') AS relev FROM $tableName WHERE {$where} "; $sql .= " ORDER by relev DESC"; if ($simple) { $sql = "SELECT $indexField, $titleField FROM $tableName"; } $res = mysql_query($sql); while ($row = @mysql_fetch_assoc($res)) $rows [] = $row; } return $rows; } function addzero($value, $charCount) { $v = $value; for ($i = strlen($value); $i < $charCount; $i++) { $v = "0".$v; } return $v; }
class CPageNavigator { var $CurrentPage; var $RowsInPage; var $CountOfRows; function CPageNavigator($countOfRows, $curpage = 1, $rowsInPage = 10) { $this->CurrentPage = $curpage; $this->RowsInPage = $rowsInPage; $this->CountOfRows = $countOfRows; } function GetLimitStatement() { $st = ($this->CurrentPage - 1)*$this->RowsInPage + 1; return "LIMIT ".$st.",".$this->RowsInPage; } function GetCountOfPages() { return @ceil($this->CountOfRows / $this->RowsInPage); } function TestNumberOfPage($page) { if ($page <= 0) return false; if ($page > $this->GetCountOfPages()) return false; return true; } function GetNavigator($addressPreffix) { $increment = 8; $rows = array(); if ($this->CurrentPage - $increment > 1) { $row['title'] = "«"; $row['page'] = 1; $row['link'] = $addressPreffix."&pageNum=1"; array_push($rows, $row); } for ($i = -$increment; $i <= $increment; $i++) if ($this->TestNumberOfPage($this->CurrentPage + $i)) { $row['title'] = $this->CurrentPage + $i; $row['page'] = $this->CurrentPage + $i; $row['link'] = $addressPreffix."&pageNum=".$row['page']; array_push($rows, $row); } if ($this->CurrentPage + $increment < $this->GetCountOfPages()) { $row['title'] = "»"; $row['page'] = $this->GetCountOfPages(); $row['link'] = $addressPreffix."&pageNum=".$row['page']; array_push($rows, $row); } foreach($rows as $key => $value) { $title = $value['title']; if ($value['page'] == $this->CurrentPage) $title = "<b><u>".$title."</u></b>"; $link = $value['link']; $str .= "<a href=\"{$link}\">{$title}</a>"; } return $str; } } function GetParam($paramName) { $res = mysql_query("SELECT * FROM AMCMS_params WHERE param_name = '{$paramName}'"); $arr = mysql_fetch_array($res); return $arr['param_value']; } function SetParam($paramName, $paramValue) { $res = mysql_query("SELECT * FROM AMCMS_params WHERE param_name = '{$paramName}'"); $arr = mysql_fetch_array($res); if ($arr == null) $res = mysql_query("INSERT INTO AMCMS_params (param_value, param_name) VALUES ('{$paramValue}', '{$paramName}')"); else $res = mysql_query("UPDATE AMCMS_params SET param_value = '{$paramValue}' WHERE param_name = '{$paramName}'"); } function ClearStringForTitle($title) { $str_win = iconv("utf-8","cp1251", $title); $str_win = trim($str_win); $str_win = str_replace("\n", " ", $str_win); $str_win = str_replace("\r", " ", $str_win); $str_win = ereg_replace(" +", " ",$str_win); return iconv("cp1251","utf-8", $str_win); } function GeoIpDetect($ip) { $pattern = "/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/"; preg_match($pattern, $ip, $matches); $ipnum = 16777216*$matches[1] + 65536*$matches[2] + 256*$matches[3] + $matches[4]; print_r($matches); echo $ipnum; $sql = "SELECT * FROM AMCMS_geoip WHERE $ipnum >= begin_num AND $ipnum <= end_num LIMIT 1"; echo $sql; $res = mysql_query($sql); $row = mysql_fetch_array($res); print_r($row); $res->city = $city; $res->country = $country; return $res; }
function GetYearSelectForm($name, $method = "get", $selectedYear = "", $startYear = "") { if ($startYear == "") $startYear = GetParam("StartYear"); global $ALANG; if ($selectedYear == "") $selectedYear = GetCurrentYear(); $option1 = ""; for($i = GetCurrentYear() + 1; $i >= $startYear; $i--) { $selected = ""; if ($i == $selectedYear) $selected = "selected=\"selected\""; $option1 .= "<option {$selected} value=\"{$i}\">".$i." ".$ALANG['year']."</option>"; } $select1 = "<select name=\"{$name}\" id=\"{$name}\" onchange=\"submit1.click();\">{$option1}</select> "; $input = "<input style=\"display:none;\" type=\"submit\" name=\"submit1\" id=\"submit1\" value=\"".$ALANG['Select'] ."\" />"; $selectorHtml = "<div style=\"text-align:center\"><form style=\"margin-bottom:20px\" name=\"datefrm\" method=\"{$method}\"> ".$ALANG['Select'].": {$select1} {$select2} {$input}</form></div>"; return $selectorHtml;
} ?>
|