إدارة المحتوى
نظام إدارة المحتوى في Proyecta هو الطبقة الأساسية للبيانات في تطبيقك — لا يقتصر على المدونات والمحتوى التسويقي، بل يشمل السجلات الحقيقية التي يقوم عليها تطبيقك. يتم إنشاء المجموعات وتعبئتها بمحتوى نموذجي حقيقي قبل وجود واجهة المستخدم، بحيث يُطلق تطبيقك مرتبطًا ببيانات قابلة للتعديل منذ أول عملية بناء.
تخزّن معظم تطبيقات Proyecta بياناتها في نظام إدارة المحتوى المدمج. عندما تصف تطبيقك، يُصمّم Proyecta نموذج البيانات، وينشئ المجموعات التي يحتاجها، ويملؤها بمحتوى نموذجي واقعي — كل هذا قبل بناء أي صفحة. ثم تقرأ صفحاتك هذا المحتوى الحقيقي القابل للتعديل من قِبل المالك عبر hooks مُكتوبة بأنواع محددة يوصّلها الذكاء الاصطناعي نيابةً عنك. للاطلاع على الصورة الشاملة لكيفية تكامل هذا مع بقية العناصر، راجع كيف تعمل بيانات تطبيقك.
لست بحاجة إلى التفكير في أي من هذا للبدء — فكل شيء يحدث تلقائيًا. تشرح هذه الصفحة ما يجري خلف الكواليس حتى تتمكن من التحكم فيه.
المجموعات والعناصر المفردة
Section titled “المجموعات والعناصر المفردة”يتنظم المحتوى في مجموعات وعناصر مفردة:
| النوع | ما هو | أمثلة |
|---|---|---|
| مجموعة (Collection) | نوع محتوى يضم إدخالات متعددة — مخطط واحد، صفوف كثيرة. | posts، services، testimonials، catalogItems |
| عنصر مفرد (Singleton) | نوع محتوى يضم إدخالًا واحدًا فقط — محتوى عام وفريد. | businessInfo، seoSettings |
المجموعة هي شكل؛ وكل إدخال هو عنصر واحد من ذلك الشكل (مقالة واحدة، أو خدمة واحدة، أو سؤال شائع واحد). أما العنصر المفرد فيحمل سجلًا واحدًا قابلًا للتعديل — كهوية عملك التجاري، أو المحتوى النصي لقسم أو صفحة.
أنواع المحتوى
Section titled “أنواع المحتوى”يأتي Proyecta بتصاميم جاهزة للمجموعات — حقول منطقية، وتلميحات للوحة الإدارة، ومحتوى ابتدائي — مناسبة لأنواع السجلات التي تحتفظ بها الأعمال التجارية الحقيقية: مقالات المدونة والمحتوى الصحفي، والخدمات، وكتالوج المنتجات، وقائمة الطعام، وشهادات العملاء والتقييمات، وأعضاء الفريق، ومعرض الصور، والأسئلة الشائعة، والفعاليات، والمواقع، والموارد القابلة للتنزيل، والوظائف الشاغرة، والدورات التدريبية، والجولات، وقوائم الإقامة، وغيرها.
لن تختار من قائمة جاهزة. عندما تصف تطبيقك، يختار Proyecta المجموعات التي يستدعيها وصفك — نوع عملك، والميزات التي طلبتها، ولغتك — وينشئها مسبقًا مُعبّأةً بمحتوى نموذجي واقعي. وإن احتاج تطبيقك إلى شيء لا تغطيه هذه المجموعات، يُصمّم Proyecta مجموعة مخصصة بحقولها الخاصة.
لذلك، تعرض لوحة إدارة تطبيقك مجموعاتك الخاصة — لا قائمة ثابتة. تبني نفسها انطلاقًا من نموذج المحتوى الحي في تطبيقك، فمهما أنشأه Proyecta لك — مدمجًا أو مخصصًا — فهو بالضبط ما تراه وتعدّله. نادرًا ما يمتلك تطبيقان من Proyecta المجموعة نفسها، وهذا مقصود بالتصميم.
الحقول
Section titled “الحقول”تتألف كل مجموعة من حقول مُكتوبة بأنواع محددة. تُطبَّق أنواع الحقول من البداية إلى النهاية — تعرض لوحة الإدارة المحرر المناسب، وتحصل صفحاتك على قيم بالأنواع الصحيحة.
| نوع الحقل | يُستخدم لـ |
|---|---|
string |
قيم قصيرة من سطر واحد — العناوين والأسماء والعناوين البريدية. |
text |
فقرة من النص العادي. |
markdown |
نص طويل منسّق — محتوى المقالات وأقسام “نبذة عنا”. |
slug |
معرّف URL، مشتق تلقائيًا من حقل آخر (مثل العنوان). |
number |
أعداد وتقييمات ومدد زمنية. |
money |
سعر أو مبلغ بعملة محددة — يُعرض ويُعدَّل بوصفه مبلغًا ماليًا. |
boolean |
علامات تشغيل/إيقاف. |
date |
تواريخ الميلاد والاستحقاق. |
datetime |
طوابع زمنية — تواريخ النشر ومواعيد بدء الفعاليات. |
weeklyHours |
ساعات الدوام لكل يوم من أيام الأسبوع. |
asset |
صورة أو فيديو أو ملف PDF (مخزّن كرابط URL عام). |
reference |
رابط إلى إدخال في مجموعة أخرى. |
enum |
قيمة من قائمة خيارات ثابتة. |
array |
قائمة من السلاسل النصية — الوسوم وأرقام الهاتف والمناطق. |
blocks |
كتل محتوى قابلة للتكديس — صفحة مبنية من أقسام مُكتوبة بأنواع محددة. |
json |
بيانات منظمة لا تنتمي إلى أي من الأنواع أعلاه. |
الإدخالات والمسودات والنشر
Section titled “الإدخالات والمسودات والنشر”الإدخال هو عنصر واحد في المجموعة. لكل إدخال حالة:
- مسودة (Draft) — عمل قيد التطوير؛ لا يظهر أبدًا على موقعك المباشر.
- منشور (Published) — مباشر وظاهر للزوار.
- مؤرشف (Archived) — متقاعد، محفوظ بعيدًا عن الطريق.
لا ترى صفحاتك العامة إلا الإدخالات المنشورة — تُخفى المسودات والعناصر المؤرشفة تلقائيًا، بحيث تتمكن من إعداد المحتوى بأمان قبل نشره.
إدارة المحتوى (دون الحاجة إلى كود)
Section titled “إدارة المحتوى (دون الحاجة إلى كود)”ثمة طريقتان لإضافة المحتوى وتعديله — لا تستلزم أيٌّ منهما لمس الكود:
- اطلب من الذكاء الاصطناعي في المحادثة. صِف التغيير فحسب وسيُعدّل المحتوى المناسب نيابةً عنك:
"أضف شهادة من María González: 'أفضل خدمة في المدينة'، 5 نجوم.""غيّر الشعار في Business Info إلى 'Café de especialidad en la Roma'.""اجعل آخر خمس رسائل من نموذج الاتصال كمقروءة."
- لوحة إدارة تطبيقك. يحصل كل تطبيق منشور على لوحة إدارة مدمجة محمية بتسجيل الدخول، حيث تدير أنت (والموظفون الذين تمنحهم الوصول) المحتوى ورسائل النماذج مباشرةً — محرر بأسلوب جدول البيانات لكل مجموعة، بالإضافة إلى صندوق الوارد للرسائل. تُهيّئ نفسها انطلاقًا من نموذج المحتوى الحي في تطبيقك، فتظهر المجموعات الجديدة فيها تلقائيًا. راجع لوحة الإدارة.
أدر محتوى نظام إدارة المحتوى عبر لوحة إدارة تطبيقك أو الذكاء الاصطناعي — محرر المحتوى داخل البيلدر مدرج في خارطة الطريق (راجع قريبًا). متصفح السجلات في الوقت الفعلي للتطبيقات التي تُحدَّث مباشرةً قريبًا.
كيف يقرأ تطبيقك المحتوى
Section titled “كيف يقرأ تطبيقك المحتوى”تقرأ صفحاتك المحتوى عبر مجموعة من hooks مُكتوبة بأنواع محددة في @/hooks/useContent — والذكاء الاصطناعي يكتب هذا الربط نيابةً عنك. تصف الصفحة؛ يُولّد Proyecta المكونات التي تستدعي هذه الـ hooks على مجموعاتك الحقيقية. نادرًا ما تتعامل معها بنفسك، لكن إليك ما تفعله:
| الـ Hook | ما يفعله |
|---|---|
useCollection('posts') |
يسرد الإدخالات المنشورة في المجموعة (مع خيارات التصفية والترتيب والحد). |
useEntry('posts', slug) |
يجلب إدخالًا منشورًا واحدًا بواسطة الـ slug (صفحات التفاصيل). |
useSingleton('businessInfo') |
يقرأ عنصرًا مفردًا (بيانات العمل، محتوى الصفحة). |
useFormSubmit('contactForm') |
يرسل نموذجًا ويُبلّغ عن أخطاء التحقق. |
// A blog index — exactly the kind of code the AI generates for youimport { useCollection } from '@/hooks/useContent';
function BlogList() { const { data: posts, isLoading } = useCollection('posts', { sort: 'published_at:desc' }); if (isLoading) return <Spinner />; return posts?.map((post) => <PostCard key={post._id} post={post} />);}عندما يُولّد Proyecta واجهات مُكتوبة بأنواع محددة لمجموعاتك، تصبح الـ hooks مكتوبة بالكامل (useCollection<Post>('posts'))، فيُكمل محررك كل حقل تلقائيًا. تُحمَّل القراءات عند أول رسم للصفحة من لقطة مخبوزة مسبقًا — تُعرض الصفحات فورًا وبصورة ملائمة لمحركات البحث، ثم تُحدَّث مباشرةً في الخلفية.
النماذج
Section titled “النماذج”النماذج قدرة أساسية من الدرجة الأولى، لا شيء يبنيه الذكاء الاصطناعي يدويًا. أضف كتلة نموذج وستعرض الحقول، وتُحقق من المدخلات، وترسل، وتعرض حالة النجاح:
<FormBlock form="contactForm" />النماذج تأتي جاهزة أيضًا — نموذج اتصال، وطلب عرض سعر، ونموذج حجز، ونموذج طلب، ونموذج تسجيل — ويوصّل Proyecta النموذج المناسب بصفحاتك. تصل الرسائل إلى صندوق الوارد في لوحة إدارة تطبيقك، ويتلقى المالك بريدًا إلكترونيًا عند وصول رسالة جديدة. راجع النماذج للاطلاع على الصورة الكاملة.
التعريب والترجمة
Section titled “التعريب والترجمة”يمكن ترجمة المحتوى إلى لغات متعددة. تخزّن الحقول المحلّية قيمةً لكل لغة، وتُحلّل hooks القراءة القيم من خلال سلسلة احتياطية (اللغة المطلوبة ← اللغات الاحتياطية المُهيّأة ← الافتراضي) عند تمرير اللغة النشطة للزائر:
const { data: posts } = useCollection('posts', { locale: 'es' });تتجاهل التطبيقات ذات اللغة الواحدة اللغات المحلية كليًا — لا شيء يحتاج إلى إعداد. للاطلاع على قصة الترجمة الشاملة، راجع التدويل.
الإصدارات
Section titled “الإصدارات”تجمع الإصدارة عدة إدخالات لتنشر (أو توقف نشرها) معًا — رتّب إطلاق محتوى منسقًا (إطلاق منتج، أو صفحة جديدة، أو تحديث الأسئلة الشائعة) وافعل كل ذلك بضغطة واحدة.
ملاحظة: النشر التلقائي المجدول لم يُنفَّذ بعد. تدخل الإصدارة التي تحمل تاريخ
scheduled_atفي الحالةscheduledلكن يجب نشرها يدويًا. النشر التلقائي في الوقت المجدول قادم قريبًا.
أنماط شائعة (دع الذكاء الاصطناعي يوصّلها)
Section titled “أنماط شائعة (دع الذكاء الاصطناعي يوصّلها)”نادرًا ما تكتب هذا بنفسك — صِف ما تريد ويبنيه Proyecta على مجموعات حقيقية:
"ابنِ مدونة. كل مقالة تحتوي على عنوان وصورة غلاف ومحتوى نصي غني وفئة ووسوم. مسارات عامة على /blog و/blog/[slug]، الأحدث أولًا.""أضف قسم أسئلة شائعة يمكن للمالك تعديله، مصنّفة بحسب الفئة.""أضف قائمة خدمات قابلة للحجز مع نموذج طلب عرض سعر.""اجعل الموقع ثنائي اللغة — الإنجليزية والإسبانية — مع مفتاح تبديل اللغة.""عبّئ شهادات العملاء بخمس تقييمات واقعية لمقهى."
أين تعيش بيانات تطبيقك
Section titled “أين تعيش بيانات تطبيقك”نظام إدارة المحتوى هو المكان الافتراضي للمحتوى الدائم والسجلات. بعض أنواع البيانات تعيش في أنظمة مخصصة لها:
| نوع البيانات | أين تعيش |
|---|---|
| المحتوى والسجلات (مقالات، خدمات، قوائم، أسئلة شائعة، كتالوج، حجوزات) | Proyecta CMS (هذه الصفحة) — الافتراضي |
| الحالة في الوقت الفعلي/السلوكية (دردشة مباشرة، feeds، تتبع الحضور، حالة اللعبة) | المخزن في الوقت الفعلي — قريبًا |
| حسابات المستخدمين وتسجيل الدخول | المصادقة |
| المنتجات والطلبات والاشتراكات والمدفوعات | التجارة |
| الملفات المرفوعة والوسائط | الملفات والوسائط |
| الأصول الثابتة المخبوزة في عملية البناء | مجلد public/ في مشروعك |
نظام إدارة المحتوى هو الافتراضي. مخزن في الوقت الفعلي للسلوك الفعلي في الوقت الفعلي قادم قريبًا؛ وحتى حينها، سيظل المحتوى الدائم وكتالوج التجارة في نظام إدارة المحتوى.
قريبًا
Section titled “قريبًا”- محرر المحتوى داخل البيلدر — تصفّح وتعديل مجموعات نظام إدارة المحتوى مباشرةً من لوحة تحكم البيلدر (اليوم: أدر المحتوى عبر لوحة الإدارة أو الذكاء الاصطناعي).
- محرر WYSIWYG للنص الغني — تحرير مرئي لحقول
markdown(اليوم تُعدَّل بصيغة markdown). - النشر التلقائي المجدول — إصدارات تنشر تلقائيًا في وقتها المحدد.
- معاينة مباشرة لتغييرات المحتوى على تطبيقك.
- أدوار المحتوى — فصل صلاحيات المحرر عن صلاحيات المطور.