public function setPage($page, $table, $where) { $this->limite = 10; $this->inicio = $page * $this->limite - $this->limite; $paginacao = new Model(); if ($where) { $where = " {$where} AND"; } $num_reg = $paginacao->query("SELECT is_ativo FROM {$table} WHERE {$where} id_empresa='{$this->id_empresa}' AND is_ativo='1'", "count"); $this->total_paginas = Ceil($num_reg / $this->limite); }
public function randomStr($length) { $n_Caratteri = $length; $stringa = ""; for ($i = 0; $i < $n_Caratteri; $i++) { do { $n = Ceil(rand(48, 122)); } while (!($n >= 48 && $n <= 57 || $n >= 65 && $n <= 90 || $n >= 97 && $n <= 122)); $stringa = $stringa . chr($n); } return $stringa; }
public function query($args) { $defaults = array("type" => "overview", "posts_per_page" => 0, "paged" => 1, "post__in" => null, "format" => "array", "max_id_first_page" => null, "since_id" => null, "date_from" => null, "date_to" => null, "months" => null, "dates" => null, "search" => null, "loglevels" => null, "loggers" => null, "messages" => null, "user" => null, "users" => null, "returnQuery" => false); $args = wp_parse_args($args, $defaults); // sf_d($args, "Run log query with args"); $cache_key = "SimpleHistoryLogQuery_" . md5(serialize($args)) . "_get_" . md5(serialize($_GET)) . "_userid_" . get_current_user_id(); $cache_group = "simple-history-" . SimpleHistory::get_cache_incrementor(); $arr_return = wp_cache_get($cache_key, $cache_group); if (false !== $arr_return) { return $arr_return; } /* Subequent occasions query thanks to this Stack Overflow thread: http://stackoverflow.com/questions/13566303/how-to-group-subsequent-rows-based-on-a-criteria-and-then-count-them-mysql/13567320#13567320 Similar questions that I didn't manage to understand, work, or did try: - http://stackoverflow.com/questions/23651176/mysql-query-if-dates-are-subsequent - http://stackoverflow.com/questions/17651868/mysql-group-by-subsequent - http://stackoverflow.com/questions/4495242/mysql-number-of-subsequent-occurrences - http://stackoverflow.com/questions/20446242/postgresql-group-subsequent-rows - http://stackoverflow.com/questions/17061156/mysql-group-by-range - http://stackoverflow.com/questions/6602006/complicated-query-with-group-by-and-range-of-prices-in-mysql */ global $wpdb; $table_name = $wpdb->prefix . SimpleHistory::DBTABLE; $table_name_contexts = $wpdb->prefix . SimpleHistory::DBTABLE_CONTEXTS; $where = "1 = 1"; $limit = ""; $inner_where = "1 = 1"; if ("overview" === $args["type"] || "single" === $args["type"]) { // Set variables used by query $sql_set_var = "SET @a:='', @counter:=1, @groupby:=0"; $wpdb->query($sql_set_var); // New and slightly faster query // 1 = where // 2 = limit // 3 = db name // 4 = where for inner calc sql query thingie // 5 = db name contexts $sql_tmpl = ' /*NO_SELECT_FOUND_ROWS*/ SELECT SQL_CALC_FOUND_ROWS h.id, h.logger, h.level, h.date, h.message, h.initiator, h.occasionsID, count(t.repeated) AS subsequentOccasions, t.rep, t.repeated, t.occasionsIDType, c1.value AS context_message_key FROM %3$s AS h LEFT OUTER JOIN %5$s AS c1 ON (c1.history_id = h.id AND c1.key = "_message_key") INNER JOIN ( SELECT id, IF(@a=occasionsID,@counter:=@counter+1,@counter:=1) AS rep, IF(@counter=1,@groupby:=@groupby+1,@groupby) AS repeated, @a:=occasionsID occasionsIDType FROM %3$s AS h2 # First/inner where WHERE %4$s ORDER BY id DESC, date DESC ) AS t ON t.id = h.id WHERE # AND DATE >= DATE(NOW()) - INTERVAL 7 DAY # Outer/Second where %1$s GROUP BY repeated ORDER BY id DESC, date DESC %2$s '; $sh = SimpleHistory::get_instance(); // Only include loggers that the current user can view // @TODO: this causes error if user has no access to any logger at all $sql_loggers_user_can_view = $sh->getLoggersThatUserCanRead(get_current_user_id(), "sql"); $inner_where .= " AND logger IN {$sql_loggers_user_can_view}"; } else { if ("occasions" === $args["type"]) { // Query template // 1 = where // 2 = limit // 3 = db name $sql_tmpl = ' SELECT h.*, # fake columns that exist in overview query 1 as subsequentOccasions FROM %3$s AS h WHERE %1$s ORDER BY id DESC %2$s '; $where .= " AND h.id < " . (int) $args["logRowID"]; $where .= " AND h.occasionsID = '" . esc_sql($args["occasionsID"]) . "'"; if (isset($args["occasionsCountMaxReturn"]) && (int) $args["occasionsCountMaxReturn"] < (int) $args["occasionsCount"]) { // Limit to max nn events if occasionsCountMaxReturn is set. // Used in gui to prevent top many events returned, that can stall the browser. $limit = "LIMIT " . (int) $args["occasionsCountMaxReturn"]; } else { // Regular limit that gets all occasions $limit = "LIMIT " . (int) $args["occasionsCount"]; } // [logRowID] => 353 // [occasionsID] => 73b06d5740d15e35079b6aa024255cb3 // [occasionsCount] => 18 } } // Determine limit // Both posts_per_page and paged must be set $is_limit_query = is_numeric($args["posts_per_page"]) && $args["posts_per_page"] > 0; $is_limit_query = $is_limit_query && (is_numeric($args["paged"]) && $args["paged"] > 0); if ($is_limit_query) { $limit_offset = ($args["paged"] - 1) * $args["posts_per_page"]; $limit .= sprintf('LIMIT %1$d, %2$d', $limit_offset, $args["posts_per_page"]); } // Determine where if ($args["post__in"] && is_array($args["post__in"])) { // make sure all vals are integers $args["post__in"] = array_map("intval", $args["post__in"]); $inner_where .= sprintf(' AND id IN (%1$s)', implode(",", $args["post__in"])); } // If max_id_first_page is then then only include rows // with id equal to or earlier if (isset($args["max_id_first_page"]) && is_numeric($args["max_id_first_page"])) { $max_id_first_page = (int) $args["max_id_first_page"]; $inner_where .= sprintf(' AND id <= %1$d', $max_id_first_page); } if (isset($args["since_id"]) && is_numeric($args["since_id"])) { $since_id = (int) $args["since_id"]; /* $where .= sprintf( ' AND t.id > %1$d', $since_id ); */ // Add where to inner because that's faster $inner_where .= sprintf(' AND id > %1$d', $since_id); } // Append date where if (!empty($args["date_from"])) { // date_to=2014-08-01 // if date is not numeric assume Y-m-d H:i-format $date_from = $args["date_from"]; if (!is_numeric($date_from)) { $date_from = strtotime($date_from); } $inner_where .= "\n" . sprintf(' AND date >= "%1$s"', esc_sql(date('Y-m-d H:i:s', $date_from))); } if (!empty($args["date_to"])) { // date_to=2014-08-01 // if date is not numeric assume Y-m-d H:i-format $date_to = $args["date_to"]; if (!is_numeric($date_to)) { $date_to = strtotime($date_to); } $inner_where .= "\n" . sprintf(' AND date <= "%1$s"', date('Y-m-d H:i:s', $date_from)); } // dats // if months they translate to $args["months"] because we already have support for that // can't use months and dates and the same time if (!empty($args["dates"])) { if (is_array($args["dates"])) { $arr_dates = $args["dates"]; } else { $arr_dates = explode(",", $args["dates"]); } $args["months"] = array(); $args["lastdays"] = 0; foreach ($arr_dates as $one_date) { // If begins with "month:" then strip string and keep only month numbers if (strpos($one_date, "month:") === 0) { $args["months"][] = substr($one_date, strlen("month:")); } else { if (strpos($one_date, "lastdays:") === 0) { // Only keep largest lastdays value $args["lastdays"] = max($args["lastdays"], substr($one_date, strlen("lastdays:"))); #$args["lastdays"][] = substr($one_date, strlen("lastdays:")); } } } } // lastdays, as int if (!empty($args["lastdays"])) { $inner_where .= sprintf(' # lastdays AND date >= DATE(NOW()) - INTERVAL %d DAY ', $args["lastdays"]); } // months, in format "Y-m" if (!empty($args["months"])) { if (is_array($args["months"])) { $arr_months = $args["months"]; } else { $arr_months = explode(",", $args["months"]); } $sql_months = ' # sql_months AND ( '; foreach ($arr_months as $one_month) { // beginning of month // $ php -r ' echo date("Y-m-d H:i", strtotime("2014-08") ) . "\n"; // >> 2014-08-01 00:00 $date_month_beginning = strtotime($one_month); // end of month // $ php -r ' echo date("Y-m-d H:i", strtotime("2014-08 + 1 month") ) . "\n";' // >> 2014-09-01 00:00 $date_month_end = strtotime("{$one_month} + 1 month"); $sql_months .= sprintf(' ( date >= "%1$s" AND date <= "%2$s" ) OR ', date('Y-m-d H:i:s', $date_month_beginning), date('Y-m-d H:i:s', $date_month_end)); } $sql_months = trim($sql_months); $sql_months = rtrim($sql_months, " OR "); $sql_months .= ' # end sql_months and wrap ) '; $inner_where .= $sql_months; // echo $inner_where;exit; } // search if (!empty($args["search"])) { $search_words = $args["search"]; $str_search_conditions = ""; $arr_search_words = preg_split("/[\\s,]+/", $search_words); // create array of all searched words // split both spaces and commas and such $arr_sql_like_cols = array("message", "logger", "level"); foreach ($arr_sql_like_cols as $one_col) { $str_sql_search_words = ""; foreach ($arr_search_words as $one_search_word) { if (method_exists($wpdb, "esc_like")) { $str_like = esc_sql($wpdb->esc_like($one_search_word)); } else { $str_like = esc_sql(like_escape($one_search_word)); } $str_sql_search_words .= sprintf(' AND %1$s LIKE "%2$s" ', $one_col, "%{$str_like}%"); } $str_sql_search_words = ltrim($str_sql_search_words, ' AND '); $str_search_conditions .= "\n" . sprintf(' OR ( %1$s ) ', $str_sql_search_words); } $str_search_conditions = preg_replace('/^OR /', " ", trim($str_search_conditions)); // also search contexts $str_search_conditions .= "\n OR ( "; foreach ($arr_search_words as $one_search_word) { if (method_exists($wpdb, "esc_like")) { $str_like = esc_sql($wpdb->esc_like($one_search_word)); } else { $str_like = esc_sql(like_escape($one_search_word)); } $str_search_conditions .= "\n" . sprintf(' id IN ( SELECT history_id FROM %1$s AS c WHERE c.value LIKE "%2$s" ) AND ', $table_name_contexts, "%" . $str_like . "%"); } $str_search_conditions = preg_replace('/ AND $/', "", $str_search_conditions); $str_search_conditions .= "\n ) "; // end or for contexts $inner_where .= "\n AND \n(\n {$str_search_conditions} \n ) "; #echo $inner_where;exit; } // log levels // comma separated // http://playground-root.ep/wp-admin/admin-ajax.php?action=simple_history_api&type=overview&format=&posts_per_page=10&paged=1&max_id_first_page=27273&SimpleHistoryLogQuery-showDebug=0&loglevel=error,warn if (!empty($args["loglevels"])) { $sql_loglevels = ""; if (is_array($args["loglevels"])) { $arr_loglevels = $args["loglevels"]; } else { $arr_loglevels = explode(",", $args["loglevels"]); } foreach ($arr_loglevels as $one_loglevel) { $sql_loglevels .= sprintf(' "%s", ', esc_sql($one_loglevel)); } if ($sql_loglevels) { $sql_loglevels = rtrim($sql_loglevels, " ,"); $sql_loglevels = "\n AND level IN ({$sql_loglevels}) "; } $inner_where .= $sql_loglevels; } // messages if (!empty($args["messages"])) { #print_r($args["messages"]);exit; /* Array ( [0] => SimpleCommentsLogger:anon_comment_added,SimpleCommentsLogger:user_comment_added,SimpleCommentsLogger:anon_trackback_added,SimpleCommentsLogger:user_trackback_added,SimpleCommentsLogger:anon_pingback_added,SimpleCommentsLogger:user_pingback_added,SimpleCommentsLogger:comment_edited,SimpleCommentsLogger:trackback_edited,SimpleCommentsLogger:pingback_edited,SimpleCommentsLogger:comment_status_approve,SimpleCommentsLogger:trackback_status_approve,SimpleCommentsLogger:pingback_status_approve,SimpleCommentsLogger:comment_status_hold,SimpleCommentsLogger:trackback_status_hold,SimpleCommentsLogger:pingback_status_hold,SimpleCommentsLogger:comment_status_spam,SimpleCommentsLogger:trackback_status_spam,SimpleCommentsLogger:pingback_status_spam,SimpleCommentsLogger:comment_status_trash,SimpleCommentsLogger:trackback_status_trash,SimpleCommentsLogger:pingback_status_trash,SimpleCommentsLogger:comment_untrashed,SimpleCommentsLogger:trackback_untrashed,SimpleCommentsLogger:pingback_untrashed,SimpleCommentsLogger:comment_deleted,SimpleCommentsLogger:trackback_deleted,SimpleCommentsLogger:pingback_deleted [1] => SimpleCommentsLogger:SimpleCommentsLogger:comment_status_spam,SimpleCommentsLogger:trackback_status_spam,SimpleCommentsLogger:pingback_status_spam ) */ // Array with loggers and messages $arr_loggers_and_messages = array(); // Tranform from get'et format to our own internal format foreach ((array) $args["messages"] as $one_arr_messages_row) { $arr_row_messages = explode(",", $one_arr_messages_row); #print_r($arr_row_messages);#exit; /* Array ( [0] => SimpleCommentsLogger:anon_comment_added [1] => SimpleCommentsLogger:user_comment_added [2] => SimpleCommentsLogger:anon_trackback_added */ foreach ($arr_row_messages as $one_row_logger_and_message) { $arr_one_logger_and_message = explode(":", $one_row_logger_and_message); if (!isset($arr_loggers_and_messages[$arr_one_logger_and_message[0]])) { $arr_loggers_and_messages[$arr_one_logger_and_message[0]] = array(); } $arr_loggers_and_messages[$arr_one_logger_and_message[0]][] = $arr_one_logger_and_message[1]; } } // Now create sql where based on loggers and messages $sql_messages_where = " AND ("; #print_r($arr_loggers_and_messages);exit; foreach ($arr_loggers_and_messages as $logger_slug => $logger_messages) { $sql_messages_where .= sprintf(' ( h.logger = "%1$s" AND c1.value IN (%2$s) ) OR ', esc_sql($logger_slug), "'" . implode("','", $logger_messages) . "'"); } // remove last or $sql_messages_where = preg_replace('/OR $/', "", $sql_messages_where); $sql_messages_where .= "\n )"; #echo $sql_messages_where;exit; $where .= $sql_messages_where; /* print_r($arr_loggers_and_messages);exit; Array ( [SimpleCommentsLogger] => Array ( [0] => anon_comment_added [1] => user_comment_added [2] => anon_trackback_added [3] => user_trackback_added [4] => anon_pingback_added [5] => user_pingback_added [6] => comment_edited [7] => trackback_edited [8] => pingback_edited [9] => comment_status_approve [10] => trackback_status_approve [11] => pingback_status_approve [12] => comment_status_hold [13] => trackback_status_hold [14] => pingback_status_hold [15] => comment_status_spam [16] => trackback_status_spam [17] => pingback_status_spam [18] => comment_status_trash [19] => trackback_status_trash [20] => pingback_status_trash [21] => comment_untrashed [22] => trackback_untrashed [23] => pingback_untrashed [24] => comment_deleted [25] => trackback_deleted [26] => pingback_deleted ) [SimpleUserLogger] => Array ( [0] => SimpleUserLogger [1] => SimpleUserLogger ) ) */ } // loggers // comma separated // http://playground-root.ep/wp-admin/admin-ajax.php?action=simple_history_api&type=overview&format=&posts_per_page=10&paged=1&max_id_first_page=27273&SimpleHistoryLogQuery-showDebug=0&loggers=SimpleCommentsLogger,SimpleCoreUpdatesLogger if (!empty($args["loggers"])) { $sql_loggers = ""; if (is_array($args["loggers"])) { $arr_loggers = $args["loggers"]; } else { $arr_loggers = explode(",", $args["loggers"]); } #print_r($args["loggers"]);exit; #print_r($arr_loggers);exit; /* Example of version with logger + message keys Array ( [0] => SimpleUserLogger:user_created [1] => SimpleUserLogger:user_deleted ) */ foreach ($arr_loggers as $one_logger) { $sql_loggers .= sprintf(' "%s", ', esc_sql($one_logger)); } if ($sql_loggers) { $sql_loggers = rtrim($sql_loggers, " ,"); $sql_loggers = "\n AND logger IN ({$sql_loggers}) "; } $inner_where .= $sql_loggers; } // user, a single userID if (!empty($args["user"]) && is_numeric($args["user"])) { $userID = (int) $args["user"]; $sql_user = sprintf(' AND id IN ( SELECT history_id FROM %1$s AS c WHERE c.key = "_user_id" AND c.value = %2$s ) ', $table_name_contexts, $userID); $inner_where .= $sql_user; } // users, comma separated if (!empty($args["users"]) && is_string($args["users"])) { $users = explode(",", $args["users"]); $users = array_map("intval", $users); if ($users) { $users_in = implode(",", $users); $sql_user = sprintf(' AND id IN ( SELECT history_id FROM %1$s AS c WHERE c.key = "_user_id" AND c.value IN (%2$s) ) ', $table_name_contexts, $users_in); $inner_where .= $sql_user; #echo $inner_where;exit; } } /** * Filter the sql template * * @since 2.0 * * @param string $sql_tmpl */ $sql_tmpl = apply_filters("simple_history/log_query_sql_template", $sql_tmpl); /** * Filter the sql template where clause * * @since 2.0 * * @param string $where */ $where = apply_filters("simple_history/log_query_sql_where", $where); /** * Filter the sql template limit * * @since 2.0 * * @param string $limit */ $limit = apply_filters("simple_history/log_query_limit", $limit); /** * Filter the sql template limit * * @since 2.0 * * @param string $limit */ $inner_where = apply_filters("simple_history/log_query_inner_where", $inner_where); $sql = sprintf($sql_tmpl, $where, $limit, $table_name, $inner_where, $table_name_contexts); /** * Filter the final sql query * * @since 2.0 * * @param string $sql */ $sql = apply_filters("simple_history/log_query_sql", $sql); // Remove comments below to debug query (includes query in json result) // $include_query_in_result = true; if (isset($_GET["SimpleHistoryLogQuery-showDebug"]) && $_GET["SimpleHistoryLogQuery-showDebug"]) { echo "<pre>"; echo $sql_set_var; echo $sql; exit; } // Only return sql query if ($args["returnQuery"]) { return $sql; } $log_rows = $wpdb->get_results($sql, OBJECT_K); $num_rows = sizeof($log_rows); // Find total number of rows that we would have gotten without pagination // This is the number of rows with occasions taken into consideration $sql_found_rows = 'SELECT FOUND_ROWS()'; $total_found_rows = (int) $wpdb->get_var($sql_found_rows); // Add context $post_ids = wp_list_pluck($log_rows, "id"); if (empty($post_ids)) { $context_results = array(); } else { $sql_context = sprintf('SELECT * FROM %2$s WHERE history_id IN (%1$s)', join(",", $post_ids), $table_name_contexts); $context_results = $wpdb->get_results($sql_context); } foreach ($context_results as $context_row) { if (!isset($log_rows[$context_row->history_id]->context)) { $log_rows[$context_row->history_id]->context = array(); } $log_rows[$context_row->history_id]->context[$context_row->key] = $context_row->value; } // Remove id from keys, because they are cumbersome when working with JSON $log_rows = array_values($log_rows); $min_id = null; $max_id = null; if (sizeof($log_rows)) { // Max id is simply the id of the first row $max_id = reset($log_rows)->id; // Min id = to find the lowest id we must take occasions into consideration $last_row = end($log_rows); $last_row_occasions_count = (int) $last_row->subsequentOccasions - 1; if ($last_row_occasions_count === 0) { // Last row did not have any more occasions, so get min_id directly from the row $min_id = $last_row->id; } else { // Last row did have occaions, so fetch all occasions, and find id of last one $db_table = $wpdb->prefix . SimpleHistory::DBTABLE; $sql = sprintf(' SELECT id, date, occasionsID FROM %1$s WHERE id <= %2$s ORDER BY id DESC LIMIT %3$s ', $db_table, $last_row->id, $last_row_occasions_count + 1); $results = $wpdb->get_results($sql); // the last occasion has the id we consider last in this paged result $min_id = end($results)->id; } } // Calc pages if ($args["posts_per_page"]) { $pages_count = Ceil($total_found_rows / (int) $args["posts_per_page"]); } else { $pages_count = 1; } // Create array to return // Make all rows a sub key because we want to add some meta info too $log_rows_count = sizeof($log_rows); $page_rows_from = (int) $args["paged"] * (int) $args["posts_per_page"] - (int) $args["posts_per_page"] + 1; $page_rows_to = $page_rows_from + $log_rows_count - 1; $arr_return = array("total_row_count" => $total_found_rows, "pages_count" => $pages_count, "page_current" => (int) $args["paged"], "page_rows_from" => $page_rows_from, "page_rows_to" => $page_rows_to, "max_id" => (int) $max_id, "min_id" => (int) $min_id, "log_rows_count" => $log_rows_count, "log_rows" => $log_rows); #sf_d($arr_return, '$arr_return');exit; wp_cache_set($cache_key, $arr_return, $cache_group); return $arr_return; }
function getTableCS($c, $query, $name, $type, $num_rows, $compania, $pag, $limite) { $resp = mysql_query($query); // Consulta SQL if (!$resp) { // Checa consulta echo "erro na consulta {$query}"; echo mysql_error(); mysql_close($c); die; } $tot_pag = Ceil($num_rows / $limite); // Ceil arredonda o resultado para cima $inicio = $pag * $limite - $limite; $line = mysql_fetch_assoc($resp); if (!$line) { $resposta = false; } else { $keys = array_keys($line); // Pega um array com o nome(key) das colunas que referenciam os campos da tupla pegada em $line $length = count($keys); // Pega o número de elementos do array $keys $resposta = "<div class='CSSTableGenerator' style='width: 95%'>\n\t\t\t<table>\n\t\t\t<tr>\n\t\t\t\t<td colspan='" . $length . "'><center>{$name}</td>\n\t\t\t</tr>"; $resposta .= "<tr>"; for ($i = 1; $i < $length; $i++) { $colName = $keys[$i]; $resposta .= "<td style='background-color: #193a73'><center><big><big><b><font color='white'>{$colName}</td>"; } $resposta .= "</tr>"; while ($line) { // Põe linhas da tabela // Neste for() eu ponho os campos de cada coluna, porém, para acessar os valores dentro // do array $line eu preciso do nome(key) que o referencia ($line[key]), // e não de um número. Este nome é o nome da coluna em que ele está, na qual obtenho do array $keys. $id = $line['id']; $resposta .= "<tr>"; for ($i = 1; $i < $length; $i++) { // Põe nomes das colunas da tabela $informacao = $line[$keys[$i]]; if ($type == 0) { $resposta .= "<td><center><big><big><font>{$informacao}</td>"; } else { if ($type == 1 && $i == 1) { $resposta .= "<td><a href='student_search.php?id={$id}'><div class='fonte'>{$informacao}</div></a></td>"; } else { if ($type == 2 && $i == 1) { $resposta .= "<td><a href='company_search.php?id={$id}'><div class='fonte'>{$informacao}</div></a></td>"; } else { $resposta .= "<td><center><div class='fonte'>{$informacao}</div></td>"; } } } } $resposta .= "</tr>"; $line = mysql_fetch_assoc($resp); } $resposta .= "</table>"; $resposta .= "</div><div class='paginacao'>"; for ($i = 1; $i <= $tot_pag; $i++) { if ($pag == $i) { $resposta .= "| {$i} |"; } else { $resposta .= "<a href='company_search.php?company={$compania}&pag={$i}'> | {$i} | </a>"; } } $resposta .= "</div>"; } return $resposta; }
function GetPageNumbers($entries) { global $config; global $link; $prev = "«Trở lại"; $next = "Tiếp»"; $config['totalPages'] = Ceil($entries / ($config['cols'] * $config['rows'])); $start = 0; $end = $config['totalPages'] - 1; echo " Trang: "; if ($config['maxShow'] < $config['page'] || $config['cols'] * $config['rows'] * $config['maxShow'] < $entries) { if ($config['page'] >= $config['maxShow'] + 1 && $config['page'] < $end - $config['maxShow']) { $start = $config['page'] - $config['maxShow']; } elseif ($end < $config['page'] + $config['maxShow'] + 1 && $config['totalPages'] - 1 >= $config['maxShow'] * 2 + 1) { $start = $config['totalPages'] - 1 - $config['maxShow'] * 2; } else { $start = 0; } if ($config['page'] + $config['maxShow'] + 1 > $config['totalPages'] - 1) { $end = $entries / ($config['cols'] * $config['rows']); } elseif ($start == 0 && $end > $config['maxShow'] * 2) { $end = $config['maxShow'] * 2; } elseif ($start == 0 && $config['totalPages'] <= $config['maxShow'] * 2) { $end = $config['totalPages'] - 1; } else { $end = $config['page'] + $config['maxShow']; } } if ($start > 0) { echo " ... "; } else { echo ""; } for ($i = $start; $i <= $end; $i++) { if ($config['page'] == $i) { echo "[" . ($i + 1) . "] \n"; } else { echo "<a href=\"{$link}&page={$i}\">" . ($i + 1) . "</a>\n"; } } if (Ceil($end) < $config['totalPages'] - 1) { echo " ... "; } else { echo ""; } }
return ERROR | @Trigger_Error(500); case 'exception': return ERROR | @Trigger_Error(400); case 'false': return ERROR | @Trigger_Error(700); case 'true': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # реализация JBS-965 - запрещаем писать в старые тикеты юзерам if ($Settings['EdeskOldDays'] && !$__USER['IsAdmin'] && !isset($GLOBALS['IsCron'])) { if ($Ticket['StatusDate'] < Time() - IntVal($Settings['EdeskOldDays']) * 24 * 3600) { return new gException('EDESK_TOO_OLD', SPrintF('Вы пишете в слишком старый тикет (%u дн.), скопируйте ваше сообщение и создайте новый тикет', Ceil(Time() - $Ticket['StatusDate']) / (24 * 3600))); } } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if ($Flags == "No" && !$Message) { return new gException('MESSAGE_IS_EMPTY', 'Введите сообщение'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if ($Ticket['UserID'] == $__USER['ID'] && $Ticket['Flags'] == "DenyAddMessage") { return new gException('DENY_ADD_MESSAGE', 'Тема содержит очень большое количество сообщений. У сотрудников технической поддержки возникают затруднения с перечитыванием истории переписки. Пожалуйста, опишите вашу проблему и создайте новый запрос.'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # реализация JBS-1093 - ограничение на максимальное число сообщений в тикете
$NewPriceReg = $Prices[$Key]['new'] + $Settings['DomainMinMarginSumm']; } #------------------------------------------------------------------------------- # округляем в большую сторону до 10 рублей $NewPriceReg = Ceil($NewPriceReg / 10) * 10; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # считаем цену продления $NewPriceProlong = $Prices[$Key]['renew'] * (100 + IntVal($Settings['DomainMinMarginPercent'])) / 100; #------------------------------------------------------------------------------- if ($NewPriceProlong - $Prices[$Key]['renew'] < $Settings['DomainMinMarginSumm']) { $NewPriceProlong = $Prices[$Key]['renew'] + $Settings['DomainMinMarginSumm']; } #------------------------------------------------------------------------------- # округляем в большую сторону до 10 рублей $NewPriceProlong = Ceil($NewPriceProlong / 10) * 10; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # на перенос выставляем максимальную из цен - регистрация/перенос $NewPriceTransfer = $NewPriceReg; #------------------------------------------------------------------------------- if ($NewPriceProlong > $NewPriceReg) { $NewPriceTransfer = $NewPriceProlong; } #------------------------------------------------------------------------------- $NewPriceTransfer = In_Array($Key, array('ru', 'su', 'рф')) ? 0 : $NewPriceTransfer; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # проверяем наличие такого тарифа в биллинге if (In_Array($Key, Array_Keys($Schemes))) { #-------------------------------------------------------------------------------
$tab_ele=array(); if(mysqli_num_rows($res_ele)>0) { $cpt=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $tab_ele[$cpt]=array(); $tab_ele[$cpt]['login']=$lig_ele->login; $tab_ele[$cpt]['elenoet']=$lig_ele->elenoet; $tab_ele[$cpt]['nom']=$lig_ele->nom; $tab_ele[$cpt]['prenom']=$lig_ele->prenom; $cpt++; } $classe=get_class_from_id($id_classe[$i]); $nb_pages=Ceil($cpt/$nb_cell); //echo "\$nb_pages=$nb_pages<br />"; $cpt=0; for($j=0;$j<$nb_pages;$j++) { $pdf->AddPage("P"); $pdf->SetXY($x0,$y0); $bordure='LRBT'; //$bordure=''; $pdf->SetFont('DejaVu','B',$fonte_size_classe); $texte="Classe de $classe"; $pdf->Cell($largeur_utile_page,$hauteur_classe,$texte,$bordure,1,'C'); $pdf->SetFont('DejaVu','',$fonte_size);
mysql_select_db($db_name, $cn) or die("Could not select database"); //Получаем массив параметров $id_theme = $_POST["id_theme"]; $tpls_count = $_POST["tpls_count"]; //Получаем название тематики шаблонов $result = mysql_query("SELECT `id`, `name` FROM `themes` WHERE `id` = {$id_theme}"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $theme_name = $row["name"]; } mysql_free_result($result); if (trim($tpls_count) == '' && !is_numeric($tpls_count)) { mysql_close($cn); header("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); exit; } $tpls_count = Abs(Ceil($tpls_count)); $W_H = get_baner_sizes($id_theme); for ($i = 0; $i < $tpls_count; $i++) { //запуск генерации шаблона $tpl = generate_tpl($W_H); $tpl_content = $tpl['content']; $tpl_style = $tpl['style']; $tpl_name = $theme_name . $i; //Добавляем шаблон в базу $result = mysql_query("INSERT INTO `dor_tpls` (`name`, `tpl_status`, `id_theme`) VALUES ('{$tpl_name}', 'blocked', '{$id_theme}')"); if (!$result) { echo "Ошибка вставки данных в базу" . mysql_error(); exit; } //Получаем id вставленной записи $result = mysql_query("SELECT LAST_INSERT_ID()");
function IspManager4_Scheme_Change($Settings, $Login, $HostingScheme) { /****************************************************************************/ $__args_types = array('array', 'string', 'array'); #----------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /****************************************************************************/ $authinfo = SPrintF('%s:%s', $Settings['Login'], $Settings['Password']); #----------------------------------------------------------------------------- $HTTP = IspManager4_Build_HTTP($Settings); #----------------------------------------------------------------------------- $IsReselling = $HostingScheme['IsReselling']; #----------------------------------------------------------------------------- $Request = array('authinfo' => $authinfo, 'out' => 'xml', 'func' => $IsReselling ? 'reseller.edit' : 'user.edit', 'elid' => $Login, 'sok' => 'yes', 'name' => $Login, 'ip' => $IsReselling ? 'noassign' : $Settings['Params']['IP'], 'preset' => $HostingScheme['PackageID'], 'disklimit' => $HostingScheme['QuotaDisk'], 'ftplimit' => $HostingScheme['QuotaFTP'], 'maillimit' => $HostingScheme['QuotaEmail'], 'domainlimit' => $HostingScheme['QuotaDomains'], 'webdomainlimit' => $HostingScheme['QuotaWWWDomains'], 'maildomainlimit' => $HostingScheme['QuotaEmailDomains'], 'baselimit' => $HostingScheme['QuotaDBs'], 'baseuserlimit' => $HostingScheme['QuotaUsersDBs'], 'bandwidthlimit' => $HostingScheme['QuotaTraffic'], 'email' => $HostingScheme['Email'], 'shell' => $HostingScheme['IsShellAccess'] ? 'on' : 'off', 'ssl' => $HostingScheme['IsSSLAccess'] ? 'on' : 'off', 'cgi' => $HostingScheme['IsCGIAccess'] ? 'on' : 'off', 'ssi' => $HostingScheme['IsSSIAccess'] ? 'on' : 'off', 'phpmod' => $HostingScheme['IsPHPModAccess'] ? 'on' : 'off', 'phpcgi' => $HostingScheme['IsPHPCGIAccess'] ? 'on' : 'off', 'phpfcgi' => $HostingScheme['IsPHPFastCGIAccess'] ? 'on' : 'off', 'safemode' => $HostingScheme['IsPHPSafeMode'] ? 'on' : 'off', 'cpulimit' => $HostingScheme['MaxExecutionTime'], 'memlimit' => Ceil($HostingScheme['QuotaMEM']), 'proclimit' => $HostingScheme['QuotaPROC'], 'maxclientsvhost' => $HostingScheme['QuotaMPMworkers'], 'mysqlquerieslimit' => $HostingScheme['mysqlquerieslimit'], 'mysqlupdateslimit' => $HostingScheme['mysqlupdateslimit'], 'mysqlconnectlimit' => $HostingScheme['mysqlconnectlimit'], 'mysqluserconnectlimit' => $HostingScheme['mysqluserconnectlimit'], 'mailrate' => $HostingScheme['mailrate']); #----------------------------------------------------------------------------- if (!$IsReselling) { $Request['owner'] = $Settings['Login']; } else { $Request['userlimit'] = $HostingScheme['QuotaUsers']; } # Пользователи #----------------------------------------------------------------------------- $Response = HTTP_Send('/manager/ispmgr', $HTTP, array(), $Request); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[IspManager4_Scheme_Change]: не удалось соедениться с сервером'); } #----------------------------------------------------------------------------- $Response = Trim($Response['Body']); #----------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #----------------------------------------------------------------------------- $XML = $XML->ToArray(); #----------------------------------------------------------------------------- $Doc = $XML['doc']; #----------------------------------------------------------------------------- if (isset($Doc['error'])) { return new gException('SCHEME_CHANGE_ERROR', 'Не удалось изменить тарифный план для заказа хостинга'); } #----------------------------------------------------------------------------- if (!$Settings['Params']['NoRestartSchemeChange']) { $Request = array('authinfo' => SPrintF('%s:%s', $Settings['Login'], $Settings['Password']), 'out' => 'xml', 'func' => 'restart'); #----------------------------------------------------------------------------- $Response = HTTP_Send('/manager/ispmgr', $HTTP, array(), $Request); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[IspManager4_Scheme_Change]: не удалось соедениться с сервером'); } } #----------------------------------------------------------------------------- return TRUE; }
public function month_stats_overall() { if (!isset($this->rknclass->get['month']) || !ctype_digit($this->rknclass->get['month']) || !isset($this->rknclass->get['year']) || !isset($this->rknclass->get['year'])) { exit($this->rknclass->global_tpl->admin_error('Invalid data')); } $stats_file = RKN__fullpath . 'statsdata/' . $this->rknclass->get['year'] . '/' . $this->rknclass->get['month'] . '/month.sqlite'; $conn = @sqlite_open($stats_file); if (!$conn) { exit($this->rknclass->global_tpl->admin_error('The stats file is corrupt.')); } $time = strtotime($this->rknclass->get['month'] . '/13/' . $this->rknclass->get['year']); $month = date('F', $time); $page_title = "Statistics for {$month} {$this->rknclass->get['year']}"; $this->rknclass->page_title = $page_title; $this->rknclass->global_tpl->admin_header(); $this->rknclass->settings['trade_type'] === 'credits' ? $type = 'Credits' : ($type = 'Ratio'); echo "<div class=\"page-title\">{$page_title}</div>"; echo "<table id=\"listings\" cellpadding=\"1\" cellspacing=\"1\">\n <tr id=\"columns\">\n <th scope=\"col\" id=\"title\">Site Url</th>\n <th scope=\"col\">Unique In</th>\n <th scope=\"col\">Unique Out</th>\n <th scope=\"col\">Raw In</th>\n <th scope=\"col\">Raw Out</th>\n <th scope=\"col\">Unique<br />{$type}</th>\n <th scope=\"col\">Plug Prod.</th>\n <th scope=\"col\">Ad Prod.</th>\n <th scope=\"col\">Top Country</th>\n <th scope=\"col\">Apr</th>\n <th scope=\"col\">Edit</th>\n <th scope=\"col\">Del</th>\n </tr>"; $result = sqlite_query($conn, "SELECT *, (u_total_in - u_total_out) AS credits FROM stats ORDER BY u_total_in DESC"); while ($row = sqlite_fetch_array($result)) { $url_clean = $this->rknclass->db->escape($row['url']); $this->rknclass->db->query("SELECT approved, owner FROM " . TBLPRE . "sites WHERE url = '{$url_clean}'"); if ($this->rknclass->db->num_rows() == 0) { continue; } else { $row2 = $this->rknclass->db->fetch_array(); if ($row2['owner'] < 1) { continue; } $row['approved'] = $row2['approved']; } $ratio = $this->rknclass->utils->get_trade_by_in_out($row['u_total_in'], $row['u_total_out']); if ($this->rknclass->utils->trade_check($row['u_total_in'], $row['u_total_out']) === false) { $ratio = "<font color=\"#e32c00\">{$ratio}" . ($this->rknclass->settings['trade_type'] === 'ratio' ? " %" : "") . "</font>"; } else { $ratio = "<font color=\"#136f01\">{$ratio}" . ($this->rknclass->settings['trade_type'] === 'ratio' ? " %" : "") . "</font>"; } if (strlen($row['url']) >= 20) { $url = substr($row['url'], 0, 17) . '...'; } else { $url = $row['url']; } $perc = @Ceil($row['plug_prod'] / $row['u_total_in'] * 100); if ($perc > 70) { $color = 'green'; } elseif ($perc > 50) { $color = 'orange'; } elseif ($perc > 25) { $color = 'red'; } else { $color = 'purple'; } $pprod = "<strong><font color=\"{$color}\">{$perc} %</font></strong>"; $perc = @Ceil($row['ad_prod'] / $row['u_todays_in'] * 100); if ($perc > 70) { $color = 'green'; } elseif ($perc > 50) { $color = 'orange'; } elseif ($perc > 25) { $color = 'red'; } else { $color = 'purple'; } $bprod = "<strong><font color=\"{$color}\">{$perc} %</font></strong>"; $this->rknclass->db->query("SELECT site_id FROM " . TBLPRE . "sites WHERE url = '{$url_clean}' LIMIT 1"); $row['site_id'] = $this->rknclass->db->result(); $result2 = sqlite_query($conn, "SELECT country_code FROM country_stats WHERE url = '{$url_clean}' ORDER BY uhits DESC LIMIT 1"); if (sqlite_num_rows($result2) == 1) { $row3 = sqlite_fetch_array($result2); if ($row3['country_code'] !== '--') { $this->rknclass->db->query("SELECT country_name FROM " . TBLPRE . "countries WHERE country_code = '{$row3['country_code']}' LIMIT 1"); $country_name = $this->rknclass->db->result(); } else { $country_name = 'Unknown'; } $top_country = "<a href=\"index.php?ctr=management&act=country_stats_month&month={$this->rknclass->get['month']}&year={$this->rknclass->get['year']}&id={$row['site_id']}\"><img src=\"{$this->rknclass->settings['site_url']}/flags/{$row3['country_code']}.gif\" alt=\"{$country_name}\" title=\"{$country_name}\" width=\"30\" height=\"18\" border=\"0\"/></a>"; } else { $top_country = 'N/A'; } echo "\n<tr id=\"rows\">\n <td id=\"title\"><a href=\"http://{$row['url']}\" target=\"_blank\" title=\"{$row['name']}\">{$url}</a></td>\n <td>{$row['u_total_in']}</td>\n <td>{$row['u_total_out']}</td>\n <td>{$row['r_total_in']}</td>\n <td>{$row['r_total_out']}</td>\n <td><strong>{$ratio}</strong></td>\n <td>{$pprod}</td>\n <td>{$bprod}</td>\n <td>{$top_country}</td>\n <td><strong>" . ($row['approved'] == '0' ? "<font color=\"#e32c00\">No" : "<font color=\"#136f01\">Yes") . "</font></strong></td>\n <td><a href=\"{$this->rknclass->settings['site_url']}/" . RKN__adminpath . "/index.php?ctr=management&act=edit_site&id={$row['site_id']}\"><img src=\"images/pencil.jpg\" border=\"0\" /></a></td>\n <td><a href=\"{$this->rknclass->settings['site_url']}/" . RKN__adminpath . "/index.php?ctr=management_update&act=del_site&id={$row['site_id']}\" onclick=\"return confirm('Are you sure you want to delete this site?');\"><img src=\"images/delete.jpg\" border=\"0\" /></a></td>\n </tr>"; } echo "\n</table>"; sqlite_close($conn); $this->rknclass->global_tpl->admin_footer(); }
function VmManager5_KVM_Scheme_Change($Settings, $VPSOrder, $VPSScheme) { /******************************************************************************/ $__args_types = array('array', 'array', 'array'); #------------------------------------------------------------------------------- $__args__ = Func_Get_Args(); eval(FUNCTION_INIT); /******************************************************************************/ $authinfo = SPrintF('%s:%s', $Settings['Login'], $Settings['Password']); #------------------------------------------------------------------------------- $HTTP = VmManager5_KVM_Build_HTTP($Settings); #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # достаём всех пользователей, перебираем и ищем нужного $Response = HTTP_Send('/vmmgr', $HTTP, array(), array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'user')); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[VmManager5_KVM_Scheme_Change]: не удалось соедениться с сервером'); } #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray('elem'); #------------------------------------------------------------------------------- $Doc = $XML['doc']; if (isset($Doc['error'])) { return new gException('VmManager5_KVM_Scheme_Change', 'Не удалось получить список пользователей'); } #------------------------------------------------------------------------------- foreach ($Doc as $User) { #------------------------------------------------------------------------------- if (!isset($User['id'])) { continue; } #------------------------------------------------------------------------------- if (!isset($User['name'])) { continue; } #------------------------------------------------------------------------------- if ($User['name'] == $VPSOrder['Login']) { $UserID = $User['id']; } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- if (!isset($UserID)) { return new gException('VmManager5_KVM_Scheme_Change', SPrintF('Не удалось найти полльзователя "%s"', $VPSOrder['Login'])); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # меняем параметры пользователя # создаём юзера $Request = array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'user.edit', 'sok' => 'ok', 'allowcreatevm' => 'off', 'snapshot_limit' => $VPSScheme['snapshot_limit'], 'isolimitsize' => $VPSScheme['isolimitsize'], 'isolimitnum' => $VPSScheme['isolimitnum'], 'name' => $VPSOrder['Login'], 'passwd' => $VPSOrder['Password'], 'confirm' => $VPSOrder['Password'], 'elid' => $UserID); #------------------------------------------------------------------------------- $Response = HTTP_Send('/vmmgr', $HTTP, array(), $Request); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[VmManager5_KVM_Scheme_Change]: не удалось соедениться с сервером'); } #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray(); #------------------------------------------------------------------------------- $Doc = $XML['doc']; #------------------------------------------------------------------------------- if (isset($Doc['error'])) { return new gException('USER_CHANGE_ERROR', 'Не удалось изменить пользователя'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Response = HTTP_Send('/vmmgr', $HTTP, array(), array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'vm', 'su' => $VPSOrder['Login'])); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[VmManager5_KVM_Scheme_Change]: не удалось соедениться с сервером'); } #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray('elem'); #------------------------------------------------------------------------------- $Doc = $XML['doc']; if (isset($Doc['error'])) { return new gException('VmManager5_KVM_Scheme_Change', 'Не удалось получить список виртуальных машин'); } #------------------------------------------------------------------------------- foreach ($Doc as $VM) { #------------------------------------------------------------------------------- #Debug(SPrintF('[system/libs/VmManager5_KVM]: VM = %s',print_r($VM,true))); if (!isset($VM['id'])) { continue; } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- $Request = array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'vm.edit', 'sok' => 'ok', 'blkiotune' => $VPSScheme['blkiotune'], 'cputune' => Ceil($VPSScheme['cpu']), 'inbound' => SPrintF('%u', $VPSScheme['chrate'] * 1024), 'outbound' => SPrintF('%u', $VPSScheme['chrate'] * 1024), 'mem' => Ceil($VPSScheme['mem']), 'name' => $VPSOrder['Login'], 'vcpu' => $VPSScheme['ncpu'], 'elid' => $VM['id']); #------------------------------------------------------------------------------- $Response = HTTP_Send('/vmmgr', $HTTP, array(), $Request); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[VmManager5_KVM_Scheme_Change]: не удалось соедениться с сервером'); } #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray(); #------------------------------------------------------------------------------- $Doc = $XML['doc']; #------------------------------------------------------------------------------- if (isset($Doc['error'])) { return new gException('SCHEME_CHANGE_ERROR', 'Не удалось изменить тарифный план для заказа VPS'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # меняем размер диска, достаём список дисков у машины $Response = HTTP_Send('/vmmgr', $HTTP, array(), array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'vm.volume', 'elid' => $VM['id'])); if (Is_Error($Response)) { return ERROR | @Trigger_Error('[VmManager5_KVM_Scheme_Change]: не удалось соедениться с сервером'); } #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray('elem'); #------------------------------------------------------------------------------- $Doc = $XML['doc']; if (isset($Doc['error'])) { return new gException('VmManager5_KVM_Scheme_Change', 'Не удалось получить список дисков виртуальных машин'); } #------------------------------------------------------------------------------- foreach ($Doc as $Volume) { #------------------------------------------------------------------------------- if (!isset($Volume['id'])) { continue; } #------------------------------------------------------------------------------- if (!isset($Volume['type']) || $Volume['type'] != 'vdisk') { continue; } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # останавливаем машину $Response = HTTP_Send('/vmmgr', $HTTP, array(), array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'vm.stop', 'elid' => $VM['id'], 'sok' => 'ok')); #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray(); #------------------------------------------------------------------------------- $Doc = $XML['doc']; #------------------------------------------------------------------------------- if (isset($Doc['error'])) { return new gException('VM_STOP_ERROR', 'Не удалось остановить виртуальную машину, для изменения размера диска'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # меняем размер диска $Response = HTTP_Send('/vmmgr', $HTTP, array(), array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'vm.volume.edit', 'size' => $VPSScheme['disklimit'], 'elid' => $Volume['id'], 'plid' => $VM['id'], 'sok' => 'ok')); #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray(); #------------------------------------------------------------------------------- $Doc = $XML['doc']; #------------------------------------------------------------------------------- if (isset($Doc['error'])) { return new gException('DISK_SIZE_CHANGE_ERROR', 'Не удалось изменить размер диска для заказа VPS'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # запускаем машину $Response = HTTP_Send('/vmmgr', $HTTP, array(), array('authinfo' => $authinfo, 'out' => 'xml', 'func' => 'vm.start', 'elid' => $VM['id'], 'sok' => 'ok')); #------------------------------------------------------------------------------- $Response = Trim($Response['Body']); #------------------------------------------------------------------------------- $XML = String_XML_Parse($Response); if (Is_Exception($XML)) { return new gException('WRONG_SERVER_ANSWER', $Response, $XML); } #------------------------------------------------------------------------------- $XML = $XML->ToArray(); #------------------------------------------------------------------------------- $Doc = $XML['doc']; #------------------------------------------------------------------------------- if (isset($Doc['error'])) { return new gException('DISK_SIZE_CHANGE_ERROR', 'Не удалось изменить размер диска для заказа VPS'); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- return TRUE; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- }
public function parse($stadtraetIn_id) { $stadtraetIn_id = IntVal($stadtraetIn_id); if (SITE_CALL_MODE != "cron") { echo "- StadträtIn {$stadtraetIn_id}\n"; } $html_details = RISTools::load_file("http://www.ris-muenchen.de/RII/RII/ris_mitglieder_detail_fraktion.jsp?risid={$stadtraetIn_id}"); $daten = new StadtraetIn(); $daten->id = $stadtraetIn_id; $daten->referentIn = 0; if (preg_match("/introheadline\">(.*)<\\/h3/siU", $html_details, $matches)) { $daten->name = trim(str_replace(" ", " ", $matches[1])); } if (preg_match("/Gewählt am:.*detail_div\">([0-9\\.]+)<\\/div/siU", $html_details, $matches)) { $x = explode(".", $matches[1]); $daten->gewaehlt_am = $x[2] . "-" . $x[1] . "-" . $x[0]; } if (preg_match("/Lebenslauf.*detail_div\">(.*)<\\/di/siU", $html_details, $matches)) { $daten->bio = str_replace("<br />", "", $matches[1]); } $aenderungen = ""; /** @var StadtraetIn $alter_eintrag */ $alter_eintrag = StadtraetIn::model()->findByPk($stadtraetIn_id); $changed = true; if ($alter_eintrag) { $changed = false; if ($alter_eintrag->name != $daten->name) { $aenderungen .= "Name: " . $alter_eintrag->name . " => " . $daten->name . "\n"; } if ($alter_eintrag->gewaehlt_am != $daten->gewaehlt_am) { $aenderungen .= "Gewählt am: " . $alter_eintrag->gewaehlt_am . " => " . $daten->gewaehlt_am . "\n"; } if ($alter_eintrag->bio != $daten->bio) { $aenderungen .= "Biografie: " . $alter_eintrag->bio . " => " . $daten->bio . "\n"; } if ($aenderungen != "") { $changed = true; } $daten->web = $alter_eintrag->web; $daten->twitter = $alter_eintrag->twitter; $daten->facebook = $alter_eintrag->facebook; $daten->abgeordnetenwatch = $alter_eintrag->abgeordnetenwatch; $daten->quellen = $alter_eintrag->quellen; $daten->geburtstag = $alter_eintrag->geburtstag; $daten->geschlecht = $alter_eintrag->geschlecht; $daten->beschreibung = $alter_eintrag->beschreibung; $daten->beruf = $alter_eintrag->beruf; $daten->kontaktdaten = $alter_eintrag->kontaktdaten; } if ($changed) { if ($aenderungen == "") { $aenderungen = "Neu angelegt\n"; } } if ($alter_eintrag) { $alter_eintrag->setAttributes($daten->getAttributes(), false); if (!$alter_eintrag->save()) { echo "StadträtInnen 1\n"; var_dump($alter_eintrag->getErrors()); die("Fehler"); } $daten = $alter_eintrag; } else { if (!$daten->save()) { echo "StadträtInnen 2\n"; var_dump($daten->getErrors()); die("Fehler"); } } $unten = explode("Tabellarische Übersicht der Zugehörigkei", $html_details); $unten = $unten[1]; preg_match_all("/ris_fraktionen_detail\\.jsp\\?risid=(?<fraktion_id>[0-9]+)&periodeid=(?<wahlperiode>[0-9]+)[\"'& ].*tdborder\">(?<mitgliedschaft>[^<]*)<\\/td>.*Funktion[^>]*>(?<funktion>[^<]*) *<.*<\\/tr/siU", $unten, $matches); for ($i = 0; $i < count($matches[1]); $i++) { $str_fraktion = new StadtraetInFraktion(); if (preg_match("/^von (?<von_tag>[0-9]+)\\.(?<von_monat>[0-9]+)\\.(?<von_jahr>[0-9]+) bis (?<bis_tag>[0-9]+)\\.(?<bis_monat>[0-9]+)\\.(?<bis_jahr>[0-9]+)\$/", $matches[3][$i], $mitgliedschaft_matches)) { $str_fraktion->datum_von = $mitgliedschaft_matches["von_jahr"] . "-" . $mitgliedschaft_matches["von_monat"] . "-" . $mitgliedschaft_matches["von_tag"]; $str_fraktion->datum_bis = $mitgliedschaft_matches["bis_jahr"] . "-" . $mitgliedschaft_matches["bis_monat"] . "-" . $mitgliedschaft_matches["bis_tag"]; } elseif (preg_match("/^seit (?<von_tag>[0-9]+)\\.(?<von_monat>[0-9]+)\\.(?<von_jahr>[0-9]+)\$/", $matches[3][$i], $mitgliedschaft_matches)) { $str_fraktion->datum_von = $mitgliedschaft_matches["von_jahr"] . "-" . $mitgliedschaft_matches["von_monat"] . "-" . $mitgliedschaft_matches["von_tag"]; $str_fraktion->datum_bis = null; } $str_fraktion->fraktion_id = $matches["fraktion_id"][$i]; $str_fraktion->stadtraetIn_id = $stadtraetIn_id; $str_fraktion->wahlperiode = $matches["wahlperiode"][$i]; $str_fraktion->funktion = $matches["funktion"][$i]; $str_fraktion->mitgliedschaft = $matches["mitgliedschaft"][$i]; /** @var array|StadtraetInFraktion[] $bisherige_fraktionen */ $bisherige_fraktionen = StadtraetInFraktion::model()->findAllByAttributes(["stadtraetIn_id" => $stadtraetIn_id]); /** @var null|StadtraetInFraktion $bisherige */ $bisherige = null; foreach ($bisherige_fraktionen as $fr) { if ($fr->fraktion_id == $str_fraktion->fraktion_id && $fr->wahlperiode == $str_fraktion->wahlperiode && $fr->funktion == $str_fraktion->funktion) { $bisherige = $fr; } } if ($bisherige === null) { $fraktion = Fraktion::model()->findByPk($str_fraktion->fraktion_id); if (is_null($fraktion)) { $frakt_parser = new StadtratsfraktionParser(); $frakt_parser->parse($str_fraktion->fraktion_id, $str_fraktion->wahlperiode); } $str_fraktion->save(); $aenderungen = "Neue Fraktionszugehörigkeit: " . $str_fraktion->fraktion->name . "\n"; } else { if ($bisherige->wahlperiode != $matches["wahlperiode"][$i]) { $aenderungen .= "Neue Wahlperiode: " . $bisherige->wahlperiode . " => " . $matches["wahlperiode"][$i] . "\n"; } if ($bisherige->funktion != $matches["funktion"][$i]) { $aenderungen .= "Neue Funktion in der Fraktion: " . $bisherige->funktion . " => " . $matches["funktion"][$i] . "\n"; } if ($bisherige->mitgliedschaft != $matches["mitgliedschaft"][$i]) { $aenderungen .= "Mitgliedschaft in der Fraktion: " . $bisherige->mitgliedschaft . " => " . $matches["mitgliedschaft"][$i] . "\n"; } if ($bisherige->datum_von != $str_fraktion->datum_von) { $aenderungen .= "Fraktionsmitgliedschaft Start: " . $bisherige->datum_von . " => " . $str_fraktion->datum_von . "\n"; } if ($bisherige->datum_bis != $str_fraktion->datum_bis) { $aenderungen .= "Fraktionsmitgliedschaft Ende: " . $bisherige->datum_bis . " => " . $str_fraktion->datum_bis . "\n"; } $bisherige->setAttributes($str_fraktion->getAttributes()); $bisherige->save(); } } if ($aenderungen != "") { echo "StadträtIn {$stadtraetIn_id}: Verändert: " . $aenderungen . "\n"; } if ($aenderungen != "") { $aend = new RISAenderung(); $aend->ris_id = $daten->id; $aend->ba_nr = null; $aend->typ = RISAenderung::$TYP_STADTRAETIN; $aend->datum = new CDbExpression("NOW()"); $aend->aenderungen = $aenderungen; $aend->save(); } if ($this->antraege_alle) { $text = RISTools::load_file("http://www.ris-muenchen.de/RII/RII/ris_antrag_trefferliste.jsp?nav=2&selWahlperiode=0&steller={$stadtraetIn_id}&txtPosition=0"); if (preg_match("/Suchergebnisse:.* ([0-9]+)<\\/p>/siU", $text, $matches)) { $seiten = Ceil($matches[1] / 10); for ($i = 0; $i < $seiten; $i++) { $this->parse_antraege($stadtraetIn_id, $i); } } else { if (SITE_CALL_MODE != "cron") { echo "Keine Anträge gefunden\n"; } } } else { for ($i = 0; $i < 2; $i++) { $this->parse_antraege($stadtraetIn_id, $i); } } }
case 'exception': # No more... break; case 'array': #------------------------------------------------------------------------------- # проверяем, как много таких заказов можно делать if ($Params['MaxOrders'] > 0 && $OrdersHistory['Counter'] >= $Params['MaxOrders']) { if (!$GLOBALS['__USER']['IsAdmin']) { return new gException('TOO_MANY_ORDERS', SPrintF('Для данного тарифного плана существует ограничение на максимальное число заказов, равное %s. Ранее, вы уже делали заказы по данному тарифу%s, и больше сделать не можете. Выберите другой тарифный план.', $Params['MaxOrders'], $OrdersHistory['Counter'] > $Params['MaxOrders'] ? SPrintF(' (%s)', $OrdersHistory['Counter']) : '')); } } #------------------------------------------------------------------------------- # проверяем, как часто можно делать такие заказы if ($Params['MinOrdersPeriod'] > 0 && $Params['MinOrdersPeriod'] > (Time() - $OrdersHistory['LastDate']) / (24 * 60 * 60)) { if (!$GLOBALS['__USER']['IsAdmin']) { return new gException('TOO_MANY_ORDER_RATE', SPrintF('Для данного тарифного плана существует ограничение на частоту заказа. Тариф можно заказывать не чаще чем раз в %s дней. До возможности сделать заказ осталось %s дней. Пока, вы можете выбрать другой тарифный план.', $Params['MinOrdersPeriod'], Ceil($Params['MinOrdersPeriod'] - (Time() - $OrdersHistory['LastDate']) / (24 * 60 * 60)))); } } #------------------------------------------------------------------------------- break; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # вносим заказ в таблицу, если его там нет $IOrdersHistory['UserID'] = $UserID; $IOrdersHistory['Email'] = $GLOBALS['__USER']['Email']; $IOrdersHistory['ServiceID'] = $Params['ServiceID'];
/** * @param App $a * @param null|object $o */ function privacy_image_cache_plugin_admin(&$a, &$o) { $o = '<input type="hidden" name="form_security_token" value="' . get_form_security_token("picsave") . '">'; $cachetime = get_config('privacy_image_cache', 'cache_time'); if (!$cachetime) { $cachetime = PRIVACY_IMAGE_CACHE_DEFAULT_TIME; } $cachetime_h = Ceil($cachetime / 3600); $o .= '<label for="pic_cachetime">' . t('Lifetime of the cache (in hours)') . '</label> <input id="pic_cachetime" name="cachetime" type="text" value="' . escape_tags($cachetime_h) . '"><br style="clear: both;">'; $o .= '<input type="submit" name="save" value="' . t('Save') . '">'; $o .= '<h4>' . t('Cache Statistics') . '</h4>'; $num = q('SELECT COUNT(*) num, SUM(LENGTH(data)) size FROM `photo` WHERE `uid`=0 AND `contact-id`=0 AND `resource-id` LIKE "pic:%%"'); $o .= '<label for="statictics_num">' . t('Number of items') . '</label><input style="color: gray;" id="statistics_num" disabled value="' . escape_tags($num[0]['num']) . '"><br style="clear: both;">'; $size = Ceil($num[0]['size'] / (1024 * 1024)); $o .= '<label for="statictics_size">' . t('Size of the cache') . '</label><input style="color: gray;" id="statistics_size" disabled value="' . $size . ' MB"><br style="clear: both;">'; $o .= '<input type="submit" name="delete_all" value="' . t('Delete the whole cache') . '">'; }
function getPaginator($sql, $limit_find, $page_number = 1) { $rs = array(); $rs['records'] = 0; $rs['pages'] = 0; if ($limit_find < 10) { $limit_find = 20; } if ($sql != '') { $records = _executeSql('select', array($sql), array('single')); if ($records > 0) { $rs['records'] = $records; $rs['pages'] = Ceil($records / $limit_find); } } if ($rs['records'] > 0) { // vypocet pocatecni a koncove stranky (snazime se vypsat vzdy 10 odkazu) $rs['start_page'] = $page_number - 5; $rs['end_page'] = $page_number + 5; // oprava nekorektnich hodnot (zaporne nebo prilis velke) if ($rs['start_page'] < 1) { $rs['end_page'] += Abs($rs['start_page']) + 1; } if ($rs['end_page'] > $rs['pages']) { $rs['start_page'] = $rs['start_page'] - ($rs['end_page'] - $rs['pages']); $rs['end_page'] = $rs['pages']; } if ($rs['start_page'] < 1) { $rs['start_page'] = 1; } for ($x = $rs['start_page']; $x <= $rs['end_page']; $x++) { $rs['view_pages'][] = $x; } if ($page_number > $rs['end_page']) { $rs['page_number'] = $rs['end_page']; setSessionMickaSearchPage($rs['page_number']); } else { $rs['page_number'] = $page_number; } } return $rs; }
if ($Pl_Game['level'] - $Op_Game['level'] > 35) { $Pl_Gain_Exp = $Pl_Gain_Exp / 2; $Pl_Gain_Wep_Exp = $Pl_Gain_Wep_Exp / 2; } //Gain Rankings if ($VictoryFlag == 1) { $Pl_Game['rank'] += Ceil($Op_Game['rank'] / 1000) + 10; if ($Op_Name == '<AttackFort>') { $Pl_Game['rank'] += 10000; } } elseif ($VictoryFlag == 2) { $Pl_Game['rank'] -= 100; } elseif ($VictoryFlag == 3) { $Pl_Game['rank'] += 2; } elseif ($VictoryFlag == 0) { $Pl_Game['rank'] += Ceil($Op_Game['rank'] / 100) + 2; } if ($Pl_Game['rank'] > 100000) { $Pl_Game['rank'] = 100000; } elseif ($Pl_Game['rank'] < 0) { $Pl_Game['rank'] = 0; } //Finalize Experience Gain //Spec if (ereg('(DoubleExp)+', $Pl_Spec)) { $Pl_Gain_Exp *= 2; $Pl_Gain_Wep_Exp *= 2; } //Fame and Notoriety Modifier $Pl_Gain_Wep_Exp *= 1 + $Pl_Gen['fame'] / 1000; $Op_Gain_Wep_Exp *= 1 + $Op_Gen['fame'] / 1000;
public function run($args) { $sitemap_files = []; $datumformat = function ($datum) { $x = explode(" ", $datum); $y = explode("-", $x[0]); if ($y[0] < 2000) { $y[0] = "2000"; } if ($y[1] < 1 || $y[1] > 12) { $y[1] = "01"; } if ($y[2] < 1 || $y[2] > 31) { $y[2] = "01"; } return $y[0] . "-" . $y[1] . "-" . $y[2]; }; $sitemap_basepath = Yii::app()->getBasePath() . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "html" . DIRECTORY_SEPARATOR; // Dokumente $sql = Yii::app()->db->createCommand(); $dokumente = $sql->select("id, datum")->from("dokumente")->where("deleted = 0")->order("id")->queryAll(); $sm_num = Ceil(count($dokumente) / 30000); for ($sm_page = 0; $sm_page < $sm_num; $sm_page++) { echo "Dokumente - Seite {$sm_page}\n"; $sitemap_file = "sitemap-dokumente-" . $sm_page . ".xml"; $fp = fopen($sitemap_basepath . $sitemap_file, "w"); fwrite($fp, '<?xml version="1.0" encoding="UTF-8"?>' . "\n"); fwrite($fp, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"); for ($i = $sm_page * 30000; $i < ($sm_page + 1) * 30000 && $i < count($dokumente); $i++) { $dok = $dokumente[$i]; fwrite($fp, "<url>\n<loc>" . SITE_BASE_URL . "/dokumente/" . $dok["id"] . "/</loc>\n"); fwrite($fp, "<changefreq>monthly</changefreq>\n"); fwrite($fp, "<lastmod>" . $datumformat($dok["datum"]) . "</lastmod>\n"); fwrite($fp, "</url>\n"); } fwrite($fp, "</urlset>\n"); fclose($fp); $sitemap_files[] = SITE_BASE_URL . "/" . $sitemap_file; } // Anträge $sql = Yii::app()->db->createCommand(); $antraege = $sql->select("id, datum_letzte_aenderung")->from("antraege")->order("id")->queryAll(); $sm_num = Ceil(count($antraege) / 30000); for ($sm_page = 0; $sm_page < $sm_num; $sm_page++) { echo "Anträge - Seite {$sm_page}\n"; $sitemap_file = "sitemap-antraege-" . $sm_page . ".xml"; $fp = fopen($sitemap_basepath . $sitemap_file, "w"); fwrite($fp, '<?xml version="1.0" encoding="UTF-8"?>' . "\n"); fwrite($fp, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"); for ($i = $sm_page * 30000; $i < ($sm_page + 1) * 30000 && $i < count($antraege); $i++) { $dok = $antraege[$i]; fwrite($fp, "<url>\n<loc>" . SITE_BASE_URL . "/antraege/" . $dok["id"] . "/</loc>\n"); fwrite($fp, "<changefreq>weekly</changefreq>\n"); fwrite($fp, "<lastmod>" . $datumformat($dok["datum_letzte_aenderung"]) . "</lastmod>\n"); fwrite($fp, "</url>\n"); } fwrite($fp, "</urlset>\n"); fclose($fp); $sitemap_files[] = SITE_BASE_URL . "/" . $sitemap_file; } // Termine $sql = Yii::app()->db->createCommand(); $termine = $sql->select("id, datum_letzte_aenderung")->from("termine")->where("typ = " . Termin::$TYP_AUTO)->order("id")->queryAll(); $sm_num = Ceil(count($termine) / 30000); for ($sm_page = 0; $sm_page < $sm_num; $sm_page++) { echo "Termine - Seite {$sm_page}\n"; $sitemap_file = "sitemap-termine-" . $sm_page . ".xml"; $fp = fopen($sitemap_basepath . $sitemap_file, "w"); fwrite($fp, '<?xml version="1.0" encoding="UTF-8"?>' . "\n"); fwrite($fp, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"); for ($i = $sm_page * 30000; $i < ($sm_page + 1) * 30000 && $i < count($termine); $i++) { $dok = $termine[$i]; fwrite($fp, "<url>\n<loc>" . SITE_BASE_URL . "/termine/" . $dok["id"] . "/</loc>\n"); fwrite($fp, "<changefreq>weekly</changefreq>\n"); fwrite($fp, "<lastmod>" . $datumformat($dok["datum_letzte_aenderung"]) . "</lastmod>\n"); fwrite($fp, "</url>\n"); } fwrite($fp, "</urlset>\n"); fclose($fp); $sitemap_files[] = SITE_BASE_URL . "/" . $sitemap_file; } // StadträtInnen echo "StadträtInnen\n"; /** @var StadtraetIn[] $strs */ $strs = StadtraetIn::model()->findAll(); $sitemap_file = "sitemap-stadtraetinnen.xml"; $fp = fopen($sitemap_basepath . $sitemap_file, "w"); fwrite($fp, '<?xml version="1.0" encoding="UTF-8"?>' . "\n"); fwrite($fp, '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"); foreach ($strs as $str) { fwrite($fp, "<url>\n<loc>" . $str->getLink() . "</loc>\n"); fwrite($fp, "<changefreq>weekly</changefreq>\n"); fwrite($fp, "<lastmod>" . date("Y-m-d") . "</lastmod>\n"); fwrite($fp, "</url>\n"); } fwrite($fp, "</urlset>\n"); fclose($fp); $sitemap_files[] = SITE_BASE_URL . "/" . $sitemap_file; $fp = fopen($sitemap_basepath . "sitemap-index.xml", "w"); fwrite($fp, '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'); foreach ($sitemap_files as $file) { fwrite($fp, '<sitemap> <loc>' . CHtml::encode($file) . '</loc> <lastmod>' . date("Y-m-d") . '</lastmod> </sitemap>' . "\n"); } fwrite($fp, '</sitemapindex>'); fclose($fp); }
/** * Returns true if this page has album thumbs on it * * @return bool */ function isAlbumPage() { global $_zp_page; $pageCount = Ceil(getNumAlbums() / max(1, getOption('albums_per_page'))); return $_zp_page <= $pageCount; }
if ($page == 1 & $counter <= RECSPERPAGE | $page > 1 & $counter > ($page - 1) * RECSPERPAGE & $counter < RECSPERPAGE * $page) { print "<tr><td>{$counter} </td>"; print "<td>" . $row['file_id'] . "</td>"; print "<td><a href=/foronliner/download.php?file_id=" . $row['file_id'] . ">" . $row['filename'] . "</a></td>"; print "<td>" . $row['datetime'] . "</td>"; if ($row['comments_enabled']) { $CommEnab = "checked"; } else { $CommEnab = ""; } print "<td> \n\t<label> <input type=\"checkbox\" name=\"com" . $row['file_id'] . "\" id=\"com\" {$CommEnab} /></label></td><td><a href=\"/foronliner/remove_UF.php?file_id=" . $row['file_id'] . "\">удалить </a><label> <input type=\"checkbox\" name=\"del" . $row['file_id'] . "\" id=\"del\" /></label> <input type=\"hidden\" name=\"hid" . $row['file_id'] . "\" value=\"1\" />\n\t <input type=\"hidden\" name=\"hid" . $row['file_id'] . "\" value=\"1\" /> \n\t</td></tr>\r"; } } print "</table>\n <label><input type=\"submit\" value=\"Внести коррекцию\" /> </label>\n</form>"; // используем полученное значение $counter для подсчёта количества страниц и организуем навигацию по списку файлов $pages = Ceil($counter / RECSPERPAGE); if ($pages == 0) { $pages = 1; } // исправление счётчика страниц и навигации при ситуации, когда у пользователя нет загруженых файлов print "Страниц:{$pages} >"; for ($i = 1; $i < $pages + 1; $i++) { if ($i == $page) { print "<a href=/foronliner/list.php?page={$i}><b>[{$i}] </b></a>"; } else { print "<a href=/foronliner/list.php?page={$i}> [{$i}] </a>"; } } print "<div>\n <form action=\"uploadserv.php\" method=\"post\" enctype=\"multipart/form-data\">\n <input type=\"file\" name=\"filename\"><br>\n <input type=\"submit\" value=\"Загрузить\"><br>\n </form>\n\n</div>"; print "<br>\n<div align=\"center\" class=\"logout\" id=\"logout\"><a href=/foronliner/list.php?action=logout><b>выход</b></a></div>\n</body>"; print "</html>";
//$alignement='L'; $alignement = 'C'; $bordure = 'LRBT'; cell_ajustee_une_ligne($texte, $pdf->GetX(), $pdf->GetY(), $largeur_dispo, $h_ligne_titre_tableau, $taille_max_police, $fonte, $graisse, $alignement, $bordure); $pdf->SetFont($fonte, 'B', $taille_police_matiere); $alignement = 'C'; $x2 = $x0 + $largeur_col_nom_ele; for ($i = 2; $i <= count($ligne1_csv); $i++) { $pdf->SetXY($x2, $y2); $largeur_dispo = $largeur_col[$i]; // Cadre de la cellule: $pdf->Cell($largeur_dispo, $h_ligne_titre_tableau, "", 'LRBT', 2, ''); // Texte à la verticale: $texte = " " . $ligne1_csv[$i] . " "; //ajuste_FontSize($texte, $h_ligne_titre_tableau, 12, 'B', 5); $pdf->TextWithRotation($x2 + Ceil($largeur_dispo / 2), $y2 + $h_ligne_titre_tableau, $texte, 90); $x2 += $largeur_dispo; } //=========================== //$h_cell=min(10, floor(($hauteur_page-$marge_haute-$marge_basse-$h_ligne_titre_page-$h_ligne_titre_tableau)/(count($col)-1))); if ($hauteur_ligne_imposee != "y") { $h_cell = min(10, floor(($hauteur_page - $marge_haute - $marge_basse - $h_ligne_titre_page - $h_ligne_titre_tableau) / (count($col) + 3))); } /* $pdf->SetXY(10, 110); $pdf->Cell(190,10, $info_largeur_col_notes,'LRBT',2,''); */ $graisse = ''; $alignement = 'C'; $bordure = 'LRBT'; $h_ligne = $h_cell;
return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- foreach ($HostingOrders as $Order) { #------------------------------------------------------------------------------- # выбираем тех кто лимит иеет, в лимит укладывается if ($Accounts[$Order['Login']]['Limit'] > 0 && $Accounts[$Order['Login']]['Limit'] >= $Accounts[$Order['Login']]['Used']) { #------------------------------------------------------------------------------- #Debug(SPrintF('[comp/Tasks/GC/DiskUsageNotifies]: account %s used %s/%s',$Order['Login'],$Accounts[$Order['Login']]['Used'],$Accounts[$Order['Login']]['Limit'])); #------------------------------------------------------------------------------- if ($Accounts[$Order['Login']]['Limit'] < $Accounts[$Order['Login']]['Used']) { Debug(SPrintF('[comp/Tasks/GC/DiskUsageNotifies]: account %s overlimit, used %s/%s', $Order['Login'], $Accounts[$Order['Login']]['Used'], $Accounts[$Order['Login']]['Limit'])); } #------------------------------------------------------------------------------- if (Ceil($Accounts[$Order['Login']]['Used'] / $Accounts[$Order['Login']]['Limit'] * 100) > $Settings['DiskUsageNotifiesPercent']) { #------------------------------------------------------------------------------- Debug(SPrintF('[comp/Tasks/GC/DiskUsageNotifies]: account %s used %s/%s', $Order['Login'], $Accounts[$Order['Login']]['Used'], $Accounts[$Order['Login']]['Limit'])); #------------------------------------------------------------------------------- if (!$Settings['IsNotify']) { continue; } #------------------------------------------------------------------------------- $Array = array('Login' => $Order['Login'], 'Used' => $Accounts[$Order['Login']]['Used'], 'Limit' => $Accounts[$Order['Login']]['Limit']); #------------------------------------------------------------------------------- $IsSend = NotificationManager::sendMsg(new Message('DiskUsageNotice', (int) $Order['UserID'], array('Order' => $Array))); #------------------------------------------------------------------------------- switch (ValueOf($IsSend)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception':
function page_counter($id, $table, $sort, $view_number, $sess, $link, $i, $page) { $count = MySQL_Query("SELECT {$id} FROM {$table} WHERE {$sort} AND ul_group = '{$sess['4']}'") or die($query_error); //vybíráme zprávy $page_count = Ceil(MySQL_Num_Rows($count) / $view_number); //poèet stran, na kterých se zprávy zobrazí for ($i = 0; $i < $page_count; $i++) { echo " | "; if ($page != $i) { echo "<a href=\"{$link}{$i}\">"; } echo $i + 1; if ($page != $i) { echo '</a> '; } } }
function get_messages_onpage($page) { $messages = $this->get_all_messages(); $pages_count = Ceil(count($messages) / $this->max_mess_on_page); if ($page > $pages_count) { return NULL; } $fst_mess = $this->max_mess_on_page * ($page - 1); $lst_mess = $this->max_mess_on_page * $page; $k = 0; $result = array(); for ($m_idx = $fst_mess; $m_idx < count($messages) && $m_idx < $lst_mess; ++$m_idx) { $result[$k] = $messages[$m_idx]; $k++; } return $result; }
function get_pages_count() { $news_count = count(read_dir($this->data_dir)); return Ceil($news_count / $this->page_max_news); }
#------------------------------------------------------------------------------- // перебираем полученных пользователей. foreach ($Users as $User) { #------------------------------------------------------------------------------- # выбираем меньшую из дат, т.к. мог не входить никогда $EnterDate = $User['EnterDate'] > $User['RegisterDate'] ? $User['EnterDate'] : $User['RegisterDate']; #------------------------------------------------------------------------------- Debug(SPrintF('[comp/Tasks/GC/EraseOldUsers]: автоматическое удаление юзера (%s) не заходившего в биллинг %s дней', $User['Email'], Ceil((Time() - $EnterDate) / (24 * 3600)))); #------------------------------------------------------------------------------- // удаляем юзера $Comp = Comp_Load('www/API/Delete', array('TableID' => 'Users', 'RowsIDs' => $User['ID'])); #------------------------------------------------------------------------- switch (ValueOf($Comp)) { case 'array': #------------------------------------------------------------------------------- $Event = array('PriorityID' => 'Billing', 'IsReaded' => $Settings['IsEvent'] ? FALSE : TRUE, 'Text' => SPrintF('Удалён пользователь (%s / %s) не заходивший в биллинг %s дней', $User['Email'], $User['Name'], Ceil((Time() - $EnterDate) / (24 * 3600)))); $Event = Comp_Load('Events/EventInsert', $Event); if (!$Event) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- break; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- default: return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
GetWeaponDetails("{$TactFactory['c_wep']}", 'CustWepS'); if (isset($secureCustom)) { $secureCustom = 1; if ($ttlused_pt + $CustWepS['complexity'] * 10 > $TactFactory['c_point'] || $ttlused_pt <= 0) { echo "改造點數不足或出錯!"; postFooter(); exit; } } else { $secureCustom = 0; } $CustomedAtk = Floor($CustWepS['atk'] * $atkc_pt * 0.005); $CustomedHit = Floor($CustWepS['hit'] * $hitc_pt * 0.005); $CustomedRd = Floor($CustWepS['rd'] * $rdc_pt * 0.005); $CustomedENCc = $CustWepS['enc'] * (1 + $atkc_pt * 0.01) * (1 + $rdc_pt * 0.01) * (1 + $hitc_pt * 0.01); $CustomedENC = Ceil($CustomedENCc - $CustomedENCc * $encc_pt * 0.005); $fixedname = preg_replace('/([!@#$%^&*()[\\]\\{}\'",.\\/<>?|]|--)+/', '', $fixedname); if ($namefix > 2 || $namefix < 1) { echo "Cannot Get Fix Type"; postFooter(); exit; } unset($sql); if (strlen($fixedname) > 32) { echo "專用名稱過長!"; postFooter(); exit; } $costPt = $ttlused_pt; if ($secureCustom) { $costPt += intval($CustWepS['complexity'] * 10);
} } Debug(SPrintF('[comp/Tasks/SMS]: Страна определена (%s)', $MobileCountry)); #------------------------------------------------------------------------------- if (!isset($ServerSettings['Params'][$MobileCountry])) { return ERROR | @Trigger_Error(500); } #------------------------------------------------------------------------------- if ($MessageLength <= 70) { #------------------------------------------------------------------------------- $SMSCost = Str_Replace(',', '.', $ServerSettings['Params'][$MobileCountry]); $SMSCount = 1; #------------------------------------------------------------------------------- } else { #------------------------------------------------------------------------------- $SMSCount = Ceil($MessageLength / 67); #------------------------------------------------------------------------------- # сообщение не может быть больше 10 частей... на самом деле, например у меня # телефон поддерживает максимум 6 частей... if ($SMSCount > 10) { Debug(SPrintF('[comp/Tasks/SMS]: Слишком длинное сообщеие (%s частей), не отправлено', $SMSCount)); return TRUE; } #------------------------------------------------------------------------------- $SMSCost = $SMSCount * Str_Replace(',', '.', $ServerSettings['Params'][$MobileCountry]); #------------------------------------------------------------------------------- } #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- if ($ChargeFree) { $SMSCost = 0;
case 'error': return ERROR | @Trigger_Error(500); case 'exception': return TRUE; case 'array': break; default: return ERROR | @Trigger_Error(101); } #------------------------------------------------------------------------------- // перебираем полученных пользователей. foreach ($Users as $User) { #------------------------------------------------------------------------------- # выбираем меньшую из дат, т.к. мог не входить никогда $EnterDate = $User['EnterDate'] > $User['RegisterDate'] ? $User['EnterDate'] : $User['RegisterDate']; Debug(SPrintF('[comp/Tasks/GC/WithdrawalOldUsers]: автоматическое списание денег с балланса юзера (%s) не заходившего в биллинг %s дней', $User['Email'], Ceil((Time() - $EnterDate) / (24 * 3600)))); #------------------------------------------------------------------------------- #if($User['Email'] != '*****@*****.**') # continue; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # выбираем договора юзера с баллансом больше нуля $Where = array(SPrintF('`UserID` = %u', $User['ID']), '`Balance` > 0'); #------------------------------------------------------------------------------- $Contract = DB_Select('Contracts', array('ID', 'TypeID', 'Customer', 'Balance'), array('UNIQ', 'Where' => $Where, 'Limits' => array(0, 1))); #------------------------------------------------------------------------------- switch (ValueOf($Contract)) { case 'error': return ERROR | @Trigger_Error(500); case 'exception': return new gException('CONTRACT_NOT_FOUND', 'Договора не найдены');
$pdf->SetAutoPageBreak(true, $MargeBas); // Couleur des traits $pdf->SetDrawColor(0,0,0); $pdf->SetLineWidth(0.2); $fonte='DejaVu'; $fonte_size=10; $fonte_size_classe=14; $sc_interligne=1.3; //====================================== $nb_total_pages=0; $nb_pages=Ceil($total/$nb_cell); //echo "\$nb_pages=$nb_pages<br />"; $cpt=0; for($j=0;$j<$nb_pages;$j++) { $pdf->AddPage("P"); $pdf->SetXY($x0,$y0); $bordure='LRBT'; //$bordure=''; $pdf->SetFont('DejaVu','B',$fonte_size_classe); //$texte="Trombinoscope ".$gepiYear." - Classe : $classe"; $texte="Trombinoscope ".$gepiYear." - $entete"; $pdf->Cell($largeur_utile_page,$hauteur_classe,$texte,$bordure,1,'C');