សម្រាក weblinks php ។ លំដាប់នៃប្រតិបត្តិការ (ប្រតិបត្តិ) នៃសមាសធាតុ Joomla ។ ការក្លែងបន្លំរបារអាសយដ្ឋាននៅក្នុង Microsoft Internet Explorer

ចំណុចចូល Joomla! សមាសធាតុគឺស្រដៀងគ្នាសម្រាប់សមាសធាតុភាគច្រើន។ សម្រាប់ឧទាហរណ៍នេះ យើងនឹងប្រើសមាសធាតុស្នូល Joomla មួយ - បណ្តាញភ្ជាប់។ ឯកសារដំបូងដែលនឹងត្រូវបានប្រតិបត្តិនៅផ្នែកខាងមុខ៖ .../components/com_weblinks/weblinks.php ។

ដំបូង​យើង​ឃើញ​ការ​ពិនិត្យ​សុវត្ថិភាព​ដែល​ត្រូវ​បាន​រចនា​ឡើង​ដើម្បី​ធ្វើ​ឱ្យ​ប្រាកដ​ថា​គ្មាន​នរណា​ម្នាក់​អាច​ហៅ​ទៅ​ទំព័រ​នេះ​ដោយ​ផ្ទាល់។ នេះគឺជាស្តង់ដារដែលគួរប្រើនៅក្នុងឯកសារ php របស់អ្នកទាំងអស់ (ទោះបីជាមានករណីលើកលែងមួយចំនួនក៏ដោយ)៖

យើងពិនិត្យមើលខ្សែអក្សរសំណួរដើម្បីមើលថាតើឈ្មោះឧបករណ៍បញ្ជាជាក់លាក់មួយត្រូវបានផ្ញើ។ បើដូច្នេះមែន យើងត្រូវប្រាកដថាយើងអាចផ្ទុកឯកសារដែលត្រូវការនៅក្នុងបញ្ជីឧបករណ៍បញ្ជា៖

// ត្រូវការឧបករណ៍បញ្ជាជាក់លាក់ប្រសិនបើត្រូវបានស្នើសុំ ប្រសិនបើ ($controller = JRequest:: getWord("controller") ) ( $path = JPATH_COMPONENT. DS. "controllers". DS. $controller . ".php" ; if (file_exists ($path ) ) ( require_once $path ; ) else ( $controller = "" ; ))

ឥឡូវ​នេះ​យើង​ធ្វើ​ថ្នាក់​ឧបករណ៍​បញ្ជា​របស់​យើង​ភ្លាមៗ​ដោយ​ប្រើ​ឈ្មោះ​ដែល​យើង​បាន​កំណត់​ខាង​លើ៖

ដរាបណាកិច្ចការត្រូវបានបញ្ចប់ យើងធ្វើការប្តូរទិស ប្រសិនបើចាំបាច់៖

// បញ្ជូនបន្តប្រសិនបើកំណត់ដោយឧបករណ៍បញ្ជា $controller -> redirect ();
ថ្នាក់ត្រួតពិនិត្យ

ឧបករណ៍បញ្ជាទូទៅ (ជាក់លាក់) សម្រាប់សមាសធាតុតំណគឺនៅទីនេះ៖ .../components/com_weblinks/controller.php ។
ថ្នាក់ទាំងមូលនេះកំណត់វិធីសាស្ត្របង្ហាញ ដែលជាវិធីសាស្ត្រលំនាំដើមដែលបានប្រើ លុះត្រាតែអ្នកប្រើប្រាស់បញ្ជាក់កិច្ចការផ្សេងទៀត។

បានកំណត់ ("_JEXEC") ឬស្លាប់ ("ការចូលប្រើដែលបានដាក់កម្រិត");

