ایجاد یک ویجت برای دسکتاپ شما نوشتن ابزارک Windows Sidebar از ابتدا ابزارک ایجاد کنید




امروز نحوه ایجاد ویجت خود را در دستگاه اندرویدی خواهیم فهمید. ویجت یک عنصر دسکتاپ آشنا است که با آن می توانید به برخی از عملکردهای یک برنامه دسترسی داشته باشید: مشاهده اخبار در پنجره ویجت، پیش بینی آب و هوا، به روز رسانی اخبار در سرویس های مختلف، کنترل عملکردهای مختلف دستگاه (قفل کردن صفحه، روشن کردن رادیو، اینترنت و بسیاری دیگر). این بار ما چیزی بزرگ و بسیار مفید مانند یک چراغ قوه ایجاد نمی کنیم :)، بلکه یک ویجت ساده می سازیم که در قالب یک دکمه پیاده سازی می شود، با کلیک بر روی آن، با استفاده از یک مرورگر استاندارد، به سایت مورد علاقه همه البته، شما می توانید هر وب سایتی را که می خواهید شخصی سازی کنید.

یک پروژه جدید ایجاد کنید، Blank Activity، حداقل نسخه Android 2.2+ را انتخاب کنید. هنگام ایجاد یک ویجت، اولین کاری که باید انجام دهید ایجاد یک شی است AppWidgetProviderInfo، که در آن فایل xml را مشخص می کنیم که نمای خود ویجت از آن پر می شود. برای این کار یک پوشه در پروژه ایجاد کنید res/xmlو در آن یک فایل xml جدید به نام ایجاد می کنیم widget.xmlبا محتوای زیر:

< appwidget- provider xmlns: android= android: minWidth= "146dp" android: updatePeriodMillis= "0" android: minHeight= "146dp" android: initialLayout= "@layout/activity_main" > < / appwidget- provider>

حالا بریم سراغ فایل activity_main.xmlو رابط ویجت خود را ایجاد کنید، از یک دکمه تشکیل خواهد شد دکمه:

< LinearLayout xmlns: android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http://schemas.android.com/tools" android: layout_width= "match_parent" android: layout_height= "match_parent" android: gravity= "top" tools: context= ".MainActivity" >< Button android: id= "@+id/button" android: layout_width= "wrap_content" android: layout_height= "wrap_content" android: layout_marginLeft= "5dp" android: text= "@string/app_name" / > < / LinearLayout >

همانطور که می بینید، ما یک دکمه معمولی ایجاد کرده ایم و این ویجت ما خواهد بود:

یعنی می توانید به جای این دکمه هر کاری که می خواهید انجام دهید.

بیایید به کار با کد موجود در فایل ادامه دهیم MainActivity.java. باید از کلاس ارث ببرد AppWidgetProvider، که روش اصلی آن وجود دارد onUpdate(). در این روش باید دو شی را تعریف کنیم: PendingIntentو RemoteViews. در پایان استفاده از آنها، باید متد را فراخوانی کنید updateAppWidget(). کد فایل MainActivity.java:

