$val = ''; $tokens = array(); foreach ($columns as $col) { array_push($tokens, $entry[$col]); } $val = implode(' ', $tokens); array_push($response, array('value' => $val, 'tokens' => $tokens, 'id' => $entry['id'])); } JsonView::render($response); }); $app->map("/{$v}/tables/:table/rows/:id/?", function ($table, $id) use($ZendDb, $acl, $params, $requestPayload, $app) { $currentUser = Auth::getUserInfo(); $params['table_name'] = $table; // any UPDATE requests should md5 the email if ("directus_users" === $table && in_array($app->request()->getMethod(), array('PUT', 'PATCH')) && array_key_exists('email', $requestPayload)) { $avatar = DirectusUsersTableGateway::get_avatar($requestPayload['email']); $requestPayload['avatar'] = $avatar; } $TableGateway = new TableGateway($acl, $table, $ZendDb); switch ($app->request()->getMethod()) { // PUT an updated table entry case 'PATCH': case 'PUT': $requestPayload[$TableGateway->primaryKeyFieldName] = $id; $activityLoggingEnabled = !(isset($_GET['skip_activity_log']) && 1 == $_GET['skip_activity_log']); $activityMode = $activityLoggingEnabled ? TableGateway::ACTIVITY_ENTRY_MODE_PARENT : TableGateway::ACTIVITY_ENTRY_MODE_DISABLED; $TableGateway->manageRecordUpdate($table, $requestPayload, $activityMode); break; // DELETE a given table entry // DELETE a given table entry case 'DELETE':
function getUsers() { global $ZendDb, $acl; $tableGateway = new TableGateway($acl, 'directus_users', $ZendDb); $users = $tableGateway->getEntries(['table_name' => 'directus_users', 'perPage' => 1000, STATUS_COLUMN_NAME => STATUS_ACTIVE_NUM, 'columns_visible' => [STATUS_COLUMN_NAME, 'avatar', 'first_name', 'last_name', 'group', 'email', 'position', 'last_access']]); // Lets get the gravatar if no avatar is set. // TODO: Add this on insert/update of any user. $usersRowsToUpdate = []; foreach ($users['rows'] as $user) { $hasAvatar = array_key_exists('avatar', $user) ? $user['avatar'] : false; $hasEmail = array_key_exists('email', $user) ? $user['email'] : false; if (!$hasAvatar && $hasEmail) { $avatar = DirectusUsersTableGateway::get_avatar($user['email']); if ($avatar) { $user['avatar'] = $avatar; array_push($usersRowsToUpdate, $user); } } } if ($usersRowsToUpdate) { $tableGateway->updateCollection($usersRowsToUpdate); } return $users; }