Tạo một widget cho Android từ đầu. Làm cách nào để tạo tiện ích của riêng bạn trong WordPress? Nhận dữ liệu từ máy chủ, phương thức _updateData

Tất cả chúng ta đều sử dụng widget theo cách này hay cách khác, vì chúng là miền của hệ thống Android, ngay cả những người sở hữu iPhone cũng lén lút liếc nhìn chúng. Bạn sử dụng những vật dụng nào? Đồng hồ, thời tiết – tất cả đều là “công việc”, phải không? Có thể bạn đã cài đặt Beautiful Widget, Premium Widget hoặc các ứng dụng tương tự. Những chương trình này chắc chắn là tốt, nhưng chúng không cho phép khả năng sáng tạo của bạn được phát huy. Bạn có muốn tự mình tạo một widget cho điện thoại thông minh của mình không? Sau đó, hãy xem cách thực hiện việc này bằng ứng dụng tiện ích Trình chỉnh sửa.

Chúng ta chụp nền đẹp, mặt số đồng hồ lớn, ngày trong tuần, nhưng nếu không có thời tiết thì sao? Và chúng tôi sẽ thêm nó vào tiện ích lý tưởng của mình trong 3 ngày cùng một lúc. Vì vậy, tất cả những điều này và nhiều hơn thế nữa có thể được thực hiện bằng ứng dụng android Editor widget. Hãy bắt đầu tạo.

