ایجاد یک ماژول ساده در جوملا(2)
استفاده از دیتابیس
بسیاری از ماژول ها در جوملا، نیاز به استفاده و ارتباط با دیتابیس دارند. ما فرض می کنیم که شما با استفاده از کلاس JDatabase آشنایی دارید.
ایجاد یک جدول برای برای نصب در جوملا
برای ایجاد یک جدول xml برای نصب، کدهای زیر را به فایل mod_helloworld.xml اضافه می کنیم:
کد
<install> <sql> <file driver="mysql" charset="utf8">sql/mysql/install.mysql.utf8.sql</file> <file driver="sqlazure" charset="utf8">sql/sqlazure/install.sqlazure.utf8.sql</file> </sql> </install> <uninstall> <sql> <file driver="mysql" charset="utf8">sql/mysql/uninstall.mysql.utf8.sql</file> <file driver="sqlazure" charset="utf8">sql/sqlazure/uninstall.sqlazure.utf8.sql</file> </sql> </uninstall> <update> <schemas> <schemapath type="mysql">sql/mysql/updates</schemapath> <schemapath type="sqlazure">sql/sqlazure/updates</schemapath> </schemas> </update
در این کد سه بخش وجود دارند:
- تگ install یک جدول را به پایگاه داده اضافه می کند.
- در صورتی که ماژول بخواهد حذف شود، تگ uninstall جدول مورد نظر را در دیتابیس حذف می کند. توجه کنید که تمامی ماژول ها نیاز به این ویژگی ندارند و این قسمت ضروری نیست.
- اگر که دیتابیس احتیاج به اصلاح شدن به هنگام آپدیت ماژول داشته باشد، تگ update دیتابیس را آپدیت می کند.
همان طور که مشاهده می کنید، ما دو طرح برای MYSQL و Microsoft SQL ایجاد کرده ایم. شما می توانید ماژول خود را برای یکی از این طرح ها یا هردو بنویسید.
در این مثال، ما تنها کدهای خودمان را بر اساس دیتابیس MYSQL ارائه می دهیم. ایجاد کدها برای Mocrosoft SQL Server به عنوان تمرین، به خواننده واگذار می شود.
در فایل install.mysql.utf8.sql ما جدول مورد نظر را ایجاد می کنیم و مقدار پیام خوش آمد گویی را به آن اضافه می کنیم.
کد
CREATE TABLE IF NOT EXISTS `#__helloworld` ( `id` int(10) NOT NULL AUTO_INCREMENT, `hello` text NOT NULL, `lang` varchar(25) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hello World', 'en-GB'); INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Hola Mundo', 'es-ES'); INSERT INTO `#__helloworld` (`hello`, `lang`) VALUES ('Bonjour tout le monde', 'fr-FR');
در فایل uninstall ما تنها جدول مان را حذف می کنیم:
کد
DROP TABLE IF EXISTS `#__helloworld`
ایجاد یک درخواست(request) در فایل helper
حالا هنگامی که می خواهیم ماژول خود را نصب کنیم، می دانیم که یک یک جدول در دیتابیس وجود دارد که پیام های خوش آمد گویی ما در آن قرار دارد. حالا تنها باید این اطلاعات را از دیتابیس دریافت کنیم و به کاربر نمایش بدهیم. حالا می خواهیم تابع getHello را که در قسمت قبل، در فایل helper قرار دادیم را اصلاح کنیم. در این قسمت از ایجاد فرم فیلدها اجتناب می کنیم و در قسمت بعدی به آنها خواهیم پرداخت:
کد
// Obtain a database connection $db = JFactory::getDbo(); // Retrieve the shout $query = $db->getQuery(true) ->select($db->quoteName('hello')) ->from($db->quoteName('#__helloworld')) ->where('lang = ' . $db->Quote('en-GB')); // Prepare the query $db->setQuery($query); // Load the row. $result = $db->loadResult(); // Return the Hello return $result;
{nice1}
- نوشته شده توسط احسان عباسی
- بازدید: 13227