انشاء قاعدة بيانات لاحلى منتدى واضافة خواص جديده
تم تحديث قاعدة البيانات تاكد من استبدال كود القاعدة الى الموجود حاليا النسخة الحاليه 1.02 اذا كان الرقم لديك غير ذلك فاستبدل الكود الخاص بالقاعدة بالجديد الموجود لدينا
الاضافات الجديدة
1- تم اظهار معرف المنصه ليظهر بشكل مباشر دون الحاجه الى الدخول الى صفحة التعديل
2- تحسين المردودية لكفائة القاعدة واضافة شات مطور بدون مشاكل وقابل للاضافت الاخرى
3- التعديل المباشر على المنصة نفسها وعمل النسخ الاحتياطى للقاعدة بسهولة اكبر
4- اضافة رابط فى عارضة المنتدى الى قاعدة البيانات
5- تم اضافة خاصية الحماية لمنع اى شخص غير المديرين بالاطلاع على محتوى قاعدة البيانات[/size]
هذا موضوع خاص جدا وحصرى بعد اتمام الشرح بكل تفاصيله سيكون لديك الامكانيات الاتيه والتى تم اتاحتها فى الوقت الحالى
1- خاصية الشكر المطورة للنسخة phpbb3 (تعمل على النسخة الثالثة فى الوقت الحالى)
2- عدد زيارات ملف العضو الشخصى (موجود بنفس الموضوع ويعمل بكفائه)
3- الشات المطور من مايكل سوفت لاحلى منتدى
اولا التصميم الاصلى تم تصميمة للمنتديات الاجنبيه التابعه لشركة forumotion
لكن بفضل الله تمكنت من التحويل وبمساعدة صاحب المشروعوبتصريح منه فى استخدام المشروع لاحلى منتدى العربية تم تحويل الاسكربت باكمله بواستطى لكى يعمل على احلى منتدى العربية[/size]
اولا وقبل البدىء فى الشرح عليك الحرص فى قرائة جميع الخطوات خطوة بخطوة حتى تكمل الشرح بطريقة صحيحه والا قد لا يعمل الاسكربت معك اولا ادخل الى اعدادات الامان كما موضح بالصورة التاليه[/size]
تاكد من الاختيار منع الاسكربتات الخارجه عن احلى منتدى من ارسال مساهمات او رسائل الى لا وليس نعم كما بالصورة اعلاه
ومن الدواعى الامنيه منع المشرفين من الغاء اشتراكات الاعضاء الى نعم
الخطوة التاليه هى انشاء فئه جديده نمسيها
كود :
- الكود:
-
<span class="fa_database">Database</span>
ثم انشاء منتدى بداخل الفئه ونسميه Database
الوصف اكتب ماتشاء او اتركة فارغا
الان عد الى المنتدى وادخل الى القسم Database
انشىء موضوع جديد وافعل الاتى بدقة تامه ولا تغير شىء
اسم الموضوع او العنوان للموضوع Database
محتوى الموضوع سيكون الكود التالى وهو عدد زيارات الملف الشخصى
كود :
- الكود:
-
[table id="fa_views" class="database_table"][tr][td]Username[/td][td]Views[/td][/tr][/table]
ثم ارسل الموضوع بعد ارسال الموضوع قم بحفظ معرف الموضوع كالمثال الاتى
- الكود:
-
/t20-topic
لانك سوف تحتا المعرف ذلك فيما بعد
الخطوة التاليه هى انشاء مجموعة جديدة وتسميها fa_db
مجموعة خفيه
قم بضم جميع الاعضاء اليها دفعه واحده عن طريق تفعيل خاصية الاشتراك التلقائى بعدد مساهمات 0
ثم اغلق الخاصية لانك سوف تجعل تلك المجموعة تقوم بالاشراف على قاعدة البيانات
Image Error
الخطوة التاليه وضع الكود التلى بورقة التصميم CSS
كود :
- الكود:
-
/* --- START DATABASE CP --- */
body.databaseBody { color:#666; font-size:11px; font-family:Verdana,Arial,Helvetica,sans-serif; background:#DEF; }
body.databaseBody a { text-decoration:none }
#db_wrap { background:#FFF; border:1px solid #CCC; width:80%; margin:40px auto; padding:3px; }
#db_wrap h1 { color:#479 !important; font-size:18px; border-bottom:1px solid #479; padding-bottom:3px; margin:3px 0; }
.database_table { background:#FFF; border:1px solid #CCC; border-spacing:0; width:100%; overflow:auto; }
.database_table a { background:none !important; display:inline-block; white-space:nowrap; overflow:hidden; max-width:100px; }
.database_table tr:nth-child(even) { background:#FFF }
.database_table tr:nth-child(odd) { background:#DDD }
.database_table tr:hover { background:#FFA }
.database_table td { border-right:1px solid #CCC; border-bottom:1px solid #CCC; padding:3px; }
.database_table tr.table_data { background:#EEE; box-shadow:0 10px 6px
rgba(255,255,255,0.3) inset, 0 -10px 6px rgba(0,0,0,0.05) inset }
#db_list { background:#EEE; border:1px solid #CCC; float:left; width:150px; min-height:200px; padding:3px; margin-right:6px; }
#db_list .database { color:#999; text-shadow:1px 1px 0 #FFF;
text-align:center; font-weight:bold; font-size:10px; background:none;
border:1px solid #CCC; border-radius:3px; cursor:pointer; margin:3px 0;
padding:3px; }
#db_list .database:hover { color:#479; border-color:#479; }
#db_list .database.dbactif { background:#DEF; color:#69B; border-color:#8BD; }
#db_tables { background:#EEE; border:1px solid #CCC; overflow-x:hidden; padding:3px; }
#innertable { height:400px; overflow:auto; }
.db_nav { text-align:right; background:#EEE; border:1px solid #CCC; padding:5px 3px; margin:6px 0; }
.db_nav a, .db_button, tr.table_data a { color:#999; text-shadow:1px 1px
0 #FFF; text-transform:uppercase; background:none; border:1px solid
#CCC; border-radius:3px; display:inline-block; padding:3px 6px;
margin:1px 3px; cursor:pointer; }
.db_nav a:hover, .db_button:hover, tr.table_data a:hover { color:#479; border-color:#479; }
.db_nav a:focus, .db_button:focus, tr.table_data a:focus { color:#8BD; border-color:#8BD; }
.db_title { color:#479; font-size:12px; font-weight:bold; border-bottom:1px solid #479; padding-bottom:3px; margin-bottom:3px; }
.db_info { color:#58A; text-shadow:1px 1px 0 #FFF; text-align:center;
background-color:#DEF; border:1px solid #BCD; border-radius:3px;
padding:5px 3px; margin:6px 3px; }
.db_erreur { color:#C66; font-size:12px; text-shadow:1px 1px 0 #FFF; font-weight:bold; height:20px; }
.db_overlay { background:rgba(0,0,0,0.3); position:fixed; top:0; left:0; right:0; bottom:0; z-index:999; }
.dbo_content { background:#EEE; border:1px solid #CCC; width:65%;
height:50%; overflow:auto; padding:3px; position:absolute; top:20%;
left:15%; }
.dbo_content.process { color:#996; text-shadow:1px 1px 0 #FFF;
text-align:center; font-size:16px; font-weight:bold; width:30%;
height:auto; padding:6px 24px; left:30%; top:40%; }
.db_textarea { color:#333; background:#FFF; border:1px solid #CCC;
border-radius:3px; width:90% !important; height:50% !important;
resize:none; display:block; padding:3px; margin:3px auto; }
.db_textarea:hover { border-color:#479 }
.db_textarea:focus { border-color:#8BD }
/* --- END DATABASE CP --- */
الخطوة التاليه
اضافة كود الجافا سكربت هذا بجميع الصفحات
اسم العنصر fa_database
أضف الكود الى : جميع الصفحات
قبل حفظ الكود التلى عليك باستبدال
كود :
- الكود:
-
/t20-topic
بمعرفة الموضوع الذى قمت بنشاءه الذى قلنا عليك بحفظة لانك سوف تحتاجه فيما بعدهذا هو سكربت الجافا
كود :
- الكود:
-
_database = new Object();
_database.tid = '/t20-topic';
_database.ctid = _database.tid.match(/\/t(\d+)/)[1];
_database.name = 'Database';
_database.protect = 1;
_database.filter = [];
// database post method
_database.post = function(o) {
if (!_userdata.session_logged_in) return;
o.state = 'OK';
$.get('/post?p='+o.pid+'&mode=editpost', function(data) {
var tables = $('#text_editor_textarea',data);
if (RegExp('id="'+o.tableid+'"').test(tables.val())) tables.val(tables.val().replace(RegExp(o.update[0]), o.update[1]));
else if (tables.val()) tables.val(tables.val().replace(/\[\/table\]$/,o.newRow + '[/table]'));
else o.state = 'ERROR';
$.post('/post?p='+o.pid+'&mode=editpost', {
subject: _database.name,
message: tables.val(),
post: 1
},function(d, s, x) {
o.reload && window.location.reload();
o.callback && o.callback(o.state, d, s, x);
});
});
};
// create a new database table
_database.newTable = function() {
var a = document.createElement('DIV'), b = document.createElement('INPUT'), c, t = document.createElement('TEXTAREA');
a.className = 'db_overlay';
b.className = 'db_button';
t.className = 'db_textarea';
b.value = 'Submit';
b.type = 'button';
c = b.cloneNode();
c.value = 'Cancel';
a.innerHTML = '<div class="dbo_content"><div
class="db_title">انشاء منصة جديدة بقاعدة البيانات</div><p
class="db_info">هنا يمكنك اضافة المنصة الجديدة لقاعدة البيانات تاكد
من وجود <strong>المنصة كاملة</strong>, والمعرف الصحيح
بالمنصة المراد اضافتها.</p><div
style="text-align:center;"><p
class="db_erreur"></p></div></div>';
a.firstChild.insertBefore(t,a.firstChild.lastChild);
a.firstChild.lastChild.appendChild(b);
a.firstChild.lastChild.appendChild(c);
document.body.appendChild(a);
b.onclick = function() {
if (!t.value.length) return this.previousSibling.innerHTML = 'لا تستطيع اضافة منصة فارغة.';
a.innerHTML = a.innerHTML + '<div
class="db_overlay"><div class="dbo_content process">يتم اضافة
المنصة الرجاء الانتظار</div></div>';
$.post('/post', {
subject : _database.name,
t : _database.tid.match(/\/t(\d+)-/)[1],
message : t.value,
mode : 'reply',
post : 1
},function() { window.location.reload() });
};
c.onclick = function() { document.body.removeChild(a) };
};
_database.checker = window.setInterval(function(){
!_database.protect && window.clearInterval(_database.checker);
if (typeof _userdata === 'undefined') return;
window.clearInterval(_database.checker);
if (_userdata.user_level != 1) {
if (RegExp('/t' + _database.ctid).test(window.location.pathname)) return window.location.pathname = '/';
if (/(mode=editpost|mode=delete)/.test(window.location.search))
for (var i=0; i<_database.filter.length; i++) if (RegExp('p=' +
_database.filter[i]).test(window.location.search)) return
window.location.pathname = '/';
}
},1);
_database.notice = 'قاعدة البيانات المطورة تصميم Ange Tuteur تم تحويل القاعدة للتوافق مع احلى منتدى بواسطة مايكل سوفت.';
// database control panel
RegExp('/t' + _database.ctid).test(window.location.pathname) && $(function() {
var admin = '', type = _userdata.user_level;
if (type == 1 && window.location.hash == '#edit') return $('.post').css('display','block');
type == 1 && (admin = '<a href="#new"
onclick="_database.newTable();return false;">منصة
جديده&<a href="#edit"
onclick="window.location.hash=\'#edit\';window.location.reload();">تعديل
القاعدة&');
document.title = 'قاعدة البيانات مايكل سوفت';
$('body').append('<div id="theOverwrite"><div
id="db_wrap"><h1>قاعدة البيانات تطوير مايكل
سوفت</h1><p class="db_info">هذه هى قاعدة لتخزين البيانات
الاضافية تم التصميم بواسطة Ange Tuteur تم تحويل الاسكربت لعمل على احلى
منتدى بواسطة مايكل سوفت</p><div
class="db_nav">'+admin+'<a href="/forum">العودة الى
الرئيسية&</div><div id="db_list"><div
class="db_title">قائمة القاعدة</div></div><div
id="db_tables"><div id="currentDB" class="db_title">حدد منصة
لعرض تفاصيلها</div><div
id="innertable"></div></div><p
style="color:#999;font-size:10px;text-align:right;margin:6px 0;">قام
بالتصميم <a href="http://fmdesign.forumotion.com/u1"
target="_blank">Ange Tuteur& |تم تحويل الاسكربت ليعمل على
احلى منتدى بواسطة <a
href="http://micsoft.is-best.net/vx/member.php?action=profile&uid=1"
target="_blank">Michael& | الاصدار لقاعدة البيانات Version
1.02</p></div></div>');
$('.database_table').hide().each(function() {
if (type == 1) {
var pid =
$(this).closest('.post').find('.i_icon_edit').parent().attr('href').match(/\/post\?p=(\d+)&mode=editpost/)[1];
$(this).find('tbody').prepend('<tr
class="table_data"><td colspan="'+$(this).find('tr:last
td').length+'"><span style="display:inline-block;padding:3px
0;text-transform:uppercase;margin:2px 0;">المعرف الخاص بالمنصة :
'+pid+'</span><a href="/post?p='+pid+'&mode=editpost"
class="db_edit_table" style="float:right;">تعديل
المنصة</a></td></tr>');
}
$('#db_list').append('<div class="database">'+$(this).attr('id')+'</div>');
}).appendTo('#innertable');
$('#page-footer, #pun-foot, #gfooter, #gfooter + p').appendTo('#db_wrap');
$('body').addClass('databaseBody').html($('#theOverwrite').html());
$('#db_list .database').on('click', function() {
$('#db_tables .database_table').hide();
$('#db_list .database').removeClass('dbactif');
$(this).addClass('dbactif');
$('#' + $(this).text()).show();
$('#currentDB').text($(this).text());
});
$('#db_list .database:first').click();
});
$(function(){
$(function(){
(_userdata.activate_toolbar && _userdata.user_level ==
1) && $('#fa_menu a[href*="/admin"]').before('<a
href="'+_database.tid+'">قاعدة بيانات المنتدى&<br>');
});
});
مبروك انت قمت بتثبيت قاعدة البيانات بنجاح
ولاكمال ما سبق
الخطوة الاخيره وهى ان تجعل المجموعة تقوم بالاشراف واجعل الصلاحيات الاتيه كما بالصورة للمجموعة التى ذكر اعلاه ان تقوم بانشائها وضم جميع الاعضاء لها
والهدية الاولى عداد لزيارات الملف الشخصى اى عندما تقوم بعرض ملف شخصى لعضو ما يتم احتسابها زياره وستجد عداد يقوم بتسجيل ذلك
اضف الكود التالى بالجاف سكربت
الاسم fa_views
جميع الصفحات
لا تنسى استبدال الرقم 33 برقم المشاركة الخاصة
كود :
- الكود:
-
window.location.pathname.match(/\/u\d+/) && $(function() {
var pid = 33, uid = window.location.pathname.match(/u(\d+)/)[1], mod = '#profile-advanced-right .module:first',n;
$('.bodylinewidth').length && (mod = 'td[width="300"] .forumline:first td.row1.gensmall');
$('.pun').length && (mod = '#profile-advanced-right .module:first .main-content');
$(mod).append('<div class="fa_views">عدد زيارات هذا الملف :
<span id="view_total">0</span></div>');
$.get(_database.tid, function(data) {
n = $('#fa_views #u'+uid+'_views',data);
n.length ? n = Number(n.text()) + 1 : n = 1;
document.getElementById('view_total').innerHTML = n;
_database.post({
pid : pid,
tableid : 'u'+uid+'_views',
update : ['\\[td id="u'+uid+'_views"\\]\\d+\\[/td\\]','[td id="u'+uid+'_views"]'+n+'[/td]'],
newRow : '[tr][td]'+document.title.match(/^.*? - (.*)$/)[1]+'[/td][td id="u'+uid+'_views"]'+n+'[/td][/tr]'
});
});
});
[td id="u'+uid+'_views"]
ثم اضف الكود التالى بورقة التصميم CSS
- الكود:
-
.fa_views { color:#999;
text-shadow:1px 1px 0 #FFF; text-decoration:none; text-align:center;
font-size:11px; font-weight:bold; background:#EEE; border:1px solid
#CCC; border-radius:3px; display:block; padding:5px 3px; margin:5px 0; }
تهانينا على اولى خطوات النجاح لك والتقدم الى الامام
[/td]