/** * Merge fields in a specified template * * @since 1.1.0 * @static * * @param string $template_file * @param array $merge_fields * @return string|\argent_error */ public static function merge_template($template_file = NULL, $merge_fields = array()) { $error = new argent_error(); if (!file_exists($template_file)) { $error->add('1100', 'File does not exist', $template_file, 'argent_notification'); } if (!is_array($merge_fields)) { $error->add('1041', 'Invalid merge fields specified', $merge_fields, 'argent_notification'); } if ($error->has_errors()) { return $error; } $template = file_get_contents($template_file); if (!$template) { $error->add('1101', 'File could not be read', $template, 'argent_notification'); } if ($error->has_errors()) { return $error; } if (count($merge_fields) > 0) { foreach ($merge_fields as $field => $value) { $template = str_replace("%%FIELD_" . $field, $value, $template); } } return $template; }
/** * Log an error * * @static * @since 1.0.1 * @param string $code Error code * @param string $message Error message * @param string $payload Data related to or causing the error * @param string $application The name of your module e.g. "Search API" * @return boolean */ public static function log_error($code, $message = "", $payload = NULL, $application = 'argent_powered_app') { if (argent_error::check($code)) { if ($code->has_errors()) { $errors = $code->read(); if (!empty($errors)) { foreach ($errors as $code => $error) { $message = $error['message']; $payload = $error['data']; /* Timestamp */ $errmsg = date('Y-m-d H:i:s'); /* Process */ $errmsg .= "\t[{$application}]\t"; /* IP */ $errmsg .= $_SERVER['REMOTE_ADDR'] . "\t"; /* UA */ $errmsg .= $_SERVER['HTTP_USER_AGENT'] . "\t"; /* Error Code */ $errmsg .= $code . "\t"; /* Error Message */ $errmsg .= $message . "\t"; /* Error PayLoad */ $errmsg .= "\t" . $payload; self::write_to_log("error", $errmsg); return true; } } } return false; } /* Timestamp */ $errmsg = date('Y-m-d H:i:s'); /* Process */ $errmsg .= "\t[{$application}]\t"; /* IP */ $errmsg .= $_SERVER['REMOTE_ADDR'] . "\t"; /* UA */ $errmsg .= $_SERVER['HTTP_USER_AGENT'] . "\t"; /* Error Code */ $errmsg .= $code . "\t"; /* Error Message */ $errmsg .= $message . "\t"; /* Error PayLoad */ $errmsg .= "\t" . (string) $payload; self::write_to_log("error", $errmsg); return true; }
/** * Revokes a User Right * * @param string $user_id * @param string $right * @return boolean */ public static function revoke_right($user_id, $right) { $error = new argent_error(); $db = new argent_database(); if (!self::object_exists($user_id)) { $error->add('1013', 'Invalid user account', $user_id, 'argent_uauth'); } $right_id = self::right_exists($right); if (!$right_id) { $error->add('1042', 'Invalid user right', $right, 'argent_uauth'); } if (!self::user_has_right($right, $user_id)) { return true; } return $user_right = argent_meta::unrelate($user_id, $right_id, 'user_right'); }
/** * Break a defined relationship relationship between two objects * * @param string $primary_object_id * @param string $secondary_object_id * @param string $relationship * @return array|\argent_error */ public static function unrelate($primary_object_id, $secondary_object_id, $relationship, $include_reverse = false) { $error = new argent_error(); $db = new argent_database(); $related = self::related($primary_object_id, $secondary_object_id, $relationship, $include_reverse); if (argent_error::check($related)) { return $related; } if (!$related) { return $related; } $sql = "\r\n DELETE FROM\r\n `ua_relationships`\r\n WHERE\r\n (`primary_object_id` = '{$db->escape_value($primary_object_id)}'\r\n AND\r\n `secondary_object_id` = '{$db->escape_value($secondary_object_id)}' )\r\n "; if ($include_reverse) { $sql .= "\r\n OR\r\n (`primary_object_id` = '{$db->escape_value($secondary_object_id)}'\r\n AND\r\n `secondary_object_id` = '{$db->escape_value($primary_object_id)}' )\r\n "; } $sql .= "\r\n AND\r\n `relationship` = '{$db->escape_value($relationship)}'\r\n "; $db->query($sql); return true; }