function extractStructure($metadata, $fields) { $structure = []; $outOfStructure = []; $problems = []; $proxy = null; foreach ($metadata->{'ore:Proxy'} as $pxy) { if (is_bool($pxy->{'edm:europeanaProxy'}) && $pxy->{'edm:europeanaProxy'} === false || is_array($pxy->{'edm:europeanaProxy'}) && $pxy->{'edm:europeanaProxy'}[0] == "false") { $proxy = $pxy; } } $aggregation = $metadata->{'ore:Aggregation'}[0]; $providedCHO = $metadata->{'edm:ProvidedCHO'}[0]; $structure['edm:ProvidedCHO/@about'] = [$providedCHO->{'@about'}]; foreach ($proxy as $field => $values) { extractValues('Proxy/' . $field, $values, $fields, $structure, $outOfStructure, $problems); } foreach ($aggregation as $field => $values) { extractValues('Aggregation/' . $field, $values, $fields, $structure, $outOfStructure, $problems); } $goodOrder = []; foreach ($fields as $field) { if (isset($structure[$field])) { $goodOrder[$field] = $structure[$field]; } } $structure = $goodOrder; foreach ($outOfStructure as $key => $value) { $structure['#' . $key] = $value; } # $structure['problems'] = $problems; return $structure; }
<?php include_once __DIR__ . '/pay_form.php'; include_once SRC_DIR . '/forms.php'; include_once SRC_DIR . '/database.php'; function addCash($connection, $userId, $sum) { $sql = 'UPDATE users SET cash = cash + ' . $sum . ' WHERE id = ' . $userId . ';'; mysqli_query($connection, $sql); return (bool) mysqli_affected_rows($connection); } return function (array $request) { $form = createPayForm(); formHandleRequest($form, $request); if (formIsValid($form)) { $vars = extractValues($form); $sum = (int) ((double) $vars['pay'] * 100); $user = currentUser(); $userId = (int) $user['id']; $connection = mappedConnection('users'); addCash($connection, $userId, $sum); return createResponse(); } return createResponse('', 400); };
} mysqli_stmt_close($statement); return $inserted; } /** * @param array $request * @return array */ return function (array $request) { if (currentUser()) { return createRedirectResponse('/index.php/'); } $form = createForm(); formHandleRequest($form, $request); $form['fields']['name']['value'] = trim(preg_replace('/(\\s)+/', ' ', $form['fields']['name']['value'])); if (formIsValid($form)) { $user = extractValues($form); $user['email'] = strtolower($user['email']); $user['hashed_password'] = password_hash($user['password'], PASSWORD_DEFAULT); unset($user['password'], $user['password_repeat']); $userConnection = mappedConnection('users'); if (saveUser($userConnection, $user)) { authorize($user); return createRedirectResponse('/'); } else { $form['valid'] = false; $form['fields']['email']['errors'][] = 'Такой Email уже используется.'; } } return createResponse(render('registration/index.html.php', ['form' => $form])); };
$sql = 'SELECT id, name, email, hashed_password FROM users WHERE email = ? LIMIT 1'; $statement = mysqli_prepare($connection, $sql); mysqli_stmt_bind_param($statement, 's', $email); mysqli_stmt_execute($statement); mysqli_stmt_bind_result($statement, $id, $name, $email, $hp); mysqli_stmt_fetch($statement); mysqli_stmt_close($statement); if (isset($id, $name, $email, $hp)) { return ['id' => $id, 'name' => $name, 'email' => $email, 'hashed_password' => $hp]; } return null; } return function (array $request) { if (currentUser()) { return createRedirectResponse('/index.php/'); } $form = createCreateForm(); formHandleRequest($form, $request); if (formIsValid($form)) { $auth = extractValues($form); $user = findUserByEmail(mappedConnection('users'), $auth['email']); if ($user && password_verify($auth['password'], $user['hashed_password'])) { authorize($user); return createRedirectResponse('/'); } else { $form['valid'] = false; $form['fields']['password']['errors'][] = 'Неверный Пароль'; } } return createResponse(render('session/new.html.php', ['form' => $form])); };
<?php require_once 'config/config.php'; require_once APP_CLASSPATH . 'Canvas.php'; require_once APP_CLASSPATH . 'Query.php'; require 'functions.php'; #> Required objects and preparation $c = new Canvas(thisURL()); $q = new Query($db); $data = new Template('player.tpl'); $id = getvar('id', ''); $q->select('action,content,t')->from('runrow')->where("rid='{$id}'")->orderby('t,id'); $inner = $q->run(); $cols = extractValues($inner); $v = $cols['version']; #> Some more values that do not depend on the frames (i.e., single values that do not change) list($scwidth, $scheight) = explode(',', $cols['scsize']); list($vpwidth, $vpheight) = explode(',', $cols['vpsize']); $data->assign('scwidth', intval($scwidth * $scalefactor)); $data->assign('scheight', intval($scheight * $scalefactor)); $data->assign('totaltime', toTime($cols['tmax'] - $cols['tmin'])); $data->assign('version', $cols['Version']); $data->assign('context', $cols['Context']); $data->assign('intent', $cols['intent']); $data->assign('browser', $cols['browser']); $data->assign('os', $cols['os']); #> We reset some needed values in the template. $data->assign('obj1backg', ''); $data->assign('obj1top', ''); $data->assign('obj1left', ''); $data->assign('obj1width', '');