Rumah >pembangunan bahagian belakang >tutorial php >Membina Plugin Oktobercms: Google Analytics
Octobercms Plugin Development: Contoh Google Analytics
OktoberCMS adalah sistem pengurusan kandungan yang berkembang pesat (CMS), dan seperti semua platform CMS, fungsinya dipertingkatkan melalui plugin. Artikel ini menyediakan panduan asas untuk membuat plugin OktoberCMS, menggunakan integrasi Google Analytics sebagai contoh praktikal.
Konsep Utama:
Gambaran keseluruhan projek:
Kami akan membina plugin yang mengintegrasikan penjejakan Google Analytics menggunakan tag komponen. Selepas mengkonfigurasi ID penjejakan anda dalam tetapan plugin, anda akan memasukkan tag komponen () ke dalam halaman atau separa anda untuk membolehkan penjejakan. Kod Lengkap tersedia di GitHub. {% component 'gaCode' %}
Plugin Management:
Plugin OktoberCMS tinggal di folderplugins
Author.PluginName
Membuat plugin diselaraskan:
plugins
. Di dalam, buat fail RAFIE.GoogleAnalyticsCode
. Plugin.php
php artisan create:plugin RAFIE.GoogleAnalyticsCode
yang mengandungi fail uploads
untuk kawalan versi. version.yaml
Plugin.php
fail (overriding pluginDetails()
) mentakrifkan plugin: SystemClassesPluginBase
<code class="language-php">public function pluginDetails() { return [ 'name' => 'Google Analytics Code', 'description' => 'Insert Google Analytics tracking code into your pages', 'author' => 'RAFIE Younes', 'icon' => 'icon-bar-chart-o' ]; }</code>Jika plugin tidak muncul, klik "Semak kemas kini" untuk menyegarkan senarai.
Menggunakan komponen:
Komponen membolehkan interaksi dengan halaman. Buat mereka secara manual (dalam folder) atau melalui baris arahan: components
<code class="language-bash">php artisan create:component RAFIE.GoogleAnalyticsCode GoogleAnalytics</code>
kaedah
) mentakrifkan butiran komponen untuk papan pemuka admin. Daftar komponen dalam componentDetails()
's CmsClassesComponentBase
kaedah: Plugin.php
registerComponents()
<code class="language-php">public function registerComponents() { return [ 'RAFIE\GoogleAnalyticsCode\Components\GoogleAnalytics' => 'gaCode' ]; }</code>:
default.htm
<code class="language-html"><p>></p>This is the default markup for component GoogleAnalytics> <small>></small>You can delete this file if you want></code>
ingat bahawa skrip harus diletakkan pada akhir halaman, bergantung pada tema anda.
<code class="language-html">(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', '{{ code }}', 'auto'); ga('send', 'pageview');</code>
sifat komponen dan tetapan:
Daripada mengodkan id penjejakan, gunakan sifat komponen:
Tentukan sifat menggunakan
<code class="language-twig">{% component 'gaCode' code='UA-12345678-1' %}</code>:
defineProperties()
<code class="language-php">public function defineProperties() { return [ 'code' => [ 'title' => 'Google Analytics tracking code', 'description' => 'Your Google Analytics tracking code', 'default' => '', 'type' => 'string', 'validationPattern' => '^UA-\d{4,9}-\d{1,4}$', 'validationMessage' => 'Invalid tracking code', 'placeholder' => 'UA-XXXXXXX' ] ]; }</code>untuk lulus nilai ke halaman:
onRender()
<code class="language-php">public function onRender() { $this->page['code'] = $this->property('code'); }</code>
Buat :
models/GoogleAnalyticsSettings.php
Buat
<code class="language-php">class GoogleAnalyticsSettings extends Model { public $implement = ['System.Behaviors.SettingsModel']; public $settingsCode = 'rafie_google_analytics_code'; public $settingsFields = 'fields.yaml'; }</code>
models/fields.yaml
Daftar Tetapan dalam
<code class="language-yaml">fields: code: label: Your Google Analytics ID placeholder: UA-XXXXXXXX-X</code>
Plugin.php
<code class="language-php">public function registerSettings() { return [ 'settings' => [ 'label' => 'Google Analytics Code', 'description' => 'Manage Google Analytics Settings', 'icon' => 'icon-bar-chart-o', 'class' => 'RAFIE\GoogleAnalyticsCode\Models\GoogleAnalyticsSettings', 'order' => 1 ] ]; }</code>mengambil tetapan dalam
:
onRender()
Kesimpulan:
<code class="language-php">public function onRender() { $settings = GoogleAnalyticsSettings::instance(); $this->page['code'] = $settings->code; }</code>
OktoberCMS menawarkan sistem pembangunan plugin yang mantap dan fleksibel. Contoh ini menunjukkan prinsip teras; Penjelajahan lebih lanjut mengenai kod sumber dan sumber komuniti akan meningkatkan pemahaman anda. Soalan Lazim (Soalan Lazim): (Soalan Lazim yang disediakan sudah berstruktur dan komprehensif. Tiada perubahan yang diperlukan.)
Atas ialah kandungan terperinci Membina Plugin Oktobercms: Google Analytics. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!