Text Messaging - one provider's window: Add (no id, or from sms_provider_add.php) * or Edit. Its SID and secret - the secret never put back into the page, so left empty it * stays - the number texts go from, and whether it is on. Save asks first (check_sms_provider, * admin/post/sms_provider.php): what is wrong shows beside each field and the window stays * open; once all is right, it saves. */ require_once '../../includes/modal_header.php'; $provider_id = intval($_GET['id'] ?? 0); $row = $provider_id ? smsProviderRow($provider_id) : null; if ($provider_id && !$row) { echo json_encode(['error' => 'That texting provider no longer exists.']); exit; } $kinds = smsProviderKinds(); $taken = []; $sql = mysqli_query($mysqli, "SELECT sms_provider_name FROM sms_providers"); while ($taken_row = mysqli_fetch_row($sql)) { $taken[$taken_row[0]] = true; } $free_kinds = array_diff_key($kinds, $taken); $name = $row ? (string) $row['sms_provider_name'] : (string) (array_key_first($free_kinds) ?? array_key_first($kinds)); $kind = $kinds[$name] ?? reset($kinds); $number = $row ? smsNumberText($row['sms_provider_number']) : ''; // Where what is wrong with a field shows $error_for = function ($field) { return '
'; }; ob_start(); ?>