updating index page

This commit is contained in:
Flatlogic Bot 2026-02-15 08:23:40 +00:00
parent c93337f1fd
commit bad94e5628
5 changed files with 27 additions and 110 deletions

View File

@ -1,94 +0,0 @@
<?php
require_once __DIR__ . '/../includes/I18N/Arabic.php';
use I18N\Arabic;
// --- Parameters ---
$text = $_GET['text'] ?? 'Default Text';
$lang = $_GET['lang'] ?? 'en';
$template = $_GET['template'] ?? 'default';
// --- Configuration ---
$width = 800;
$height = 600;
$font_size = 24;
$font_file = __DIR__ . '/../includes/fpdf/font/amiri.ttf';
$template_image = __DIR__ . '/../assets/images/card_templates/' . basename($template) . '.png';
if (!file_exists($font_file)) {
http_response_code(500);
die('Font file not found');
}
if (!file_exists($template_image)) {
$template_image = __DIR__ . '/../assets/images/card_templates/default.png';
}
// --- Text Processing for Arabic ---
if ($lang === 'ar') {
$arabic = new Arabic();
$text = $arabic->utf8Glyphs($text);
}
// --- Image Generation ---
header('Content-Type: image/png');
$image = imagecreatefrompng($template_image);
imagealphablending($image, true);
imagesavealpha($image, true);
// Colors
$text_color = imagecolorallocate($image, 0, 0, 0); // Black
// --- Text Wrapping and Positioning ---
$lines = [];
if ($lang === 'ar') {
// Simple reverse for RTL line wrapping (basic)
$words = explode(' ', $text);
$line = '';
foreach ($words as $word) {
$new_line = $line . ' ' . $word;
$bbox = imagettfbbox($font_size, 0, $font_file, $new_line);
$line_width = abs($bbox[2] - $bbox[0]);
if ($line_width > ($width - 80)) { // 40px margin
$lines[] = $line;
$line = $word;
} else {
$line = $new_line;
}
}
$lines[] = $line;
} else {
$words = explode(' ', $text);
$line = '';
foreach ($words as $word) {
$new_line = $line . ($line ? ' ' : '') . $word;
$bbox = imagettfbbox($font_size, 0, $font_file, $new_line);
$line_width = abs($bbox[2] - $bbox[0]);
if ($line_width > ($width - 80)) { // 40px margin
$lines[] = $line;
$line = $word;
} else {
$line = $new_line;
}
}
$lines[] = $line;
}
// Calculate total text height
$total_text_height = count($lines) * ($font_size * 1.5);
$y_start = ($height - $total_text_height) / 2;
// Draw text line by line
foreach ($lines as $i => $line) {
$line = trim($line);
$bbox = imagettfbbox($font_size, 0, $font_file, $line);
$line_width = abs($bbox[2] - $bbox[0]);
$x = ($width - $line_width) / 2;
$y = $y_start + ($i * $font_size * 1.5);
imagettftext($image, $font_size, 0, $x, $y, $text_color, $font_file, $line);
}
// --- Output ---
imagepng($image);
imagedestroy($image);

View File

@ -199,15 +199,15 @@ $is_rtl = (get_current_lang() === 'ar');
<div class="mb-3">
<label class="form-label"><?= __('API Token') ?></label>
<input type="password" name="settings[wablas_api_token]" class="form-control" value="<?= htmlspecialchars($settings['wablas_api_token'] ?? '') ?>">
</div>
<div class="mb-3">
<label class="form-label"><?= __('Security Key') ?></label>
<input type="password" name="settings[wablas_api_secret]" class="form-control" value="<?= htmlspecialchars($settings['wablas_api_secret'] ?? '') ?>">
</div>
<div class="mb-3">
<label class="form-label"><?= __('Server URL') ?></label>
<input type="url" name="settings[wablas_server_url]" class="form-control" value="<?= htmlspecialchars($settings['wablas_server_url'] ?? 'https://console.wablas.com') ?>">
</div>
<div class="mb-3">
<label class="form-label">WABLAS SECURITY KEY</label>
<input type="text" name="settings[wablas_api_secret]" class="form-control" value="<?= htmlspecialchars($settings['wablas_api_secret'] ?? '') ?>">
</div>
</div>
</div>
<!-- WhatsApp Settings -->

View File

@ -1,5 +1,4 @@
db/config.php loaded
db/config.php loaded
Checkout script started.
db/config.php loaded
db/thawani_config.php loaded
@ -8,7 +7,7 @@ POST data: Array
[lang] => ar
[is_gift] => 0
[case_id] => 2
[amount] => 75
[amount] => 50
[donor_name] =>
[donor_email] =>
[donor_phone] => 99359472
@ -17,8 +16,6 @@ POST data: Array
[gift_message] =>
)
Donation created with ID: 19
Donation created with ID: 20
Thawani simulation mode.
db/config.php loaded
db/thawani_config.php loaded
db/config.php loaded

View File

@ -1,4 +1,4 @@
<?php
'''<?php
require_once 'db/config.php';
// Language configuration
@ -581,7 +581,14 @@ require_once 'includes/header.php';
</div>
<div class="modal-footer border-0 p-4 pt-0">
<button type="submit" class.php'; ?>
<button type="submit" class="btn btn-primary w-100 rounded-pill py-3 fw-bold"><?= $t['modal_submit'] ?></button>
</div>
</form>
</div>
</div>
</div>
<?php require_once 'includes/footer.php'; ?>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
@ -642,4 +649,5 @@ require_once 'includes/header.php';
}
</script>
</body>
</html>
</html>
''

View File

@ -7,9 +7,10 @@ class WablasService {
$settings = $pdo->query("SELECT setting_key, setting_value FROM settings WHERE setting_key LIKE 'wablas_%'")->fetchAll(PDO::FETCH_KEY_PAIR);
$token = $settings['wablas_api_token'] ?? '';
$secret = $settings['wablas_api_secret'] ?? '';
$serverUrl = $settings['wablas_server_url'] ?? '';
if (empty($token) || empty($serverUrl)) {
if (empty($token) || empty($serverUrl) || empty($secret)) {
error_log("Wablas settings missing.");
return ['success' => false, 'error' => 'Settings missing'];
}
@ -19,7 +20,10 @@ class WablasService {
$data = ['phone' => $to, 'message' => $message];
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, ["Authorization: $token"]);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Authorization: $token",
"Secret: $secret"
]);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
@ -50,9 +54,10 @@ class WablasService {
$settings = $pdo->query("SELECT setting_key, setting_value FROM settings WHERE setting_key LIKE 'wablas_%'")->fetchAll(PDO::FETCH_KEY_PAIR);
$token = $settings['wablas_api_token'] ?? '';
$secret = $settings['wablas_api_secret'] ?? '';
$serverUrl = $settings['wablas_server_url'] ?? '';
if (empty($token) || empty($serverUrl)) {
if (empty($token) || empty($serverUrl) || empty($secret)) {
error_log("Wablas settings missing.");
return ['success' => false, 'error' => 'Settings missing'];
}
@ -70,6 +75,7 @@ class WablasService {
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, [
"Authorization: $token",
"Secret: $secret",
'Content-Type: application/json',
'Content-Length: ' . strlen($jsonData)
]);
@ -209,4 +215,4 @@ class WablasService {
return self::sendTemplatedMessage($case['contact_phone'], 'case_donation_notification', $vars, $lang);
}
}
}