- الرئيسية
- ما الجديد !
-
الصفحات▼
الصفحات
أهلا وسهلا بك زائرنا الكريم في منتدى دعم PBBoard الرسمي، لكي تتمكن من المشاركة ومشاهدة جميع أقسام المنتدى وكافة الميزات ، يجب عليك إنشاء حساب جديد بالتسجيل بالضغط هنا أو تسجيل الدخول اضغط هنا إذا كنت عضواً .
حول تعديل الصورة الشخصية
-
19-12-2025 07:59 مساءً
-
Sofiene2023معلومات الكاتبالأعضاءعضو فعال
- انضم في :
- 03-10-2023
- رقم العضوية :
- 9590
- المشاركات :
- 119
- الجنس:
- تاريخ الميلاد :
- 20-5-1979
- قوة السمعة:
- 1160
- موقعي:
- زيارة موقعي
-
قمت ببعض التعديلات لتغيير الصورة الإفتراضية للعضو من صورة لfontawesome
1. تعديل قالب الإدارة options_avatar.tpl لإدراج fontawesome زتحويل خانة كتابة مسار الصورة الإفتراضية من input إلى textarea
2. تعديل على ملف functions_class.php بتعديل الأكواد التالية
CODE$forum['writer_photo'] = $this->GetForumAdress().$PowerBB->_CONF['template']['image_path'].'/'.$PowerBB->_CONF['info_row']['default_avatar'];
3.تعديل على قالب sections_list بإسبدال img ب span
للأسف لم تنجح المحاولة وظهر تشويه في الستايل (الرئيسية في معلومات الموضوع)
ماهي الخطوات التي يمكن إتباعها ليتم التعديل
مع الشكر
-
-
حول تعديل الصورة الشخصية19-12-2025 10:18 مساءً [1]
-
Solimanمعلومات الكاتبالادارة العامةPBBoard developer
- انضم في :
- 18-07-2009
- رقم العضوية :
- 1
- المشاركات :
- 13421
- الدولة :
- KSA
- الجنس:
- الدعوات:
- 55
- قوة السمعة:
- 82296
- موقعي:
- زيارة موقعي
-
الفكرة بسيطة: نستبدل img بـ span ويحتوي على أيقونة Font Awesome عند كون عدم وجود صورة رمزية ، ونُبقي img عندما تكون هناك صورة رمزية حقيقية للعضو.
واضافة من عندي استخراج أول حرف من اسم العضو واضافته للايقونه + لون ايقونه مختلف لكل عضو
طبعا لا تحتاج لتعديل ملف functions_class.php فهو متغيير دائما بالتحديثات الدورية ولا ننصح بتغييره
وبما انك لم تضع كود FontAwesome سأطبق على مثال آخر من عندي
للتطبيق والتعديل في قالب sections_list
ابحث عن:
CODE{if {$_CONF['info_row']['allow_avatar']}} <div class="UserPhoto_tiny_RCS" title="{$lang['Picture']} {$forum['username']} {$lang['Personal']}"> <img src="{$forum['writer_photo']}" srcset="{$forum['writer_photo']} 2x" alt="Russ" class="avatar-u1-s" width="48" height="48" loading="lazy"> </div> {/if}
واستبدله بـ
CODE{if {$_CONF['info_row']['allow_avatar']}} <div class="UserPhoto_tiny_RCS" title="{$lang['Picture']} {$forum['username']} {$lang['Personal']}"> {if {$forum['avater_path']} !=''} <img src="{$forum['writer_photo']}" srcset="{$forum['writer_photo']} 2x" alt="{$forum['username']}" class="avatar-u1-s" width="48" height="48" loading="lazy"> {else} <?php $forum['username_first_letter'] = mb_substr($forum['username'], 0, 1, 'UTF-8'); ?> <span class="avatar-default avatar-u1-s" data-letter="<?php echo $forum['username_first_letter']; ?>"> <?php echo $forum['username_first_letter']; ?> </span> <style> .avatar-default { float: right; margin-left: 6px; width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; background: #dde3ea; color: #2f3a4a; border-radius: 50%; font-size: 20px; } .avatar-default i { line-height: 1; } .avatar-u1-s { border-radius: 50%; } .avatar-default[data-letter="أ"], .avatar-default[data-letter="ا"], .avatar-default[data-letter="ب"], .avatar-default[data-letter="ت"] { background: #e7f0ff; } .avatar-default[data-letter="ج"], .avatar-default[data-letter="ح"], .avatar-default[data-letter="خ"] { background: #e9f7ef; } .avatar-default[data-letter="س"], .avatar-default[data-letter="ش"], .avatar-default[data-letter="ص"] { background: #f1e9ff; } .avatar-default[data-letter="م"], .avatar-default[data-letter="ن"], .avatar-default[data-letter="و"] { background: #fff4e5; } /* إنجليزي */ .avatar-default[data-letter^="A"], .avatar-default[data-letter^="B"], .avatar-default[data-letter^="C"] { background: #e7f0ff; } .avatar-default[data-letter^="D"], .avatar-default[data-letter^="E"], .avatar-default[data-letter^="F"] { background: #e9f7ef; } .avatar-default[data-letter^="M"], .avatar-default[data-letter^="N"], .avatar-default[data-letter^="O"] { background: #fde8e8; } </style> {/if} </div> {/if}
النتيجة
- ألوان تلقائية حسب أول حرف
- كل عضو ليس له صورة رمزية تظهر له أيقونة FontAwesome بلون مميز
- دمج الحرف + أيقونة FontAwesome
- اللون لا يتغير
- أداء ممتاز
- يدعم الحروف العربية والإنجليزي بنسبة 95%
-
-
حول تعديل الصورة الشخصية19-12-2025 10:54 مساءً [2]
-
Sofiene2023معلومات الكاتبالأعضاءعضو فعال
- انضم في :
- 03-10-2023
- رقم العضوية :
- 9590
- المشاركات :
- 119
- الجنس:
- تاريخ الميلاد :
- 20-5-1979
- قوة السمعة:
- 1160
- موقعي:
- زيارة موقعي
-
بارك االه فيك أخي سليمان على الحل المميز
كيف يمكن إعتماد هذه الطريقة لتغيير الصورة الإفتراضية في جميع قوالب المنتدى
-
-
حول تعديل الصورة الشخصية19-12-2025 11:56 مساءً [3]
-
Solimanمعلومات الكاتبالادارة العامةPBBoard developer
- انضم في :
- 18-07-2009
- رقم العضوية :
- 1
- المشاركات :
- 13421
- الدولة :
- KSA
- الجنس:
- الدعوات:
- 55
- قوة السمعة:
- 82296
- موقعي:
- زيارة موقعي
-
لا يوجد تعديل واحد يمكنك تطبيقه على جميع الصور الرمزية وفي جميع القوالب
ستحتاج لأن تعدل كل قالب على حدى
مثال على تعديل الصور الرمزية الصغيرة التي تظهر في قالب whatis_new الذي يعرض مالجديد في القائمة الجانبية
التعديل سيكون بهذا الشكل
تبحث في السطر 53 عن:
CODE<span class="brd0" style="background-image: url(<?php echo $PowerBB->_CONF['template']['ForumAdress'].$PowerBB->_CONF['template']['image_path'];?>/{$_CONF['info_row']['default_avatar']}); width: 32px; height: 32px; background-position: center; background-repeat: no-repeat; background-size: 32px; display: inline-block; vertical-align: middle;"></span>
وتستبدله بـ :
CODE<?php $forum['username_first_letter'] = mb_substr($PowerBB->_CONF['template']['while']['lastPostsList'][$this->x_loop]['writer'], 0, 1, 'UTF-8'); ?> <span class="avatar-default avatar-u1-s" data-letter="<?php echo $forum['username_first_letter']; ?>"> <?php echo $forum['username_first_letter']; ?> </span> <style> .avatar-default { float: right; margin-left: 6px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; background: #dde3ea; color: #2f3a4a; border-radius: 50%; font-size: 20px; background-position: center; background-repeat: no-repeat; vertical-align: middle } .avatar-default i { line-height: 1; } .avatar-u1-s { border-radius: 50%; } .avatar-default[data-letter="أ"], .avatar-default[data-letter="ا"], .avatar-default[data-letter="ب"], .avatar-default[data-letter="ت"] { background: #e7f0ff; } .avatar-default[data-letter="ج"], .avatar-default[data-letter="ح"], .avatar-default[data-letter="خ"] { background: #e9f7ef; } .avatar-default[data-letter="س"], .avatar-default[data-letter="ش"], .avatar-default[data-letter="ص"] { background: #f1e9ff; } .avatar-default[data-letter="م"], .avatar-default[data-letter="ن"], .avatar-default[data-letter="و"] { background: #fff4e5; } /* إنجليزي */ .avatar-default[data-letter^="A"], .avatar-default[data-letter^="B"], .avatar-default[data-letter^="C"] { background: #e7f0ff; } .avatar-default[data-letter^="D"], .avatar-default[data-letter^="E"], .avatar-default[data-letter^="F"] { background: #e9f7ef; } .avatar-default[data-letter^="M"], .avatar-default[data-letter^="N"], .avatar-default[data-letter^="O"] { background: #fde8e8; } </style>
السطر الأهم هو هذا السطر
CODE$forum['username_first_letter'] = mb_substr(اسم العضو, 0, 1, 'UTF-8');
تضيف به المتغير الذي يجلب اسم العضو بلغة PHP
وهكذا على كل قالب
طبعا اكواد css يفترض ان تضاف في ملف css الخاص بالاستايل
بالتوفيق
-
-
حول تعديل الصورة الشخصية21-12-2025 09:13 صباحاً [4]
-
Sofiene2023معلومات الكاتبالأعضاءعضو فعال
- انضم في :
- 03-10-2023
- رقم العضوية :
- 9590
- المشاركات :
- 119
- الجنس:
- تاريخ الميلاد :
- 20-5-1979
- قوة السمعة:
- 1160
- موقعي:
- زيارة موقعي
-
شكرا أخ سليمان
كيف يمكن إضافة بعض التحسينات كأن يكون لكل عضو ستايل خاص به (لون النص ولون الخلفية) ويظهر في جميع صفحات المنتدى بعد تعديل القوالب
أظن أنه يجب أولا تخزين الستايل في قاعدة البيانات ثم إستدعاء الستايل عن طريق كود معين
بارك الله فيكم
-
-
حول تعديل الصورة الشخصية21-12-2025 05:04 مساءً [5]
-
Solimanمعلومات الكاتبالادارة العامةPBBoard developer
- انضم في :
- 18-07-2009
- رقم العضوية :
- 1
- المشاركات :
- 13421
- الدولة :
- KSA
- الجنس:
- الدعوات:
- 55
- قوة السمعة:
- 82296
- موقعي:
- زيارة موقعي
-
المشاركة الأصلية كتبت بواسطة: Sofiene2023 بتاريخ:
منعا للتشتت لو طرحت اسفتسارك الجديد في موضوع منفصل في قسم طلبات وحلول الملحقات البرمجية لكان افضل21-12-2025 09:13 صباحاً شكرا أخ سليمان
كيف يمكن إضافة بعض التحسينات كأن يكون لكل عضو ستايل خاص به (لون النص ولون الخلفية) ويظهر في جميع صفحات المنتدى بعد تعديل القوالب
أظن أنه يجب أولا تخزين الستايل في قاعدة البيانات ثم إستدعاء الستايل عن طريق كود معين
بارك الله فيكم
عموما يجب ان تقوم بعمل اضافة برمجية مهمتها تضيف خيارين في لوحة تحكم العضو في صفحة خياراتك الخاصة
القالب المعني : usercp_control_setting
لون النص: يفضل ان تكون الخيارات في قائمة منسدله يختار منها اللون المفضل بدلا من ادخاله كتابة
لون الخلفية: يفضل ايضا ان تكون الخيارات في قائمة منسدله يختار منها اللون المفضل بدلا من ادخاله كتابة
مثال لخيار لون النص:
CODE<tr> <td class="row1">لون النص</td> <td class="row2"> <select name="color_user"> <option value="">الافتراضي</option> <option value="red">أحمر</option> <option value="blue">أزرق</option> <option value="green">أخضر</option> <option value="purple">بنفسجي</option> <option value="black">أسود</option> </select> </td> </tr>
ومن خلال الاضافة البرمجية تضيف حقلين color_user و bgcolor_user في جدول الاعضاء pbb_member
وكذلك تنشأ خطا hook لتحديث الخيارات في ملف usercp.module.php على الـخطاف usercp_hook_start
CODE<hook main_place="usercp_hook_start" place="usercp_hook_start"><![CDATA[ if ($PowerBB->_GET['setting'] and $PowerBB->_GET['start'] and $PowerBB->_CONF['member_permission']) { if (isset($PowerBB->_POST['color_user']) && $PowerBB->_POST['color_user'] !== '') { // Clean Variables $PowerBB->_POST['color_user'] = $PowerBB->functions->CleanVariable($PowerBB->_POST['color_user'],'trim'); $PowerBB->_POST['color_user'] = $PowerBB->functions->CleanVariable($PowerBB->_POST['color_user'],'sql'); $PowerBB->_POST['color_user'] = $PowerBB->functions->CleanVariable($PowerBB->_POST['color_user'],'html'); $PowerBB->_POST['bgcolor_user'] = $PowerBB->functions->CleanVariable($PowerBB->_POST['bgcolor_user'],'trim'); $PowerBB->_POST['bgcolor_user'] = $PowerBB->functions->CleanVariable($PowerBB->_POST['bgcolor_user'],'sql'); $PowerBB->_POST['bgcolor_user'] = $PowerBB->functions->CleanVariable($PowerBB->_POST['bgcolor_user'],'sql'); // Update member $StartArr = array(); $StartArr['field'] = array(); $StartArr['field']['color_user'] = $PowerBB->_POST['color_user']; $StartArr['field']['bgcolor_user'] = $PowerBB->_POST['bgcolor_user']; $StartArr['where'] = array('id',$PowerBB->_CONF['member_row']['id']); $StartChange = $PowerBB->core->Update($StartArr,'member'); } } ]]></hook>
جلب الألوان في القوالب سيكون هكذا
CODE{$_CONF['rows']['member_row']['color_user']} {$_CONF['rows']['member_row']['bgcolor_user']}
يرجى مراجعة: [شرح]: برمجة هاك وتركيبه عن طريق الأضافات البرمجية
بالتوفيق
-
-
- ألوان تلقائية حسب أول حرف
-