كيف يتم عمل نظام قواعد عن طريق البينات مع اسمارتى
السلام عليكم
إخواني ممكن طريقة عمل نظام قوالب عن طريق قواعد بينات مع اسمارتى إمتداد الملفات هو tpl
1 إجابة
انت الان تريد ان يكون مصدر القوالب هو قاعدة البينات؟
اذا كان الاجابة نعم فهذا الشرح سوف يفيدك اولا الاسمارتى متميز جدا وقد قام بعمل ذلك وهو تعدد المصادر وقد قام بعمل بعض الدوال التى يجب ان تعتمد عليها فى اى مصدر او بمعنى اصح عشان تعمل كدة لازم تعمل 4 دوال 2 اساسين و2 يعنى للامان الدوال هى
الان المثال الحى وسوف نعتمد فيه على مصدر قواعد البينات اولا يجب ان يكون لديك جدول فى القاعدة حتى تضع فيه القوالب ونفرض انه templates ومكوناته كالتالى CREATE TABLE `templates` ( `tpl_name` varchar(255) COLLATE utf8_bin NOT NULL, `tpl_source` longtext COLLATE utf8_bin NOT NULL, `tpl_timestamp` int(11) NOT NULL );ويمكنك اختيار نوع محتوى القالب كما تريد انا اخترت نوعlongtext اما اذا كنت تريد غير ذلك هذا خيارى ناتى لدوال استدعاء القالب من القاعدة function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj) { $query = mysql_query(\"select tpl_source from `templates` where tpl_name=\'$tpl_name\'\"); $row = mysql_fetch_array($query); if ($row) { $tpl_source = $row[\'tpl_source\']; return true; } else { return false; } } function db_get_timestamp($tpl_name, &$tpl_timestamp, &$smarty_obj) { $query = mysql_query(\"select tpl_timestamp from `templates` where tpl_name=\'$tpl_name\'\"); $row = mysql_fetch_array($query); if ($row) { $tpl_timestamp = $row[\'tpl_timestamp\']; return true; } else { return false; } } function db_get_secure($tpl_name, &$smarty_obj) { // assume all templates are secure return true; } function db_get_trusted($tpl_name, &$smarty_obj) { // not used for templates } // register the resource name \"db\" $smarty->register_resource(\"db\", array(\"db_get_template\", \"db_get_timestamp\", \"db_get_secure\", \"db_get_trusted\"));الان السؤال هو كيف استدعيها من القاعدة نحن سجلنا الدوال على انها متغير db فقط فقط عند استدعاء القالب اعمل التالى $smarty->display(\"db:index.tpl\"); طبعا فى الاول لازم تكون عملت اتصال بقاعدة البينات اما لو قلت لى سبت محتوى الدالة db_get_secure فارغ ليه فالاجابة هى ان الدالة دى وظفيتها انها بتاكد ان محتوى القالب امن ام لا انت تقدر تعمل بيها ال انت عيزه بواسطة: MacOS 1 من 1 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا |