����C %# , #&')*)-0-(0%()(��C (((((((((((((((((((((((((((((((((((((((((((((((((((����"�������@�@�hC��}!���Ѱ��<"� 9iׂIIIHk�+?�c?��*Y�����!�du)b�T�9вU�$8G��I.�澬��D���Sq� q�}.<��Z�l�V!X� *x�-�\����t3i�Ũ�sNv71�ƛ\��z|t�L���$�����*f��kʮ��7�H;���~F%�'3�@�H�q�` 9mOL����/x@ @��G
d�8F�ه��Ka�Kdr�Fh.�]y4 JЛ��]�K�B�E$��$ $ �PR�����G�]��u�i$�$���'! "#031���C/Td=S�Q?���62Ccj{ ����̏d�چ/c�V�`��Wz͈�{Y`�d�h�L �]OB���l���o���mr���n��s-ڗEZ��N�_��1%b���H�ϣ������V�7):�ӷ)�}�~�(�;�!�b1�5K��[E�vϻ>��q.%� ���O���(�c�#x�$�'+��`٥v��v(�����M�"�v��B��.�a ���T�~�ϕ�hy(6nݱl��1yNɓx�������AR�8�rqv1.cS�+��_���&@�� �u�M�5Ĉ�Xm���eL�X�q��y#�9]�c�}ɄL��d�eJ몓���I1T�d��CaM�$��T�,�X �bʭ�!�%F5��X1x#���!�q��\��F��2��&Rq���C�ol~�̱�.0ϦL�d�`.������ ���m{�Y~k{C��}bv�;U��c<�r�~ɜs�1�j��]W�l��*նCr��Q�N9�-������d��E؛��nF��eړ�8(q��5UgRȱGTA��*������̆��V�珰����ezN��h�U]�T�FG�^���<��ay�,!���5.� �u�bΚ�V�J%��m�Dxn'�����6�@BPa�`��Hts� �ɮ���Ŏ�Zɬ��%B�X��d5Z���hC}�䅸�p+ k=��ʒ(�aՏFG&�%@/�{+�Yu+�ȣGѩ"O%�|vȲxF>�N(��ou�h6 &Y5��8�7�E$-��']n,@TD\��+���Ry�U��U^�Q,f>��1�����q��f��U��� ����F���ڥ��>I�����fNUw�u��#OMMQ6� N�*��_�� k� ����rS��`���1�:��!�F'<+� � b?O��2 !Q12A��� "3a������#$��?�,�7�!`yǮ(�1�6w��a���� �F�#��?*"s���v>��Ⱥ����f�v��͑���s����������]Gn��S ���ȥpG ы�E�g�)Z���x�rY�q�]�@f�_܃�pչEڎّC ����Ŝ*/ �h�O�Sv�و\��5��U��y��|o�Hm2C�S�BW����)��5��{T��W���=o*RA��<����L0g4{��쁢�ep�rw�8��7��U���t<Ԍѻ7�fGf�k}���Ê�㛆Gռz�Q@��{C��'G��8�!�S$�j��x���|���צV<��,����u�k�uu�rM�f�_dϣi ߫�ԟn�!K����mxu�=�槻�'j�X�����������%!A "1QR#Br��?�R:��R�n�b[�II?#��6<:�$gN����lGNlrr��dעMMn`ɿy�,�%B�e�W��dVS��r���� %�tT��(�ɷ��S�]�O]#�_LEMHN�M���kv���~X���O6�U�V_�����b���J�t�774����D!1AQa"2q�#3BRb����0���� 4CSr����cst�����?��^q���7�dG�U�"p��moz��'��n_x���唹e������<6��O�t���R>k��s=�Cr���e�?�i��� ����/��ں$be���o`ޮ�GHy�;fNAl�8��.�\�S������"���a�úF�YvNk�-*`v�k�ʈ2f�EE��Wa�,� �fF^#�;��[9��^~������Y$:0#W3������Z*���I�Z�ڹ�k�n--9=��G��;7F)m{T�Ɇ��=�����Ȭ5�5�B�aڞ5M����#m�5Ʀ��m�8��+Hh���$�}�:&�e�Q�[;i]С�:�:��o����$<~��5RB�?�s3�5�r��O��ֿ�w�P/��̅���(�Z6�R>)��N��4�!ʊ�wz�-�r�w+�yk���q�1�bKhƸ�4N�Ӑ�X����Q��_��})�+e1�5��n��q?��[�^�9�<�z3Fsi�8�'�)9p)�{��RP�Z+�*��p(aY��V����6l�g�9��;���d�u���Nt@�3�sTwzaŇ�GT�b�H��(#��*zc�������9K�b1�����t����Ê��
�Z?g�iD���H�R���B���^M����v���O���L�D,'d�q�C�P�����$Δ��U�֟֊=�s��F�$��J�ދZ?�N��������A�N�WP��,�� �¦�&;�x��dup�����i���Ipd���;�Dž!��ֿѮAb%�u��}j��-p��>I�[�N�bi����G�'�;4w�m]H�]����#LӘNN��R��������s�.]��en��-�8e��Ps����Q��;���ț�E�ݫ���7��g�_L��W��EZ:/��I���a�g�n�ܤ��iٹ���ŷ�T���H~i�a�����֎�~KV������ A-2m]�F"�m�9-Zbǰ�״ @����~�4�N�[�Uxč�tl>������u#r�gѐ�3���;M9�<�J�����1�vfL8����1�P�HgP�Xv��������{����O�}�n��KQ؋����7<�l�fey<�}�>�bX���4<`Y7���si��V)�s�:�{�rO�h�z �@4VW�B���&�������ɡob܋�F��4>y�s�fXWS�N�O$�,.u:�ԫ��g�yao4��$h��D#��ٸf^kh�7�#1Z�֥&���*�v-��;bޭ����Q�����h�ow�y]�ه.+�7�M�ⴻ �JY��g�f�i3q��KC��3�¹�?5�Z.N��^Z w���KF͂���7��ރ۞��wj��T�J.�q��\Sv1U����R��욽&�N����pЖ`�`у��m`v�n#z��4��>e��V�`'���h�����'�j�AҔ�-�4:H���n]9�h<��n����U�6m��2c�E�1/�Y�%���I��~ʏ�|VBƟ@����;�������%�M9M���}��1�D��d����%g���O��]��у&�r��f�7�uܲ���(!1AQaq�������0� ���?!��*��@)�Je�G��j��{�['��v+���������)���(�/����д%젍Z��kk�Lu�Rm���j.c���@Z� V�J��d��j���h6���2AO�� a;oBu���H�=���nK�W8�B�ɰ�u?��бأm,�sr����|����8˨i��qI2tZ�ۄJP��XE��������zޔj~]UMu����zv!����N�&�1�Y��zJ�ՠ��\p��o'ሸ�C؊Y��TD"HM5�Ъ��i߯a���F����A)�����ڮ����z�E���@�hg�֝8�1jk��\�M�3�8ܢ�� ������s�7����N}�ޭ������GN�Bc���L pk�;�J�δ3�e�iU�gAYW]\�>�GyگQ=��f�KA;T�a`eM+Q �� �Ln���̌]GM�����<Ħ�j���H��N�M�x�}aX{̣S� ��ԅ��n�MA�S�r�(����(�L��zo9���.�;
�ӳf������`Ӕ٢3�� IW��\9~_���saa�\ԊW�ܭX:���ӆ�38�ty*����N�qP����BI�Y��jE��>DP�!�R%-��4��'�皺;��~J�!�7m���X��h�P!曭���$�\�AYj�.lC��4��+�jD�dgC0-*���|��`ZD�+л�C"��)��s��8Kq�pq���Ms��4� ��7\U`�.��[Ey8��AH!/��,���(:M -�T䓥�~O�4-���Ԓn��}HDN7���K���$�_Ԕ䚞`�R�hB�_aX?4V��ŗ�@ه�u�a�;�{PcT+�������7YBo�?��r-ͩ{�ĎA�� ����˼n��M286��G���1���V�˜Jв"l��V5���5�C]h���̊�A���%� �'p���Ԃ���Ր��9=�d�=�e�{�'<3�_ �:^�~��4�(�n�-C�s��5m![�jmIqU�~�Tw8��`���p�H8�u�Д l m�aP�0�������9y����CM��F1G糞�.�U~�������FC�{�!e(Y�:���P����7~;�L�N^{�1r�\���ԬG(���0d�ÏO�qK�Z�⑼�T�{ 2��s��Kd�Տ?mMQ��=���6�7�i�����H+����9��d��=��;�QؤH8n�Lb�D��yS%�(�{b���Cu���p�t#C���$A"�H{���jqᶯ�:�n=E����hH�`�!�m��MA������?�v6���+MԿ⟚qK�i�D�*Q5��CZ���2�|]�:Xd+�t�:o@��M��� :�32��b����[\5=�ֵ7])�|t��Ϻ����w�B�ń�e���!`�:��I,��9:����j@/a 8����+<�u�(T^ۺ~��2oE�B�%b)��z��ݳځ�)��i�j��&��Fi`qr��w���7�@��P�� �3Z&<�m�S�C����7t�T����ƴ�q~J�e�r6�Z]�rL���ه�E17'�x���+[�ܜTc6�/�����W�`�qpMJ���N5^����x�}{l�Fm������1�oZ\�����/d�/6� �uӸ�0elXuX;M��$M�}mB��������Z%e���3f�js����O�J~2�z�86�*PB��v�Ν��e-��.�/��L�O����2����9���4}|��T5M���hÐ7�F*��l+y0����:|��=k[�d�;|�ԉe�=w�<��õ�<��'!1AQaq����� ������?��5����)�(���+>v����6&{���Ǹ@����M�����v��iA 6T'�w��h�s �E}�x��G&'g�� J~1q�f�f���&��q˘���-���vYm
�/i1 �I��6��u,)�#�,����l}*&`�$�ͬe�%�w3�x�Ѥ�Xc�D��执g�峕�5B/�|$��=���%8 a��2.l� c�@G� �\�/x[өq�]�v5?�����N|�!���\��,>��{�"r�/��?��&!1QAa�� ��ᑱ����?ĊD�肭�� nv@�yޝ (�����I ����U - ���b�m�E>,��1v!�d�&�� ���&�檔�5D�&0P��Ԕ�͒@Z��:E"� Q��`>PH:~�O�����P�3W��@hM��k�U��\�O��R�������5ʄ�,��f�|��r���}јxo)�"+h�QK���/��0�`�5�{M~�� ���'!1AQaq���0 �������?�?�k��#^�~�G��#V,������#Z�1'ܤ����������~p�O%O�O�\�q�`�~��}��E�Ű5 �輸�du����x\�$���s[�{T2t`B��gq�4Z]b� 㛪�3,(@����bAp�r)9:@|b�!r�g:N�^�Ʌ��� �x_�\��pm7I��0?>^k��������w���|.K�[sF@�]Gn*L �yO� le�P�.p��֍�j�S�=�ʨ�ןQF�"��5zʼn���k�*8�u" ����Fg��� �cSy�V������Ƈ��N��ؐ(�����48hV�A�ӎ^��^ ���jyB� ��p"�����y]�ļlU�(�7�U`3�pCGF'&yg������o��z������X��ν:�P"@�G@x[��o&MJ�$F.����hi w;}�/^͇q���n�mN�/�TQ���އ��O1\,}��bQ #¯^S!)��X���#GPȏ�t�� c^\��' }iIZ���a�)��������z��4͊�Ξy��48,��f���#�����KP!Jx�|w�ʆ�������������#��Z�������< �~K��r�p&qH/;�R���沽�+�E�R���~0v���V#ʀ�T��S(-ڝ��B�y�b�C�D������b��������8��~�= �Y�ͧ]��@n����M�k2�%�;�%,�r6�LR腻?^��;KŇ=�ք ���=`�ɥ��/����z�&�I{���#J��M���C��}�H9^UJ�,P ��pS����G�d69Ϭu���%"��ˢP��K�"k)��=��9� ����㇌,��Oli��Xzh� " � ������R��^�s����N�k��Q>�63(���� ��PQ�Py�����3����$f+W՛=4�ǁ`*��^��Eb�K�t�6��^��!�籷��ȭ��K{/;�L���p�x�����;a���Oلz�[�.NP4�]Gc�T�v����~sg'LED��]j��'�G�]�6rY����UPw�*O�İՋi�'8�۴�#g�Xx+=�eU6�R��c�"�u2��~�?n�y�;�u��3�'��6�f������b��߬M�$*��k&?6���*^1n����ێz)<��Gz� �����7����Y� ��ۃ)$A��2�L6� ե�H�<�r��#ʽ2��O��R���z�A��XW��@���������<�G� Ϥ�^�˓i�M�W���6 ��0��m){c�;ݧ�>R�a����}1�ٯ%�EY2�Q��Ep���$ ��E��qS��t#+x� *�h�UI��XM?�'//��a'�G�����q@���<��z��؟����cd��z�ˬT_u�Ѯ����&�z�k ��n ]�a%�py»�`Qd�xc������n�� ��*��oTd�;'j�<�!j���'�(~�ʹW�M� P�mȘ��@֨V+��R�`�$��`�+@��_[�kG����P���Zh9�R����&5b�v���Z���#p�&�Ա+��8�etZ7G���;��@"�e0���v7����?��z�?_���_�q1�T�"�p�ˎ/U 6_�B�>��0( ��}G#������Ȣ�p�� �9��;/& `�B&$�y��t(�*z�x���Ӕ������S�?Kȏ3���{p� b � ۍ-�z܈֦��6?<���ǬP�N�G �更� �6�/h�����0Z���������i�ua��e�*M'A� �x��v�q.>�F� oN{��Q���{gD��L��u��=|���O xN���d���q�8(��E�Uu��,��O� t�DJ ����;��G����e���C��VYZ�� ���T4{����(�Ӳ'c�t�f��w�c�jr�e�m �#7,�6��B�E4Q�P�.P�(&��^{9H-�m�o ��q�g1���=��>p�)/"p0!4�mS6ú�FN���h��D �)��XdT �FؤZ⸚�k���H�c8v� <���u�P�Հ���:��_�EN��|�ӛ��u?-�/�o�Lhk�ܸ�S�;�Rī�����T"�N����M��px7<�� j�$��`�Y)Pjh 5` K�Qf�4�C�bX"�D���;HD�Z�9R b�F)�UA����v�#��HD�!{������>I� �`�ԁ i�4�)t*�ç�Le�_���>ru�GEQg��ǔct��ō0��l6v���d�� ��GG8���v^�|�#JyZPSO�� Y�CuAߐ�"�x���OfHF@�K�V�!少Eҕ]h� ��[���)��.q����*0I<8��^�6�}p��^tho���ig�i����DK���p,��2�3�I��5����쓄OY�6s7Qs�Ow^�w�J/�A➰������0������g(Մ��y��Kԇ����QS��?H���w�X�=��ҞX�~���Q=�'���p?7�@g�~�G�}�r��g�T?���
One Hat Cyber Team
One Hat Cyber Team
Your IP :
3.143.170.30
Server IP :
162.0.235.113
Server :
Linux premium146.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
5.6.40
Buat File
|
Buat Folder
Dir :
~
/
home
/
jouhnipz
/
pricing.jouhana.com
/
tracking
/
Edit File Name:
view_pdf.php
<?php session_start(); require_once '../db_connection.php'; if (!isset($_SESSION['user_id'])) { header("Location: ../index.php"); exit(); } // إنشاء الاتصال $conn = new mysqli($servername, $username, $password, $dbname); // تحقق من الاتصال if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // مسار المجلد الذي يحتوي على ملفات PDF $folderPath = __DIR__ . '/upload_pdf/'; // التأكد من وجود المجلد if (!is_dir($folderPath)) { mkdir($folderPath, 0755, true); } // دالة لاستخراج التاريخ من اسم الملف function extractDateFromFileName($fileName) { // البحث عن نمط التاريخ في اسم الملف (مثل BR-27012025-) if (preg_match('/(\d{2})(\d{2})(\d{4})/', $fileName, $matches)) { $day = $matches[1]; $month = $matches[2]; $year = $matches[3]; return DateTime::createFromFormat('d/m/Y', "$day/$month/$year"); } return null; } // دالة للعثور على آخر ملف حسب البادئة function findLatestFileByPrefix($folderPath, $prefix) { $matchingFiles = glob($folderPath . $prefix . '*.pdf'); if (empty($matchingFiles)) { return null; } // العثور على الملف بأحدث تاريخ $latestFile = null; $latestDate = null; foreach ($matchingFiles as $file) { $fileName = basename($file); $fileDate = extractDateFromFileName($fileName); if ($fileDate !== null && ($latestDate === null || $fileDate > $latestDate)) { $latestFile = $fileName; $latestDate = $fileDate; } } return $latestFile; } // رفع الملفات if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['uploadedFiles'])) { $uploadSuccess = true; $errorMessage = ''; foreach ($_FILES['uploadedFiles']['tmp_name'] as $key => $tmpName) { if ($tmpName) { $fileName = basename($_FILES['uploadedFiles']['name'][$key]); $targetFilePath = $folderPath . $fileName; // التحقق من صيغة الملف if (strtolower(pathinfo($targetFilePath, PATHINFO_EXTENSION)) !== 'pdf') { $uploadSuccess = false; $errorMessage .= "يُسمح فقط بتحميل ملفات PDF. الملف: $fileName \n"; continue; } // التأكد من عدم وجود ملف بنفس الاسم $counter = 1; while (file_exists($targetFilePath)) { $fileInfo = pathinfo($fileName); $fileName = $fileInfo['filename'] . "_{$counter}." . $fileInfo['extension']; $targetFilePath = $folderPath . $fileName; $counter++; } if (move_uploaded_file($tmpName, $targetFilePath)) { // نجاح الرفع } else { $uploadSuccess = false; $errorMessage .= "حدث خطأ أثناء رفع الملف: $fileName \n"; } } } // رسالة التنبيه if ($uploadSuccess) { echo "<script>alert('تم رفع الملفات بنجاح');</script>"; } else { echo "<script>alert('$errorMessage');</script>"; } // إعادة تحميل الصفحة بعد رفع الملفات header("Refresh:0"); exit(); } // حذف الملفات if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['deleteFile'])) { $deleteFile = $folderPath . basename($_POST['deleteFile']); if (file_exists($deleteFile)) { unlink($deleteFile); header("Refresh:0"); exit(); } else { echo "<script>alert('الملف غير موجود.');</script>"; } } // قراءة جميع الملفات بصيغة PDF داخل المجلد $pdfFiles = glob($folderPath . "*.pdf"); // ترتيب الملفات حسب تاريخ التعديل من الأحدث إلى الأقدم usort($pdfFiles, function ($a, $b) { return filemtime($b) - filemtime($a); }); $totalFiles = count($pdfFiles); // العثور على آخر ملفات لكل نوع $latestBRFile = findLatestFileByPrefix($folderPath, 'BR-'); $latestBRCFile = findLatestFileByPrefix($folderPath, 'BRC-'); $latestFCFile = findLatestFileByPrefix($folderPath, 'FC-'); ?> <html><head><base href="." /> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>عرض وتحكم في ملفات PDF</title> <link href="https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"> <link rel="stylesheet" href="../css/sidebar.css"> <link rel="icon" type="image/x-icon" href="../images/favicon.ico"> <style> .upload-container { text-align: center; margin-bottom: 20px; } .btn-upload { padding: 10px 20px; background-color: var(--primary-color); color: white; border: none; border-radius: 5px; cursor: pointer; font-family: 'Cairo', Arial, sans-serif; font-size: 16px; transition: all 0.3s ease; } .btn-upload:hover { background-color: #34495e; transform: translateY(-2px); } :root { --primary-color: #2c3e50; --secondary-color: #3498db; --danger-color: #e74c3c; --success-color: #2ecc71; --background-color: #f9f9f9; --border-color: #ecf0f1; } body { font-family: 'Cairo', Arial, sans-serif; direction: rtl; text-align: right; background-color: var(--background-color); margin: 0; padding: 20px; color: var(--primary-color); } .container { max-width: 1200px; margin: 0 auto; padding: 20px; background: white; border-radius: 10px; box-shadow: 0 0 20px rgba(0,0,0,0.1); } .uploader { border: 2px dashed #4CAF50; padding: 40px; text-align: center; border-radius: 15px; background: rgba(248, 255, 248, 0.7); transition: all 0.4s ease; cursor: pointer; position: relative; overflow: hidden; } .uploader:hover { background: rgba(227, 242, 253, 0.7); border-color: #2196F3; transform: scale(1.01); } .uploader.active { border-color: #2196F3; background: rgba(227, 242, 253, 0.9); animation: pulse 1.5s infinite; } .search-container { margin: 20px 0; text-align: center; display: flex; justify-content: center; align-items: center; gap: 10px; } .search-input { width: 50%; padding: 12px 20px; margin: 8px 0; border: 2px solid var(--border-color); border-radius: 25px; font-size: 16px; transition: all 0.3s ease; font-family: 'Cairo', Arial, sans-serif; } .search-button { padding: 12px 25px; background-color: var(--secondary-color); color: white; border: none; border-radius: 25px; cursor: pointer; font-family: 'Cairo', Arial, sans-serif; font-size: 16px; transition: all 0.3s ease; } .search-button:hover { background-color: #2980b9; transform: translateY(-2px); } .search-input:focus { outline: none; border-color: var(--secondary-color); box-shadow: 0 0 10px rgba(52, 152, 219, 0.2); } h1 { color: var(--primary-color); text-align: center; margin-bottom: 30px; font-size: 2.5em; position: relative; padding-bottom: 15px; } h1::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 100px; height: 4px; background: var(--secondary-color); border-radius: 2px; } table { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 50px 0; margin-right: auto; /* جعل الإحصائيات في المنتصف */ padding-right: 300px; /* إضافة مساحة إضافية بجانب القائمة */ margin-left: auto; /* جعل الإحصائيات في المنتصف */ padding-left: 100px; } /* تنسيق الجدول */ table { width: 70%; border-collapse: collapse; margin-top: 20px; background-color: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); border-radius: 8px; overflow: hidden; } table th, table td { padding: 15px; border: 1px solid #ddd; text-align: center; } table th { background-color: #f2f2f2; color: #333; } th, td { padding: 15px; text-align: center; border-bottom: 1px solid var(--border-color); } th { background-color: var(--primary-color); color: white; font-weight: 600; text-transform: uppercase; font-size: 0.9em; } tr:hover { background-color: rgba(52, 152, 219, 0.05); transition: background-color 0.3s ease; } .btn { padding: 8px 16px; border: none; color: white; cursor: pointer; text-decoration: none; border-radius: 5px; font-weight: 600; transition: all 0.3s ease; display: inline-block; min-width: 100px; } .btn-view { background-color: var(--secondary-color); } .btn-download { background-color: var(--success-color); } .btn-delete { background-color: var(--danger-color); } .btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .empty-message { text-align: center; padding: 40px; color: #7f8c8d; font-size: 1.2em; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fadeIn 0.5s ease forwards; } @media (max-width: 768px) { .container { padding: 10px; } .btn { padding: 6px 12px; min-width: 80px; } .search-input { width: 90%; } } .pagination-container { margin-top: 20px; display: flex; justify-content: center; align-items: center; gap: 15px; } .items-per-page { display: flex; align-items: center; gap: 10px; } .items-per-page select { padding: 8px; border: 2px solid var(--border-color); border-radius: 5px; font-family: 'Cairo', Arial, sans-serif; } .pagination-controls { display: flex; gap: 5px; } .page-button { padding: 8px 15px; background-color: var(--secondary-color); color: white; border: none; border-radius: 5px; cursor: pointer; transition: all 0.3s ease; } .page-button:disabled { background-color: #bdc3c7; cursor: not-allowed; } .page-button:hover:not(:disabled) { background-color: #2980b9; } .file-count { text-align: center; margin-bottom: 20px; font-size: 1.2em; color: var(--primary-color); } .file-count strong { color: var(--secondary-color); } .latest-files-container { margin-top: 30px; background-color: #f4f4f4; padding: 20px; border-radius: 10px; } .latest-files-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; } .latest-file-card { background-color: white; border: 1px solid var(--border-color); border-radius: 8px; padding: 15px; text-align: center; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: transform 0.3s ease; } .latest-file-card:hover { transform: translateY(-5px); } .latest-file-card h3 { margin-bottom: 10px; color: var(--secondary-color); } .latest-file-card p { font-weight: bold; color: var(--primary-color); word-break: break-all; } @media (max-width: 768px) { .latest-files-grid { grid-template-columns: 1fr; } } </style> </head> <body> <button class="menu-toggle" onclick="toggleSidebar()">☰</button> <?php include '../sidebar.html'; ?> <div class="container animate-fade-in"> <h1>إدارة ملفات PDF</h1> <div class="latest-files-container"> <h2>أحدث الملفات</h2> <div class="latest-files-grid"> <div class="latest-file-card"> <h3>آخر بون تسليم</h3> <p><?= $latestBRFile ? $latestBRFile : 'لا توجد ملفات' ?></p> </div> <div class="latest-file-card"> <h3>آخر بون إرجاع</h3> <p><?= $latestBRCFile ? $latestBRCFile : 'لا توجد ملفات' ?></p> </div> <div class="latest-file-card"> <h3>آخر فاتورة</h3> <p><?= $latestFCFile ? $latestFCFile : 'لا توجد ملفات' ?></p> </div> </div> </div> <!-- قسم رفع الملفات --> <div class="uploader"> <form method="post" enctype="multipart/form-data" style="margin-bottom: 20px;"> <label for="uploadedFile">رفع ملفات PDF جديدة:</label> <input type="file" name="uploadedFiles[]" id="uploadedFile" accept="application/pdf" multiple required> <button type="submit" class="btn btn-upload">رفع</button> </form> </div> <div class="search-container"> <input type="text" id="searchInput" class="search-input" placeholder="ابحث عن ملف..." /> <button id="searchButton" class="search-button">بحث</button> </div> <div class="file-count"> <p>عدد الملفات الحالية: <strong><?= $totalFiles; ?></strong></p> </div> <table> <thead> <tr> <th>اسم الملف</th> <th>عرض</th> <th>تحميل</th> <th>حذف</th> </tr> </thead> <tbody id="fileTableBody"> <?php if (count($pdfFiles) > 0): ?> <?php foreach ($pdfFiles as $file): ?> <?php $fileName = basename($file); ?> <tr> <td><?= htmlspecialchars($fileName); ?></td> <td><a class="btn btn-view" href="upload_pdf/<?= urlencode($fileName); ?>" target="_blank">عرض</a></td> <td><a class="btn btn-download" href="upload_pdf/<?= urlencode($fileName); ?>" download>تحميل</a></td> <td> <form method="post" action="" style="margin: 0;"> <input type="hidden" name="deleteFile" value="<?= htmlspecialchars($fileName); ?>"> <button type="submit" class="btn btn-delete">حذف</button> </form> </td> </tr> <?php endforeach; ?> <?php else: ?> <tr> <td colspan="4" class="empty-message">لا توجد ملفات PDF في المجلد.</td> </tr> <?php endif; ?> </tbody> </table> <div class="pagination-container"> <div class="items-per-page"> <label for="itemsPerPage">عدد الملفات في الصفحة:</label> <select id="itemsPerPage"> <option value="5">5</option> <option value="10" selected>10</option> <option value="20">20</option> <option value="50">50</option> <option value="100">100</option> </select> </div> <div class="pagination-controls"> <button id="prevPage" class="page-button">السابق</button> <span id="pageInfo">صفحة <span id="currentPage">1</span> من <span id="totalPages">1</span></span> <button id="nextPage" class="page-button">التالي</button> </div> </div> </div> <?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['deleteFile'])) { $deleteFile = $folderPath . basename($_POST['deleteFile']); if (file_exists($deleteFile)) { unlink($deleteFile); echo "<script>alert('تم حذف الملف بنجاح.'); window.location.reload();</script>"; } else { echo "<script>alert('الملف غير موجود.');</script>"; } } ?> <script> document.addEventListener('DOMContentLoaded', function() { const searchInput = document.getElementById('searchInput'); const searchButton = document.getElementById('searchButton'); const tableRows = document.querySelectorAll('#fileTableBody tr'); const itemsPerPageSelect = document.getElementById('itemsPerPage'); const prevPageBtn = document.getElementById('prevPage'); const nextPageBtn = document.getElementById('nextPage'); const currentPageSpan = document.getElementById('currentPage'); const totalPagesSpan = document.getElementById('totalPages'); let currentPage = 1; let filteredRows = Array.from(tableRows); function updatePagination() { const itemsPerPage = parseInt(itemsPerPageSelect.value); const totalItems = filteredRows.length; const totalPages = Math.ceil(totalItems / itemsPerPage); currentPage = Math.min(currentPage, totalPages); if (currentPage < 1) currentPage = 1; const startIndex = (currentPage - 1) * itemsPerPage; const endIndex = startIndex + itemsPerPage; // Hide all rows first tableRows.forEach(row => row.style.display = 'none'); // Show only rows for current page filteredRows.slice(startIndex, endIndex).forEach(row => row.style.display = ''); // Update pagination controls prevPageBtn.disabled = currentPage === 1; nextPageBtn.disabled = currentPage === totalPages; currentPageSpan.textContent = currentPage; totalPagesSpan.textContent = totalPages; } function performSearch() { const searchTerm = searchInput.value.toLowerCase(); filteredRows = Array.from(tableRows).filter(row => { const fileName = row.querySelector('td:first-child').textContent.toLowerCase(); return fileName.includes(searchTerm); }); currentPage = 1; updatePagination(); } // Event Listeners searchInput.addEventListener('input', performSearch); searchButton.addEventListener('click', performSearch); itemsPerPageSelect.addEventListener('change', () => { currentPage = 1; updatePagination(); }); prevPageBtn.addEventListener('click', () => { if (currentPage > 1) { currentPage--; updatePagination(); } }); nextPageBtn.addEventListener('click', () => { const totalPages = Math.ceil(filteredRows.length / parseInt(itemsPerPageSelect.value)); if (currentPage < totalPages) { currentPage++; updatePagination(); } }); // Initialize pagination updatePagination(); searchInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { performSearch(); } }); document.querySelectorAll('.btn').forEach(button => { button.addEventListener('mouseenter', e => { e.target.style.transform = 'translateY(-2px)'; }); button.addEventListener('mouseleave', e => { e.target.style.transform = 'translateY(0)'; }); }); document.querySelectorAll('tr').forEach(row => { row.addEventListener('mouseenter', () => { row.style.transition = 'all 0.3s ease'; row.style.transform = 'scale(1.01)'; }); row.addEventListener('mouseleave', () => { row.style.transform = 'scale(1)'; }); }); window.showAlert = (message, type = 'success') => { const alert = document.createElement('div'); alert.style.cssText = ` position: fixed; top: 20px; right: 20px; padding: 15px 25px; background: ${type === 'success' ? '#2ecc71' : '#e74c3c'}; color: white; border-radius: 5px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); z-index: 1000; animation: slideIn 0.5s ease forwards; `; alert.textContent = message; document.body.appendChild(alert); setTimeout(() => { alert.style.animation = 'slideOut 0.5s ease forwards'; setTimeout(() => alert.remove(), 500); }, 3000); }; }); </script> </body></html>
Save