jimport("joomla.application.component.controller" );
/** * Weblinks Component Controller * * @package Joomla * @subpackage Weblinks * @since 1.5 */ class WeblinksController extends JController ( /** * Method to show a weblinks view * * @access public * @since 1.5 */ function display ។ ប្រសិនបើ (JRequest:: getCmd ("view") == "weblink" ) ( $model =& $this -> getModel ("weblink"); $model -> hit (); ) // មើលតក្កវិជ្ជាឃ្លាំងសម្ងាត់ -- សាមញ្ញ ... តើយើងចូលហើយឬនៅ? $user = & JFactory::getUser() ; $view = JRequest::getVar("view"); ) || ។
នៅក្នុងវិធីនេះ យើងកំណត់ទិដ្ឋភាពលំនាំដើមដើម្បីបង្ហាញប្រភេទ លុះត្រាតែទិដ្ឋភាពផ្សេងទៀតត្រូវបានឆ្លងកាត់ជាប៉ារ៉ាម៉ែត្រខ្សែអក្សរសំណួរ។ ប្រសិនបើទិដ្ឋភាពដែលត្រូវការគឺជាតំណភ្ជាប់គេហទំព័រ យើងបង្កើនចំនួនអ្នកមើលតំណ។ បន្ទាប់មកយើងកំណត់តម្លៃនៃអថេរទិដ្ឋភាព ហើយហៅវិធីសាស្ត្រ diplay នៃថ្នាក់ JController មេរបស់យើង។
វាគឺមានតំលៃយកចិត្តទុកដាក់ជាពិសេសចំពោះការហៅទៅកាន់វិធីសាស្រ្ត getModel ។ វាផ្ទុកគំរូដែលត្រូវការសម្រាប់សមាសភាគ។ ក្នុងឧទាហរណ៍នេះ វិធីសាស្ត្រនេះនឹងផ្ទុកគំរូ weblink ដែលមានទីតាំងនៅទីនេះ៖ .../components/com_weblinks/models/weblink.php ។

នៅទីនេះយើងនឹងយល់ព្រមថាយើងមិនបានស្នើសុំទិដ្ឋភាពជាក់លាក់មួយទេ ដូច្នេះហើយទិដ្ឋភាពរបស់យើងនឹងត្រូវបានកំណត់ទៅជាប្រភេទ។

បន្ទាប់យើងបើកថ្នាក់មើល។

// ពិនិត្យមើលដើម្បីប្រាកដថាឯកសារនេះត្រូវបានរួមបញ្ចូលនៅក្នុង Joomla!< count ($categories ) ; $i ++ ) { $category =& $categories [ $i ] ; $category ->defined("_JEXEC") ឬ die("ការចូលប្រើដែលបានដាក់កម្រិត");

ជាថ្មីម្តងទៀត នេះគឺជាថ្នាក់ដ៏សាមញ្ញបំផុតជាមួយនឹងវិធីសាស្ត្របង្ហាញមួយ។ ភាគច្រើននៃតក្កវិជ្ជានៅទីនេះគឺជាក់លាក់ចំពោះសមាសភាគតំណ ប៉ុន្តែប្រសិនបើអ្នកក្រឡេកមើលឱ្យជិត អ្នកអាចរកឃើញមុខងារដែលប្រើនៅក្នុងថ្នាក់មើលសមាសភាគភាគច្រើន។ នៅចុងបញ្ចប់នៃវិធីសាស្ត្របង្ហាញ ថ្នាក់នេះហៅវិធីសាស្ត្របង្ហាញមេ (JView) ដោយឆ្លងកាត់ឈ្មោះគំរូដែលត្រូវបង្ហាញ។ ប្រសិនបើឈ្មោះនៃគំរូបង្ហាញមិនត្រូវបានឆ្លងកាត់ នោះគំរូ "លំនាំដើម" ត្រូវបានប្រើ។
ហើយចុងក្រោយយើងបើកថ្នាក់គំរូ។

ថ្នាក់គំរូ

ចូរយើងយល់ព្រមថាឈ្មោះគំរូជាក់លាក់មួយមិនត្រូវបានឆ្លងកាត់ទេ ដូច្នេះគំរូលំនាំដើមនឹងត្រូវបានប្រើ។ ក្នុងករណីនេះ ឯកសារខាងក្រោមនឹងត្រូវបានពិចារណា៖ .../components/com_weblinks/views/categories/tmpl/default.php
-> រត់គេច ($ this -> params -> get ("page_title") );

  • ( )

?>

តក្កវិជ្ជាភាគច្រើននៅទីនេះគឺជាក់លាក់ចំពោះសមាសភាគដែលកំពុងដំណើរការ។ អ្នកក៏អាចឃើញពីកូដដែលឯកសារនេះមាន HTML ទាំងអស់លាយជាមួយ PHP - ទាំងនេះគឺជាលក្ខណៈពិសេស និងគោលបំណងរបស់វា។

ឯកសារផ្សេងទៀតដែលប្រើក្នុងសមាសធាតុ

  • ប្រភេទឯកសារមួយចំនួនទៀតដែលអ្នកអាចរកឃើញនៅក្នុងសមាសធាតុ៖
  • ជំនួយ - សមាសធាតុជាញឹកញាប់ប្រើឯកសារ helper.php ឬបញ្ជីជំនួយដែលមានឯកសារជាច្រើន។ ឯកសារទាំងនេះជាធម្មតាផ្ទុកតែមុខងារទូទៅសម្រាប់សមាសភាគប៉ុណ្ណោះ។
  • ទ្រព្យសកម្មហាក់ដូចជាថតទាំងអស់សម្រាប់ឯកសារផ្សេងទៀតដែលរួមបញ្ចូលនៅក្នុងសមាសភាគ។
  • router.php - ឯកសារនេះត្រូវបានប្រើនៅពេលដែលការកំណត់ SEF URL ត្រូវបានបើក ដើម្បីបកប្រែ URL ក្នុងទិសដៅទាំងពីរ (ទៅជាឯកសារដែលអាចអានបានដោយមនុស្សដែលមានឈ្មោះក្លែងក្លាយ និងចូលទៅក្នុងទិដ្ឋភាពប្រព័ន្ធ Joomla ជាមួយប៉ារ៉ាម៉ែត្រ)។
  • ឯកសារ xml - ជាធម្មតាពួកវាកំណត់ប៉ារ៉ាម៉ែត្រ និងព័ត៌មានផ្សេងទៀតអំពីសមាសភាគ និងទិដ្ឋភាពទូទៅរបស់វា។ ពួកវាត្រូវបានប្រើឧទាហរណ៍នៅពេលបង្កើតធាតុម៉ឺនុយសមាសភាគ។
  • index.html - វាជាការអនុវត្តល្អក្នុងការមានឯកសារ index.html ទទេនៅក្នុងថតរបស់អ្នកទាំងអស់។ នេះគឺជាវិធានការសន្តិសុខអកម្មបែបនេះ។

css/images/js - ថតឯកសារដែលមានឯកសារផ្សេងៗដើម្បីអនុវត្តការរចនា និងមុខងារនៅលើផ្នែកអតិថិជន (នៅក្នុងកម្មវិធីរុករក)។

ខ្ញុំបន្តចែករំលែកជាមួយអ្នកនូវស្គ្រីបគេហទំព័រតូចៗ ប៉ុន្តែមានប្រយោជន៍ខ្លាំងណាស់ ដែលជួយកែលម្អអាកប្បកិរិយារបស់ម៉ាស៊ីនស្វែងរកចំពោះគេហទំព័ររបស់អ្នក។ លើកនេះយើងនឹងនិយាយអំពីការភ្ជាប់ទំព័រត្រឹមត្រូវ។

Page_address_1; anchor_1, anchor_2, anchor_3,..., anchor_n page_address_2; anchor_3, ..., anchor_n

ដូចដែលអ្នកអាចមើលឃើញ ការប្រើប្រាស់ស្គ្រីបបន្ថែមទៀតគឺអាចធ្វើទៅបានជាមួយនឹងចំនួនអាសយដ្ឋានទំព័រ និងយុថ្កាសម្រាប់ពួកគេ។ អាសយដ្ឋានទំព័រត្រូវបានសរសេរដោយគ្មាន http://www.site.ru/, i.e. ភ្លាមៗពីឫសដោយគ្មានសញ្ញាដំបូង។ អាសយដ្ឋានត្រូវបានបំបែកចេញពីយុថ្កាដោយសញ្ញាក្បៀស ហើយយុថ្កាត្រូវបានបំបែកដោយគ្រាន់តែក្បៀសប៉ុណ្ណោះ។ អ្នកក៏អាចសរសេរអាសយដ្ឋានពេញលេញបានដែរ វាកាន់តែងាយស្រួលសម្រាប់ខ្ញុំផ្ទាល់ ប៉ុន្តែអ្នកអាចផ្លាស់ប្តូរការបំពេញ និងលទ្ធផលនៃលទ្ធផលដោយខ្លួនឯង ខ្ញុំគិតថាអ្នកនឹងយល់ដោយខ្លួនឯងដោយវិចារណញាណ។

ដូច្នេះហើយ មូលដ្ឋានទិន្នន័យនៃតំណភ្ជាប់ និងយុថ្កាសម្រាប់ពួកវាត្រូវបានបង្កើតឡើង ខាងក្រោមនេះខ្ញុំនឹងផ្តល់ឧទាហរណ៍នៃកូដ PHP សម្រាប់បង្ហាញតំណភ្ជាប់ដោយផ្ទាល់សម្រាប់ភ្ជាប់នៅលើគេហទំព័រ៖

យើងបិទភ្ជាប់កូដនេះនៅកន្លែងណាមួយនៅលើគេហទំព័រ ដែលបង្ហាញតំណចៃដន្យចំនួន 5 ពីមូលដ្ឋានទិន្នន័យ និងយុថ្កាចៃដន្យ។ វាជាការប្រសើរក្នុងការរំលាយយុថ្កា ជាជាងសរសេរត្រឹមតែ 1 ទៅតំណ។ ជាមួយនឹងការភ្ជាប់ត្រឹមត្រូវនៅលើគេហទំព័ររបស់អ្នក អ្នកនឹងឃើញភ្លាមៗនូវការកើនឡើងនៃចរាចរណ៍ និងការកែលម្អនៅក្នុងសូចនាករគេហទំព័រផ្សេងទៀត។

ខ្ញុំទន្ទឹងរង់ចាំសំណួររបស់អ្នកនៅក្នុងមតិយោបល់ចំពោះការបង្ហោះនេះ។

កាលបរិច្ឆេទនៃការបោះពុម្ពផ្សាយ៖ ថ្ងៃទី ០៣ ខែ មីនា ឆ្នាំ ២០១៤
    ការ​ពិនិត្យ​និង​យោបល់​:

    ឌីមីទ្រី៖
    សូមអរគុណសម្រាប់ស្គ្រីប ខ្ញុំនឹងអនុវត្តវា។ វាមិនអាចទៅរួចទេក្នុងការចម្លងកូដប្រភពពីគេហទំព័រ វាត្រូវបានចម្លងតែក្នុងផ្នែកតូចៗប៉ុណ្ណោះ វានឹងកាន់តែងាយស្រួល។

    គីរីល៖
    អរគុណសម្រាប់ការថតចម្លង ខ្ញុំទើបតែឃើញវាឥឡូវនេះ ខ្ញុំនឹងព្យាយាមជួសជុលវាឆាប់ៗនេះ។

    Alexey Pavlov៖
    កំហុសក្នុងបន្ទាត់ $tex = explode(":",$sendlist[$count] អ្នកត្រូវការ semicolon មិនមែន colon ទេ។ ខ្ញុំបានប្តូរ code បន្តិចដើម្បីឱ្យវាកាន់តែច្បាស់៖