مقاله وب سايت

سيما فايل دانلود مقاله گزارش كارآموزي پروژه نمونه سوال

وب سايت-طريقه ساخت سايت با استفاده از CMS

۴۵ بازديد

وب سايت-طريقه ساخت سايت با استفاده از CMS

وب سايت-طريقه ساخت سايت با استفاده از CMS

وب سايت

فهرست عناوين

مقدمه                                                                                            2

ويژگي‌هاي وب سايت ديناميك                                                           3

مدل مديريت توليد محتوا ((Content Management System

تعريف مدل                                                                                      4

CMS چيست؟                                                                                 7

طريقه ساخت سايت با استفاده از CMS                                             11

نيازهاي شركت صنايع پايدار                                                               16

نقشه سايت                                                                                   17

برخي از كد هاي PHP                                                                            

Administrator(بخش مديريت)                                                          18

contact(تماس با ما)                                                                       19

statistice(آمار گيري)                                                                                         26

users(كاربران)                                                                                30

search(جستجو)                                                                             40

login(ورود و خروج)                                                                          44

بانك اطلاعاتي(DataBase)

نمودار بانك اطلاعاتي ER-D                                                               46نحوه به دست آوردن DataBase                                                         53

فهرست منابع                                                                                 54

مقدمه

سايت ديناميك به سايتي گفته مي شود كه شركت بتواند مديريت كامل بر روي سايت داشته باشد و در صورت نياز سايت را Update نمايد.

اين سايت صفحات ثابت ندارد و مدير سايت مي تواند مطالب سايت را ويرايش نمايد.

 ويژگي‌هاي وب سايت ديناميك

  • قابليت‌هاي كاربردي سايت

سايت پيشنهادي شامل ويژگيهايي به شرح زير مي‌باشد:

  • دسترسي متفاوت براي كاربران: به علت ديناميك بودن سايت كاربران مختلف مي توانند بنا بر تقاضاي خود وارد بخش هاي مختلف سايت شوند.
  • سهولت كاربرد: به علت دسته بندي مطالب در صفحه اول (Home Page)، كاربران براي پيدا كردن مطالب مورد نياز دچار مشكل نمي شوند.
  • معرفي سايت ها و شركت هاي مرتبط در صفحه
  • ايجاد لينك از اين سايت به سايت هاي ديگر
  • جستجوي موضوع: امكان انتخاب موضوع مورد جستجو از طرف كاربران و نمايش محصولات مورد جستجو براي كاربر
  • مشاهده مشخصات و تصاوير كامل محصولات به صورت مجزا در صفحه اي ديگر
  • امكان Update تصاوير و محصولات بوسيله مديرسايت
  • ايجاد بخش News Letter در سايت و Update كردن آن
  • امكان ثبت نام كاربران در سايت براي ارائه مطالب اضافه به آنها
  • تكميل فرم نظرخواهي از طرف كاربران و مشاهده آن از طرف مديرسايت
  • تكميل فرم درخواست سفارش از طرف كاربران
  • مشاهده درخواست سفارش از طرف مديرسايت و ارسال Email به مشتري
  • مشاهده تعداد بازديدكنندگان سايت
  • مشاده ناريخ و ساعت روز

مدل مديريت توليد محتوا ((Content Management System

تعريف مدل:

تعريف اين مدل به شما اين امكان را مي دهد تا از الگو و ساختارهاي مشابه كه قبلا ساخته شده اند، براي:

  • درك بهتر از شناخت نياز
  • درك بهتر از راهبردها
  • درك بهتر از چگونگي !رفع نيازها

استفاده نمود.  مدلهاي مشابه داراي مزيتهاي ذيل خواهد بود:

  • استفاده از تجارب ديگران
  • عدم برخورد با مشكلات پيش بيني نشده
  • حفظ سرمايه و زمان
  • جلوگيري از سعي و خطاهاي كوركورانه
  • يافتن ايده هاي جديدي كه در بوته آزمايش موفق بوده اند
  • و هزاران مزيت ديگر

بحث فرهنگي:

بايد توجه داشت كه شناخت صحيح از يك نياز و طراحي دقيق سيستم مناسب براي رفع آن نياز، مستلزم فعاليت مستقيم مديران در تمامي قسمتهاي مختلف سيستم است .

درصورت عدم فعاليت مديران و طراحان، حتي در يك بخش كوچك، باعث عدم شناخت از آن بخش شده و مانند يك سوراخ بسيار كوچك در يك سد بزرگ، در دراز مدت منجر به فروپاشي آن خواهد گرديد.

يك CMS عموما شامل موارد زير است:

  • پردازش ها و جريان هاي كاري كه متضمن موارد ذيل هستند:
    • سازماندهي
    • دسته بندي
    • ساختاردهي به منابع اطلاعاتي، به نحوي كه بتوان آن ها رابراي همه اطلاعات به طرق مختلف
      • جمع آوري
      • ذخيره
      • مرتب
      • كد بندي
      • مونتاژ
      • به روز رساني
      • و محافظت كرد.
  • از سيستم يا نرم افزار مديريت محتوا در موارد زير استفاده مي شود:
    • جمع آوري
    • مديريت
    • نشر محتوا
    • ذخيره محتوا به صورت جزئي يا كلي با حفظ ارتباطات بين اجزاء
    • كمك به كنترل بازبيني محتوا

CMS چيست؟

  • CMS تر كيبي است از:
    • پايگاه داده حجيم
    • سيستم فايل
    • و ساير ماجول هاي نرم افزاري
  • كه براي اين موارد استفاده مي شود:
    • ذخيره و بازيابي
    • مقادير عظيم اطلاعات زنده

CMS فقط اين نيست كه:

  • سيستم هاي پايگاه داده اي از اين نظر كه بتوانند داده هاي از انواع مختلف:
    • متن
    • كليپ هاي صدا
    • كليپ هاي تصوير
    • فيلم را شاخص گذاري كرده
  • و كاربران بتوانند اطلاعات مرتبط CMS موجود در پايگاه داده را با استفاده از اين موارد براي:
    • كلمات كليدي
    • نويسندگان
    • تاريخ ايجاد و ... جستجو كنند.
  • مديرت محتوا در كل زمان حيات CMS كاربرد اصلي آن يعني از ايجاد تا نشر است.

سيستم مديريت محتواي مبتني بر وب، شما را قادر مي سازد كه:

    • يك شماي واحد و يكنواخت در كل شبكه ايجاد كنيد.
    • امكان نشر و به روزرساني محتوا را با استفاده از ابزار ساده و در عين حال قدرتمند مبتني بر مرورگر به توليد كنندگان محتوا مي دهد.
    • در كنار ساير برنامه هاي كاربردي امكان ارائه اطلاعات از طريق وب را مي دهد.
  • در سيستم مديريت محتوا سه دسته كاربر وجود دارند:
  1. نويسندگان (ايجاد محتوا روي وب(
  2. مديران محتوا (چه محتوايي و كجا منتشر شود(
  3. منتشران محتوا (نظر محتوا روي وب(
  • CMS به شما امكان مي دهد كه:
    • نويسندگان غير فني و ويرايشگران بتوانند به راحتي و در اسرع وقت محتواي خود را منتشر كنند. اين كار بدون استفاده از CMS مي بايست توسط متخصصين انجام بگيرد.
  • يك CMS موارد زير را برقرار مي سازد:
    • تعريف روند نشر
    • امتيازات ويژه نشر به افراد مختلف
    • كاهش زمان نشر
  • اين موارد را مي توان به صورت زير خلاصه كرد:
    • صفحات ساده براي ارائه معمولي
    • صفحات پيچيده با طرح هاي ويژه
    • اطلاعات پوياي موجود در پايگاه داده به صورت مرتب تغيير مي كنند
    • آموزش
    • راهنماي Online
    • مدارك عمومي
    • هزاران صفحه در زمينه هاي مختلف براي كاربران متفاوت
    • انبوهي از ارتباطات بين صفحات

اجزاي اصلي يك CMS عبارتند از:

  • مديريت توليد محتوا
  • مديريت كاربران
  • مديريت سرويس ها
  • مديريت سطوح كاربري
  • مديريت زيبايي و كارايي محتوا

بعضي از CMSهايي كه در حال حاضر مورد استفاده كاربران مي باشند، عبارتند از:

  • Joomla
  • Mambo
  • Nuke
  • Takfa
  • Mitra
  • و ...

براي استفاده از CMSها در كامپيوتر PC بايد از سرورهاي local استفاده نمود. يكي از برنامه هاي سروربسته نرم افزاري EasyPHP مي باشد. اين بسته نرم افزاري شامل نرم افزار هاي زير مي باشد:

  • MySQL Database System –v4.1.9
  • Apache Web Server –v1.3.33
  • PHP Programing Language –v4.3.10
  • PHP MyAdmin Database Interface –v2.6.1

كاربران بايد بعد از نصب برنامه EasyPHP يكي از CMSهاي نام برده در بالا را بنا بر نياز، بر روي اين سرور خانگي نصب كنند.

همانطور كه گفته شد بعد از نصب EasyPHP نياز به يك CMS داريم كه ما از Mambo استفاده مي كنيم.

طريقه ساخت سايت با استفاده از CMS

جهت ساخت يك سايت از برنامه EasyPHP كمك مي گيريم و چون مي خواهيم از CMS ها استفاده كنيم مي بايست 4 گام اساسي را طي كنيم. پيش از آن بايد يكي از CMS ها كه مي خواهيم با آن كار كنيم را داخل شاخه (Root)www كپي كنيم سپس داخل Browser صفحه Internet explorer آدرس Localhost را مي نويسيم.(http://127.0.0.1/) در EasyPHP صفحه وب محلي را مي توان به دو صورت مشاهده كرد: localhost و يا 127.0.0.1 .

شكل 1-1

در اين صفحه فولدرهاي شاخه Root‌ را مي بينيم.

ما از Mambo استفاده مي كنيم. جهت راه اندازي آن مي بايست به شرح ذيل عمل كنيم:

  • روي فولدر Mambo كيليك مي كنيم.
  • بنا بر نياز زبان دلخواه را انتخاب مي كنيم و بعد را فشار مي دهيم.

شكل2-1

  • در صفحه مربوطه گزينه من قانون را رعايت مي كنم و به آن پايبندم را انتخاب كرده و بعد را فشار مي دهيم.

شكل 3-1

  • در اين صفحه بايد نام Host مورد نظر را تعيين كنيم كه به صورت پيش فرض نوشته شده است.سپس براي نام كاربر بنا بر توضيح خود آن كلمه Root را مي نويسيم.احتياجي به تعيين پسورد نداريم .در آخر نيز نام بانك MySQL ي كه در EasyPHP تعيين كرده ايم نوشته و بعد را فشار مي دهيم.(جهت ساخت يك بانك MySQL روي آيكن EasyPHP كيليك راست كرده از قسمت Configuration ، PhpMyAdmin را انتخاب مي كنيم(شكل8 –1) سپس در قسمت ساخت پايگاه داده جديد نام بانك اطلاعات مورد نظر را نوشته و دكمه ساختن را مي زنيم. )

شكل 4-1

  • در اينجا بايد نام سايت را تعيين كرده و بعد را فشار دهيم.

شكل 5-1

  • اين جا آدرس وب سايت نمايش داده شده كه مي توانيم آدرس Email و پسورد مديريتي آن را مشخص كرده و بعد را فشار دهيم.

شكل6-1

  • در آخر Username وPassword ما مشخص شده است و نيز دو دكمه دارد كه با فشردن دكمه نمايش سايت شماي كلي از سايت و بافشردن دكمه بخش مديريت به نحوه مديريت سايت دست مي يابيم.

شكل7-1

شكل8-1

 نيازهاي شركت صنايع پايدار

اين سايت بايد مطالب زير را در خود بگنجاند:

  • معرفي شركت صنايع پايدار و پروژه هاي انجام شده توسط اين شركت
  • معرفي محصولات شركت همراه با تصوير
  • امكان لينك از اين سايت به سايت هاي مورد نظر
  • ارسال Email از طريق مدير سايت براي كاربران
  • ارسال Email از طريق كاربران براي مدير سيستم
  • نمايش فرم نظرخواهي كه از طرف كاربران ارسال شده است

نقشه سايت

  • صفحه اصلي
  • توليدات مشخصات قطره گيرها      

مشخصات پكينگ ها

  • كاتالوگ
  • موارد استفاده از توليدات
  • اخبار
  • سئوالات متداول
  • جستجوي پيشرفته
  • تماس با ما
  • مشخصات فني شامل مشخصات فني پكينگ ها

شامل مشخصات فني قطره گيرها

  • مديريت مديريت سايت كه شامل user name وpassword است كه مدير مي تواند سايت مديريت (manage) كند.
  • فرم نظر خواهي  اين سايت داراي فرم نظر خواهي است كه در مورد مطالب سايت و نيز آمار كساني كه online هستند ويا از سايت باز ديد كرده اند را مي دهد.
  • Login اين بخش باعث مي شود بين افرادي كه ثبت نام مي كنند با افرادي كه فقط از سايت باز ديد مي كنند تفاوت وجود داشته باشد و افراد ثبت نام كننده بتوانند ازامكانات بيشتري نسبت به سايرين برخوردار باشند

برخي از كد هاي PHP

طراحي يك سايت با استفاده از CMS ها نيازي به كد نويسي ندارد، چرا كه اين كار از پيش تعريف شده است و فقط در صورت اشتباه بودن كدنياز به اصلاح آن داريم.

كدهايPHP كدهاي پردازشي مي باشند و بايد ميان تگهاي HTML استفاده شوند.

در اينجا برخي از كدها را مشاهده مي كنيم.

Administrator(بخش مديريت)

/**

* @version $Id: admin.admin.php,v 1.1 2005/07/22 01:51:58 eddieajau Exp $

* @package Mambo

* @subpackage Admin

* @copyright (C) 2000 - 2005 Miro International Pty Ltd

* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL

* Mambo is Free Software

*/

/** ensure this file is being included by a parent file */

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

require_once( $mainframe->getPath( 'admin_html' ) );

switch ($task) {      

           case 'redirect':

                       $goto = trim( strtolower( mosGetParam( $_REQUEST, 'link' ) ) );

                       if ($goto == 'null') {

                                   $msg = $adminLanguage->A_COMP_ALERT_NO_LINK;

                                   mosRedirect( 'index2.php?option=com_admin&task=listcomponents', $msg );

                                   exit();

                       }

                       $goto = str_replace( "'", '', $goto );

                       mosRedirect($goto);

                       break;                  

           case 'listcomponents':

                       HTML_admin_misc::ListComponents();

                       break;        

           case 'sysinfo':

                       HTML_admin_misc::system_info( $version, $option );

                       break;

           case 'help':

                       HTML_admin_misc::help();

                       break;

           case 'preview':

                       HTML_admin_misc::preview();

                       break;

           case 'preview2':

                       HTML_admin_misc::preview( 1 );

                       break;

           case 'cpanel':

   default:

                       HTML_admin_misc::controlPanel();

                       break;

}

?>

contact(تماس با ما)

/**

* @version $Id: admin.contact.php,v 1.1 2005/07/22 01:52:16 eddieajau Exp $

* @package Mambo

* @subpackage Contact

* @copyright (C) 2000 - 2005 M

iro International Pty Ltd

* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL

* Mambo is Free Software

*/

/** ensure this file is being included by a parent file */

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

// ensure user has access to this function

if (!($acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' )

                       | $acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'com_contact' ))) {

           mosRedirect( 'index2.php', _NOT_AUTH );

}

require_once( $mainframe->getPath( 'admin_html' ) );

require_once( $mainframe->getPath( 'class' ) );

$id       = mosGetParam( $_GET, 'id', 0 );

$cid     = mosGetParam( $_POST, 'cid', array(0) );

if (!is_array( $cid )) {

           $cid = array(0);

}

switch ($task) {

           case 'new':

                       editContact( '0', $option);

                       break;

           case 'edit':

                       editContact( $cid[0], $option );

                       break;

           case 'editA':

                       editContact( $id, $option );

                       break;

           case 'save':

                       saveContact( $option );

                       break;

           case 'remove':

                       removeContacts( $cid, $option );

                       break;

           case 'publish':

                       changeContact( $cid, 1, $option );

                       break;

           case 'unpublish':

                       changeContact( $cid, 0, $option );

                       break;

           case 'orderup':

                       orderContacts( $cid[0], -1, $option );

                       break;

           case 'orderdown':

                       orderContacts( $cid[0], 1, $option );

                       break;

 case 'cancel':

   cancelContact();

                       break;

           default:

                       showContacts( $option );

                       break;

}

/**

* List the records

* @param string The current GET/POST option

*/

function showContacts( $option ) {

           global $database, $mainframe, $mosConfig_list_limit;

           $catid              = $mainframe->getUserStateFromRequest( "catid{$option}", 'catid', 0 );

           $limit               = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $mosConfig_list_limit );

           $limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 );

           $search            = $mainframe->getUserStateFromRequest( "search{$option}", 'search', '' );

           $search            = $database->getEscaped( trim( strtolower( $search ) ) );    

           if ( $search ) {

                       $where[] = "cd.name LIKE '%$search%'";

           }

           if ( $catid ) {

                       $where[] = "cd.catid = '$catid'";

           }

           if ( isset( $where ) ) {

                       $where = "n WHERE ". implode( ' AND ', $where );          

           } else {

                       $where = '';

           }

           // get the total number of records

           $database->setQuery( "SELECT COUNT(*) FROM #__contact_details AS cd $where" );

           $total = $database->loadResult();

           require_once( $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php' );

           $pageNav = new mosPageNav( $total, $limitstart, $limit  );

           // get the subset (based on limits) of required records

           $query = "SELECT cd.*, cc.title AS category, u.name AS user, v.name as editor"

           . "n FROM #__contact_details AS cd"

           . "n LEFT JOIN #__categories AS cc ON cc.id = cd.catid"

           . "n LEFT JOIN #__users AS u ON u.id = cd.user_id"

           . "n LEFT JOIN #__users AS v ON v.id = cd.checked_out"

           . $where

           . "n ORDER BY cd.catid, cd.ordering, cd.name ASC"

           . "n LIMIT $pageNav->limitstart, $pageNav->limit"

           ;

           $database->setQuery( $query );

           $rows = $database->loadObjectList();

           // build list of categories

           $javascript = 'onchange="document.adminForm.submit();"';

           $lists['catid'] = mosAdminMenus::ComponentCategory( 'catid', 'com_contact_details', intval( $catid ), $javascript );

           HTML_contact::showcontacts( $rows, $pageNav, $search, $option, $lists );

}

/**

* Creates a new or edits and existing user record

* @param int The id of the record, 0 if a new entry

* @param string The current GET/POST option

*/

function editContact( $id, $option ) {

           global $database, $my;

           global $mosConfig_absolute_path;

           $row = new mosContact( $database );

           // load the row from the db table

           $row->load( $id );

           if ($id) {

                       // do stuff for existing records

                       $row->checkout($my->id);

           } else {

                       // do stuff for new records

                       $row->imagepos = 'top';

                       $row->ordering = 0;

                       $row->published = 1;

           }

           $lists = array();

           // build the html select list for ordering

           $query = "SELECT ordering AS value, name AS text"

           . "n FROM #__contact_details"

           . "n WHERE published >= 0"

           . "n AND catid = '$row->catid'"

           . "n ORDER BY ordering"

           ;

           $lists['ordering']                                  = mosAdminMenus::SpecificOrdering( $row, $id, $query, 1 );

           // build list of users

           $lists['user_id']                                    = mosAdminMenus::UserSelect( 'user_id', $row->user_id, 1 );

           // build list of categories

           $lists['catid']                            = mosAdminMenus::ComponentCategory( 'catid', 'com_contact_details', intval( $row->catid ) );

           // build the html select list for images

           $lists['image']                          = mosAdminMenus::Images( 'image', $row->image );

           // build the html select list for the group access

           $lists['access']                          = mosAdminMenus::Access( $row );

           // build the html radio buttons for published

           $lists['published']                    = mosHTML::yesnoradioList( 'published', '', $row->published );

           // build the html radio buttons for default

           $lists['default_con']                 = mosHTML::yesnoradioList( 'default_con', '', $row->default_con );

           // get params definitions

           $file = $mosConfig_absolute_path .'/administrator/components/com_contact/contact_items.xml';

           $params =& new mosParameters( $row->params, $file, 'component' );

           HTML_contact::editcontact( $row, $lists, $option, $params );

}

/**

* Saves the record from an edit form submit

* @param string The current GET/POST option

*/

function saveContact( $option ) {

           global $database;

           $row = new mosContact( $database );

           if (!$row->bind( $_POST )) {

                       echo "n";

                       exit();

           }

           // save params

           $params = mosGetParam( $_POST, 'params', '' );

           if (is_array( $params )) {

                       $txt = array();

                       foreach ( $params as $k=>$v) {

                                   $txt[] = "$k=$v";

                       }

                       $row->params = implode( "n", $txt );

           }

           // pre-save checks

           if (!$row->check()) {

                       echo "n";

                       exit();

           }

           // save the changes

           if (!$row->store()) {

                       echo "n";

                       exit();

           }

           $row->checkin();

           $row->updateOrder();

           if ($row->default_con) {

                       $database->setQuery( "UPDATE #__contact_details SET default_con='0' WHERE id <> $row->id AND default_con='1'" );

                       $database->query();

           }

           mosRedirect( "index2.php?option=$option" );

}

/**

* Removes records

* @param array An array of id keys to remove

* @param string The current GET/POST option

*/

function removeContacts( &$cid, $option ) {

           global $database;

           if (count( $cid )) {

                       $cids = implode( ',', $cid );

                       $database->setQuery( "DELETE FROM #__contact_details WHERE id IN ($cids)" );

                       if (!$database->query()) {

                                   echo "n";

                       }

           }

           mosRedirect( "index2.php?option=$option" );

}

/**

* Changes the state of one or more content pages

* @param array An array of unique category id numbers

* @param integer 0 if unpublishing, 1 if publishing

* @param string The current option

*/

function changeContact( $cid=null, $state=0, $option ) {

           global $database, $my, $adminLanguage;

           if (count( $cid ) < 1) {

                       $action = $state == 1 ? 'publish' : 'unpublish';

                       echo "n";

                       exit;

           }

           $cids = implode( ',', $cid );

           $database->setQuery( "UPDATE #__contact_details SET published='$state'"

           . "nWHERE id IN ($cids) AND (checked_out=0 OR (checked_out='$my->id'))"

           );

           if (!$database->query()) {

                       echo "n";

                       exit();

           }

           if (count( $cid ) == 1) {

                       $row = new mosContact( $database );

                       $row->checkin( intval( $cid[0] ) );

           }

           mosRedirect( "index2.php?option=$option" );

}

/** JJC

* Moves the order of a record

* @param integer The increment to reorder by

*/

function orderContacts( $uid, $inc, $option ) {

          global $database;      

           $row = new mosContact( $database );

           $row->load( $uid );

           $row->move( $inc, "published >= 0" );

           mosRedirect( "index2.php?option=$option" );

}

/** PT

* Cancels editing and checks in the record

*/

function cancelContact() {

           global $database;

         

           $row = new mosContact( $database );

           $row->bind( $_POST );

           $row->checkin();

           mosRedirect('index2.php?option=com_contact');

}

?>

statistice(آمار گيري)

/**

* @version $Id: admin.statistics.php,v 1.1 2005/07/22 01:53:22 eddieajau Exp $

* @package Mambo

* @subpackage Statistics

* @copyright (C) 2000 - 2005 Miro International Pty Ltd

* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL

* Mambo is Free Software

*/

/** ensure this file is being included by a parent file */

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

require_once( $mainframe->getPath( 'admin_html' ) );

switch ($task) {

           case 'searches':

                       showSearches( $option, $task );

                       break;

           case 'pageimp':

                       showPageImpressions( $option, $task );

                       break;

           default:

                       showSummary( $option, $task );

                       break;

}

function showSummary( $option, $task ) {

           global $database, $mainframe;

           // get sort field and check against allowable field names

           $field = strtolower( mosGetParam( $_REQUEST, 'field', '' ) );

           if (!in_array( $field, array( 'agent', 'hits' ) )) {

                       $field = '';

           }

           // get field ordering or set the default field to order

           $order = strtolower( mosGetParam( $_REQUEST, 'order', 'asc' ) );

           if ($order != 'asc' && $order != 'desc' && $order != 'none') {

                       $order = 'asc';

           } else if ($order == 'none') {

                       $field = 'agent';

                       $order = 'asc';

           }