Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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] =&gt; 353
                // [occasionsID] =&gt; 73b06d5740d15e35079b6aa024255cb3
                // [occasionsCount] =&gt; 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;
    }
Esempio n. 4
0
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;
}
Esempio n. 5
0
 function GetPageNumbers($entries)
 {
     global $config;
     global $link;
     $prev = "&laquo;Trở lại";
     $next = "Tiếp&raquo;";
     $config['totalPages'] = Ceil($entries / ($config['cols'] * $config['rows']));
     $start = 0;
     $end = $config['totalPages'] - 1;
     echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 "";
     }
 }
Esempio n. 6
0
        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))) {
     #-------------------------------------------------------------------------------
Esempio n. 8
0
		
			$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);
Esempio n. 9
0
 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()");
Esempio n. 10
0
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;
}
Esempio n. 11
0
 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&amp;act=country_stats_month&amp;month={$this->rknclass->get['month']}&amp;year={$this->rknclass->get['year']}&amp;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&amp;act=edit_site&amp;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&amp;act=del_site&amp;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();
 }
Esempio n. 12
0
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("&nbsp;", " ", $matches[1]));
     }
     if (preg_match("/Gew&auml;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 &Uuml;bersicht der Zugeh&ouml;rigkei", $html_details);
     $unten = $unten[1];
     preg_match_all("/ris_fraktionen_detail\\.jsp\\?risid=(?<fraktion_id>[0-9]+)&amp;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);
         }
     }
 }
Esempio n. 14
0
    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') . '">';
}
Esempio n. 16
0
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;
}
Esempio n. 17
0
 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);
  }
Esempio n. 19
0
/**
 * 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;
}
Esempio n. 20
0
    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>";
Esempio n. 21
0
 //$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;
Esempio n. 22
0
         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> ';
        }
    }
}
Esempio n. 24
0
 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;
 }
Esempio n. 25
0
 function get_pages_count()
 {
     $news_count = count(read_dir($this->data_dir));
     return Ceil($news_count / $this->page_max_news);
 }
Esempio n. 26
0
#-------------------------------------------------------------------------------
// перебираем полученных пользователей.
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);
    }
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
Esempio n. 27
0
 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);
Esempio n. 28
0
    }
}
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;
Esempio n. 29
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', 'Договора не найдены');
Esempio n. 30
0
	$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');