[

Theo mặc định, chúng tôi có tám bố cục tiện ích, hãy chọn một bố cục và bắt đầu tạo. Ở đây không ai giới hạn khả năng của chúng tôi. Chọn một nền. Đây có thể là hình ảnh hoặc màu tô; bạn có thể điều chỉnh độ trong suốt của lớp. Lựa chọn một khung hình. Có khá nhiều trong số chúng và tất cả chúng đều rất đẹp, tất nhiên là về hương vị và màu sắc... Sau đó, chúng ta chuyển sang lấp đầy vật dụng của mình. Để làm điều này, chúng ta có quyền truy cập vào nhiều yếu tố khác nhau: đồng hồ, ngày trong tuần, ngày, sạc pin trong một số dự báo, thông báo về cuộc gọi nhỡ và tin nhắn, yếu tố thời tiết. Như bạn hiểu, sự lựa chọn rất rộng. Chúng tôi lấy những gì chúng tôi cần và sắp xếp nó theo cách chúng tôi cần. Chúng ta cũng có thể thay đổi màu sắc của đối tượng và kiểu phông chữ. Nói chung, chúng ta tạo ra vẻ đẹp hoàn chỉnh và mỗi người đều có vẻ đẹp riêng - xét cho cùng, tất cả chúng ta đều là duy nhất!

Ứng dụng tiện ích Trình chỉnh sửa tạo điều kiện lý tưởng. Vì vậy, kết quả công việc chỉ phụ thuộc vào sự bay bổng của trí tưởng tượng của chúng ta.

Các widget có thể có kích thước khác nhau và có khả năng mở rộng.

Nhân tiện, trong cài đặt chúng ta có thể chọn định dạng ngày giờ. Và cũng có thể thiết lập một số “hành động” khi bạn nhấp vào tiện ích. Điều này có thể bao gồm thông tin bổ sung về trạng thái của điện thoại hoặc việc khởi chạy một ứng dụng được chọn trước, chẳng hạn như máy ghi âm. Hoặc quay số điện thoại, điều này thậm chí còn bất thường hơn, nhưng có lẽ hữu ích cho ai đó.

Nói chung, nếu bạn muốn tạo một widget cho thiết bị Android của mình thì các widget Editor sẽ là trợ thủ đắc lực của bạn.

Tạo nên Tiện ích WordPress– đây là cách tạo một plugin, nhưng đơn giản và rõ ràng hơn nhiều. Tất cả những gì bạn cần là một tập tin chứa mọi thứ PHP mã dễ viết hơn nhiều so với plugin có nhiều tệp. Có ba chức năng chính của widget: đây là tiện ích, cập nhậthình thức.

  • tiện ích chức năng ()
  • cập nhật hàm()
  • dạng hàm()

| Nguồn tải xuống |

Cấu trúc cơ bản

Thiết kế cơ bản của tiện ích của chúng tôi rất đơn giản, có những chức năng hữu ích mà bạn cần biết. Xương sống của cấu trúc widget của chúng ta sẽ giống như thế này:

Add_action("widget_init", "register_my_widget"); // hàm tải widget của tôi hàm register_my_widget() () // hàm đăng ký lớp widget của tôi My_Widget mở rộng WP_Widget () () // Ví dụ về lớp widget My_Widget() () // Hàm cài đặt widget widget() () // hiển thị hàm widget update() () // cập nhật hàm widget form()() // và tất nhiên là cả form cho các tùy chọn widget

Bước 1. widget_init

Trước khi thực hiện tất cả những điều này, chúng ta cần tải tiện ích của mình bằng hàm widget_init. Đây là một đầu mối để hoạt động, bạn có thể tìm thêm thông tin trong codex WordPress.

Add_action("widget_init", "register_my_widget");

Việc tiếp theo chúng ta sẽ làm là hãy đăng ký tiện ích của chúng tôi trong WordPress để nó có sẵn trong phần tiện ích.

Hàm register_my_widget() ( register_widget("My_Widget"); )

Bước 2. Lớp học

Chúng tôi sẽ đính kèm tiện ích của chúng tôi trong Lớp học. Tên lớp quan trọng! Điều chúng ta phải ghi nhớ là tên lớp và tên hàm phải là giống hệt nhau.

Lớp My_Widget mở rộng WP_Widget()

Bây giờ chúng ta sẽ vượt qua một số tùy chọn cài đặt. Ví dụ, chúng ta có thể gửi chiều rộngchiều cao. Chúng ta cũng có thể cho một ít Sự miêu tả vào tiện ích của chúng tôi nếu chúng tôi muốn. Điều này sẽ hữu ích nếu bạn liên kết tiện ích này với chủ đề thương mại của mình.

Hàm My_Widget() ( function My_Widget() ( $widget_ops = array("classname" => "example", "description" => __("Một widget hiển thị tên tác giả ", "example")); $control_ops = array("width" => 300, "height" => 350, "id_base" => "example-widget"); $this->WP_Widget("example-widget", __("Example Widget", "example" ), $widget_ops, $control_ops); )

Bây giờ chúng ta đã hoàn thành các yêu cầu cơ bản cho tiện ích của mình, chúng ta sẽ chuyển sự chú ý sang ba chức năng, mà chúng ta đã nói đến trước đó và đó là các chức năng quan trọng hoặc các khối cơ bản để xây dựng tiện ích của chúng ta!

Bước 3: chức năng widget()

Chức năng đầu tiên đề cập đến trưng bày tiện ích của chúng tôi. Chúng tôi sẽ chuyển qua một số tranh luận vào chức năng của chúng tôi. Chúng ta sẽ truyền các đối số từ chủ đề, đây có thể là tiêu đề hoặc một số tham số khác. Bây giờ chúng ta chuyển biến ví dụ, được liên kết với lớp hàm của chúng tôi.

Tiện ích chức năng($args, $instance)

Sau đó chúng tôi trích xuất tùy chọn khỏi các đối số vì chúng ta cần các tham số có sẵn cục bộ. Nếu bạn không biết biến cục bộ là gì thì đừng lo lắng về nó ngay bây giờ mà chỉ cần thêm bước này.

trích xuất($args);

Tiếp theo chúng ta sẽ cài đặt tiêu đềcác thông số khác cho tiện ích của chúng tôi, người dùng có thể thay đổi tiện ích này trong menu tiện ích. Chúng tôi cũng thêm các biến đặc biệt như $trước_widget, $after_widget. Các tham số này được xử lý theo chủ đề.

$title = apply_filters("widget_title", $instance["title"]); $name = $instance["name"]; $show_info = isset($instance["show_info"]) ? $instance["show_info"] : sai; tiếng vang $ before_widget; // Hiển thị tiêu đề widget if ($title) echo $Before_title . $tiêu đề . $after_title; //Hiển thị tên if ($name) printf("

" . __("Này Thủy thủ của họ! Tên tôi là %1$s.", "example") ."

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

Bước 4: cập nhật hàm()

Cập nhật chức năng($new_instance, $old_instance) ( $instance = $old_instance; //Tách thẻ khỏi tiêu đề và tên để xóa HTML $instance["title"] = Strip_tags($new_instance["title"]); $instance[" name"] = Strip_tags($new_instance["name"]); $instance["show_info"] = $new_instance["show_info"]; return $instance; )

Một điều cần lưu ý: ở đây chúng tôi đang sử dụng dải_tagsđể xóa tất cả văn bản khỏi XHTML, điều này có thể làm gián đoạn hoạt động của tiện ích của chúng tôi.

Bước 5: dạng hàm()

Trong bước tiếp theo chúng ta sẽ tạo hình thức cái nào sẽ phục vụ khối đầu vào. Nó sẽ chấp nhận các cài đặt và giá trị do người dùng xác định. Chức năng hình thức có thể bao gồm các hộp kiểm, trường nhập văn bản, v.v.

Trước khi tạo các trường nhập này, chúng tôi cần quyết định nội dung sẽ hiển thị khi người dùng không chọn bất kỳ thứ gì từ tiện ích. Để làm điều này, chúng ta sẽ chuyển các giá trị mặc định cho các tham số, chẳng hạn như tiêu đề, mô tả, v.v.

// Thiết lập một số cài đặt tiện ích mặc định. $defaults = array("title" => __("Example", "example"), "name" => __("Bilal Shaheen", "example"), "show_info" => true); $instance = wp_parse_args((array) $instance, $defaults); ?>

Bây giờ chúng ta sẽ tạo trường nhập văn bản. Chúng tôi sẽ gói các giá trị này trong thẻ đoạn văn.

// Tiêu đề widget: Nhập văn bản

" tên="get_field_name("tiêu đề"); ?>" value="" style="width:100%;" />

//Nhập văn bản

" tên="get_field_name("tên"); ?>" value="" style="width:100%;" />

// Hộp kiểm

id="get_field_id("show_info"); ?>" tên="get_field_name("show_info"); ?>" />

Phần kết luận

Được rồi, mọi chuyện đã kết thúc rồi. Bạn vừa tự mình tạo một tiện ích đơn giản và dễ thương hiển thị tên tác giả blog. Hơn nữa, nó cho phép người dùng lựa chọn có hiển thị thông tin cho khán giả hay không. Lưu mã vào tập tin PHP và tải nó lên thư mục chủ đề của bạn. Gọi nó trong hàm.php. Sau đó, đi tới bảng điều khiển trong Giao diện → Tiện ích và bạn sẽ thấy tiện ích của mình.

Tất cả mã này đều có trong tệp đính kèm bài viết, giúp việc sao chép và dán trở nên dễ dàng hơn. Thưởng thức!

Bạn có muốn tạo các widget của riêng mình trong WordPress không? Tiện ích cho phép bạn kéo và thả các phần tử vào bất kỳ thanh bên hoặc khu vực tiện ích nào sẵn sàng cho trang web của bạn. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách dễ dàng tạo tiện ích WordPress tùy chỉnh.

Tiện ích WordPress là gì?

Các tiện ích WordPress chứa các đoạn mã mà bạn có thể thêm vào thanh bên của trang web hoặc các khu vực tương thích với tiện ích. Hãy coi nó như những mô-đun mà bạn có thể sử dụng để thêm các thành phần khác nhau bằng giao diện kéo và thả đơn giản.

Theo mặc định, WordPress đi kèm với một bộ tiện ích tiêu chuẩn có thể được sử dụng với bất kỳ chủ đề WordPress nào.

WordPress cũng cho phép các nhà phát triển tạo các widget của riêng họ. Nhiều chủ đề và plugin WordPress đi kèm với các tiện ích riêng mà bạn có thể thêm vào thanh bên của mình.

Ví dụ: bạn có thể thêm biểu mẫu liên hệ, biểu mẫu đăng nhập tùy chỉnh hoặc thư viện ảnh vào thanh bên mà không cần viết bất kỳ mã nào.

Như vậy, hãy xem việc tạo các widget tùy chỉnh của riêng bạn trong WordPress dễ dàng như thế nào.

Cách tạo Widget của riêng bạn trong WordPress

Hướng dẫn này dành cho những người có kiến ​​thức về phát triển web.

Trước khi bắt đầu, bạn có thể muốn tạo một plugin cụ thể trên trang web của mình để chèn mã tiện ích cho hướng dẫn này.

Bạn cũng có thể dán mã vào tệp "functions.php" của chủ đề. Tuy nhiên, nó sẽ chỉ khả dụng nếu chủ đề cụ thể đó đang hoạt động.

Trong hướng dẫn này, chúng tôi sẽ tạo một tiện ích đơn giản để chào đón khách truy cập. Hãy xem mã này, sau đó dán nó vào plugin tùy chỉnh của bạn để xem nó hoạt động như thế nào.

// Đăng ký và tải hàm widget wpb_load_widget() (register_widget("wpb_widget"); ) Add_action("widgets_init", "wpb_load_widget"); //Tạo một lớp widget wpb_widget mở rộng hàm WP_Widget(__construct() (parent::__construct(//ID cơ sở của widget wpb_widget"//tên widget sẽ xuất hiện trong IU __("PCBs Widget""wpb_widget_domain") //description Mảng widget ("description" => __("Simple WordPress Widget", "wpb_widget_domain"))); ) // Tạo một widget chức năng giao diện người dùng công khai widget ($args, $instance) ($title = apply_filters("widget_title" $instance [ "title"]); // đối số trước và sau của widget được xác định bởi chủ đề echo $args["Before_widget"];if (!empty($titles)) echo $args["Before_title"].$Title. $args[" after_title"]; // Tại đây bạn sẽ chạy mã và hiển thị đầu ra echo __("Simple widget", "wpb_widget_domain"); Echo $ args [ "after_widget"]; ) // Biểu mẫu chức năng công khai của widget phụ trợ ($ dụ) (if ( Iset ($instance["title"])) ($title = $instance["title"]; ) Khác ($title = __("Tiêu đề mới", "wpb_widget_domain"); ?) // Mẫu widget quản trị viên>

<метка для = "get_field_id("tên");>?"> <входной класс = "widefat" ID = "get_field_id("name");?>"? Name = " Get_field_name("tên"?);?>"type="text"value=" «/>

Sau khi thêm mã, bạn nên truy cập " Giao diện > Tiện ích" Bạn sẽ thấy một tiện ích mới" Tiện ích PCB Trong danh sách các vật dụng có sẵn. Bạn phải kéo tiện ích này vào thanh bên của mình.

Bây giờ, khi truy cập blog của mình, bạn sẽ thấy một tiện ích trong thanh bên nơi bạn đã thêm tiện ích được đề cập.

Bây giờ hãy nghiên cứu mã này một chút.

Đầu tiên, chúng tôi viết ra " wpb_widget Và tải tiện ích tùy chỉnh của chúng tôi. Sau đó, chúng tôi đã xác định chức năng của tiện ích và cách hiển thị tiện ích đó trên trang tổng quan.

Cuối cùng, chúng tôi đã xác định cách xử lý các thay đổi được thực hiện đối với tiện ích.

Bây giờ có một vài điều bạn có thể muốn biết. Ví dụ, mục đích là gì wpb_text_domain«?

WordPress sử dụng "gettext" để quản lý việc dịch và bản địa hóa. Vì thế wpb_text_domain"Và __e cho gettext biết cách lấy chuỗi dịch nếu nó tồn tại.

Nếu bạn đang tạo tiện ích tùy chỉnh cho chủ đề của mình, bạn có thể thay thế "wpb_text_domain" bằng trường văn bản của chủ đề.

Đó là tất cả cho hướng dẫn này, tôi hy vọng nó sẽ cho phép bạn tạo các widget của riêng mình trên blog WordPress.

Để tạo tiện ích trong Android Không nhất thiết phải biết lập trình. Có một số ứng dụng thiết kế giúp bạn dễ dàng vẽ một widget và cung cấp cho nó chức năng mong muốn.

văn bản tối giản

Ứng dụng này cho phép bạn tạo các vật dụng tối giản bao gồm văn bản và số. Mặc dù tên như vậy nhưng những vật dụng này có khả năng rất rộng.

Sau khi cài đặt, hãy thêm tiện ích Văn bản tối giản có kích thước được yêu cầu vào màn hình của bạn. Cửa sổ cài đặt tiện ích sẽ mở ra.

Trong cài đặt, bạn có thể chọn nền, hướng, phông chữ, hành động nhấp chuột, v.v. Ngoài ra trong cài đặt còn có các bố cục được xác định trước để điền:

  • Thời gian.
  • Ngày của.
  • Mức phí.
  • Nhiệt độ.

Các tùy chọn bổ sung để điền tiện ích có sẵn khi tạo bố cục tiện ích của riêng bạn:

  • Chữ.
  • Dung lượng trống/đã sử dụng trên thẻ SD.
  • Thời gian vận hành hệ thống.
  • Lượng dữ liệu được truyền qua mạng di động và hơn thế nữa.
  • Tên mạng Wi-Fi, địa chỉ IP trong mạng Wi-Fi.
  • Dung lượng RAM đã sử dụng.

Tất cả các giá trị có thể được hiển thị bằng văn bản và số.

Tiện ích tùy chỉnh cuối cùng (UCCW)

Ứng dụng này cho phép bạn tạo các widget không chỉ từ văn bản mà còn có nội dung đồ họa.

Khi khởi chạy, cửa sổ tạo widget sẽ mở ra. Để thêm một đối tượng vào tiện ích, hãy nhấp vào nút +/- ở trên cùng. Để di chuyển và chỉnh sửa nó theo bất kỳ cách nào, hãy nhấp vào nút “Chọn đối tượng” ở trên cùng và chọn đối tượng đã thêm.

Bạn có thể đặt các đối tượng sau trên các vật dụng:

  • Thời gian, ngày tháng trong tuần.
  • Đồng hồ analog.
  • Văn bản tùy chỉnh.
  • Mức sạc bằng số hoặc hiển thị đồ họa của nó.
  • Tất cả thông tin thời tiết - nhiệt độ, độ ẩm, tốc độ gió, v.v.
  • Hình học không gian.
  • Hình ảnh.
  • Số lượng email, tin nhắn Gmail và cuộc gọi nhỡ chưa đọc.
  • Thời điểm đồng hồ báo thức sẽ reo.

Mỗi phần tử có thể được xoay, kéo dài, uốn cong và thay đổi màu sắc của nó. Tất nhiên, bạn có thể định cấu hình hành động nhấp chuột (Chọn đối tượng->Điểm phát sóng). Hỗ trợ nhập và xuất các widget đã tạo.

Gần đây tôi cần tạo một tiện ích cho Windows Sidebar. Tôi không có bất kỳ kỹ năng nào trong việc này, vì vậy sau khi tìm kiếm trên Google một chút và đọc tài liệu, hãy bắt đầu.

Tôi sẽ cho bạn thấy những gì tôi đã kết thúc ngay lập tức.


Tiện ích sẽ nhận thông tin từ trang web ở dạng xml, phân tích cú pháp và trên thực tế, hiển thị nó. Tiện ích cũng sẽ kiểm tra các phiên bản mới và nếu có, hãy từ chối hoạt động :)
Ban đầu, để tích lũy kinh nghiệm, tôi muốn viết một tiện ích hoàn toàn bằng VBScript (vì tôi chưa xử lý nó), nhưng cuối cùng tôi phải thực hiện các thao tác chèn bằng JavaScript.
Hãy chuyển trực tiếp đến mã. Tôi sẽ không xem lại toàn bộ mã ở đây, tôi sẽ chỉ hiển thị những điểm chính. Liên kết đến tiện ích đã hoàn thành nằm ở cuối bài viết.
Tệp chính của tiện ích là tệp kê khai của nó – tệp Gadget.xml. Nó phải được gọi chính xác như vậy và nằm trong thư mục gốc của kho lưu trữ của chúng tôi (tiện ích này không gì khác hơn là một kho lưu trữ ZIP có phần mở rộng .gadget).

Thời tiết từ Info.Denms.Ru 1.0.1232 Tiện ích thời tiết đầy đủ (Info.Denms.Ru)

Chúng ta hãy xem xét nó chi tiết hơn.
Yếu tố phải chứa apiVersion bằng 1.0.0 (tại thời điểm này), cũng như thuộc tính src, chỉ định tệp chính của tiện ích của chúng tôi;
Quyền cho tiện ích. Đặt bằng đầy đủ;
Phiên bản tối thiểu của Windows Sidebar. Hiện tại – 1.0;
Tùy chọn - tên của tiện ích, - phiên bản, - thông tin về tác giả, - liên kết đến trang có tiện ích, - biểu tượng tiện ích và sẽ được hiển thị trên bảng các tiện ích được cài đặt.

Tệp main.html là một tệp html thông thường, tôi sẽ không liệt kê đầy đủ, tôi sẽ chỉ tập trung vào một số điểm.
Phần tử g:background được sử dụng để đặt nền của tiện ích. Hãy làm cho nó minh bạch.

Tiện ích có thể ở hai trạng thái – được gắn vào đế (ở bên trái trong màn hình trên) và không được gắn vào đế (ở bên phải). Chúng tôi sẽ lưu trữ trạng thái hiện tại của tiện ích trong biến gắn cố định của JavaScript.

Trong tương lai, chúng ta sẽ cần hàm bao bọc isDocked để tìm hiểu trạng thái hiện tại của tiện ích từ VBScript (dù tôi đã cố gắng thế nào, tôi cũng không thể triển khai điều này trong VBScript thuần túy). Thêm một lưu ý nữa - các tập lệnh hoạt động chính xác theo thứ tự này, tức là. Đầu tiên chúng tôi mô tả các tập lệnh VBScript, sau đó là JavaScript.

Các phần tử còn lại trong main.html là các phần tử DIV được định vị tuyệt đối. Sau đó, từ các tập lệnh, chúng tôi sẽ truy cập chúng theo id của chúng.

Sử dụng JavaScript, chúng tôi sẽ đặt trạng thái được gắn và không được gắn cho tiện ích, đồng thời chỉ định tệp cài đặt (main.js)

System.Gadget.onDock = thay đổi kích thước; System.Gadget.onUndock = thay đổi kích thước; System.Gadget.settingsUI = "settings.html"; System.Gadget.onSettingsClosed = Cài đặtClosed; đã cập bến=0; //trạng thái ban đầu của tiện ích thay đổi kích thước(); //khởi tạo

Như bạn có thể thấy từ danh sách ở trên, khi trạng thái tiện ích thay đổi, hàm thay đổi kích thước() sẽ được gọi.

Hàm thay đổi kích thước() ( bd = document.body.style; System.Gadget.beginTransition(); if (System.Gadget.docked) ( // trạng thái nhỏ bd.width=148; // đặt kích thước tiện ích bd.height= 201 ; docked = 1; bd.background="url(images/gadget.png) no-repeat"; //đặt nền // sau đó thực hiện chuyển các giá trị từ trạng thái không gắn đế sang trạng thái được gắn và đặt lại các phần tử đối với trạng thái không được gắn đế document.getElementById("small_needupdate").innerHTML = document.getElementById("big_needupdate").innerHTML; document.getElementById("big_needupdate").innerHTML = ""; //... ) else ( // trạng thái lớn bd.width=230; bd.height=160; bd.background="url(images/gadgeth.png) no-repeat"; docked=0; //chuyển các giá trị từ trạng thái được gắn vào trạng thái không được gắn và đặt lại các phần tử cho trạng thái gắn đế document.getElementById("big_needupdate"). bên trongHTML = document.getElementById("small_needupdate").innerHTML; document.getElementById("small_needupdate").innerHTML = ""; //... ) System.Gadget.endTransition (System.Gadget.TransitionType.morph,1); )

Bạn cũng có thể mô tả chức năng lưu cài đặt. Tiện ích của tôi không có chúng, nhưng để làm ví dụ, tôi sẽ chỉ cho bạn cách thực hiện.

Cài đặt chức năngClosed(event) ( if (event.closeAction == event.Action.commit) ( //alert System.Gadget.Settings.readString("test"); ) )

ReadString – đọc một chuỗi đã lưu trước đó, writeString, tương ứng, ghi.
Các phương thức System.Gadget.beginTransition(); và System.Gadget.endTransition(); cần thiết để thay đổi kích thước tiện ích một cách “trơn tru”. Chúng bị bỏ qua trong Windows Seven, nhưng tôi vẫn để chúng để tương thích ngược.

Như đã đề cập ở trên, máy chủ cung cấp cho chúng ta thông tin thời tiết ở định dạng xml.

1,7 41 Tuyết nhiều mây 87 Tây Nam 5 -3 -1 -1 26 1 -9 41 0 …

Chúng tôi sẽ tải xuống và phân tích xml bằng VBScript.

Sub DownloadXML2 Đặt objXML = CreateObject("Microsoft.XmlHttp") objXML.Open "GET", "http://info.kovonet.ru/weather.xml", True objXML.OnReadyStateChange = GetRef("objXML_onreadystatechange") objXML.setRequestHeader "If-Modified-Since", "Thứ bảy, ngày 1 tháng 1 năm 2000 00:00:00 GMT" objXML.Send iTimeoutID = window.SetTimeout("mySleep", 1000) End Sub

Chức năng mySleep sẽ kiểm tra kết nối của chúng tôi xem có thời gian chờ không.

Sub mySleep if bRespReceived = "false" then "chưa nhận được phản hồi iTimeout = iTimeout + 1 if (iTimeout > 30) then "timeout timeFirstRun = window.SetTimeout("Update", 60000) "cố gắng cập nhật lại sau một phút nữa "chưa đạt thời gian chờ, tiếp tục đếm giây iTimeoutID = window.SetTimeout("mySleep", 1000) end if end if End Sub

Nếu quá trình tải xuống thành công, objXML.readyState sẽ bằng 4 và trạng thái (objXML.status) sẽ trả về giá trị 200.

Hàm objXML_onreadystatechange() Nếu (objXML.readyState = 4) Then "msgbox objXML.statusText Nếu (objXML.status = 200) Then bRespReceived=true SaveFile(objXML.responseText) else timeFirstRun = window.SetTimeout("Update", 60000) " cố gắng cập nhật lại sau một phút Kết thúc Nếu Kết thúc Nếu Kết thúc Chức năng

Trong trường hợp này, hãy lưu tệp vào thư mục Windows tạm thời

Hàm SaveFile(what) Đặt fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.Get SpecialFolder(2) filepath = tempFolder+"\weather.xml" Dim fso1, tf Đặt fso1 = CreateObject("Scripting.FileSystemObject") Đặt tf = fso1.CreateTextFile(filepath, True, True) "viết lại, unicode tf.Write(what) tf.Close ParseXML End Function

Và chúng tôi bắt đầu phân tích tập tin.

Bộ ParseXML phụ fso = CreateObject("Scripting.FileSystemObject") tempFolder = fso.Get SpecialFolder(2) filepath = tempFolder+"\weather.xml" Đặt xmlDoc = CreateObject("Msxml2.DOMDocument") xmlDoc.async="false" xmlDoc. Load(filepath) "nút chính - trong trường hợp của chúng tôi Đặt CurrNode = xmlDoc.documentElement "các ngày trong tuần – Đặt dayNode = currNode.firstChild khi không phải dayNode không là gì Đặt currNode = dayNode.firstChild khi không currNode là không có gì nếu currNode.parentNode.getAttribution("id") = "today" then "today if currNode.nodeName = "temp" then document .getElementById(prefix+"maintemp").innerHTML = currNode.childNodes(0).text+Chr(176) "hiển thị các phần tử còn lại Khác "không phải hôm nay, hiển thị tinh tế hơn"... end Nếu đặt currNode = currNode.nextSibling Wend Đặt dayNode = dayNode.nextSibling Wend End Sub

Việc kiểm tra các phiên bản mới được thực hiện theo cách tương tự.
Đừng quên tạo tệp cài đặt - settings.html, sự tồn tại của tệp mà chúng tôi đã thông báo ở trên.

Cài đặt

Thực ra đó là tất cả. Tôi sẽ rất vui nếu bài viết (đầu tiên :)) của tôi hữu ích với ai đó.

Các nguồn đã qua sử dụng.