وارد کردن android.net.Uri ; وارد کردن android.app.PendingIntent ; وارد كردن android.appwidget.AppWidgetManager; وارد كردن android.appwidget.AppWidgetProvider; وارد کردن android.content.Context ; وارد کردن android.content.Intent; وارد کردن android.widget.RemoteViews; وارد کردن android.widget.Toast; وارد کردن com.example.widget.R; کلاس عمومی MainActivity گسترش AppWidgetProvider(@Override public void onUpdate (Context context، AppWidgetManager appWidgetManager، int appWidgetIds) ( برای (int i= 0; i< appWidgetIds. length; i++ ){ int currentWidgetId = appWidgetIds[i]; //یک درخواست http ساده به لینک مشخص شده ایجاد کنید و آن را دنبال کنید: String url = "http://site" ; Intent intent = New Intent(Intent . ACTION_VIEW) قصد addFlags(Intent . FLAG_ACTIVITY_NEW_TASK) قصد setData(Uri . parse(url)); //دو شی مورد نیاز از کلاس PendingIntent و RemoteViews را تعریف می کنیم: PendingIntent pending = PendingIntent . getActivity (زمینه، 0، قصد، 0)؛ نماهای RemoteViews = RemoteViews جدید(زمینه. getPackageName(),R. layout. activity_main); //پیکربندی پردازش یک کلیک برای افزودن ویجت:دیدگاه ها setOnClickPendingIntent(دکمه R. id.، در انتظار)؛ appWidgetManager. updateAppWidget (currentWidgetId، views)؛ نان تست. makeText(context, "ویجت اضافه شد"نان تست . LENGTH_SHORT). show(); ))))

برای اینکه ویجت ما با موفقیت کار کند، به کمی جادو در فایل مانیفست نیاز داریم AndroidManifest.xml. می بایست شبیه به این باشه:

< manifest xmlns: android= "http://schemas.android.com/apk/res/android"بسته ="com.example.widget" android: versionCode="1" android: versionName="1.0" >< uses- permission android: name= "android.permission.INTERNET" / > < application android: allowBackup= "true" android: icon= "@drawable/ic_launcher" android: label= "@string/app_name" android: theme= "@style/AppTheme" > < receiver android: name= "home.study.MainActivity" > < intent- filter> < action android: name= "android.appwidget.action.APPWIDGET_UPDATE" / > < / intent- filter> < meta- data android: name= "android.appwidget.provider" android: resource= "@xml/widget" / > < / receiver> < / application> < / manifest>

همانطور که حدس زدید، ویجت در تگ تعریف شده است<گیرنده> .

تنها چیزی که برای رفع آن باقی مانده است ویرایش فایل است strings.xml، خطوطی را که در آنجا استفاده کردیم اضافه می کنیم:

< ? xml version= "1.0" encoding= "utf-8" ? > < resources> < string name= "app_name" >فرا گرفتن. اندروید < string name= "action_settings" >تنظیمات < string name= "hello_world" >سلام دنیا!< / string> < / resources>

توجه! Android Studio ممکن است هنگام شروع برنامه به شما فحش دهد و از شما بخواهد که یک فعالیت پیش فرض را مشخص کنید. خط "فعالیت راه اندازی نشود" را انتخاب کنید:

اکنون برنامه را روی شبیه ساز یا دستگاه نصب کنید، ویجت را به دسکتاپ اضافه کنید:

و روی آن کلیک کنید:


همانطور که می بینید، همه چیز عالی کار می کند.

بنابراین، در این آموزش ما یک ویجت ساده اندرویدی متشکل از یک دکمه ایجاد کرده ایم، وقتی روی ویجت ما کلیک می کنید، یک درخواست http ساده ایجاد می کنیم و لینک URL داده شده را دنبال می کنیم. شما می توانید با برخی از عناصر دیگر تمرین کنید، نه یک دکمه، و عملکرد جالبی برای آنها ایجاد کنید. موفق باشید!

به منظور. واسه اینکه. برای اینکه یک ویجت در اندروید بسازیداصلاً نیازی به دانستن برنامه نویسی نیست. چندین برنامه طراحی وجود دارد که کشیدن یک ویجت را آسان می کند و عملکرد مورد نظر را به آن می دهد.

متن مینیمالیستی

این برنامه به شما امکان می دهد ویجت های مینیمالیستی متشکل از متن و اعداد ایجاد کنید. علیرغم نام، این ویجت ها قابلیت های بسیار گسترده ای دارند.

پس از نصب، ویجت متن Minimalistic با اندازه مورد نیاز را به دسکتاپ خود اضافه کنید. پنجره تنظیمات ویجت باز می شود.

در تنظیمات می توانید پس زمینه، جهت، فونت، عمل کلیک و غیره را انتخاب کنید. همچنین در تنظیمات طرح بندی های از پیش تعریف شده برای پر کردن وجود دارد:

  • زمان.
  • تاریخ.
  • سطح شارژ.
  • درجه حرارت.

هنگام ایجاد طرح بندی ویجت خود، گزینه های اضافی برای پر کردن ویجت در دسترس است:

  • متن
  • فضای آزاد/استفاده شده روی کارت SD.
  • زمان کارکرد سیستم
  • مقدار داده های منتقل شده از طریق شبکه تلفن همراه و بیشتر.
  • نام شبکه Wi-Fi، آدرس IP در شبکه Wi-Fi.
  • مقدار رم استفاده شده

همه مقادیر را می توان به صورت متن و اعداد نمایش داد.

ویجت سفارشی نهایی (UCCW)

این برنامه به شما امکان می دهد نه تنها از متن، بلکه با محتوای گرافیکی نیز ویجت بسازید.

پس از راه اندازی، پنجره ایجاد ویجت باز می شود. برای افزودن یک شی به ویجت، روی دکمه +/- در بالا کلیک کنید. برای جابجایی و ویرایش آن به هر نحوی، روی دکمه "انتخاب شی" در بالا کلیک کرده و شی اضافه شده را انتخاب کنید.

می توانید اشیاء زیر را روی ویجت ها قرار دهید:

  • زمان، تاریخ و روز هفته.
  • ساعت آنالوگ
  • متن سفارشی.
  • میزان شارژ به اعداد یا نمایش گرافیکی آن.
  • تمام اطلاعات آب و هوا - دما، رطوبت، سرعت باد و غیره.
  • اشکال هندسی
  • تصاویر.
  • تعداد ایمیل های خوانده نشده جیمیل، اس ام اس و تماس های از دست رفته.
  • زمانی که زنگ ساعت زنگ خواهد زد.

هر عنصر را می توان چرخاند، کشیده، خم کرد و رنگ آن را تغییر داد. البته می توانید اکشن کلیک (Select Object->Hotspots) را پیکربندی کنید. واردات و صادرات ویجت های ایجاد شده پشتیبانی می شود.

سیستم عامل اندروید دارای عملکردها و قابلیت های بسیاری است. یکی از آنها ویجت ها هستند - پنجره هایی که به شما امکان می دهند از بخشی از عملکرد برنامه بدون راه اندازی آن استفاده کنید.

اساسا، ویجت ها همراه با برنامه هستند. با این حال، برنامه هایی هستند که این گزینه را ندارند. این بدان معنی است که شما باید امور را در دستان خود بگیرید!

  • با استفاده از Play Market، ما برنامه رایگان "KWGT Kustom Widget Maker" را دانلود می کنیم که می توان آن را به صورت رایگان خریداری کرد، اما برخی از عملکردها تنها پس از خرید افزونه در دسترس خواهند بود.

این برنامه به عنوان یک پلت فرم برای راه اندازی ویجت های شخص ثالث از توسعه دهندگان مختلف عمل می کند. علاوه بر این، می‌توانید ظاهر ویجت‌ها را تغییر دهید و به آنها قابلیت‌های بیشتری بدهید.


در ابتدا، ممکن است فکر کنید که "KWGT Kustom Widget Maker" یک برنامه پیچیده است که شبیه برنامه های توسعه نرم افزار است. بله و خیر: رابط کاربری مشابه است، اما هیچ چیز پیچیده ای در اینجا وجود ندارد.


برای شروع ویرایش ویجت ها:

  • به دسکتاپ بروید و با نگه داشتن دکمه منو یا ضربه زدن طولانی روی صفحه، منوی ویرایش دسکتاپ را فراخوانی کنید.
  • قاب ویجت "KWGT" را پیدا کنید و اندازه مورد نیاز را تنظیم کنید، به عنوان مثال - 4x2. پس از این، یک پنجره روی دسکتاپ ظاهر می شود.
  • روی پنجره کلیک کنید، بدین ترتیب منوی انتخاب ویجت باز می شود.
  • طرح مورد علاقه خود را انتخاب کرده و روی آن کلیک کنید (طرح بندی های اضافی را می توان از فروشگاه Play دانلود کرد. برای انجام این کار، "ویجت های KWGT" را در نوار جستجوی برنامه مشخص کنید).
  • پس از انتخاب طرح مورد نظر، برنامه اقدام به ویرایش آن می کند. تنظیمات زیر در دسترس خواهد بود:
  1. عناصر مسئول تنظیم پارامترهای هندسی ویجت.
  2. پس زمینه، مسئول تصویر پس زمینه در ویجت.
  3. لمسی که اقداماتی را که هنگام فعال شدن ویجت انجام می شود را مشخص می کند.
  4. لایه مسئول مقیاس ویجت؛

در نتیجه، یک ویجت منحصر به فرد با قابلیت های لازم دریافت خواهیم کرد.

اخیراً نیاز به ایجاد یک ابزار برای نوار کناری ویندوز داشتم. من هیچ مهارتی در این کار نداشتم، پس پس از کمی گوگل و خواندن مستندات، بیایید شروع کنیم.

من فوراً به شما نشان خواهم داد که با چه چیزی به پایان رسیدم.


گجت اطلاعاتی را از سایت به شکل xml دریافت می کند، آن را تجزیه می کند و در واقع نمایش می دهد. این ابزار همچنین نسخه های جدید را بررسی می کند و در صورت وجود آنها از کار کردن خودداری کنید :)
در ابتدا، به خاطر کسب تجربه، می خواستم یک گجت را به طور کامل در VBScript بنویسم (چون هنوز با آن کار نکرده بودم)، اما در نهایت مجبور شدم درج هایی در جاوا اسکریپت ایجاد کنم.
بیایید مستقیماً به کد حرکت کنیم. من در اینجا کل کد را بررسی نمی کنم، فقط نکات اصلی را نشان می دهم. پیوند به ابزار تمام شده در انتهای مقاله است.
فایل اصلی یک ابزار، مانیفست آن است - فایل Gadget.xml. باید دقیقاً به این نام خوانده شود و در ریشه آرشیو ما قرار گیرد (این ابزار چیزی بیش از یک آرشیو ZIP با پسوند گجت . نیست).

آب و هوا از Info.Denms.Ru 1.0.1232 ابزارک کامل آب و هوا (Info.Denms.Ru)

بیایید با جزئیات بیشتری به آن نگاه کنیم.
عنصر باید حاوی apiVersion برابر با 1.0.0 (در حال حاضر) و همچنین ویژگی src باشد که فایل اصلی ابزار ما را مشخص می کند.
مجوزهای ابزارک. تنظیم برابر با کامل؛
حداقل نسخه نوار کناری ویندوز. در حال حاضر - 1.0;
گزینه ها - نام ابزار، - نسخه، - اطلاعات در مورد نویسنده، - پیوند به صفحه با ابزار، - نماد ابزار و در پانل ابزارهای نصب شده نمایش داده می شود.

فایل main.html یک فایل html معمولی است، من آن را به طور کامل لیست نمی کنم، فقط به برخی نکات می پردازم.
عنصر g:background برای تنظیم پس‌زمینه ابزار استفاده می‌شود. بیایید آن را شفاف کنیم.

این ابزار می‌تواند در دو حالت باشد - متصل (در سمت چپ در تصویر بالا) و باز (در سمت راست). ما وضعیت فعلی ابزار را در متغیر جاوا اسکریپت ذخیره می کنیم.

ما در آینده به تابع isDocked wrapper نیاز خواهیم داشت تا وضعیت فعلی ابزار را از VBScript دریابیم (هرچقدر هم تلاش کردم، نتوانستم این را در VBScript خالص پیاده‌سازی کنم). یک نکته دیگر - اسکریپت ها به این ترتیب درست کار می کنند، یعنی. ابتدا اسکریپت های VBScript و سپس جاوا اسکریپت را توضیح می دهیم.

عناصر باقیمانده در main.html عناصر DIV کاملاً در موقعیت قرار دارند. متعاقباً از طریق اسکریپت ها با شناسه آنها به آنها دسترسی خواهیم داشت.

با استفاده از جاوا اسکریپت، حالت های docked و undocked را برای ابزار تنظیم می کنیم و همچنین فایل تنظیمات (main.js) را مشخص می کنیم.

System.Gadget.onDock = تغییر اندازه؛ System.Gadget.onUndock = تغییر اندازه؛ System.Gadget.settingsUI = "settings.html"; System.Gadget.onSettingsClosed = SettingsClosed; docked=0; //وضعیت اولیه تغییر اندازه ابزارک(); //مقداردهی اولیه

همانطور که از لیست بالا می بینید، زمانی که وضعیت ابزار تغییر می کند، تابع resize() فراخوانی می شود.

تابع resize(bd = document.body.style; System.Gadget.beginTransition(); if (System.Gadget.docked) (// وضعیت کوچک bd.width=148; // اندازه ابزار را تنظیم کنید bd.height= 201 ; the undocked document.getElementById("small_needupdate").innerHTML = document.getElementById("big_needupdate").innerHTML document.getElementById("big_needupdate").innerHTML = "";//... ) state bd.width=160; bd.background="no-repeat" //transfer values ​​from docked State document.getElementById("big_needupdate" = document.getElementById("small_needupdate").innerHTML document.getElementById("small_needupdate").innerHTML = """ //... ) System.ran .Gadget.TransitionType.morph,1); )

همچنین می توانید عملکرد ذخیره تنظیمات را توضیح دهید. ابزار من آنها را ندارد، اما به عنوان مثال به شما نشان خواهم داد که چگونه این کار انجام می شود.

تابع SettingsClosed(رویداد) (اگر (event.closeAction == event.Action.commit) (//alert System.Gadget.Settings.readString("test"); ) )

ReadString – یک رشته ذخیره شده قبلی را می خواند، به ترتیب writeString می نویسد.
روش ها System.Gadget.beginTransition(); و System.Gadget.endTransition(); برای تغییر اندازه "هموار" ابزار مورد نیاز است. آنها در ویندوز هفت نادیده گرفته می شوند، اما من همچنان آنها را برای سازگاری با عقب مانده رها کردم.

همانطور که در بالا ذکر شد، سرور اطلاعات آب و هوا را با فرمت xml در اختیار ما قرار می دهد.

1.7 41 برف ابری 87 جنوب غربی 5 -3 -1 -1 26 1 -9 41 0 …

ما xml را با استفاده از VBScript دانلود و تجزیه می کنیم.

Sub DownloadXML2 Set objXML = CreateObject("Microsoft.XmlHttp") objXML.Open "GET"، "http://info.kovonet.ru/weather.xml"، True objXML.OnReadyStateChange = GetRef("objXML_onreadystatechange.Hederset") "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" objXML.Send iTimeoutID = window.SetTimeout("mySleep", 1000) End Sub

تابع mySleep اتصال ما را برای مدت زمان بررسی می کند.

زیر mySleep اگر bRespReceived = "نادرست" و سپس "پاسخ هنوز دریافت نشده است iTimeout = iTimeout + 1 اگر (iTimeout > 30) سپس "timeout timerFirstRun = window.SetTimeout("Update", 60000) "تلاش برای به روز رسانی مجدد در یک دقیقه دیگر "تایم اوت هنوز به پایان نرسیده است، به شمارش ثانیه ها ادامه دهید iTimeoutID = window.SetTimeout("mySleep", 1000) در صورت پایان اگر پایان Sub

اگر دانلود با موفقیت انجام شود، objXML.readyState برابر با 4 خواهد بود و وضعیت (objXML.status) مقدار 200 را برمی گرداند.

تابع objXML_onreadystatechange() If (objXML.readyState = 4) سپس "msgbox objXML.statusText If (objXML.status = 200) سپس bRespReceived=true SaveFile(objXML.responseText)inhere timerFirst"(objXML.responseText =0.0"p. سعی کنید یک دقیقه دیگر دوباره به‌روزرسانی کنید. End If End If End Function

در این صورت فایل را در یک پوشه موقت ویندوز ذخیره کنید

تابع SaveFile(what) تنظیم fso = CreateObject ("Scripting.FileSystemObject") tempFolder = fso.GetSpecialFolder(2) filepath = tempFolder+"\weather.xml" Dim fso1، tf تنظیم fso1 = CreateObject("ScriptingScript. = fso1.CreateTextFile(filepath, True, True) "rerite, unicode tf.Write(what) tf.Close ParseXML End Function

و ما شروع به تجزیه فایل می کنیم.

Sub ParseXML Set fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.GetSpecialFolder(2) filepath = tempFolder+"\weather.xml" Set xmlDoc = CreateObject("Msxml2.DOMDocument.") xml="DocDoc. load(filepath) "گره اصلی – در مورد ما تنظیم currNode = xmlDoc.documentElement "روزهای هفته – تنظیم dayNode = currNode.firstChild در حالی که نه dayNode چیزی نیست تنظیم currNode = dayNode.firstChild در حالی که currNode چیزی نیست اگر currNode.parentNode.getAttribute("id") = "امروز" سپس "امروز اگر currNode.nodeName سپس سند = "temp" .getElementById(پیشوند+"maintemp").innerHTML = currNode.childNodes(0).text+Chr(176) "نمایش عناصر باقی مانده در غیر این صورت "امروز نه، نمایش دقیق تر"... پایان اگر Set currNode = currNode.nextSibling Wend dayNode = dayNode.nextSibling Wend End Sub را تنظیم کنید

بررسی نسخه های جدید دقیقاً به همین روش انجام می شود.
فراموش نکنید که یک فایل تنظیمات - settings.html ایجاد کنید که وجود آن را در بالا اعلام کردیم.

تنظیمات

این همه، در واقع. خوشحال می شوم اگر مقاله (اولین :)) من برای کسی مفید باشد.

منابع مورد استفاده

ايجاد كردن ویجت وردپرس– این تقریباً نحوه ایجاد یک افزونه است، اما بسیار ساده تر و واضح تر. تنها چیزی که نیاز دارید یک فایل با همه چیز است PHPکدی که نوشتن آن بسیار ساده تر از افزونه ای است که چندین فایل دارد. سه عملکرد اصلی ویجت وجود دارد: اینها هستند ویجت, به روز رسانیو فرم.

  • ویجت تابع ()
  • به روز رسانی تابع ()
  • فرم تابع ()

| دانلود منابع |

ساختار اساسی

طراحی اولیه ویجت ما بسیار ساده است، توابع مفیدی وجود دارد که باید بدانید. ستون فقرات ساختار ویجت ما چیزی شبیه به این خواهد بود:

Add_action("widgets_init", "register_my_widget"); // تابع برای بارگیری تابع ویجت من register_my_widget() () // تابع برای ثبت کلاس ویجت من My_Widget WP_Widget را گسترش می دهد () () // تابع کلاس ویجت مثال My_Widget() () // تنظیمات ویجت تابع ویجت() () // نمایش به روز رسانی تابع ویجت() () // به روز رسانی فرم تابع ویجت() () // و البته فرم گزینه های ویجت

مرحله 1. widget_init

قبل از انجام همه این کارها، باید ویجت خود را با استفاده از تابع بارگذاری کنیم widget_init. این یک سرنخ است عمل، که می توانید اطلاعات بیشتری در مورد آن در کدکس وردپرس بیابید.

Add_action("widgets_init", "register_my_widget");

کار بعدی که انجام خواهیم داد این است بیایید ثبت نام کنیمویجت ما در وردپرس به طوری که در قسمت ابزارک ها موجود باشد.

تابع register_my_widget() ( register_widget("My_Widget"); )

گام 2. کلاس

ویجت خود را در آن محصور خواهیم کرد کلاس. نام کلاس مهم است! چیزی که باید در نظر داشته باشیم این است که نام کلاس و نام تابع باید باشد همسان.

کلاس My_Widget گسترش WP_Widget()

حالا مقداری را پاس می کنیم گزینه هاتنظیمات. مثلا میتونیم بفرستیم عرضو ارتفاع. ما همچنین می توانیم یک کوچک بدهیم شرحدر صورت تمایل به ویجت ما. اگر ویجت را با موضوع تجاری خود مرتبط کنید، مفید خواهد بود.

تابع My_Widget() ( تابع My_Widget() ($widget_ops = array("classname" => "example", "description" => __("ویجتی که نام نویسنده را نمایش می دهد"، "مثال"))؛ $control_ops = array("width" => 300, "height" => 350, "id_base" => "example-widget" $this->WP_Widget("example-widget", __("Example Widget", "example"); )، $widget_ops، $control_ops);

اکنون که ما با الزامات اولیه برای ویجت خود به پایان رسیدیم، توجه خود را به آن معطوف خواهیم کرد سه عملکرد، که قبلا در مورد آن صحبت کردیم و توابع مهم یا بلوک های اساسی برای ساخت ویجت ما هستند!

مرحله 3: تابع ویجت()

تابع اول به نمایش دادنویجت ما ما چند مورد را منتقل می کنیم استدلال هابه عملکرد ما. ما آرگومان هایی را از موضوع ارسال می کنیم، این می تواند یک عنوان یا برخی پارامترهای دیگر باشد. حالا متغیر را پاس می کنیم نمونه، مثال، که با کلاس تابع ما مرتبط است.

ویجت تابع ($args، $instance)

بعد از این استخراج می کنیم گزینه هااز آرگومان ها، زیرا ما نیاز داریم که پارامترها به صورت محلی در دسترس باشند. اگر نمی دانید متغیر محلی چیست، اکنون نگران آن نباشید و فقط این مرحله را اضافه کنید.

استخراج ($args);

بعد نصب میکنیم عنوانو سایر پارامترهابرای ویجت ما، که توسط کاربر در منوی ویجت قابل تغییر است. ما همچنین متغیرهای خاصی مانند $before_widget، $after_widget. این پارامترها توسط موضوع پردازش می شوند.

$title = application_filters("widget_title", $instance["title"]); $name = $instance["name"]; $show_info = isset($instance["show_info"]) ? $instance["show_info"] : false; echo $before_widget; // اگر ($title) echo $before_title باشد، عنوان ویجت را نمایش دهید. $title. $after_title; //نمایش نام if ($name) printf("

" . __("سلام ملوان! نام من %1$s است."، "مثال") ."

"، $name); if ($show_info) printf($name); echo $after_widget;

مرحله 4: به روز رسانی تابع ()

به‌روزرسانی تابع ($new_instance، $old_instance) ($instance = $old_instance؛ //برچسب‌ها از عنوان و نام برای حذف HTML $instance["title"] = strip_tags($new_instance["title"]؛ $instance[" name"] = strip_tags($new_instance["name"]); $instance["show_info"] = $new_instance["show_info"]؛ بازگشت $instance؛ )

یک نکته قابل توجه: در اینجا ما از آن استفاده می کنیم strip_tagsبرای حذف تمام متن از XHTML، که ممکن است عملکرد ویجت ما را مختل کند.

مرحله 5. فرم تابع ()

در مرحله بعدی ایجاد خواهیم کرد فرمکه خدمت خواهد کرد بلوک ورودی. تنظیمات و مقادیر تعریف شده توسط کاربر را می پذیرد. تابع فرمممکن است شامل چک باکس، فیلدهای ورودی متن و غیره باشد.

قبل از ایجاد این فیلدهای ورودی، باید تصمیم بگیریم که وقتی کاربر چیزی را از ویجت انتخاب نمی کند، چه چیزی را نشان دهیم. برای انجام این کار، مقادیر پیش فرض پارامترها مانند عنوان، توضیحات و غیره را ارسال می کنیم.

//تنظیمات پیش فرض ویجت را تنظیم کنید. $defaults = array("title" => __("نمونه"، "مثال")، "name" => __("بلال شاهین"، "مثال")، "show_info" => true); $instance = wp_parse_args((آرایه) $instance, $defaults); ?>

اکنون ایجاد خواهیم کرد فیلد ورودی متن. ما این مقادیر را در یک تگ پاراگراف قرار می دهیم.

// عنوان ویجت: ورودی متن

" name="get_field_name ("عنوان"); ?>" value=""style="width:100%;" />

//ورودی متن

" name="get_field_name ("نام"); ?>" value=""style="width:100%;" />

// چک باکس

شناسه =get_field_id ("show_info"); ?>" name="get_field_name("show_info"); ?>" />

نتیجه

باشه الان تموم شد شما به تازگی یک ویجت زیبا و ساده ساخته اید که نام نویسنده وبلاگ را نشان می دهد. علاوه بر این، به کاربر این امکان را می دهد که انتخاب کند که آیا اطلاعات را به مخاطب نشان دهد یا نه. کد را در آن ذخیره کنید فایل PHPو آن را در پوشه تم خود آپلود کنید. با او تماس بگیرید functions.php. پس از آن وارد کنسول شوید ظاهر → ابزارک هاو ویجت خود را خواهید دید.

همه این کدها در فایل ضمیمه مقاله گنجانده شده است که کپی و پیست کردن را آسانتر می کند. لذت ببرید!