stump-cli 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1310) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +18 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +3 -16
  6. data/Rakefile +2 -0
  7. data/bin/stump-cli +58 -0
  8. data/lib/stump-cli/version.rb +3 -0
  9. data/lib/stump.rb +5 -0
  10. data/lib/wp/Movefile-example +62 -0
  11. data/lib/wp/README.md +25 -0
  12. data/lib/wp/index.php +17 -0
  13. data/lib/wp/license.txt +385 -0
  14. data/lib/wp/readme.html +96 -0
  15. data/lib/wp/wp-activate.php +131 -0
  16. data/lib/wp/wp-admin/about.php +193 -0
  17. data/lib/wp/wp-admin/admin-ajax.php +98 -0
  18. data/lib/wp/wp-admin/admin-footer.php +99 -0
  19. data/lib/wp/wp-admin/admin-functions.php +15 -0
  20. data/lib/wp/wp-admin/admin-header.php +243 -0
  21. data/lib/wp/wp-admin/admin-post.php +71 -0
  22. data/lib/wp/wp-admin/admin.php +347 -0
  23. data/lib/wp/wp-admin/async-upload.php +114 -0
  24. data/lib/wp/wp-admin/comment.php +299 -0
  25. data/lib/wp/wp-admin/credits.php +192 -0
  26. data/lib/wp/wp-admin/css/about-rtl.css +446 -0
  27. data/lib/wp/wp-admin/css/about.css +446 -0
  28. data/lib/wp/wp-admin/css/admin-menu-rtl.css +917 -0
  29. data/lib/wp/wp-admin/css/admin-menu.css +917 -0
  30. data/lib/wp/wp-admin/css/color-picker-rtl.css +127 -0
  31. data/lib/wp/wp-admin/css/color-picker-rtl.min.css +1 -0
  32. data/lib/wp/wp-admin/css/color-picker.css +127 -0
  33. data/lib/wp/wp-admin/css/color-picker.min.css +1 -0
  34. data/lib/wp/wp-admin/css/colors/_admin.scss +525 -0
  35. data/lib/wp/wp-admin/css/colors/_mixins.scss +43 -0
  36. data/lib/wp/wp-admin/css/colors/_variables.scss +58 -0
  37. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.css +341 -0
  38. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.min.css +1 -0
  39. data/lib/wp/wp-admin/css/colors/blue/colors.css +341 -0
  40. data/lib/wp/wp-admin/css/colors/blue/colors.min.css +1 -0
  41. data/lib/wp/wp-admin/css/colors/blue/colors.scss +11 -0
  42. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.css +341 -0
  43. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.min.css +1 -0
  44. data/lib/wp/wp-admin/css/colors/coffee/colors.css +341 -0
  45. data/lib/wp/wp-admin/css/colors/coffee/colors.min.css +1 -0
  46. data/lib/wp/wp-admin/css/colors/coffee/colors.scss +7 -0
  47. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.css +341 -0
  48. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.min.css +1 -0
  49. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.css +341 -0
  50. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.min.css +1 -0
  51. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.scss +8 -0
  52. data/lib/wp/wp-admin/css/colors/light/colors-rtl.css +349 -0
  53. data/lib/wp/wp-admin/css/colors/light/colors-rtl.min.css +1 -0
  54. data/lib/wp/wp-admin/css/colors/light/colors.css +349 -0
  55. data/lib/wp/wp-admin/css/colors/light/colors.min.css +1 -0
  56. data/lib/wp/wp-admin/css/colors/light/colors.scss +38 -0
  57. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.css +341 -0
  58. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.min.css +1 -0
  59. data/lib/wp/wp-admin/css/colors/midnight/colors.css +341 -0
  60. data/lib/wp/wp-admin/css/colors/midnight/colors.min.css +1 -0
  61. data/lib/wp/wp-admin/css/colors/midnight/colors.scss +5 -0
  62. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.css +341 -0
  63. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.min.css +1 -0
  64. data/lib/wp/wp-admin/css/colors/ocean/colors.css +341 -0
  65. data/lib/wp/wp-admin/css/colors/ocean/colors.min.css +1 -0
  66. data/lib/wp/wp-admin/css/colors/ocean/colors.scss +8 -0
  67. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.css +341 -0
  68. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.min.css +1 -0
  69. data/lib/wp/wp-admin/css/colors/sunrise/colors.css +341 -0
  70. data/lib/wp/wp-admin/css/colors/sunrise/colors.min.css +1 -0
  71. data/lib/wp/wp-admin/css/colors/sunrise/colors.scss +6 -0
  72. data/lib/wp/wp-admin/css/common-rtl.css +3212 -0
  73. data/lib/wp/wp-admin/css/common.css +3212 -0
  74. data/lib/wp/wp-admin/css/customize-controls-rtl.css +889 -0
  75. data/lib/wp/wp-admin/css/customize-controls-rtl.min.css +1 -0
  76. data/lib/wp/wp-admin/css/customize-controls.css +889 -0
  77. data/lib/wp/wp-admin/css/customize-controls.min.css +1 -0
  78. data/lib/wp/wp-admin/css/customize-widgets-rtl.css +603 -0
  79. data/lib/wp/wp-admin/css/customize-widgets-rtl.min.css +1 -0
  80. data/lib/wp/wp-admin/css/customize-widgets.css +603 -0
  81. data/lib/wp/wp-admin/css/customize-widgets.min.css +1 -0
  82. data/lib/wp/wp-admin/css/dashboard-rtl.css +1116 -0
  83. data/lib/wp/wp-admin/css/dashboard.css +1116 -0
  84. data/lib/wp/wp-admin/css/deprecated-media-rtl.css +371 -0
  85. data/lib/wp/wp-admin/css/deprecated-media-rtl.min.css +1 -0
  86. data/lib/wp/wp-admin/css/deprecated-media.css +371 -0
  87. data/lib/wp/wp-admin/css/deprecated-media.min.css +1 -0
  88. data/lib/wp/wp-admin/css/edit-rtl.css +1501 -0
  89. data/lib/wp/wp-admin/css/edit.css +1501 -0
  90. data/lib/wp/wp-admin/css/farbtastic-rtl.css +41 -0
  91. data/lib/wp/wp-admin/css/farbtastic.css +41 -0
  92. data/lib/wp/wp-admin/css/forms-rtl.css +992 -0
  93. data/lib/wp/wp-admin/css/forms.css +992 -0
  94. data/lib/wp/wp-admin/css/ie-rtl.css +785 -0
  95. data/lib/wp/wp-admin/css/ie-rtl.min.css +1 -0
  96. data/lib/wp/wp-admin/css/ie.css +785 -0
  97. data/lib/wp/wp-admin/css/ie.min.css +1 -0
  98. data/lib/wp/wp-admin/css/install-rtl.css +389 -0
  99. data/lib/wp/wp-admin/css/install-rtl.min.css +1 -0
  100. data/lib/wp/wp-admin/css/install.css +389 -0
  101. data/lib/wp/wp-admin/css/install.min.css +1 -0
  102. data/lib/wp/wp-admin/css/l10n-rtl.css +101 -0
  103. data/lib/wp/wp-admin/css/l10n.css +101 -0
  104. data/lib/wp/wp-admin/css/list-tables-rtl.css +1875 -0
  105. data/lib/wp/wp-admin/css/list-tables.css +1875 -0
  106. data/lib/wp/wp-admin/css/login-rtl.css +269 -0
  107. data/lib/wp/wp-admin/css/login-rtl.min.css +1 -0
  108. data/lib/wp/wp-admin/css/login.css +269 -0
  109. data/lib/wp/wp-admin/css/login.min.css +1 -0
  110. data/lib/wp/wp-admin/css/media-rtl.css +1196 -0
  111. data/lib/wp/wp-admin/css/media.css +1196 -0
  112. data/lib/wp/wp-admin/css/nav-menus-rtl.css +857 -0
  113. data/lib/wp/wp-admin/css/nav-menus.css +857 -0
  114. data/lib/wp/wp-admin/css/press-this-rtl.css +458 -0
  115. data/lib/wp/wp-admin/css/press-this.css +458 -0
  116. data/lib/wp/wp-admin/css/revisions-rtl.css +574 -0
  117. data/lib/wp/wp-admin/css/revisions.css +574 -0
  118. data/lib/wp/wp-admin/css/themes-rtl.css +1732 -0
  119. data/lib/wp/wp-admin/css/themes.css +1732 -0
  120. data/lib/wp/wp-admin/css/widgets-rtl.css +577 -0
  121. data/lib/wp/wp-admin/css/widgets.css +577 -0
  122. data/lib/wp/wp-admin/css/wp-admin-rtl.css +14 -0
  123. data/lib/wp/wp-admin/css/wp-admin-rtl.min.css +1 -0
  124. data/lib/wp/wp-admin/css/wp-admin.css +14 -0
  125. data/lib/wp/wp-admin/css/wp-admin.min.css +1 -0
  126. data/lib/wp/wp-admin/custom-background.php +482 -0
  127. data/lib/wp/wp-admin/custom-header.php +1366 -0
  128. data/lib/wp/wp-admin/customize.php +278 -0
  129. data/lib/wp/wp-admin/edit-comments.php +254 -0
  130. data/lib/wp/wp-admin/edit-form-advanced.php +636 -0
  131. data/lib/wp/wp-admin/edit-form-comment.php +160 -0
  132. data/lib/wp/wp-admin/edit-link-form.php +150 -0
  133. data/lib/wp/wp-admin/edit-tag-form.php +204 -0
  134. data/lib/wp/wp-admin/edit-tags.php +591 -0
  135. data/lib/wp/wp-admin/edit.php +330 -0
  136. data/lib/wp/wp-admin/export.php +243 -0
  137. data/lib/wp/wp-admin/freedoms.php +57 -0
  138. data/lib/wp/wp-admin/images/align-center-2x.png +0 -0
  139. data/lib/wp/wp-admin/images/align-center.png +0 -0
  140. data/lib/wp/wp-admin/images/align-left-2x.png +0 -0
  141. data/lib/wp/wp-admin/images/align-left.png +0 -0
  142. data/lib/wp/wp-admin/images/align-none-2x.png +0 -0
  143. data/lib/wp/wp-admin/images/align-none.png +0 -0
  144. data/lib/wp/wp-admin/images/align-right-2x.png +0 -0
  145. data/lib/wp/wp-admin/images/align-right.png +0 -0
  146. data/lib/wp/wp-admin/images/arrows-2x.png +0 -0
  147. data/lib/wp/wp-admin/images/arrows.png +0 -0
  148. data/lib/wp/wp-admin/images/bubble_bg-2x.gif +0 -0
  149. data/lib/wp/wp-admin/images/bubble_bg.gif +0 -0
  150. data/lib/wp/wp-admin/images/comment-grey-bubble-2x.png +0 -0
  151. data/lib/wp/wp-admin/images/comment-grey-bubble.png +0 -0
  152. data/lib/wp/wp-admin/images/date-button-2x.gif +0 -0
  153. data/lib/wp/wp-admin/images/date-button.gif +0 -0
  154. data/lib/wp/wp-admin/images/generic.png +0 -0
  155. data/lib/wp/wp-admin/images/icons32-2x.png +0 -0
  156. data/lib/wp/wp-admin/images/icons32-vs-2x.png +0 -0
  157. data/lib/wp/wp-admin/images/icons32-vs.png +0 -0
  158. data/lib/wp/wp-admin/images/icons32.png +0 -0
  159. data/lib/wp/wp-admin/images/imgedit-icons-2x.png +0 -0
  160. data/lib/wp/wp-admin/images/imgedit-icons.png +0 -0
  161. data/lib/wp/wp-admin/images/list-2x.png +0 -0
  162. data/lib/wp/wp-admin/images/list.png +0 -0
  163. data/lib/wp/wp-admin/images/loading.gif +0 -0
  164. data/lib/wp/wp-admin/images/marker.png +0 -0
  165. data/lib/wp/wp-admin/images/mask.png +0 -0
  166. data/lib/wp/wp-admin/images/media-button-2x.png +0 -0
  167. data/lib/wp/wp-admin/images/media-button-image.gif +0 -0
  168. data/lib/wp/wp-admin/images/media-button-music.gif +0 -0
  169. data/lib/wp/wp-admin/images/media-button-other.gif +0 -0
  170. data/lib/wp/wp-admin/images/media-button-video.gif +0 -0
  171. data/lib/wp/wp-admin/images/media-button.png +0 -0
  172. data/lib/wp/wp-admin/images/menu-2x.png +0 -0
  173. data/lib/wp/wp-admin/images/menu-vs-2x.png +0 -0
  174. data/lib/wp/wp-admin/images/menu-vs.png +0 -0
  175. data/lib/wp/wp-admin/images/menu.png +0 -0
  176. data/lib/wp/wp-admin/images/no.png +0 -0
  177. data/lib/wp/wp-admin/images/post-formats-vs.png +0 -0
  178. data/lib/wp/wp-admin/images/post-formats.png +0 -0
  179. data/lib/wp/wp-admin/images/post-formats32-vs.png +0 -0
  180. data/lib/wp/wp-admin/images/post-formats32.png +0 -0
  181. data/lib/wp/wp-admin/images/resize-2x.gif +0 -0
  182. data/lib/wp/wp-admin/images/resize-rtl-2x.gif +0 -0
  183. data/lib/wp/wp-admin/images/resize-rtl.gif +0 -0
  184. data/lib/wp/wp-admin/images/resize.gif +0 -0
  185. data/lib/wp/wp-admin/images/se.png +0 -0
  186. data/lib/wp/wp-admin/images/sort-2x.gif +0 -0
  187. data/lib/wp/wp-admin/images/sort.gif +0 -0
  188. data/lib/wp/wp-admin/images/spinner-2x.gif +0 -0
  189. data/lib/wp/wp-admin/images/spinner.gif +0 -0
  190. data/lib/wp/wp-admin/images/stars-2x.png +0 -0
  191. data/lib/wp/wp-admin/images/stars.png +0 -0
  192. data/lib/wp/wp-admin/images/w-logo-blue.png +0 -0
  193. data/lib/wp/wp-admin/images/w-logo-white.png +0 -0
  194. data/lib/wp/wp-admin/images/wheel.png +0 -0
  195. data/lib/wp/wp-admin/images/wordpress-logo-white.svg +1 -0
  196. data/lib/wp/wp-admin/images/wordpress-logo.png +0 -0
  197. data/lib/wp/wp-admin/images/wordpress-logo.svg +1 -0
  198. data/lib/wp/wp-admin/images/wpspin_light-2x.gif +0 -0
  199. data/lib/wp/wp-admin/images/wpspin_light.gif +0 -0
  200. data/lib/wp/wp-admin/images/xit-2x.gif +0 -0
  201. data/lib/wp/wp-admin/images/xit.gif +0 -0
  202. data/lib/wp/wp-admin/images/yes.png +0 -0
  203. data/lib/wp/wp-admin/import.php +132 -0
  204. data/lib/wp/wp-admin/includes/admin.php +74 -0
  205. data/lib/wp/wp-admin/includes/ajax-actions.php +2762 -0
  206. data/lib/wp/wp-admin/includes/bookmark.php +305 -0
  207. data/lib/wp/wp-admin/includes/class-ftp-pure.php +190 -0
  208. data/lib/wp/wp-admin/includes/class-ftp-sockets.php +250 -0
  209. data/lib/wp/wp-admin/includes/class-ftp.php +907 -0
  210. data/lib/wp/wp-admin/includes/class-pclzip.php +5687 -0
  211. data/lib/wp/wp-admin/includes/class-wp-comments-list-table.php +637 -0
  212. data/lib/wp/wp-admin/includes/class-wp-filesystem-base.php +815 -0
  213. data/lib/wp/wp-admin/includes/class-wp-filesystem-direct.php +384 -0
  214. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpext.php +415 -0
  215. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php +352 -0
  216. data/lib/wp/wp-admin/includes/class-wp-filesystem-ssh2.php +392 -0
  217. data/lib/wp/wp-admin/includes/class-wp-importer.php +302 -0
  218. data/lib/wp/wp-admin/includes/class-wp-links-list-table.php +207 -0
  219. data/lib/wp/wp-admin/includes/class-wp-list-table.php +1080 -0
  220. data/lib/wp/wp-admin/includes/class-wp-media-list-table.php +574 -0
  221. data/lib/wp/wp-admin/includes/class-wp-ms-sites-list-table.php +402 -0
  222. data/lib/wp/wp-admin/includes/class-wp-ms-themes-list-table.php +459 -0
  223. data/lib/wp/wp-admin/includes/class-wp-ms-users-list-table.php +303 -0
  224. data/lib/wp/wp-admin/includes/class-wp-plugin-install-list-table.php +490 -0
  225. data/lib/wp/wp-admin/includes/class-wp-plugins-list-table.php +605 -0
  226. data/lib/wp/wp-admin/includes/class-wp-posts-list-table.php +1306 -0
  227. data/lib/wp/wp-admin/includes/class-wp-terms-list-table.php +466 -0
  228. data/lib/wp/wp-admin/includes/class-wp-theme-install-list-table.php +431 -0
  229. data/lib/wp/wp-admin/includes/class-wp-themes-list-table.php +279 -0
  230. data/lib/wp/wp-admin/includes/class-wp-upgrader-skins.php +767 -0
  231. data/lib/wp/wp-admin/includes/class-wp-upgrader.php +2676 -0
  232. data/lib/wp/wp-admin/includes/class-wp-users-list-table.php +459 -0
  233. data/lib/wp/wp-admin/includes/comment.php +171 -0
  234. data/lib/wp/wp-admin/includes/continents-cities.php +493 -0
  235. data/lib/wp/wp-admin/includes/dashboard.php +1333 -0
  236. data/lib/wp/wp-admin/includes/deprecated.php +1190 -0
  237. data/lib/wp/wp-admin/includes/export.php +508 -0
  238. data/lib/wp/wp-admin/includes/file.php +1152 -0
  239. data/lib/wp/wp-admin/includes/image-edit.php +828 -0
  240. data/lib/wp/wp-admin/includes/image.php +598 -0
  241. data/lib/wp/wp-admin/includes/import.php +206 -0
  242. data/lib/wp/wp-admin/includes/list-table.php +113 -0
  243. data/lib/wp/wp-admin/includes/media.php +3012 -0
  244. data/lib/wp/wp-admin/includes/menu.php +322 -0
  245. data/lib/wp/wp-admin/includes/meta-boxes.php +1119 -0
  246. data/lib/wp/wp-admin/includes/misc.php +845 -0
  247. data/lib/wp/wp-admin/includes/ms-deprecated.php +78 -0
  248. data/lib/wp/wp-admin/includes/ms.php +814 -0
  249. data/lib/wp/wp-admin/includes/nav-menu.php +1328 -0
  250. data/lib/wp/wp-admin/includes/plugin-install.php +550 -0
  251. data/lib/wp/wp-admin/includes/plugin.php +1899 -0
  252. data/lib/wp/wp-admin/includes/post.php +1661 -0
  253. data/lib/wp/wp-admin/includes/revision.php +228 -0
  254. data/lib/wp/wp-admin/includes/schema.php +1038 -0
  255. data/lib/wp/wp-admin/includes/screen.php +1179 -0
  256. data/lib/wp/wp-admin/includes/taxonomy.php +284 -0
  257. data/lib/wp/wp-admin/includes/template.php +2157 -0
  258. data/lib/wp/wp-admin/includes/theme-install.php +205 -0
  259. data/lib/wp/wp-admin/includes/theme.php +474 -0
  260. data/lib/wp/wp-admin/includes/translation-install.php +240 -0
  261. data/lib/wp/wp-admin/includes/update-core.php +1186 -0
  262. data/lib/wp/wp-admin/includes/update.php +432 -0
  263. data/lib/wp/wp-admin/includes/upgrade.php +2218 -0
  264. data/lib/wp/wp-admin/includes/user.php +442 -0
  265. data/lib/wp/wp-admin/includes/widgets.php +245 -0
  266. data/lib/wp/wp-admin/index.php +131 -0
  267. data/lib/wp/wp-admin/install-helper.php +199 -0
  268. data/lib/wp/wp-admin/install.php +305 -0
  269. data/lib/wp/wp-admin/js/accordion.js +143 -0
  270. data/lib/wp/wp-admin/js/accordion.min.js +1 -0
  271. data/lib/wp/wp-admin/js/color-picker.js +155 -0
  272. data/lib/wp/wp-admin/js/color-picker.min.js +1 -0
  273. data/lib/wp/wp-admin/js/comment.js +50 -0
  274. data/lib/wp/wp-admin/js/comment.min.js +1 -0
  275. data/lib/wp/wp-admin/js/common.js +804 -0
  276. data/lib/wp/wp-admin/js/common.min.js +1 -0
  277. data/lib/wp/wp-admin/js/custom-background.js +75 -0
  278. data/lib/wp/wp-admin/js/custom-background.min.js +1 -0
  279. data/lib/wp/wp-admin/js/custom-header.js +61 -0
  280. data/lib/wp/wp-admin/js/customize-controls.js +1305 -0
  281. data/lib/wp/wp-admin/js/customize-controls.min.js +1 -0
  282. data/lib/wp/wp-admin/js/customize-widgets.js +1882 -0
  283. data/lib/wp/wp-admin/js/customize-widgets.min.js +1 -0
  284. data/lib/wp/wp-admin/js/dashboard.js +190 -0
  285. data/lib/wp/wp-admin/js/dashboard.min.js +1 -0
  286. data/lib/wp/wp-admin/js/edit-comments.js +625 -0
  287. data/lib/wp/wp-admin/js/edit-comments.min.js +1 -0
  288. data/lib/wp/wp-admin/js/editor-expand.js +705 -0
  289. data/lib/wp/wp-admin/js/editor-expand.min.js +1 -0
  290. data/lib/wp/wp-admin/js/editor.js +324 -0
  291. data/lib/wp/wp-admin/js/editor.min.js +1 -0
  292. data/lib/wp/wp-admin/js/farbtastic.js +276 -0
  293. data/lib/wp/wp-admin/js/gallery.js +237 -0
  294. data/lib/wp/wp-admin/js/gallery.min.js +1 -0
  295. data/lib/wp/wp-admin/js/image-edit.js +633 -0
  296. data/lib/wp/wp-admin/js/image-edit.min.js +1 -0
  297. data/lib/wp/wp-admin/js/inline-edit-post.js +359 -0
  298. data/lib/wp/wp-admin/js/inline-edit-post.min.js +1 -0
  299. data/lib/wp/wp-admin/js/inline-edit-tax.js +142 -0
  300. data/lib/wp/wp-admin/js/inline-edit-tax.min.js +1 -0
  301. data/lib/wp/wp-admin/js/iris.min.js +4 -0
  302. data/lib/wp/wp-admin/js/language-chooser.js +26 -0
  303. data/lib/wp/wp-admin/js/language-chooser.min.js +1 -0
  304. data/lib/wp/wp-admin/js/link.js +69 -0
  305. data/lib/wp/wp-admin/js/link.min.js +1 -0
  306. data/lib/wp/wp-admin/js/media-gallery.js +26 -0
  307. data/lib/wp/wp-admin/js/media-gallery.min.js +1 -0
  308. data/lib/wp/wp-admin/js/media-upload.js +69 -0
  309. data/lib/wp/wp-admin/js/media-upload.min.js +1 -0
  310. data/lib/wp/wp-admin/js/media.js +111 -0
  311. data/lib/wp/wp-admin/js/media.min.js +1 -0
  312. data/lib/wp/wp-admin/js/nav-menu.js +1205 -0
  313. data/lib/wp/wp-admin/js/nav-menu.min.js +1 -0
  314. data/lib/wp/wp-admin/js/password-strength-meter.js +75 -0
  315. data/lib/wp/wp-admin/js/password-strength-meter.min.js +1 -0
  316. data/lib/wp/wp-admin/js/plugin-install.js +76 -0
  317. data/lib/wp/wp-admin/js/plugin-install.min.js +1 -0
  318. data/lib/wp/wp-admin/js/post.js +1094 -0
  319. data/lib/wp/wp-admin/js/post.min.js +1 -0
  320. data/lib/wp/wp-admin/js/postbox.js +199 -0
  321. data/lib/wp/wp-admin/js/postbox.min.js +1 -0
  322. data/lib/wp/wp-admin/js/revisions.js +1110 -0
  323. data/lib/wp/wp-admin/js/revisions.min.js +1 -0
  324. data/lib/wp/wp-admin/js/set-post-thumbnail.js +24 -0
  325. data/lib/wp/wp-admin/js/set-post-thumbnail.min.js +1 -0
  326. data/lib/wp/wp-admin/js/svg-painter.js +240 -0
  327. data/lib/wp/wp-admin/js/svg-painter.min.js +1 -0
  328. data/lib/wp/wp-admin/js/tags.js +72 -0
  329. data/lib/wp/wp-admin/js/tags.min.js +1 -0
  330. data/lib/wp/wp-admin/js/theme.js +1691 -0
  331. data/lib/wp/wp-admin/js/theme.min.js +1 -0
  332. data/lib/wp/wp-admin/js/updates.js +65 -0
  333. data/lib/wp/wp-admin/js/updates.min.js +1 -0
  334. data/lib/wp/wp-admin/js/user-profile.js +127 -0
  335. data/lib/wp/wp-admin/js/user-profile.min.js +1 -0
  336. data/lib/wp/wp-admin/js/user-suggest.js +30 -0
  337. data/lib/wp/wp-admin/js/user-suggest.min.js +1 -0
  338. data/lib/wp/wp-admin/js/widgets.js +494 -0
  339. data/lib/wp/wp-admin/js/widgets.min.js +1 -0
  340. data/lib/wp/wp-admin/js/word-count.js +44 -0
  341. data/lib/wp/wp-admin/js/word-count.min.js +1 -0
  342. data/lib/wp/wp-admin/js/wp-fullscreen.js +704 -0
  343. data/lib/wp/wp-admin/js/wp-fullscreen.min.js +1 -0
  344. data/lib/wp/wp-admin/js/xfn.js +17 -0
  345. data/lib/wp/wp-admin/js/xfn.min.js +1 -0
  346. data/lib/wp/wp-admin/link-add.php +29 -0
  347. data/lib/wp/wp-admin/link-manager.php +99 -0
  348. data/lib/wp/wp-admin/link-parse-opml.php +84 -0
  349. data/lib/wp/wp-admin/link.php +117 -0
  350. data/lib/wp/wp-admin/load-scripts.php +162 -0
  351. data/lib/wp/wp-admin/load-styles.php +153 -0
  352. data/lib/wp/wp-admin/maint/repair.php +124 -0
  353. data/lib/wp/wp-admin/media-new.php +84 -0
  354. data/lib/wp/wp-admin/media-upload.php +100 -0
  355. data/lib/wp/wp-admin/media.php +146 -0
  356. data/lib/wp/wp-admin/menu-header.php +227 -0
  357. data/lib/wp/wp-admin/menu.php +255 -0
  358. data/lib/wp/wp-admin/moderation.php +12 -0
  359. data/lib/wp/wp-admin/ms-admin.php +13 -0
  360. data/lib/wp/wp-admin/ms-delete-site.php +91 -0
  361. data/lib/wp/wp-admin/ms-edit.php +13 -0
  362. data/lib/wp/wp-admin/ms-options.php +12 -0
  363. data/lib/wp/wp-admin/ms-sites.php +13 -0
  364. data/lib/wp/wp-admin/ms-themes.php +13 -0
  365. data/lib/wp/wp-admin/ms-upgrade-network.php +13 -0
  366. data/lib/wp/wp-admin/ms-users.php +13 -0
  367. data/lib/wp/wp-admin/my-sites.php +145 -0
  368. data/lib/wp/wp-admin/nav-menus.php +798 -0
  369. data/lib/wp/wp-admin/network.php +561 -0
  370. data/lib/wp/wp-admin/network/about.php +16 -0
  371. data/lib/wp/wp-admin/network/admin.php +32 -0
  372. data/lib/wp/wp-admin/network/credits.php +16 -0
  373. data/lib/wp/wp-admin/network/edit.php +42 -0
  374. data/lib/wp/wp-admin/network/freedoms.php +16 -0
  375. data/lib/wp/wp-admin/network/index.php +79 -0
  376. data/lib/wp/wp-admin/network/menu.php +63 -0
  377. data/lib/wp/wp-admin/network/plugin-editor.php +16 -0
  378. data/lib/wp/wp-admin/network/plugin-install.php +19 -0
  379. data/lib/wp/wp-admin/network/plugins.php +16 -0
  380. data/lib/wp/wp-admin/network/profile.php +16 -0
  381. data/lib/wp/wp-admin/network/settings.php +347 -0
  382. data/lib/wp/wp-admin/network/setup.php +16 -0
  383. data/lib/wp/wp-admin/network/site-info.php +178 -0
  384. data/lib/wp/wp-admin/network/site-new.php +153 -0
  385. data/lib/wp/wp-admin/network/site-settings.php +173 -0
  386. data/lib/wp/wp-admin/network/site-themes.php +185 -0
  387. data/lib/wp/wp-admin/network/site-users.php +319 -0
  388. data/lib/wp/wp-admin/network/sites.php +275 -0
  389. data/lib/wp/wp-admin/network/theme-editor.php +16 -0
  390. data/lib/wp/wp-admin/network/theme-install.php +19 -0
  391. data/lib/wp/wp-admin/network/themes.php +291 -0
  392. data/lib/wp/wp-admin/network/update-core.php +16 -0
  393. data/lib/wp/wp-admin/network/update.php +19 -0
  394. data/lib/wp/wp-admin/network/upgrade.php +120 -0
  395. data/lib/wp/wp-admin/network/user-edit.php +16 -0
  396. data/lib/wp/wp-admin/network/user-new.php +106 -0
  397. data/lib/wp/wp-admin/network/users.php +296 -0
  398. data/lib/wp/wp-admin/options-discussion.php +273 -0
  399. data/lib/wp/wp-admin/options-general.php +355 -0
  400. data/lib/wp/wp-admin/options-head.php +18 -0
  401. data/lib/wp/wp-admin/options-media.php +136 -0
  402. data/lib/wp/wp-admin/options-permalink.php +289 -0
  403. data/lib/wp/wp-admin/options-reading.php +184 -0
  404. data/lib/wp/wp-admin/options-writing.php +194 -0
  405. data/lib/wp/wp-admin/options.php +265 -0
  406. data/lib/wp/wp-admin/plugin-editor.php +279 -0
  407. data/lib/wp/wp-admin/plugin-install.php +134 -0
  408. data/lib/wp/wp-admin/plugins.php +474 -0
  409. data/lib/wp/wp-admin/post-new.php +74 -0
  410. data/lib/wp/wp-admin/post.php +318 -0
  411. data/lib/wp/wp-admin/press-this.php +691 -0
  412. data/lib/wp/wp-admin/profile.php +18 -0
  413. data/lib/wp/wp-admin/revision.php +221 -0
  414. data/lib/wp/wp-admin/setup-config.php +345 -0
  415. data/lib/wp/wp-admin/theme-editor.php +243 -0
  416. data/lib/wp/wp-admin/theme-install.php +278 -0
  417. data/lib/wp/wp-admin/themes.php +374 -0
  418. data/lib/wp/wp-admin/tools.php +75 -0
  419. data/lib/wp/wp-admin/update-core.php +653 -0
  420. data/lib/wp/wp-admin/update.php +272 -0
  421. data/lib/wp/wp-admin/upgrade-functions.php +12 -0
  422. data/lib/wp/wp-admin/upgrade.php +116 -0
  423. data/lib/wp/wp-admin/upload.php +292 -0
  424. data/lib/wp/wp-admin/user-edit.php +557 -0
  425. data/lib/wp/wp-admin/user-new.php +439 -0
  426. data/lib/wp/wp-admin/user/about.php +13 -0
  427. data/lib/wp/wp-admin/user/admin.php +32 -0
  428. data/lib/wp/wp-admin/user/credits.php +13 -0
  429. data/lib/wp/wp-admin/user/freedoms.php +13 -0
  430. data/lib/wp/wp-admin/user/index.php +12 -0
  431. data/lib/wp/wp-admin/user/menu.php +22 -0
  432. data/lib/wp/wp-admin/user/profile.php +12 -0
  433. data/lib/wp/wp-admin/user/user-edit.php +12 -0
  434. data/lib/wp/wp-admin/users.php +460 -0
  435. data/lib/wp/wp-admin/widgets.php +442 -0
  436. data/lib/wp/wp-blog-header.php +18 -0
  437. data/lib/wp/wp-comments-post.php +164 -0
  438. data/lib/wp/wp-config-sample.php +80 -0
  439. data/lib/wp/wp-content/index.php +2 -0
  440. data/lib/wp/wp-content/plugins/hello.php +82 -0
  441. data/lib/wp/wp-content/plugins/index.php +2 -0
  442. data/lib/wp/wp-content/themes/index.php +2 -0
  443. data/lib/wp/wp-content/themes/stump/.editorconfig +11 -0
  444. data/lib/wp/wp-content/themes/stump/.jshintrc +16 -0
  445. data/lib/wp/wp-content/themes/stump/404.php +13 -0
  446. data/lib/wp/wp-content/themes/stump/CHANGELOG.md +333 -0
  447. data/lib/wp/wp-content/themes/stump/CONTRIBUTING.md +121 -0
  448. data/lib/wp/wp-content/themes/stump/Gruntfile.js +151 -0
  449. data/lib/wp/wp-content/themes/stump/LICENSE.md +19 -0
  450. data/lib/wp/wp-content/themes/stump/assets/coffee/build/.gitkeep +0 -0
  451. data/lib/wp/wp-content/themes/stump/assets/coffee/build/site.js +6 -0
  452. data/lib/wp/wp-content/themes/stump/assets/css/editor-style.css +548 -0
  453. data/lib/wp/wp-content/themes/stump/assets/css/main.min.css +4 -0
  454. data/lib/wp/wp-content/themes/stump/assets/css/main.min.css.map +7 -0
  455. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  456. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  457. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  458. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  459. data/lib/wp/wp-content/themes/stump/assets/img/.gitignore +0 -0
  460. data/lib/wp/wp-content/themes/stump/assets/js/_main.js +63 -0
  461. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/affix.js +137 -0
  462. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/alert.js +88 -0
  463. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/button.js +107 -0
  464. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/carousel.js +205 -0
  465. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/collapse.js +170 -0
  466. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/dropdown.js +147 -0
  467. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/modal.js +243 -0
  468. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/popover.js +110 -0
  469. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/scrollspy.js +153 -0
  470. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tab.js +125 -0
  471. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tooltip.js +399 -0
  472. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/transition.js +48 -0
  473. data/lib/wp/wp-content/themes/stump/assets/js/scripts.min.js +1 -0
  474. data/lib/wp/wp-content/themes/stump/assets/js/vendor/jquery-1.11.0.min.js +4 -0
  475. data/lib/wp/wp-content/themes/stump/assets/js/vendor/modernizr-2.7.0.min.js +4 -0
  476. data/lib/wp/wp-content/themes/stump/assets/sass/app.scss +9 -0
  477. data/lib/wp/wp-content/themes/stump/assets/sass/core/_variables.scss +1 -0
  478. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_alerts.scss +67 -0
  479. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_badges.scss +55 -0
  480. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_bootstrap.scss +49 -0
  481. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_breadcrumbs.scss +26 -0
  482. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_button-groups.scss +226 -0
  483. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_buttons.scss +159 -0
  484. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_carousel.scss +232 -0
  485. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_close.scss +35 -0
  486. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_code.scss +63 -0
  487. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_component-animations.scss +29 -0
  488. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_dropdowns.scss +213 -0
  489. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_forms.scss +436 -0
  490. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_glyphicons.scss +233 -0
  491. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_grid.scss +84 -0
  492. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_input-groups.scss +162 -0
  493. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_jumbotron.scss +44 -0
  494. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_labels.scss +64 -0
  495. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_list-group.scss +110 -0
  496. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_media.scss +56 -0
  497. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_mixins.scss +947 -0
  498. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_modals.scss +139 -0
  499. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navbar.scss +620 -0
  500. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navs.scss +242 -0
  501. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_normalize.scss +423 -0
  502. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pager.scss +55 -0
  503. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pagination.scss +88 -0
  504. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_panels.scss +241 -0
  505. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_popovers.scss +133 -0
  506. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_print.scss +101 -0
  507. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_progress-bars.scss +80 -0
  508. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_responsive-utilities.scss +74 -0
  509. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_scaffolding.scss +134 -0
  510. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tables.scss +233 -0
  511. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_theme.scss +247 -0
  512. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_thumbnails.scss +38 -0
  513. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tooltip.scss +95 -0
  514. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_type.scss +284 -0
  515. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_utilities.scss +56 -0
  516. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_variables.scss +833 -0
  517. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_wells.scss +29 -0
  518. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon-deprecated-upcoming.scss +13 -0
  519. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon.scss +59 -0
  520. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_button.scss +273 -0
  521. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_clearfix.scss +29 -0
  522. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_font-family.scss +5 -0
  523. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_hide-text.scss +5 -0
  524. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_html5-input-types.scss +56 -0
  525. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_position.scss +42 -0
  526. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_prefixer.scss +49 -0
  527. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_retina-image.scss +32 -0
  528. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_size.scss +44 -0
  529. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_timing-functions.scss +32 -0
  530. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_triangle.scss +45 -0
  531. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_animation.scss +52 -0
  532. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_appearance.scss +3 -0
  533. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_backface-visibility.scss +6 -0
  534. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background-image.scss +48 -0
  535. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background.scss +103 -0
  536. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-image.scss +55 -0
  537. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-radius.scss +22 -0
  538. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_box-sizing.scss +4 -0
  539. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_columns.scss +47 -0
  540. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_flex-box.scss +52 -0
  541. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_font-face.scss +23 -0
  542. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_hidpi-media-query.scss +10 -0
  543. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_image-rendering.scss +13 -0
  544. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_inline-block.scss +8 -0
  545. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_keyframes.scss +43 -0
  546. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_linear-gradient.scss +41 -0
  547. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_perspective.scss +8 -0
  548. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_placeholder.scss +29 -0
  549. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_radial-gradient.scss +44 -0
  550. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transform.scss +15 -0
  551. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transition.scss +34 -0
  552. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_user-select.scss +3 -0
  553. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_compact.scss +11 -0
  554. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_flex-grid.scss +39 -0
  555. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_grid-width.scss +13 -0
  556. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_linear-gradient.scss +13 -0
  557. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_modular-scale.scss +40 -0
  558. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_px-to-em.scss +8 -0
  559. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_radial-gradient.scss +23 -0
  560. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_tint-shade.scss +9 -0
  561. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_transition-property-name.scss +22 -0
  562. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_deprecated-webkit-gradient.scss +39 -0
  563. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_gradient-positions-parser.scss +13 -0
  564. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_linear-positions-parser.scss +61 -0
  565. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-arg-parser.scss +69 -0
  566. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-positions-parser.scss +18 -0
  567. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_render-gradients.scss +26 -0
  568. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_shape-size-stripper.scss +10 -0
  569. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan.sass +11 -0
  570. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_grid.sass +161 -0
  571. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_mixins.sass +63 -0
  572. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_utilities.sass +24 -0
  573. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_variables.sass +42 -0
  574. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat-helpers.scss +8 -0
  575. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat.scss +21 -0
  576. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_new-breakpoint.scss +16 -0
  577. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_private.scss +107 -0
  578. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_px-to-em.scss +3 -0
  579. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_fill-parent.scss +7 -0
  580. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_grid.scss +5 -0
  581. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_media.scss +51 -0
  582. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_omega.scss +79 -0
  583. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_outer-container.scss +8 -0
  584. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_pad.scss +8 -0
  585. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_private.scss +50 -0
  586. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_reset.scss +12 -0
  587. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_row.scss +17 -0
  588. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_shift.scss +9 -0
  589. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_span-columns.scss +38 -0
  590. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_to-deprecate.scss +57 -0
  591. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_visual-grid.scss +41 -0
  592. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_grid.scss +7 -0
  593. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_visual-grid.scss +5 -0
  594. data/lib/wp/wp-content/themes/stump/base.php +36 -0
  595. data/lib/wp/wp-content/themes/stump/functions.php +19 -0
  596. data/lib/wp/wp-content/themes/stump/index.php +21 -0
  597. data/lib/wp/wp-content/themes/stump/lang/ar.mo +0 -0
  598. data/lib/wp/wp-content/themes/stump/lang/ar.po +270 -0
  599. data/lib/wp/wp-content/themes/stump/lang/bg_BG.mo +0 -0
  600. data/lib/wp/wp-content/themes/stump/lang/bg_BG.po +338 -0
  601. data/lib/wp/wp-content/themes/stump/lang/ca.mo +0 -0
  602. data/lib/wp/wp-content/themes/stump/lang/ca.po +517 -0
  603. data/lib/wp/wp-content/themes/stump/lang/da_DK.mo +0 -0
  604. data/lib/wp/wp-content/themes/stump/lang/da_DK.po +305 -0
  605. data/lib/wp/wp-content/themes/stump/lang/de_DE.mo +0 -0
  606. data/lib/wp/wp-content/themes/stump/lang/de_DE.po +271 -0
  607. data/lib/wp/wp-content/themes/stump/lang/el.mo +0 -0
  608. data/lib/wp/wp-content/themes/stump/lang/el.po +319 -0
  609. data/lib/wp/wp-content/themes/stump/lang/es_ES.mo +0 -0
  610. data/lib/wp/wp-content/themes/stump/lang/es_ES.po +270 -0
  611. data/lib/wp/wp-content/themes/stump/lang/et.mo +0 -0
  612. data/lib/wp/wp-content/themes/stump/lang/et.po +262 -0
  613. data/lib/wp/wp-content/themes/stump/lang/fa_IR.mo +0 -0
  614. data/lib/wp/wp-content/themes/stump/lang/fa_IR.po +273 -0
  615. data/lib/wp/wp-content/themes/stump/lang/fi_FI.mo +0 -0
  616. data/lib/wp/wp-content/themes/stump/lang/fi_FI.po +367 -0
  617. data/lib/wp/wp-content/themes/stump/lang/fr_FR.mo +0 -0
  618. data/lib/wp/wp-content/themes/stump/lang/fr_FR.po +336 -0
  619. data/lib/wp/wp-content/themes/stump/lang/he_IL.mo +0 -0
  620. data/lib/wp/wp-content/themes/stump/lang/he_IL.po +336 -0
  621. data/lib/wp/wp-content/themes/stump/lang/hu_HU.mo +0 -0
  622. data/lib/wp/wp-content/themes/stump/lang/hu_HU.po +271 -0
  623. data/lib/wp/wp-content/themes/stump/lang/id_ID.mo +0 -0
  624. data/lib/wp/wp-content/themes/stump/lang/id_ID.po +278 -0
  625. data/lib/wp/wp-content/themes/stump/lang/it_IT.mo +0 -0
  626. data/lib/wp/wp-content/themes/stump/lang/it_IT.po +269 -0
  627. data/lib/wp/wp-content/themes/stump/lang/ja.mo +0 -0
  628. data/lib/wp/wp-content/themes/stump/lang/ja.po +267 -0
  629. data/lib/wp/wp-content/themes/stump/lang/ko_KR.mo +0 -0
  630. data/lib/wp/wp-content/themes/stump/lang/ko_KR.po +282 -0
  631. data/lib/wp/wp-content/themes/stump/lang/mk_MK.mo +0 -0
  632. data/lib/wp/wp-content/themes/stump/lang/mk_MK.po +297 -0
  633. data/lib/wp/wp-content/themes/stump/lang/ms_MY.mo +0 -0
  634. data/lib/wp/wp-content/themes/stump/lang/ms_MY.po +342 -0
  635. data/lib/wp/wp-content/themes/stump/lang/nb_NO.mo +0 -0
  636. data/lib/wp/wp-content/themes/stump/lang/nb_NO.po +517 -0
  637. data/lib/wp/wp-content/themes/stump/lang/nl_NL.mo +0 -0
  638. data/lib/wp/wp-content/themes/stump/lang/nl_NL.po +261 -0
  639. data/lib/wp/wp-content/themes/stump/lang/nn_NO.mo +0 -0
  640. data/lib/wp/wp-content/themes/stump/lang/nn_NO.po +517 -0
  641. data/lib/wp/wp-content/themes/stump/lang/pl_PL.mo +0 -0
  642. data/lib/wp/wp-content/themes/stump/lang/pl_PL.po +283 -0
  643. data/lib/wp/wp-content/themes/stump/lang/pt_BR.mo +0 -0
  644. data/lib/wp/wp-content/themes/stump/lang/pt_BR.po +394 -0
  645. data/lib/wp/wp-content/themes/stump/lang/ro_RO.mo +0 -0
  646. data/lib/wp/wp-content/themes/stump/lang/ro_RO.po +271 -0
  647. data/lib/wp/wp-content/themes/stump/lang/roots.pot +244 -0
  648. data/lib/wp/wp-content/themes/stump/lang/ru_RU.mo +0 -0
  649. data/lib/wp/wp-content/themes/stump/lang/ru_RU.po +255 -0
  650. data/lib/wp/wp-content/themes/stump/lang/sk_SK.mo +0 -0
  651. data/lib/wp/wp-content/themes/stump/lang/sk_SK.po +267 -0
  652. data/lib/wp/wp-content/themes/stump/lang/sr_RS.mo +0 -0
  653. data/lib/wp/wp-content/themes/stump/lang/sr_RS.pot +261 -0
  654. data/lib/wp/wp-content/themes/stump/lang/sv_SE.mo +0 -0
  655. data/lib/wp/wp-content/themes/stump/lang/sv_SE.po +323 -0
  656. data/lib/wp/wp-content/themes/stump/lang/tr_TR.mo +0 -0
  657. data/lib/wp/wp-content/themes/stump/lang/tr_TR.po +405 -0
  658. data/lib/wp/wp-content/themes/stump/lang/vi_VN.mo +0 -0
  659. data/lib/wp/wp-content/themes/stump/lang/vi_VN.po +516 -0
  660. data/lib/wp/wp-content/themes/stump/lang/zh_CN.mo +0 -0
  661. data/lib/wp/wp-content/themes/stump/lang/zh_CN.po +329 -0
  662. data/lib/wp/wp-content/themes/stump/lang/zh_TW.mo +0 -0
  663. data/lib/wp/wp-content/themes/stump/lang/zh_TW.po +261 -0
  664. data/lib/wp/wp-content/themes/stump/lib/activation.php +215 -0
  665. data/lib/wp/wp-content/themes/stump/lib/cleanup.php +261 -0
  666. data/lib/wp/wp-content/themes/stump/lib/comments.php +52 -0
  667. data/lib/wp/wp-content/themes/stump/lib/config.php +79 -0
  668. data/lib/wp/wp-content/themes/stump/lib/custom.php +4 -0
  669. data/lib/wp/wp-content/themes/stump/lib/gallery.php +130 -0
  670. data/lib/wp/wp-content/themes/stump/lib/init.php +25 -0
  671. data/lib/wp/wp-content/themes/stump/lib/nav.php +93 -0
  672. data/lib/wp/wp-content/themes/stump/lib/relative-urls.php +50 -0
  673. data/lib/wp/wp-content/themes/stump/lib/scripts.php +67 -0
  674. data/lib/wp/wp-content/themes/stump/lib/sidebar.php +43 -0
  675. data/lib/wp/wp-content/themes/stump/lib/titles.php +37 -0
  676. data/lib/wp/wp-content/themes/stump/lib/utils.php +14 -0
  677. data/lib/wp/wp-content/themes/stump/lib/widgets.php +133 -0
  678. data/lib/wp/wp-content/themes/stump/lib/wrapper.php +49 -0
  679. data/lib/wp/wp-content/themes/stump/package.json +32 -0
  680. data/lib/wp/wp-content/themes/stump/page.php +2 -0
  681. data/lib/wp/wp-content/themes/stump/screenshot.png +0 -0
  682. data/lib/wp/wp-content/themes/stump/single.php +1 -0
  683. data/lib/wp/wp-content/themes/stump/style.css +11 -0
  684. data/lib/wp/wp-content/themes/stump/template-custom.php +8 -0
  685. data/lib/wp/wp-content/themes/stump/templates/comment.php +14 -0
  686. data/lib/wp/wp-content/themes/stump/templates/comments.php +80 -0
  687. data/lib/wp/wp-content/themes/stump/templates/content-page.php +4 -0
  688. data/lib/wp/wp-content/themes/stump/templates/content-single.php +15 -0
  689. data/lib/wp/wp-content/themes/stump/templates/content.php +9 -0
  690. data/lib/wp/wp-content/themes/stump/templates/entry-meta.php +2 -0
  691. data/lib/wp/wp-content/themes/stump/templates/footer.php +8 -0
  692. data/lib/wp/wp-content/themes/stump/templates/head.php +12 -0
  693. data/lib/wp/wp-content/themes/stump/templates/header-top-navbar.php +21 -0
  694. data/lib/wp/wp-content/themes/stump/templates/header.php +14 -0
  695. data/lib/wp/wp-content/themes/stump/templates/page-header.php +5 -0
  696. data/lib/wp/wp-content/themes/stump/templates/searchform.php +9 -0
  697. data/lib/wp/wp-content/themes/stump/templates/sidebar.php +1 -0
  698. data/lib/wp/wp-content/themes/twentyfourteen/404.php +32 -0
  699. data/lib/wp/wp-content/themes/twentyfourteen/archive.php +74 -0
  700. data/lib/wp/wp-content/themes/twentyfourteen/author.php +74 -0
  701. data/lib/wp/wp-content/themes/twentyfourteen/category.php +58 -0
  702. data/lib/wp/wp-content/themes/twentyfourteen/comments.php +66 -0
  703. data/lib/wp/wp-content/themes/twentyfourteen/content-aside.php +57 -0
  704. data/lib/wp/wp-content/themes/twentyfourteen/content-audio.php +57 -0
  705. data/lib/wp/wp-content/themes/twentyfourteen/content-featured-post.php +34 -0
  706. data/lib/wp/wp-content/themes/twentyfourteen/content-gallery.php +57 -0
  707. data/lib/wp/wp-content/themes/twentyfourteen/content-image.php +57 -0
  708. data/lib/wp/wp-content/themes/twentyfourteen/content-link.php +57 -0
  709. data/lib/wp/wp-content/themes/twentyfourteen/content-none.php +31 -0
  710. data/lib/wp/wp-content/themes/twentyfourteen/content-page.php +31 -0
  711. data/lib/wp/wp-content/themes/twentyfourteen/content-quote.php +57 -0
  712. data/lib/wp/wp-content/themes/twentyfourteen/content-video.php +57 -0
  713. data/lib/wp/wp-content/themes/twentyfourteen/content.php +66 -0
  714. data/lib/wp/wp-content/themes/twentyfourteen/css/editor-style.css +717 -0
  715. data/lib/wp/wp-content/themes/twentyfourteen/css/ie.css +1335 -0
  716. data/lib/wp/wp-content/themes/twentyfourteen/featured-content.php +39 -0
  717. data/lib/wp/wp-content/themes/twentyfourteen/footer.php +28 -0
  718. data/lib/wp/wp-content/themes/twentyfourteen/functions.php +519 -0
  719. data/lib/wp/wp-content/themes/twentyfourteen/genericons/COPYING.txt +9 -0
  720. data/lib/wp/wp-content/themes/twentyfourteen/genericons/Genericons-Regular.otf +0 -0
  721. data/lib/wp/wp-content/themes/twentyfourteen/genericons/LICENSE.txt +339 -0
  722. data/lib/wp/wp-content/themes/twentyfourteen/genericons/README.txt +123 -0
  723. data/lib/wp/wp-content/themes/twentyfourteen/genericons/example.html +464 -0
  724. data/lib/wp/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.eot +0 -0
  725. data/lib/wp/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.svg +135 -0
  726. data/lib/wp/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.ttf +0 -0
  727. data/lib/wp/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.woff +0 -0
  728. data/lib/wp/wp-content/themes/twentyfourteen/genericons/genericons.css +197 -0
  729. data/lib/wp/wp-content/themes/twentyfourteen/header.php +65 -0
  730. data/lib/wp/wp-content/themes/twentyfourteen/image.php +79 -0
  731. data/lib/wp/wp-content/themes/twentyfourteen/images/pattern-dark.svg +16 -0
  732. data/lib/wp/wp-content/themes/twentyfourteen/images/pattern-light.svg +6 -0
  733. data/lib/wp/wp-content/themes/twentyfourteen/inc/back-compat.php +63 -0
  734. data/lib/wp/wp-content/themes/twentyfourteen/inc/custom-header.php +147 -0
  735. data/lib/wp/wp-content/themes/twentyfourteen/inc/customizer.php +114 -0
  736. data/lib/wp/wp-content/themes/twentyfourteen/inc/featured-content.php +531 -0
  737. data/lib/wp/wp-content/themes/twentyfourteen/inc/template-tags.php +203 -0
  738. data/lib/wp/wp-content/themes/twentyfourteen/inc/widgets.php +269 -0
  739. data/lib/wp/wp-content/themes/twentyfourteen/index.php +61 -0
  740. data/lib/wp/wp-content/themes/twentyfourteen/js/customizer.js +38 -0
  741. data/lib/wp/wp-content/themes/twentyfourteen/js/featured-content-admin.js +9 -0
  742. data/lib/wp/wp-content/themes/twentyfourteen/js/functions.js +134 -0
  743. data/lib/wp/wp-content/themes/twentyfourteen/js/html5.js +8 -0
  744. data/lib/wp/wp-content/themes/twentyfourteen/js/keyboard-image-navigation.js +21 -0
  745. data/lib/wp/wp-content/themes/twentyfourteen/js/slider.js +598 -0
  746. data/lib/wp/wp-content/themes/twentyfourteen/languages/twentyfourteen.pot +467 -0
  747. data/lib/wp/wp-content/themes/twentyfourteen/page-templates/contributors.php +52 -0
  748. data/lib/wp/wp-content/themes/twentyfourteen/page-templates/full-width.php +42 -0
  749. data/lib/wp/wp-content/themes/twentyfourteen/page.php +48 -0
  750. data/lib/wp/wp-content/themes/twentyfourteen/rtl.css +854 -0
  751. data/lib/wp/wp-content/themes/twentyfourteen/screenshot.png +0 -0
  752. data/lib/wp/wp-content/themes/twentyfourteen/search.php +49 -0
  753. data/lib/wp/wp-content/themes/twentyfourteen/sidebar-content.php +16 -0
  754. data/lib/wp/wp-content/themes/twentyfourteen/sidebar-footer.php +19 -0
  755. data/lib/wp/wp-content/themes/twentyfourteen/sidebar.php +29 -0
  756. data/lib/wp/wp-content/themes/twentyfourteen/single.php +40 -0
  757. data/lib/wp/wp-content/themes/twentyfourteen/style.css +4321 -0
  758. data/lib/wp/wp-content/themes/twentyfourteen/tag.php +60 -0
  759. data/lib/wp/wp-content/themes/twentyfourteen/taxonomy-post_format.php +85 -0
  760. data/lib/wp/wp-cron.php +115 -0
  761. data/lib/wp/wp-includes/ID3/getid3.lib.php +1376 -0
  762. data/lib/wp/wp-includes/ID3/getid3.php +1796 -0
  763. data/lib/wp/wp-includes/ID3/license.commercial.txt +27 -0
  764. data/lib/wp/wp-includes/ID3/license.txt +29 -0
  765. data/lib/wp/wp-includes/ID3/module.audio-video.asf.php +2013 -0
  766. data/lib/wp/wp-includes/ID3/module.audio-video.flv.php +745 -0
  767. data/lib/wp/wp-includes/ID3/module.audio-video.matroska.php +1751 -0
  768. data/lib/wp/wp-includes/ID3/module.audio-video.quicktime.php +2246 -0
  769. data/lib/wp/wp-includes/ID3/module.audio-video.riff.php +2586 -0
  770. data/lib/wp/wp-includes/ID3/module.audio.ac3.php +474 -0
  771. data/lib/wp/wp-includes/ID3/module.audio.dts.php +291 -0
  772. data/lib/wp/wp-includes/ID3/module.audio.flac.php +443 -0
  773. data/lib/wp/wp-includes/ID3/module.audio.mp3.php +2012 -0
  774. data/lib/wp/wp-includes/ID3/module.audio.ogg.php +756 -0
  775. data/lib/wp/wp-includes/ID3/module.tag.apetag.php +371 -0
  776. data/lib/wp/wp-includes/ID3/module.tag.id3v1.php +360 -0
  777. data/lib/wp/wp-includes/ID3/module.tag.id3v2.php +3424 -0
  778. data/lib/wp/wp-includes/ID3/module.tag.lyrics3.php +294 -0
  779. data/lib/wp/wp-includes/ID3/readme.txt +604 -0
  780. data/lib/wp/wp-includes/SimplePie/Author.php +157 -0
  781. data/lib/wp/wp-includes/SimplePie/Cache.php +133 -0
  782. data/lib/wp/wp-includes/SimplePie/Cache/Base.php +114 -0
  783. data/lib/wp/wp-includes/SimplePie/Cache/DB.php +137 -0
  784. data/lib/wp/wp-includes/SimplePie/Cache/File.php +173 -0
  785. data/lib/wp/wp-includes/SimplePie/Cache/Memcache.php +183 -0
  786. data/lib/wp/wp-includes/SimplePie/Cache/MySQL.php +438 -0
  787. data/lib/wp/wp-includes/SimplePie/Caption.php +210 -0
  788. data/lib/wp/wp-includes/SimplePie/Category.php +157 -0
  789. data/lib/wp/wp-includes/SimplePie/Content/Type/Sniffer.php +332 -0
  790. data/lib/wp/wp-includes/SimplePie/Copyright.php +130 -0
  791. data/lib/wp/wp-includes/SimplePie/Core.php +57 -0
  792. data/lib/wp/wp-includes/SimplePie/Credit.php +156 -0
  793. data/lib/wp/wp-includes/SimplePie/Decode/HTML/Entities.php +617 -0
  794. data/lib/wp/wp-includes/SimplePie/Enclosure.php +1380 -0
  795. data/lib/wp/wp-includes/SimplePie/Exception.php +52 -0
  796. data/lib/wp/wp-includes/SimplePie/File.php +292 -0
  797. data/lib/wp/wp-includes/SimplePie/HTTP/Parser.php +500 -0
  798. data/lib/wp/wp-includes/SimplePie/IRI.php +1238 -0
  799. data/lib/wp/wp-includes/SimplePie/Item.php +2964 -0
  800. data/lib/wp/wp-includes/SimplePie/Locator.php +372 -0
  801. data/lib/wp/wp-includes/SimplePie/Misc.php +2247 -0
  802. data/lib/wp/wp-includes/SimplePie/Net/IPv6.php +276 -0
  803. data/lib/wp/wp-includes/SimplePie/Parse/Date.php +983 -0
  804. data/lib/wp/wp-includes/SimplePie/Parser.php +407 -0
  805. data/lib/wp/wp-includes/SimplePie/Rating.php +129 -0
  806. data/lib/wp/wp-includes/SimplePie/Registry.php +225 -0
  807. data/lib/wp/wp-includes/SimplePie/Restriction.php +155 -0
  808. data/lib/wp/wp-includes/SimplePie/Sanitize.php +554 -0
  809. data/lib/wp/wp-includes/SimplePie/Source.php +611 -0
  810. data/lib/wp/wp-includes/SimplePie/XML/Declaration/Parser.php +362 -0
  811. data/lib/wp/wp-includes/SimplePie/gzdecode.php +371 -0
  812. data/lib/wp/wp-includes/Text/Diff.php +450 -0
  813. data/lib/wp/wp-includes/Text/Diff/Engine/native.php +436 -0
  814. data/lib/wp/wp-includes/Text/Diff/Engine/shell.php +162 -0
  815. data/lib/wp/wp-includes/Text/Diff/Engine/string.php +248 -0
  816. data/lib/wp/wp-includes/Text/Diff/Engine/xdiff.php +64 -0
  817. data/lib/wp/wp-includes/Text/Diff/Renderer.php +235 -0
  818. data/lib/wp/wp-includes/Text/Diff/Renderer/inline.php +206 -0
  819. data/lib/wp/wp-includes/admin-bar.php +870 -0
  820. data/lib/wp/wp-includes/atomlib.php +352 -0
  821. data/lib/wp/wp-includes/author-template.php +471 -0
  822. data/lib/wp/wp-includes/bookmark-template.php +298 -0
  823. data/lib/wp/wp-includes/bookmark.php +416 -0
  824. data/lib/wp/wp-includes/cache.php +704 -0
  825. data/lib/wp/wp-includes/canonical.php +586 -0
  826. data/lib/wp/wp-includes/capabilities.php +1539 -0
  827. data/lib/wp/wp-includes/category-template.php +1407 -0
  828. data/lib/wp/wp-includes/category.php +343 -0
  829. data/lib/wp/wp-includes/certificates/ca-bundle.crt +3785 -0
  830. data/lib/wp/wp-includes/class-IXR.php +1100 -0
  831. data/lib/wp/wp-includes/class-feed.php +140 -0
  832. data/lib/wp/wp-includes/class-http.php +2245 -0
  833. data/lib/wp/wp-includes/class-json.php +936 -0
  834. data/lib/wp/wp-includes/class-oembed.php +579 -0
  835. data/lib/wp/wp-includes/class-phpass.php +260 -0
  836. data/lib/wp/wp-includes/class-phpmailer.php +3265 -0
  837. data/lib/wp/wp-includes/class-pop3.php +652 -0
  838. data/lib/wp/wp-includes/class-simplepie.php +3119 -0
  839. data/lib/wp/wp-includes/class-smtp.php +943 -0
  840. data/lib/wp/wp-includes/class-snoopy.php +1256 -0
  841. data/lib/wp/wp-includes/class-wp-admin-bar.php +517 -0
  842. data/lib/wp/wp-includes/class-wp-ajax-response.php +199 -0
  843. data/lib/wp/wp-includes/class-wp-customize-control.php +1124 -0
  844. data/lib/wp/wp-includes/class-wp-customize-manager.php +1272 -0
  845. data/lib/wp/wp-includes/class-wp-customize-panel.php +200 -0
  846. data/lib/wp/wp-includes/class-wp-customize-section.php +196 -0
  847. data/lib/wp/wp-includes/class-wp-customize-setting.php +554 -0
  848. data/lib/wp/wp-includes/class-wp-customize-widgets.php +1556 -0
  849. data/lib/wp/wp-includes/class-wp-editor.php +1435 -0
  850. data/lib/wp/wp-includes/class-wp-embed.php +373 -0
  851. data/lib/wp/wp-includes/class-wp-error.php +276 -0
  852. data/lib/wp/wp-includes/class-wp-http-ixr-client.php +97 -0
  853. data/lib/wp/wp-includes/class-wp-image-editor-gd.php +459 -0
  854. data/lib/wp/wp-includes/class-wp-image-editor-imagick.php +512 -0
  855. data/lib/wp/wp-includes/class-wp-image-editor.php +475 -0
  856. data/lib/wp/wp-includes/class-wp-theme.php +1235 -0
  857. data/lib/wp/wp-includes/class-wp-walker.php +471 -0
  858. data/lib/wp/wp-includes/class-wp-xmlrpc-server.php +5984 -0
  859. data/lib/wp/wp-includes/class-wp.php +782 -0
  860. data/lib/wp/wp-includes/class.wp-dependencies.php +509 -0
  861. data/lib/wp/wp-includes/class.wp-scripts.php +247 -0
  862. data/lib/wp/wp-includes/class.wp-styles.php +210 -0
  863. data/lib/wp/wp-includes/comment-template.php +2286 -0
  864. data/lib/wp/wp-includes/comment.php +2606 -0
  865. data/lib/wp/wp-includes/compat.php +125 -0
  866. data/lib/wp/wp-includes/cron.php +469 -0
  867. data/lib/wp/wp-includes/css/admin-bar-rtl.css +1099 -0
  868. data/lib/wp/wp-includes/css/admin-bar-rtl.min.css +1 -0
  869. data/lib/wp/wp-includes/css/admin-bar.css +1099 -0
  870. data/lib/wp/wp-includes/css/admin-bar.min.css +1 -0
  871. data/lib/wp/wp-includes/css/buttons-rtl.css +364 -0
  872. data/lib/wp/wp-includes/css/buttons-rtl.min.css +1 -0
  873. data/lib/wp/wp-includes/css/buttons.css +364 -0
  874. data/lib/wp/wp-includes/css/buttons.min.css +1 -0
  875. data/lib/wp/wp-includes/css/dashicons.css +893 -0
  876. data/lib/wp/wp-includes/css/dashicons.min.css +1 -0
  877. data/lib/wp/wp-includes/css/editor-rtl.css +1993 -0
  878. data/lib/wp/wp-includes/css/editor-rtl.min.css +1 -0
  879. data/lib/wp/wp-includes/css/editor.css +1993 -0
  880. data/lib/wp/wp-includes/css/editor.min.css +1 -0
  881. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.css +343 -0
  882. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.min.css +19 -0
  883. data/lib/wp/wp-includes/css/jquery-ui-dialog.css +343 -0
  884. data/lib/wp/wp-includes/css/jquery-ui-dialog.min.css +19 -0
  885. data/lib/wp/wp-includes/css/media-views-rtl.css +2568 -0
  886. data/lib/wp/wp-includes/css/media-views-rtl.min.css +1 -0
  887. data/lib/wp/wp-includes/css/media-views.css +2568 -0
  888. data/lib/wp/wp-includes/css/media-views.min.css +1 -0
  889. data/lib/wp/wp-includes/css/wp-auth-check-rtl.css +100 -0
  890. data/lib/wp/wp-includes/css/wp-auth-check-rtl.min.css +1 -0
  891. data/lib/wp/wp-includes/css/wp-auth-check.css +100 -0
  892. data/lib/wp/wp-includes/css/wp-auth-check.min.css +1 -0
  893. data/lib/wp/wp-includes/css/wp-pointer-rtl.css +212 -0
  894. data/lib/wp/wp-includes/css/wp-pointer-rtl.min.css +1 -0
  895. data/lib/wp/wp-includes/css/wp-pointer.css +212 -0
  896. data/lib/wp/wp-includes/css/wp-pointer.min.css +1 -0
  897. data/lib/wp/wp-includes/date.php +475 -0
  898. data/lib/wp/wp-includes/default-constants.php +323 -0
  899. data/lib/wp/wp-includes/default-filters.php +307 -0
  900. data/lib/wp/wp-includes/default-widgets.php +1423 -0
  901. data/lib/wp/wp-includes/deprecated.php +3501 -0
  902. data/lib/wp/wp-includes/feed-atom-comments.php +115 -0
  903. data/lib/wp/wp-includes/feed-atom.php +87 -0
  904. data/lib/wp/wp-includes/feed-rdf.php +81 -0
  905. data/lib/wp/wp-includes/feed-rss.php +46 -0
  906. data/lib/wp/wp-includes/feed-rss2-comments.php +97 -0
  907. data/lib/wp/wp-includes/feed-rss2.php +115 -0
  908. data/lib/wp/wp-includes/feed.php +659 -0
  909. data/lib/wp/wp-includes/fonts/dashicons.eot +0 -0
  910. data/lib/wp/wp-includes/fonts/dashicons.svg +250 -0
  911. data/lib/wp/wp-includes/fonts/dashicons.ttf +0 -0
  912. data/lib/wp/wp-includes/fonts/dashicons.woff +0 -0
  913. data/lib/wp/wp-includes/formatting.php +4006 -0
  914. data/lib/wp/wp-includes/functions.php +4631 -0
  915. data/lib/wp/wp-includes/functions.wp-scripts.php +258 -0
  916. data/lib/wp/wp-includes/functions.wp-styles.php +245 -0
  917. data/lib/wp/wp-includes/general-template.php +2982 -0
  918. data/lib/wp/wp-includes/http.php +551 -0
  919. data/lib/wp/wp-includes/images/admin-bar-sprite-2x.png +0 -0
  920. data/lib/wp/wp-includes/images/admin-bar-sprite.png +0 -0
  921. data/lib/wp/wp-includes/images/arrow-pointer-blue-2x.png +0 -0
  922. data/lib/wp/wp-includes/images/arrow-pointer-blue.png +0 -0
  923. data/lib/wp/wp-includes/images/blank.gif +0 -0
  924. data/lib/wp/wp-includes/images/crystal/archive.png +0 -0
  925. data/lib/wp/wp-includes/images/crystal/audio.png +0 -0
  926. data/lib/wp/wp-includes/images/crystal/code.png +0 -0
  927. data/lib/wp/wp-includes/images/crystal/default.png +0 -0
  928. data/lib/wp/wp-includes/images/crystal/document.png +0 -0
  929. data/lib/wp/wp-includes/images/crystal/interactive.png +0 -0
  930. data/lib/wp/wp-includes/images/crystal/license.txt +9 -0
  931. data/lib/wp/wp-includes/images/crystal/spreadsheet.png +0 -0
  932. data/lib/wp/wp-includes/images/crystal/text.png +0 -0
  933. data/lib/wp/wp-includes/images/crystal/video.png +0 -0
  934. data/lib/wp/wp-includes/images/down_arrow-2x.gif +0 -0
  935. data/lib/wp/wp-includes/images/down_arrow.gif +0 -0
  936. data/lib/wp/wp-includes/images/icon-pointer-flag-2x.png +0 -0
  937. data/lib/wp/wp-includes/images/icon-pointer-flag.png +0 -0
  938. data/lib/wp/wp-includes/images/media/archive.png +0 -0
  939. data/lib/wp/wp-includes/images/media/audio.png +0 -0
  940. data/lib/wp/wp-includes/images/media/code.png +0 -0
  941. data/lib/wp/wp-includes/images/media/default.png +0 -0
  942. data/lib/wp/wp-includes/images/media/document.png +0 -0
  943. data/lib/wp/wp-includes/images/media/interactive.png +0 -0
  944. data/lib/wp/wp-includes/images/media/spreadsheet.png +0 -0
  945. data/lib/wp/wp-includes/images/media/text.png +0 -0
  946. data/lib/wp/wp-includes/images/media/video.png +0 -0
  947. data/lib/wp/wp-includes/images/rss-2x.png +0 -0
  948. data/lib/wp/wp-includes/images/rss.png +0 -0
  949. data/lib/wp/wp-includes/images/smilies/icon_arrow.gif +0 -0
  950. data/lib/wp/wp-includes/images/smilies/icon_biggrin.gif +0 -0
  951. data/lib/wp/wp-includes/images/smilies/icon_confused.gif +0 -0
  952. data/lib/wp/wp-includes/images/smilies/icon_cool.gif +0 -0
  953. data/lib/wp/wp-includes/images/smilies/icon_cry.gif +0 -0
  954. data/lib/wp/wp-includes/images/smilies/icon_eek.gif +0 -0
  955. data/lib/wp/wp-includes/images/smilies/icon_evil.gif +0 -0
  956. data/lib/wp/wp-includes/images/smilies/icon_exclaim.gif +0 -0
  957. data/lib/wp/wp-includes/images/smilies/icon_idea.gif +0 -0
  958. data/lib/wp/wp-includes/images/smilies/icon_lol.gif +0 -0
  959. data/lib/wp/wp-includes/images/smilies/icon_mad.gif +0 -0
  960. data/lib/wp/wp-includes/images/smilies/icon_mrgreen.gif +0 -0
  961. data/lib/wp/wp-includes/images/smilies/icon_neutral.gif +0 -0
  962. data/lib/wp/wp-includes/images/smilies/icon_question.gif +0 -0
  963. data/lib/wp/wp-includes/images/smilies/icon_razz.gif +0 -0
  964. data/lib/wp/wp-includes/images/smilies/icon_redface.gif +0 -0
  965. data/lib/wp/wp-includes/images/smilies/icon_rolleyes.gif +0 -0
  966. data/lib/wp/wp-includes/images/smilies/icon_sad.gif +0 -0
  967. data/lib/wp/wp-includes/images/smilies/icon_smile.gif +0 -0
  968. data/lib/wp/wp-includes/images/smilies/icon_surprised.gif +0 -0
  969. data/lib/wp/wp-includes/images/smilies/icon_twisted.gif +0 -0
  970. data/lib/wp/wp-includes/images/smilies/icon_wink.gif +0 -0
  971. data/lib/wp/wp-includes/images/spinner-2x.gif +0 -0
  972. data/lib/wp/wp-includes/images/spinner.gif +0 -0
  973. data/lib/wp/wp-includes/images/toggle-arrow-2x.png +0 -0
  974. data/lib/wp/wp-includes/images/toggle-arrow.png +0 -0
  975. data/lib/wp/wp-includes/images/uploader-icons-2x.png +0 -0
  976. data/lib/wp/wp-includes/images/uploader-icons.png +0 -0
  977. data/lib/wp/wp-includes/images/wlw/wp-comments.png +0 -0
  978. data/lib/wp/wp-includes/images/wlw/wp-icon.png +0 -0
  979. data/lib/wp/wp-includes/images/wlw/wp-watermark.png +0 -0
  980. data/lib/wp/wp-includes/images/wpicons-2x.png +0 -0
  981. data/lib/wp/wp-includes/images/wpicons.png +0 -0
  982. data/lib/wp/wp-includes/images/wpspin-2x.gif +0 -0
  983. data/lib/wp/wp-includes/images/wpspin.gif +0 -0
  984. data/lib/wp/wp-includes/images/xit-2x.gif +0 -0
  985. data/lib/wp/wp-includes/images/xit.gif +0 -0
  986. data/lib/wp/wp-includes/js/admin-bar.js +365 -0
  987. data/lib/wp/wp-includes/js/admin-bar.min.js +1 -0
  988. data/lib/wp/wp-includes/js/autosave.js +589 -0
  989. data/lib/wp/wp-includes/js/autosave.min.js +1 -0
  990. data/lib/wp/wp-includes/js/backbone.min.js +1 -0
  991. data/lib/wp/wp-includes/js/colorpicker.js +707 -0
  992. data/lib/wp/wp-includes/js/colorpicker.min.js +1 -0
  993. data/lib/wp/wp-includes/js/comment-reply.js +47 -0
  994. data/lib/wp/wp-includes/js/comment-reply.min.js +1 -0
  995. data/lib/wp/wp-includes/js/crop/cropper.css +165 -0
  996. data/lib/wp/wp-includes/js/crop/cropper.js +516 -0
  997. data/lib/wp/wp-includes/js/crop/marqueeHoriz.gif +0 -0
  998. data/lib/wp/wp-includes/js/crop/marqueeVert.gif +0 -0
  999. data/lib/wp/wp-includes/js/customize-base.js +617 -0
  1000. data/lib/wp/wp-includes/js/customize-base.min.js +1 -0
  1001. data/lib/wp/wp-includes/js/customize-loader.js +246 -0
  1002. data/lib/wp/wp-includes/js/customize-loader.min.js +1 -0
  1003. data/lib/wp/wp-includes/js/customize-models.js +247 -0
  1004. data/lib/wp/wp-includes/js/customize-models.min.js +1 -0
  1005. data/lib/wp/wp-includes/js/customize-preview-widgets.js +129 -0
  1006. data/lib/wp/wp-includes/js/customize-preview-widgets.min.js +1 -0
  1007. data/lib/wp/wp-includes/js/customize-preview.js +154 -0
  1008. data/lib/wp/wp-includes/js/customize-preview.min.js +1 -0
  1009. data/lib/wp/wp-includes/js/customize-views.js +231 -0
  1010. data/lib/wp/wp-includes/js/customize-views.min.js +1 -0
  1011. data/lib/wp/wp-includes/js/heartbeat.js +738 -0
  1012. data/lib/wp/wp-includes/js/heartbeat.min.js +1 -0
  1013. data/lib/wp/wp-includes/js/hoverIntent.js +115 -0
  1014. data/lib/wp/wp-includes/js/hoverIntent.min.js +1 -0
  1015. data/lib/wp/wp-includes/js/imgareaselect/border-anim-h.gif +0 -0
  1016. data/lib/wp/wp-includes/js/imgareaselect/border-anim-v.gif +0 -0
  1017. data/lib/wp/wp-includes/js/imgareaselect/imgareaselect.css +41 -0
  1018. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.js +1205 -0
  1019. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +1 -0
  1020. data/lib/wp/wp-includes/js/jcrop/Jcrop.gif +0 -0
  1021. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.css +29 -0
  1022. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.js +22 -0
  1023. data/lib/wp/wp-includes/js/jquery/jquery-migrate.js +521 -0
  1024. data/lib/wp/wp-includes/js/jquery/jquery-migrate.min.js +2 -0
  1025. data/lib/wp/wp-includes/js/jquery/jquery.color.min.js +2 -0
  1026. data/lib/wp/wp-includes/js/jquery/jquery.form.js +1193 -0
  1027. data/lib/wp/wp-includes/js/jquery/jquery.form.min.js +11 -0
  1028. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.js +134 -0
  1029. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.min.js +1 -0
  1030. data/lib/wp/wp-includes/js/jquery/jquery.js +5 -0
  1031. data/lib/wp/wp-includes/js/jquery/jquery.masonry.min.js +11 -0
  1032. data/lib/wp/wp-includes/js/jquery/jquery.query.js +11 -0
  1033. data/lib/wp/wp-includes/js/jquery/jquery.schedule.js +36 -0
  1034. data/lib/wp/wp-includes/js/jquery/jquery.serialize-object.js +31 -0
  1035. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.js +99 -0
  1036. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.min.js +1 -0
  1037. data/lib/wp/wp-includes/js/jquery/jquery.ui.touch-punch.js +11 -0
  1038. data/lib/wp/wp-includes/js/jquery/suggest.js +316 -0
  1039. data/lib/wp/wp-includes/js/jquery/suggest.min.js +1 -0
  1040. data/lib/wp/wp-includes/js/jquery/ui/accordion.min.js +11 -0
  1041. data/lib/wp/wp-includes/js/jquery/ui/autocomplete.min.js +11 -0
  1042. data/lib/wp/wp-includes/js/jquery/ui/button.min.js +11 -0
  1043. data/lib/wp/wp-includes/js/jquery/ui/core.min.js +11 -0
  1044. data/lib/wp/wp-includes/js/jquery/ui/datepicker.min.js +12 -0
  1045. data/lib/wp/wp-includes/js/jquery/ui/dialog.min.js +11 -0
  1046. data/lib/wp/wp-includes/js/jquery/ui/draggable.min.js +11 -0
  1047. data/lib/wp/wp-includes/js/jquery/ui/droppable.min.js +11 -0
  1048. data/lib/wp/wp-includes/js/jquery/ui/effect-blind.min.js +11 -0
  1049. data/lib/wp/wp-includes/js/jquery/ui/effect-bounce.min.js +11 -0
  1050. data/lib/wp/wp-includes/js/jquery/ui/effect-clip.min.js +11 -0
  1051. data/lib/wp/wp-includes/js/jquery/ui/effect-drop.min.js +11 -0
  1052. data/lib/wp/wp-includes/js/jquery/ui/effect-explode.min.js +11 -0
  1053. data/lib/wp/wp-includes/js/jquery/ui/effect-fade.min.js +11 -0
  1054. data/lib/wp/wp-includes/js/jquery/ui/effect-fold.min.js +11 -0
  1055. data/lib/wp/wp-includes/js/jquery/ui/effect-highlight.min.js +11 -0
  1056. data/lib/wp/wp-includes/js/jquery/ui/effect-puff.min.js +11 -0
  1057. data/lib/wp/wp-includes/js/jquery/ui/effect-pulsate.min.js +11 -0
  1058. data/lib/wp/wp-includes/js/jquery/ui/effect-scale.min.js +11 -0
  1059. data/lib/wp/wp-includes/js/jquery/ui/effect-shake.min.js +11 -0
  1060. data/lib/wp/wp-includes/js/jquery/ui/effect-size.min.js +11 -0
  1061. data/lib/wp/wp-includes/js/jquery/ui/effect-slide.min.js +11 -0
  1062. data/lib/wp/wp-includes/js/jquery/ui/effect-transfer.min.js +11 -0
  1063. data/lib/wp/wp-includes/js/jquery/ui/effect.min.js +21 -0
  1064. data/lib/wp/wp-includes/js/jquery/ui/menu.min.js +11 -0
  1065. data/lib/wp/wp-includes/js/jquery/ui/mouse.min.js +11 -0
  1066. data/lib/wp/wp-includes/js/jquery/ui/position.min.js +11 -0
  1067. data/lib/wp/wp-includes/js/jquery/ui/progressbar.min.js +11 -0
  1068. data/lib/wp/wp-includes/js/jquery/ui/resizable.min.js +11 -0
  1069. data/lib/wp/wp-includes/js/jquery/ui/selectable.min.js +11 -0
  1070. data/lib/wp/wp-includes/js/jquery/ui/selectmenu.min.js +11 -0
  1071. data/lib/wp/wp-includes/js/jquery/ui/slider.min.js +11 -0
  1072. data/lib/wp/wp-includes/js/jquery/ui/sortable.min.js +11 -0
  1073. data/lib/wp/wp-includes/js/jquery/ui/spinner.min.js +11 -0
  1074. data/lib/wp/wp-includes/js/jquery/ui/tabs.min.js +11 -0
  1075. data/lib/wp/wp-includes/js/jquery/ui/tooltip.min.js +11 -0
  1076. data/lib/wp/wp-includes/js/jquery/ui/widget.min.js +11 -0
  1077. data/lib/wp/wp-includes/js/json2.js +480 -0
  1078. data/lib/wp/wp-includes/js/json2.min.js +1 -0
  1079. data/lib/wp/wp-includes/js/masonry.min.js +1 -0
  1080. data/lib/wp/wp-includes/js/mce-view.js +829 -0
  1081. data/lib/wp/wp-includes/js/mce-view.min.js +1 -0
  1082. data/lib/wp/wp-includes/js/media-audiovideo.js +831 -0
  1083. data/lib/wp/wp-includes/js/media-audiovideo.min.js +1 -0
  1084. data/lib/wp/wp-includes/js/media-editor.js +1114 -0
  1085. data/lib/wp/wp-includes/js/media-editor.min.js +1 -0
  1086. data/lib/wp/wp-includes/js/media-grid.js +732 -0
  1087. data/lib/wp/wp-includes/js/media-grid.min.js +1 -0
  1088. data/lib/wp/wp-includes/js/media-models.js +1362 -0
  1089. data/lib/wp/wp-includes/js/media-models.min.js +1 -0
  1090. data/lib/wp/wp-includes/js/media-views.js +7484 -0
  1091. data/lib/wp/wp-includes/js/media-views.min.js +3 -0
  1092. data/lib/wp/wp-includes/js/mediaelement/background.png +0 -0
  1093. data/lib/wp/wp-includes/js/mediaelement/bigplay.png +0 -0
  1094. data/lib/wp/wp-includes/js/mediaelement/bigplay.svg +1 -0
  1095. data/lib/wp/wp-includes/js/mediaelement/controls.png +0 -0
  1096. data/lib/wp/wp-includes/js/mediaelement/controls.svg +1 -0
  1097. data/lib/wp/wp-includes/js/mediaelement/flashmediaelement.swf +0 -0
  1098. data/lib/wp/wp-includes/js/mediaelement/loading.gif +0 -0
  1099. data/lib/wp/wp-includes/js/mediaelement/mediaelement-and-player.min.js +181 -0
  1100. data/lib/wp/wp-includes/js/mediaelement/mediaelementplayer.min.css +1 -0
  1101. data/lib/wp/wp-includes/js/mediaelement/silverlightmediaelement.xap +0 -0
  1102. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.css +274 -0
  1103. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.js +34 -0
  1104. data/lib/wp/wp-includes/js/mediaelement/wp-playlist.js +175 -0
  1105. data/lib/wp/wp-includes/js/plupload/handlers.js +488 -0
  1106. data/lib/wp/wp-includes/js/plupload/handlers.min.js +1 -0
  1107. data/lib/wp/wp-includes/js/plupload/license.txt +339 -0
  1108. data/lib/wp/wp-includes/js/plupload/plupload.flash.swf +0 -0
  1109. data/lib/wp/wp-includes/js/plupload/plupload.full.min.js +28 -0
  1110. data/lib/wp/wp-includes/js/plupload/plupload.silverlight.xap +0 -0
  1111. data/lib/wp/wp-includes/js/plupload/wp-plupload.js +376 -0
  1112. data/lib/wp/wp-includes/js/plupload/wp-plupload.min.js +1 -0
  1113. data/lib/wp/wp-includes/js/quicktags.js +652 -0
  1114. data/lib/wp/wp-includes/js/quicktags.min.js +1 -0
  1115. data/lib/wp/wp-includes/js/shortcode.js +356 -0
  1116. data/lib/wp/wp-includes/js/shortcode.min.js +1 -0
  1117. data/lib/wp/wp-includes/js/swfobject.js +4 -0
  1118. data/lib/wp/wp-includes/js/swfupload/handlers.js +376 -0
  1119. data/lib/wp/wp-includes/js/swfupload/handlers.min.js +1 -0
  1120. data/lib/wp/wp-includes/js/swfupload/license.txt +32 -0
  1121. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.cookies.js +53 -0
  1122. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.queue.js +98 -0
  1123. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.speed.js +342 -0
  1124. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.swfobject.js +105 -0
  1125. data/lib/wp/wp-includes/js/swfupload/swfupload.js +980 -0
  1126. data/lib/wp/wp-includes/js/swfupload/swfupload.swf +0 -0
  1127. data/lib/wp/wp-includes/js/thickbox/loadingAnimation.gif +0 -0
  1128. data/lib/wp/wp-includes/js/thickbox/macFFBgHack.png +0 -0
  1129. data/lib/wp/wp-includes/js/thickbox/thickbox.css +138 -0
  1130. data/lib/wp/wp-includes/js/thickbox/thickbox.js +314 -0
  1131. data/lib/wp/wp-includes/js/tinymce/langs/wp-langs-en.js +519 -0
  1132. data/lib/wp/wp-includes/js/tinymce/license.txt +504 -0
  1133. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.js +370 -0
  1134. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +1 -0
  1135. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +112 -0
  1136. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +1 -0
  1137. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css +212 -0
  1138. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.js +304 -0
  1139. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +1 -0
  1140. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.js +64 -0
  1141. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +1 -0
  1142. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +136 -0
  1143. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +1 -0
  1144. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.js +30 -0
  1145. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.min.js +1 -0
  1146. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.js +450 -0
  1147. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.min.js +1 -0
  1148. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.js +786 -0
  1149. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.min.js +1 -0
  1150. data/lib/wp/wp-includes/js/tinymce/plugins/media/moxieplayer.swf +0 -0
  1151. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.js +774 -0
  1152. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.min.js +1 -0
  1153. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.js +1553 -0
  1154. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.min.js +1 -0
  1155. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +125 -0
  1156. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +1 -0
  1157. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.js +272 -0
  1158. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +1 -0
  1159. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.js +513 -0
  1160. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +1 -0
  1161. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js +207 -0
  1162. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js +1 -0
  1163. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js +92 -0
  1164. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js +1 -0
  1165. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +1035 -0
  1166. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +1 -0
  1167. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +78 -0
  1168. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js +1 -0
  1169. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.js +130 -0
  1170. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js +1 -0
  1171. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.js +63 -0
  1172. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.min.js +1 -0
  1173. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.js +694 -0
  1174. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +1 -0
  1175. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +1 -0
  1176. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.min.css +1 -0
  1177. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/readme.md +1 -0
  1178. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  1179. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg +62 -0
  1180. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  1181. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  1182. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  1183. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +63 -0
  1184. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  1185. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  1186. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif +0 -0
  1187. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/loader.gif +0 -0
  1188. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/object.gif +0 -0
  1189. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/trans.gif +0 -0
  1190. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css +1 -0
  1191. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.min.css +1 -0
  1192. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/audio.png +0 -0
  1193. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png +0 -0
  1194. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no-alt.png +0 -0
  1195. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/embedded.png +0 -0
  1196. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png +0 -0
  1197. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery.png +0 -0
  1198. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png +0 -0
  1199. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more.png +0 -0
  1200. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png +0 -0
  1201. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png +0 -0
  1202. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png +0 -0
  1203. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png +0 -0
  1204. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/video.png +0 -0
  1205. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/wp-content.css +618 -0
  1206. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.js +617 -0
  1207. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.min.js +1 -0
  1208. data/lib/wp/wp-includes/js/tinymce/tiny_mce_popup.js +539 -0
  1209. data/lib/wp/wp-includes/js/tinymce/tinymce.min.js +11 -0
  1210. data/lib/wp/wp-includes/js/tinymce/utils/editable_selects.js +70 -0
  1211. data/lib/wp/wp-includes/js/tinymce/utils/form_utils.js +210 -0
  1212. data/lib/wp/wp-includes/js/tinymce/utils/mctabs.js +164 -0
  1213. data/lib/wp/wp-includes/js/tinymce/utils/validate.js +252 -0
  1214. data/lib/wp/wp-includes/js/tinymce/wp-mce-help.php +145 -0
  1215. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.js.gz +0 -0
  1216. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.php +39 -0
  1217. data/lib/wp/wp-includes/js/tw-sack.js +193 -0
  1218. data/lib/wp/wp-includes/js/tw-sack.min.js +1 -0
  1219. data/lib/wp/wp-includes/js/underscore.min.js +1 -0
  1220. data/lib/wp/wp-includes/js/utils.js +197 -0
  1221. data/lib/wp/wp-includes/js/utils.min.js +1 -0
  1222. data/lib/wp/wp-includes/js/wp-ajax-response.js +64 -0
  1223. data/lib/wp/wp-includes/js/wp-ajax-response.min.js +1 -0
  1224. data/lib/wp/wp-includes/js/wp-auth-check.js +112 -0
  1225. data/lib/wp/wp-includes/js/wp-auth-check.min.js +1 -0
  1226. data/lib/wp/wp-includes/js/wp-backbone.js +386 -0
  1227. data/lib/wp/wp-includes/js/wp-backbone.min.js +1 -0
  1228. data/lib/wp/wp-includes/js/wp-list-revisions.js +24 -0
  1229. data/lib/wp/wp-includes/js/wp-list-revisions.min.js +1 -0
  1230. data/lib/wp/wp-includes/js/wp-lists.js +469 -0
  1231. data/lib/wp/wp-includes/js/wp-lists.min.js +1 -0
  1232. data/lib/wp/wp-includes/js/wp-pointer.js +282 -0
  1233. data/lib/wp/wp-includes/js/wp-pointer.min.js +1 -0
  1234. data/lib/wp/wp-includes/js/wp-util.js +106 -0
  1235. data/lib/wp/wp-includes/js/wp-util.min.js +1 -0
  1236. data/lib/wp/wp-includes/js/wpdialog.js +19 -0
  1237. data/lib/wp/wp-includes/js/wpdialog.min.js +1 -0
  1238. data/lib/wp/wp-includes/js/wplink.js +615 -0
  1239. data/lib/wp/wp-includes/js/wplink.min.js +1 -0
  1240. data/lib/wp/wp-includes/js/zxcvbn-async.js +18 -0
  1241. data/lib/wp/wp-includes/js/zxcvbn-async.min.js +1 -0
  1242. data/lib/wp/wp-includes/js/zxcvbn.min.js +47 -0
  1243. data/lib/wp/wp-includes/kses.php +1526 -0
  1244. data/lib/wp/wp-includes/l10n.php +908 -0
  1245. data/lib/wp/wp-includes/link-template.php +3141 -0
  1246. data/lib/wp/wp-includes/load.php +828 -0
  1247. data/lib/wp/wp-includes/locale.php +368 -0
  1248. data/lib/wp/wp-includes/media-template.php +1235 -0
  1249. data/lib/wp/wp-includes/media.php +3329 -0
  1250. data/lib/wp/wp-includes/meta.php +1221 -0
  1251. data/lib/wp/wp-includes/ms-blogs.php +939 -0
  1252. data/lib/wp/wp-includes/ms-default-constants.php +153 -0
  1253. data/lib/wp/wp-includes/ms-default-filters.php +82 -0
  1254. data/lib/wp/wp-includes/ms-deprecated.php +347 -0
  1255. data/lib/wp/wp-includes/ms-files.php +82 -0
  1256. data/lib/wp/wp-includes/ms-functions.php +2476 -0
  1257. data/lib/wp/wp-includes/ms-load.php +458 -0
  1258. data/lib/wp/wp-includes/ms-settings.php +213 -0
  1259. data/lib/wp/wp-includes/nav-menu-template.php +678 -0
  1260. data/lib/wp/wp-includes/nav-menu.php +895 -0
  1261. data/lib/wp/wp-includes/option.php +1440 -0
  1262. data/lib/wp/wp-includes/pluggable-deprecated.php +192 -0
  1263. data/lib/wp/wp-includes/pluggable.php +2283 -0
  1264. data/lib/wp/wp-includes/plugin.php +920 -0
  1265. data/lib/wp/wp-includes/pomo/entry.php +78 -0
  1266. data/lib/wp/wp-includes/pomo/mo.php +262 -0
  1267. data/lib/wp/wp-includes/pomo/po.php +384 -0
  1268. data/lib/wp/wp-includes/pomo/streams.php +209 -0
  1269. data/lib/wp/wp-includes/pomo/translations.php +275 -0
  1270. data/lib/wp/wp-includes/post-formats.php +243 -0
  1271. data/lib/wp/wp-includes/post-template.php +1766 -0
  1272. data/lib/wp/wp-includes/post-thumbnail-template.php +142 -0
  1273. data/lib/wp/wp-includes/post.php +5842 -0
  1274. data/lib/wp/wp-includes/query.php +4666 -0
  1275. data/lib/wp/wp-includes/registration-functions.php +7 -0
  1276. data/lib/wp/wp-includes/registration.php +7 -0
  1277. data/lib/wp/wp-includes/revision.php +657 -0
  1278. data/lib/wp/wp-includes/rewrite.php +2180 -0
  1279. data/lib/wp/wp-includes/rss-functions.php +9 -0
  1280. data/lib/wp/wp-includes/rss.php +936 -0
  1281. data/lib/wp/wp-includes/script-loader.php +1045 -0
  1282. data/lib/wp/wp-includes/session.php +430 -0
  1283. data/lib/wp/wp-includes/shortcodes.php +410 -0
  1284. data/lib/wp/wp-includes/taxonomy.php +4006 -0
  1285. data/lib/wp/wp-includes/template-loader.php +76 -0
  1286. data/lib/wp/wp-includes/template.php +505 -0
  1287. data/lib/wp/wp-includes/theme-compat/comments-popup.php +128 -0
  1288. data/lib/wp/wp-includes/theme-compat/comments.php +101 -0
  1289. data/lib/wp/wp-includes/theme-compat/footer.php +30 -0
  1290. data/lib/wp/wp-includes/theme-compat/header.php +49 -0
  1291. data/lib/wp/wp-includes/theme-compat/sidebar.php +83 -0
  1292. data/lib/wp/wp-includes/theme.php +2014 -0
  1293. data/lib/wp/wp-includes/update.php +674 -0
  1294. data/lib/wp/wp-includes/user.php +2292 -0
  1295. data/lib/wp/wp-includes/vars.php +144 -0
  1296. data/lib/wp/wp-includes/version.php +35 -0
  1297. data/lib/wp/wp-includes/widgets.php +1514 -0
  1298. data/lib/wp/wp-includes/wlwmanifest.xml +43 -0
  1299. data/lib/wp/wp-includes/wp-db.php +2190 -0
  1300. data/lib/wp/wp-includes/wp-diff.php +523 -0
  1301. data/lib/wp/wp-links-opml.php +80 -0
  1302. data/lib/wp/wp-load.php +73 -0
  1303. data/lib/wp/wp-login.php +952 -0
  1304. data/lib/wp/wp-mail.php +260 -0
  1305. data/lib/wp/wp-settings.php +374 -0
  1306. data/lib/wp/wp-signup.php +749 -0
  1307. data/lib/wp/wp-trackback.php +127 -0
  1308. data/lib/wp/xmlrpc.php +101 -0
  1309. data/stump-cli.gemspec +26 -0
  1310. metadata +1332 -4
@@ -0,0 +1,1556 @@
1
+ <?php
2
+ /**
3
+ * Customize Widgets Class
4
+ *
5
+ * Implements widget management in the Customizer.
6
+ *
7
+ * @package WordPress
8
+ * @subpackage Customize
9
+ * @since 3.9.0
10
+ */
11
+ final class WP_Customize_Widgets {
12
+
13
+ /**
14
+ * WP_Customize_Manager instance.
15
+ *
16
+ * @since 3.9.0
17
+ * @access public
18
+ * @var WP_Customize_Manager
19
+ */
20
+ public $manager;
21
+
22
+ /**
23
+ * All id_bases for widgets defined in core.
24
+ *
25
+ * @since 3.9.0
26
+ * @access protected
27
+ * @var array
28
+ */
29
+ protected $core_widget_id_bases = array(
30
+ 'archives', 'calendar', 'categories', 'links', 'meta',
31
+ 'nav_menu', 'pages', 'recent-comments', 'recent-posts',
32
+ 'rss', 'search', 'tag_cloud', 'text',
33
+ );
34
+
35
+ /**
36
+ * @since 3.9.0
37
+ * @access protected
38
+ * @var
39
+ */
40
+ protected $_customized;
41
+
42
+ /**
43
+ * @since 3.9.0
44
+ * @access protected
45
+ * @var array
46
+ */
47
+ protected $_prepreview_added_filters = array();
48
+
49
+ /**
50
+ * @since 3.9.0
51
+ * @access protected
52
+ * @var array
53
+ */
54
+ protected $rendered_sidebars = array();
55
+
56
+ /**
57
+ * @since 3.9.0
58
+ * @access protected
59
+ * @var array
60
+ */
61
+ protected $rendered_widgets = array();
62
+
63
+ /**
64
+ * @since 3.9.0
65
+ * @access protected
66
+ * @var array
67
+ */
68
+ protected $old_sidebars_widgets = array();
69
+
70
+ /**
71
+ * Initial loader.
72
+ *
73
+ * @since 3.9.0
74
+ * @access public
75
+ *
76
+ * @param WP_Customize_Manager $manager Customize manager bootstrap instance.
77
+ */
78
+ public function __construct( $manager ) {
79
+ $this->manager = $manager;
80
+
81
+ add_action( 'after_setup_theme', array( $this, 'setup_widget_addition_previews' ) );
82
+ add_action( 'wp_loaded', array( $this, 'override_sidebars_widgets_for_theme_switch' ) );
83
+ add_action( 'customize_controls_init', array( $this, 'customize_controls_init' ) );
84
+ add_action( 'customize_register', array( $this, 'schedule_customize_register' ), 1 );
85
+ add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
86
+ add_action( 'customize_controls_print_styles', array( $this, 'print_styles' ) );
87
+ add_action( 'customize_controls_print_scripts', array( $this, 'print_scripts' ) );
88
+ add_action( 'customize_controls_print_footer_scripts', array( $this, 'print_footer_scripts' ) );
89
+ add_action( 'customize_controls_print_footer_scripts', array( $this, 'output_widget_control_templates' ) );
90
+ add_action( 'customize_preview_init', array( $this, 'customize_preview_init' ) );
91
+
92
+ add_action( 'dynamic_sidebar', array( $this, 'tally_rendered_widgets' ) );
93
+ add_filter( 'is_active_sidebar', array( $this, 'tally_sidebars_via_is_active_sidebar_calls' ), 10, 2 );
94
+ add_filter( 'dynamic_sidebar_has_widgets', array( $this, 'tally_sidebars_via_dynamic_sidebar_calls' ), 10, 2 );
95
+ }
96
+
97
+ /**
98
+ * Get an unslashed post value or return a default.
99
+ *
100
+ * @since 3.9.0
101
+ *
102
+ * @access protected
103
+ *
104
+ * @param string $name Post value.
105
+ * @param mixed $default Default post value.
106
+ * @return mixed Unslashed post value or default value.
107
+ */
108
+ protected function get_post_value( $name, $default = null ) {
109
+ if ( ! isset( $_POST[ $name ] ) ) {
110
+ return $default;
111
+ }
112
+
113
+ return wp_unslash( $_POST[$name] );
114
+ }
115
+
116
+ /**
117
+ * Set up widget addition previews.
118
+ *
119
+ * Since the widgets get registered on 'widgets_init' before the customizer
120
+ * settings are set up on 'customize_register', we have to filter the options
121
+ * similarly to how the setting previewer will filter the options later.
122
+ *
123
+ * @since 3.9.0
124
+ *
125
+ * @access public
126
+ */
127
+ public function setup_widget_addition_previews() {
128
+ $is_customize_preview = false;
129
+
130
+ if ( ! empty( $this->manager ) && ! is_admin() && 'on' === $this->get_post_value( 'wp_customize' ) ) {
131
+ $is_customize_preview = check_ajax_referer( 'preview-customize_' . $this->manager->get_stylesheet(), 'nonce', false );
132
+ }
133
+
134
+ $is_ajax_widget_update = false;
135
+ if ( $this->manager->doing_ajax() && 'update-widget' === $this->get_post_value( 'action' ) ) {
136
+ $is_ajax_widget_update = check_ajax_referer( 'update-widget', 'nonce', false );
137
+ }
138
+
139
+ $is_ajax_customize_save = false;
140
+ if ( $this->manager->doing_ajax() && 'customize_save' === $this->get_post_value( 'action' ) ) {
141
+ $is_ajax_customize_save = check_ajax_referer( 'save-customize_' . $this->manager->get_stylesheet(), 'nonce', false );
142
+ }
143
+
144
+ $is_valid_request = ( $is_ajax_widget_update || $is_customize_preview || $is_ajax_customize_save );
145
+ if ( ! $is_valid_request ) {
146
+ return;
147
+ }
148
+
149
+ // Input from customizer preview.
150
+ if ( isset( $_POST['customized'] ) ) {
151
+ $this->_customized = json_decode( $this->get_post_value( 'customized' ), true );
152
+ } else { // Input from ajax widget update request.
153
+ $this->_customized = array();
154
+ $id_base = $this->get_post_value( 'id_base' );
155
+ $widget_number = $this->get_post_value( 'widget_number', false );
156
+ $option_name = 'widget_' . $id_base;
157
+ $this->_customized[ $option_name ] = array();
158
+ if ( preg_match( '/^[0-9]+$/', $widget_number ) ) {
159
+ $option_name .= '[' . $widget_number . ']';
160
+ $this->_customized[ $option_name ][ $widget_number ] = array();
161
+ }
162
+ }
163
+
164
+ $function = array( $this, 'prepreview_added_sidebars_widgets' );
165
+
166
+ $hook = 'option_sidebars_widgets';
167
+ add_filter( $hook, $function );
168
+ $this->_prepreview_added_filters[] = compact( 'hook', 'function' );
169
+
170
+ $hook = 'default_option_sidebars_widgets';
171
+ add_filter( $hook, $function );
172
+ $this->_prepreview_added_filters[] = compact( 'hook', 'function' );
173
+
174
+ $function = array( $this, 'prepreview_added_widget_instance' );
175
+ foreach ( $this->_customized as $setting_id => $value ) {
176
+ if ( preg_match( '/^(widget_.+?)(?:\[(\d+)\])?$/', $setting_id, $matches ) ) {
177
+ $option = $matches[1];
178
+
179
+ $hook = sprintf( 'option_%s', $option );
180
+ if ( ! has_filter( $hook, $function ) ) {
181
+ add_filter( $hook, $function );
182
+ $this->_prepreview_added_filters[] = compact( 'hook', 'function' );
183
+ }
184
+
185
+ $hook = sprintf( 'default_option_%s', $option );
186
+ if ( ! has_filter( $hook, $function ) ) {
187
+ add_filter( $hook, $function );
188
+ $this->_prepreview_added_filters[] = compact( 'hook', 'function' );
189
+ }
190
+
191
+ /*
192
+ * Make sure the option is registered so that the update_option()
193
+ * won't fail due to the filters providing a default value, which
194
+ * causes the update_option() to get confused.
195
+ */
196
+ add_option( $option, array() );
197
+ }
198
+ }
199
+ }
200
+
201
+ /**
202
+ * Ensure that newly-added widgets will appear in the widgets_sidebars.
203
+ *
204
+ * This is necessary because the customizer's setting preview filters
205
+ * are added after the widgets_init action, which is too late for the
206
+ * widgets to be set up properly.
207
+ *
208
+ * @since 3.9.0
209
+ * @access public
210
+ *
211
+ * @param array $sidebars_widgets Associative array of sidebars and their widgets.
212
+ * @return array Filtered array of sidebars and their widgets.
213
+ */
214
+ public function prepreview_added_sidebars_widgets( $sidebars_widgets ) {
215
+ foreach ( $this->_customized as $setting_id => $value ) {
216
+ if ( preg_match( '/^sidebars_widgets\[(.+?)\]$/', $setting_id, $matches ) ) {
217
+ $sidebar_id = $matches[1];
218
+ $sidebars_widgets[ $sidebar_id ] = $value;
219
+ }
220
+ }
221
+ return $sidebars_widgets;
222
+ }
223
+
224
+ /**
225
+ * Ensure newly-added widgets have empty instances so they
226
+ * will be recognized.
227
+ *
228
+ * This is necessary because the customizer's setting preview
229
+ * filters are added after the widgets_init action, which is
230
+ * too late for the widgets to be set up properly.
231
+ *
232
+ * @since 3.9.0
233
+ * @access public
234
+ *
235
+ * @param array|bool|mixed $value Widget instance(s), false if open was empty.
236
+ * @return array|mixed Widget instance(s) with additions.
237
+ */
238
+ public function prepreview_added_widget_instance( $value = false ) {
239
+ if ( ! preg_match( '/^(?:default_)?option_(widget_(.+))/', current_filter(), $matches ) ) {
240
+ return $value;
241
+ }
242
+ $id_base = $matches[2];
243
+
244
+ foreach ( $this->_customized as $setting_id => $setting ) {
245
+ $parsed_setting_id = $this->parse_widget_setting_id( $setting_id );
246
+ if ( is_wp_error( $parsed_setting_id ) || $id_base !== $parsed_setting_id['id_base'] ) {
247
+ continue;
248
+ }
249
+ $widget_number = $parsed_setting_id['number'];
250
+
251
+ if ( is_null( $widget_number ) ) {
252
+ // Single widget.
253
+ if ( false === $value ) {
254
+ $value = array();
255
+ }
256
+ } else {
257
+ // Multi widget.
258
+ if ( empty( $value ) ) {
259
+ $value = array( '_multiwidget' => 1 );
260
+ }
261
+ if ( ! isset( $value[ $widget_number ] ) ) {
262
+ $value[ $widget_number ] = array();
263
+ }
264
+ }
265
+ }
266
+
267
+ return $value;
268
+ }
269
+
270
+ /**
271
+ * Remove pre-preview filters.
272
+ *
273
+ * Removes filters added in setup_widget_addition_previews()
274
+ * to ensure widgets are populating the options during
275
+ * 'widgets_init'.
276
+ *
277
+ * @since 3.9.0
278
+ * @access public
279
+ */
280
+ public function remove_prepreview_filters() {
281
+ foreach ( $this->_prepreview_added_filters as $prepreview_added_filter ) {
282
+ remove_filter( $prepreview_added_filter['hook'], $prepreview_added_filter['function'] );
283
+ }
284
+ $this->_prepreview_added_filters = array();
285
+ }
286
+
287
+ /**
288
+ * Override sidebars_widgets for theme switch.
289
+ *
290
+ * When switching a theme via the customizer, supply any previously-configured
291
+ * sidebars_widgets from the target theme as the initial sidebars_widgets
292
+ * setting. Also store the old theme's existing settings so that they can
293
+ * be passed along for storing in the sidebars_widgets theme_mod when the
294
+ * theme gets switched.
295
+ *
296
+ * @since 3.9.0
297
+ * @access public
298
+ */
299
+ public function override_sidebars_widgets_for_theme_switch() {
300
+ global $sidebars_widgets;
301
+
302
+ if ( $this->manager->doing_ajax() || $this->manager->is_theme_active() ) {
303
+ return;
304
+ }
305
+
306
+ $this->old_sidebars_widgets = wp_get_sidebars_widgets();
307
+ add_filter( 'customize_value_old_sidebars_widgets_data', array( $this, 'filter_customize_value_old_sidebars_widgets_data' ) );
308
+
309
+ // retrieve_widgets() looks at the global $sidebars_widgets
310
+ $sidebars_widgets = $this->old_sidebars_widgets;
311
+ $sidebars_widgets = retrieve_widgets( 'customize' );
312
+ add_filter( 'option_sidebars_widgets', array( $this, 'filter_option_sidebars_widgets_for_theme_switch' ), 1 );
313
+ }
314
+
315
+ /**
316
+ * Filter old_sidebars_widgets_data customizer setting.
317
+ *
318
+ * When switching themes, filter the Customizer setting
319
+ * old_sidebars_widgets_data to supply initial $sidebars_widgets before they
320
+ * were overridden by retrieve_widgets(). The value for
321
+ * old_sidebars_widgets_data gets set in the old theme's sidebars_widgets
322
+ * theme_mod.
323
+ *
324
+ * @see WP_Customize_Widgets::handle_theme_switch()
325
+ * @since 3.9.0
326
+ * @access public
327
+ *
328
+ * @param array $sidebars_widgets
329
+ */
330
+ public function filter_customize_value_old_sidebars_widgets_data( $old_sidebars_widgets ) {
331
+ return $this->old_sidebars_widgets;
332
+ }
333
+
334
+ /**
335
+ * Filter sidebars_widgets option for theme switch.
336
+ *
337
+ * When switching themes, the retrieve_widgets() function is run when the
338
+ * Customizer initializes, and then the new sidebars_widgets here get
339
+ * supplied as the default value for the sidebars_widgets option.
340
+ *
341
+ * @see WP_Customize_Widgets::handle_theme_switch()
342
+ * @since 3.9.0
343
+ * @access public
344
+ *
345
+ * @param array $sidebars_widgets
346
+ */
347
+ public function filter_option_sidebars_widgets_for_theme_switch( $sidebars_widgets ) {
348
+ $sidebars_widgets = $GLOBALS['sidebars_widgets'];
349
+ $sidebars_widgets['array_version'] = 3;
350
+ return $sidebars_widgets;
351
+ }
352
+
353
+ /**
354
+ * Make sure all widgets get loaded into the Customizer.
355
+ *
356
+ * Note: these actions are also fired in wp_ajax_update_widget().
357
+ *
358
+ * @since 3.9.0
359
+ * @access public
360
+ */
361
+ public function customize_controls_init() {
362
+ /** This action is documented in wp-admin/includes/ajax-actions.php */
363
+ do_action( 'load-widgets.php' );
364
+
365
+ /** This action is documented in wp-admin/includes/ajax-actions.php */
366
+ do_action( 'widgets.php' );
367
+
368
+ /** This action is documented in wp-admin/widgets.php */
369
+ do_action( 'sidebar_admin_setup' );
370
+ }
371
+
372
+ /**
373
+ * Ensure widgets are available for all types of previews.
374
+ *
375
+ * When in preview, hook to 'customize_register' for settings
376
+ * after WordPress is loaded so that all filters have been
377
+ * initialized (e.g. Widget Visibility).
378
+ *
379
+ * @since 3.9.0
380
+ * @access public
381
+ */
382
+ public function schedule_customize_register() {
383
+ if ( is_admin() ) { // @todo for some reason, $wp_customize->is_preview() is true here?
384
+ $this->customize_register();
385
+ } else {
386
+ add_action( 'wp', array( $this, 'customize_register' ) );
387
+ }
388
+ }
389
+
390
+ /**
391
+ * Register customizer settings and controls for all sidebars and widgets.
392
+ *
393
+ * @since 3.9.0
394
+ * @access public
395
+ */
396
+ public function customize_register() {
397
+ global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_sidebars;
398
+
399
+ $sidebars_widgets = array_merge(
400
+ array( 'wp_inactive_widgets' => array() ),
401
+ array_fill_keys( array_keys( $GLOBALS['wp_registered_sidebars'] ), array() ),
402
+ wp_get_sidebars_widgets()
403
+ );
404
+
405
+ $new_setting_ids = array();
406
+
407
+ /*
408
+ * Register a setting for all widgets, including those which are active,
409
+ * inactive, and orphaned since a widget may get suppressed from a sidebar
410
+ * via a plugin (like Widget Visibility).
411
+ */
412
+ foreach ( array_keys( $wp_registered_widgets ) as $widget_id ) {
413
+ $setting_id = $this->get_setting_id( $widget_id );
414
+ $setting_args = $this->get_setting_args( $setting_id );
415
+
416
+ $setting_args['sanitize_callback'] = array( $this, 'sanitize_widget_instance' );
417
+ $setting_args['sanitize_js_callback'] = array( $this, 'sanitize_widget_js_instance' );
418
+
419
+ $this->manager->add_setting( $setting_id, $setting_args );
420
+
421
+ $new_setting_ids[] = $setting_id;
422
+ }
423
+
424
+ /*
425
+ * Add a setting which will be supplied for the theme's sidebars_widgets
426
+ * theme_mod when the the theme is switched.
427
+ */
428
+ if ( ! $this->manager->is_theme_active() ) {
429
+ $setting_id = 'old_sidebars_widgets_data';
430
+ $setting_args = $this->get_setting_args( $setting_id, array(
431
+ 'type' => 'global_variable',
432
+ ) );
433
+ $this->manager->add_setting( $setting_id, $setting_args );
434
+ }
435
+
436
+ $this->manager->add_panel( 'widgets', array(
437
+ 'title' => __( 'Widgets' ),
438
+ 'description' => __( 'Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars).' ),
439
+ 'priority' => 110,
440
+ ) );
441
+
442
+ foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widget_ids ) {
443
+ if ( empty( $sidebar_widget_ids ) ) {
444
+ $sidebar_widget_ids = array();
445
+ }
446
+
447
+ $is_registered_sidebar = isset( $GLOBALS['wp_registered_sidebars'][$sidebar_id] );
448
+ $is_inactive_widgets = ( 'wp_inactive_widgets' === $sidebar_id );
449
+ $is_active_sidebar = ( $is_registered_sidebar && ! $is_inactive_widgets );
450
+
451
+ // Add setting for managing the sidebar's widgets.
452
+ if ( $is_registered_sidebar || $is_inactive_widgets ) {
453
+ $setting_id = sprintf( 'sidebars_widgets[%s]', $sidebar_id );
454
+ $setting_args = $this->get_setting_args( $setting_id );
455
+
456
+ $setting_args['sanitize_callback'] = array( $this, 'sanitize_sidebar_widgets' );
457
+ $setting_args['sanitize_js_callback'] = array( $this, 'sanitize_sidebar_widgets_js_instance' );
458
+
459
+ $this->manager->add_setting( $setting_id, $setting_args );
460
+ $new_setting_ids[] = $setting_id;
461
+
462
+ // Add section to contain controls.
463
+ $section_id = sprintf( 'sidebar-widgets-%s', $sidebar_id );
464
+ if ( $is_active_sidebar ) {
465
+
466
+ $section_args = array(
467
+ 'title' => $GLOBALS['wp_registered_sidebars'][ $sidebar_id ]['name'],
468
+ 'description' => $GLOBALS['wp_registered_sidebars'][ $sidebar_id ]['description'],
469
+ 'priority' => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ) ),
470
+ 'panel' => 'widgets',
471
+ );
472
+
473
+ /**
474
+ * Filter Customizer widget section arguments for a given sidebar.
475
+ *
476
+ * @since 3.9.0
477
+ *
478
+ * @param array $section_args Array of Customizer widget section arguments.
479
+ * @param string $section_id Customizer section ID.
480
+ * @param int|string $sidebar_id Sidebar ID.
481
+ */
482
+ $section_args = apply_filters( 'customizer_widgets_section_args', $section_args, $section_id, $sidebar_id );
483
+
484
+ $this->manager->add_section( $section_id, $section_args );
485
+
486
+ $control = new WP_Widget_Area_Customize_Control( $this->manager, $setting_id, array(
487
+ 'section' => $section_id,
488
+ 'sidebar_id' => $sidebar_id,
489
+ 'priority' => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
490
+ ) );
491
+ $new_setting_ids[] = $setting_id;
492
+
493
+ $this->manager->add_control( $control );
494
+ }
495
+ }
496
+
497
+ // Add a control for each active widget (located in a sidebar).
498
+ foreach ( $sidebar_widget_ids as $i => $widget_id ) {
499
+
500
+ // Skip widgets that may have gone away due to a plugin being deactivated.
501
+ if ( ! $is_active_sidebar || ! isset( $GLOBALS['wp_registered_widgets'][$widget_id] ) ) {
502
+ continue;
503
+ }
504
+
505
+ $registered_widget = $GLOBALS['wp_registered_widgets'][$widget_id];
506
+ $setting_id = $this->get_setting_id( $widget_id );
507
+ $id_base = $GLOBALS['wp_registered_widget_controls'][$widget_id]['id_base'];
508
+
509
+ $control = new WP_Widget_Form_Customize_Control( $this->manager, $setting_id, array(
510
+ 'label' => $registered_widget['name'],
511
+ 'section' => $section_id,
512
+ 'sidebar_id' => $sidebar_id,
513
+ 'widget_id' => $widget_id,
514
+ 'widget_id_base' => $id_base,
515
+ 'priority' => $i,
516
+ 'width' => $wp_registered_widget_controls[$widget_id]['width'],
517
+ 'height' => $wp_registered_widget_controls[$widget_id]['height'],
518
+ 'is_wide' => $this->is_wide_widget( $widget_id ),
519
+ ) );
520
+ $this->manager->add_control( $control );
521
+ }
522
+ }
523
+
524
+ /*
525
+ * We have to register these settings later than customize_preview_init
526
+ * so that other filters have had a chance to run.
527
+ */
528
+ if ( did_action( 'customize_preview_init' ) ) {
529
+ foreach ( $new_setting_ids as $new_setting_id ) {
530
+ $this->manager->get_setting( $new_setting_id )->preview();
531
+ }
532
+ }
533
+ $this->remove_prepreview_filters();
534
+ }
535
+
536
+ /**
537
+ * Covert a widget_id into its corresponding customizer setting ID (option name).
538
+ *
539
+ * @since 3.9.0
540
+ * @access public
541
+ *
542
+ * @param string $widget_id Widget ID.
543
+ * @return string Maybe-parsed widget ID.
544
+ */
545
+ public function get_setting_id( $widget_id ) {
546
+ $parsed_widget_id = $this->parse_widget_id( $widget_id );
547
+ $setting_id = sprintf( 'widget_%s', $parsed_widget_id['id_base'] );
548
+
549
+ if ( ! is_null( $parsed_widget_id['number'] ) ) {
550
+ $setting_id .= sprintf( '[%d]', $parsed_widget_id['number'] );
551
+ }
552
+ return $setting_id;
553
+ }
554
+
555
+ /**
556
+ * Determine whether the widget is considered "wide".
557
+ *
558
+ * Core widgets which may have controls wider than 250, but can
559
+ * still be shown in the narrow customizer panel. The RSS and Text
560
+ * widgets in Core, for example, have widths of 400 and yet they
561
+ * still render fine in the customizer panel. This method will
562
+ * return all Core widgets as being not wide, but this can be
563
+ * overridden with the is_wide_widget_in_customizer filter.
564
+ *
565
+ * @since 3.9.0
566
+ * @access public
567
+ *
568
+ * @param string $widget_id Widget ID.
569
+ * @return bool Whether or not the widget is a "wide" widget.
570
+ */
571
+ public function is_wide_widget( $widget_id ) {
572
+ global $wp_registered_widget_controls;
573
+
574
+ $parsed_widget_id = $this->parse_widget_id( $widget_id );
575
+ $width = $wp_registered_widget_controls[$widget_id]['width'];
576
+ $is_core = in_array( $parsed_widget_id['id_base'], $this->core_widget_id_bases );
577
+ $is_wide = ( $width > 250 && ! $is_core );
578
+
579
+ /**
580
+ * Filter whether the given widget is considered "wide".
581
+ *
582
+ * @since 3.9.0
583
+ *
584
+ * @param bool $is_wide Whether the widget is wide, Default false.
585
+ * @param string $widget_id Widget ID.
586
+ */
587
+ return apply_filters( 'is_wide_widget_in_customizer', $is_wide, $widget_id );
588
+ }
589
+
590
+ /**
591
+ * Covert a widget ID into its id_base and number components.
592
+ *
593
+ * @since 3.9.0
594
+ * @access public
595
+ *
596
+ * @param string $widget_id Widget ID.
597
+ * @return array Array containing a widget's id_base and number components.
598
+ */
599
+ public function parse_widget_id( $widget_id ) {
600
+ $parsed = array(
601
+ 'number' => null,
602
+ 'id_base' => null,
603
+ );
604
+
605
+ if ( preg_match( '/^(.+)-(\d+)$/', $widget_id, $matches ) ) {
606
+ $parsed['id_base'] = $matches[1];
607
+ $parsed['number'] = intval( $matches[2] );
608
+ } else {
609
+ // likely an old single widget
610
+ $parsed['id_base'] = $widget_id;
611
+ }
612
+ return $parsed;
613
+ }
614
+
615
+ /**
616
+ * Convert a widget setting ID (option path) to its id_base and number components.
617
+ *
618
+ * @since 3.9.0
619
+ * @access public
620
+ *
621
+ * @param string $setting_id Widget setting ID.
622
+ * @return WP_Error|array Array containing a widget's id_base and number components,
623
+ * or a WP_Error object.
624
+ */
625
+ public function parse_widget_setting_id( $setting_id ) {
626
+ if ( ! preg_match( '/^(widget_(.+?))(?:\[(\d+)\])?$/', $setting_id, $matches ) ) {
627
+ return new WP_Error( 'widget_setting_invalid_id' );
628
+ }
629
+
630
+ $id_base = $matches[2];
631
+ $number = isset( $matches[3] ) ? intval( $matches[3] ) : null;
632
+
633
+ return compact( 'id_base', 'number' );
634
+ }
635
+
636
+ /**
637
+ * Call admin_print_styles-widgets.php and admin_print_styles hooks to
638
+ * allow custom styles from plugins.
639
+ *
640
+ * @since 3.9.0
641
+ * @access public
642
+ */
643
+ public function print_styles() {
644
+ /** This action is documented in wp-admin/admin-header.php */
645
+ do_action( 'admin_print_styles-widgets.php' );
646
+
647
+ /** This action is documented in wp-admin/admin-header.php */
648
+ do_action( 'admin_print_styles' );
649
+ }
650
+
651
+ /**
652
+ * Call admin_print_scripts-widgets.php and admin_print_scripts hooks to
653
+ * allow custom scripts from plugins.
654
+ *
655
+ * @since 3.9.0
656
+ * @access public
657
+ */
658
+ public function print_scripts() {
659
+ /** This action is documented in wp-admin/admin-header.php */
660
+ do_action( 'admin_print_scripts-widgets.php' );
661
+
662
+ /** This action is documented in wp-admin/admin-header.php */
663
+ do_action( 'admin_print_scripts' );
664
+ }
665
+
666
+ /**
667
+ * Enqueue scripts and styles for customizer panel and export data to JavaScript.
668
+ *
669
+ * @since 3.9.0
670
+ * @access public
671
+ */
672
+ public function enqueue_scripts() {
673
+ wp_enqueue_style( 'customize-widgets' );
674
+ wp_enqueue_script( 'customize-widgets' );
675
+
676
+ /** This action is documented in wp-admin/admin-header.php */
677
+ do_action( 'admin_enqueue_scripts', 'widgets.php' );
678
+
679
+ /*
680
+ * Export available widgets with control_tpl removed from model
681
+ * since plugins need templates to be in the DOM.
682
+ */
683
+ $available_widgets = array();
684
+
685
+ foreach ( $this->get_available_widgets() as $available_widget ) {
686
+ unset( $available_widget['control_tpl'] );
687
+ $available_widgets[] = $available_widget;
688
+ }
689
+
690
+ $widget_reorder_nav_tpl = sprintf(
691
+ '<div class="widget-reorder-nav"><span class="move-widget" tabindex="0">%1$s</span><span class="move-widget-down" tabindex="0">%2$s</span><span class="move-widget-up" tabindex="0">%3$s</span></div>',
692
+ __( 'Move to another area&hellip;' ),
693
+ __( 'Move down' ),
694
+ __( 'Move up' )
695
+ );
696
+
697
+ $move_widget_area_tpl = str_replace(
698
+ array( '{description}', '{btn}' ),
699
+ array(
700
+ __( 'Select an area to move this widget into:' ),
701
+ _x( 'Move', 'Move widget' ),
702
+ ),
703
+ '<div class="move-widget-area">
704
+ <p class="description">{description}</p>
705
+ <ul class="widget-area-select">
706
+ <% _.each( sidebars, function ( sidebar ){ %>
707
+ <li class="" data-id="<%- sidebar.id %>" title="<%- sidebar.description %>" tabindex="0"><%- sidebar.name %></li>
708
+ <% }); %>
709
+ </ul>
710
+ <div class="move-widget-actions">
711
+ <button class="move-widget-btn button-secondary" type="button">{btn}</button>
712
+ </div>
713
+ </div>'
714
+ );
715
+
716
+ global $wp_scripts;
717
+
718
+ $settings = array(
719
+ 'nonce' => wp_create_nonce( 'update-widget' ),
720
+ 'registeredSidebars' => array_values( $GLOBALS['wp_registered_sidebars'] ),
721
+ 'registeredWidgets' => $GLOBALS['wp_registered_widgets'],
722
+ 'availableWidgets' => $available_widgets, // @todo Merge this with registered_widgets
723
+ 'l10n' => array(
724
+ 'saveBtnLabel' => __( 'Apply' ),
725
+ 'saveBtnTooltip' => __( 'Save and preview changes before publishing them.' ),
726
+ 'removeBtnLabel' => __( 'Remove' ),
727
+ 'removeBtnTooltip' => __( 'Trash widget by moving it to the inactive widgets sidebar.' ),
728
+ 'error' => __( 'An error has occurred. Please reload the page and try again.' ),
729
+ ),
730
+ 'tpl' => array(
731
+ 'widgetReorderNav' => $widget_reorder_nav_tpl,
732
+ 'moveWidgetArea' => $move_widget_area_tpl,
733
+ ),
734
+ );
735
+
736
+ foreach ( $settings['registeredWidgets'] as &$registered_widget ) {
737
+ unset( $registered_widget['callback'] ); // may not be JSON-serializeable
738
+ }
739
+
740
+ $wp_scripts->add_data(
741
+ 'customize-widgets',
742
+ 'data',
743
+ sprintf( 'var _wpCustomizeWidgetsSettings = %s;', json_encode( $settings ) )
744
+ );
745
+ }
746
+
747
+ /**
748
+ * Render the widget form control templates into the DOM.
749
+ *
750
+ * @since 3.9.0
751
+ * @access public
752
+ */
753
+ public function output_widget_control_templates() {
754
+ ?>
755
+ <div id="widgets-left"><!-- compatibility with JS which looks for widget templates here -->
756
+ <div id="available-widgets">
757
+ <div id="available-widgets-filter">
758
+ <label class="screen-reader-text" for="widgets-search"><?php _e( 'Search Widgets' ); ?></label>
759
+ <input type="search" id="widgets-search" placeholder="<?php esc_attr_e( 'Search widgets&hellip;' ) ?>" />
760
+ </div>
761
+ <?php foreach ( $this->get_available_widgets() as $available_widget ): ?>
762
+ <div id="widget-tpl-<?php echo esc_attr( $available_widget['id'] ) ?>" data-widget-id="<?php echo esc_attr( $available_widget['id'] ) ?>" class="widget-tpl <?php echo esc_attr( $available_widget['id'] ) ?>" tabindex="0">
763
+ <?php echo $available_widget['control_tpl']; ?>
764
+ </div>
765
+ <?php endforeach; ?>
766
+ </div><!-- #available-widgets -->
767
+ </div><!-- #widgets-left -->
768
+ <?php
769
+ }
770
+
771
+ /**
772
+ * Call admin_print_footer_scripts and admin_print_scripts hooks to
773
+ * allow custom scripts from plugins.
774
+ *
775
+ * @since 3.9.0
776
+ * @access public
777
+ */
778
+ public function print_footer_scripts() {
779
+ /** This action is documented in wp-admin/admin-footer.php */
780
+ do_action( 'admin_print_footer_scripts' );
781
+
782
+ /** This action is documented in wp-admin/admin-footer.php */
783
+ do_action( 'admin_footer-widgets.php' );
784
+ }
785
+
786
+ /**
787
+ * Get common arguments to supply when constructing a Customizer setting.
788
+ *
789
+ * @since 3.9.0
790
+ * @access public
791
+ *
792
+ * @param string $id Widget setting ID.
793
+ * @param array $overrides Array of setting overrides.
794
+ * @return array Possibly modified setting arguments.
795
+ */
796
+ public function get_setting_args( $id, $overrides = array() ) {
797
+ $args = array(
798
+ 'type' => 'option',
799
+ 'capability' => 'edit_theme_options',
800
+ 'transport' => 'refresh',
801
+ 'default' => array(),
802
+ );
803
+ $args = array_merge( $args, $overrides );
804
+
805
+ /**
806
+ * Filter the common arguments supplied when constructing a Customizer setting.
807
+ *
808
+ * @since 3.9.0
809
+ *
810
+ * @see WP_Customize_Setting
811
+ *
812
+ * @param array $args Array of Customizer setting arguments.
813
+ * @param string $id Widget setting ID.
814
+ */
815
+ return apply_filters( 'widget_customizer_setting_args', $args, $id );
816
+ }
817
+
818
+ /**
819
+ * Make sure that sidebar widget arrays only ever contain widget IDS.
820
+ *
821
+ * Used as the 'sanitize_callback' for each $sidebars_widgets setting.
822
+ *
823
+ * @since 3.9.0
824
+ * @access public
825
+ *
826
+ * @param array $widget_ids Array of widget IDs.
827
+ * @return array Array of sanitized widget IDs.
828
+ */
829
+ public function sanitize_sidebar_widgets( $widget_ids ) {
830
+ global $wp_registered_widgets;
831
+
832
+ $widget_ids = array_map( 'strval', (array) $widget_ids );
833
+ $sanitized_widget_ids = array();
834
+
835
+ foreach ( $widget_ids as $widget_id ) {
836
+ if ( array_key_exists( $widget_id, $wp_registered_widgets ) ) {
837
+ $sanitized_widget_ids[] = $widget_id;
838
+ }
839
+ }
840
+ return $sanitized_widget_ids;
841
+ }
842
+
843
+ /**
844
+ * Build up an index of all available widgets for use in Backbone models.
845
+ *
846
+ * @since 3.9.0
847
+ * @access public
848
+ *
849
+ * @see wp_list_widgets()
850
+ *
851
+ * @return array List of available widgets.
852
+ */
853
+ public function get_available_widgets() {
854
+ static $available_widgets = array();
855
+ if ( ! empty( $available_widgets ) ) {
856
+ return $available_widgets;
857
+ }
858
+
859
+ global $wp_registered_widgets, $wp_registered_widget_controls;
860
+ require_once ABSPATH . '/wp-admin/includes/widgets.php'; // for next_widget_id_number()
861
+
862
+ $sort = $wp_registered_widgets;
863
+ usort( $sort, array( $this, '_sort_name_callback' ) );
864
+ $done = array();
865
+
866
+ foreach ( $sort as $widget ) {
867
+ if ( in_array( $widget['callback'], $done, true ) ) { // We already showed this multi-widget
868
+ continue;
869
+ }
870
+
871
+ $sidebar = is_active_widget( $widget['callback'], $widget['id'], false, false );
872
+ $done[] = $widget['callback'];
873
+
874
+ if ( ! isset( $widget['params'][0] ) ) {
875
+ $widget['params'][0] = array();
876
+ }
877
+
878
+ $available_widget = $widget;
879
+ unset( $available_widget['callback'] ); // not serializable to JSON
880
+
881
+ $args = array(
882
+ 'widget_id' => $widget['id'],
883
+ 'widget_name' => $widget['name'],
884
+ '_display' => 'template',
885
+ );
886
+
887
+ $is_disabled = false;
888
+ $is_multi_widget = ( isset( $wp_registered_widget_controls[$widget['id']]['id_base'] ) && isset( $widget['params'][0]['number'] ) );
889
+ if ( $is_multi_widget ) {
890
+ $id_base = $wp_registered_widget_controls[$widget['id']]['id_base'];
891
+ $args['_temp_id'] = "$id_base-__i__";
892
+ $args['_multi_num'] = next_widget_id_number( $id_base );
893
+ $args['_add'] = 'multi';
894
+ } else {
895
+ $args['_add'] = 'single';
896
+
897
+ if ( $sidebar && 'wp_inactive_widgets' !== $sidebar ) {
898
+ $is_disabled = true;
899
+ }
900
+ $id_base = $widget['id'];
901
+ }
902
+
903
+ $list_widget_controls_args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) );
904
+ $control_tpl = $this->get_widget_control( $list_widget_controls_args );
905
+
906
+ // The properties here are mapped to the Backbone Widget model.
907
+ $available_widget = array_merge( $available_widget, array(
908
+ 'temp_id' => isset( $args['_temp_id'] ) ? $args['_temp_id'] : null,
909
+ 'is_multi' => $is_multi_widget,
910
+ 'control_tpl' => $control_tpl,
911
+ 'multi_number' => ( $args['_add'] === 'multi' ) ? $args['_multi_num'] : false,
912
+ 'is_disabled' => $is_disabled,
913
+ 'id_base' => $id_base,
914
+ 'transport' => 'refresh',
915
+ 'width' => $wp_registered_widget_controls[$widget['id']]['width'],
916
+ 'height' => $wp_registered_widget_controls[$widget['id']]['height'],
917
+ 'is_wide' => $this->is_wide_widget( $widget['id'] ),
918
+ ) );
919
+
920
+ $available_widgets[] = $available_widget;
921
+ }
922
+
923
+ return $available_widgets;
924
+ }
925
+
926
+ /**
927
+ * Naturally order available widgets by name.
928
+ *
929
+ * @since 3.9.0
930
+ * @static
931
+ * @access protected
932
+ *
933
+ * @param array $widget_a The first widget to compare.
934
+ * @param array $widget_b The second widget to compare.
935
+ * @return int Reorder position for the current widget comparison.
936
+ */
937
+ protected function _sort_name_callback( $widget_a, $widget_b ) {
938
+ return strnatcasecmp( $widget_a['name'], $widget_b['name'] );
939
+ }
940
+
941
+ /**
942
+ * Get the widget control markup.
943
+ *
944
+ * @since 3.9.0
945
+ * @access public
946
+ *
947
+ * @param array $args Widget control arguments.
948
+ * @return string Widget control form HTML markup.
949
+ */
950
+ public function get_widget_control( $args ) {
951
+ ob_start();
952
+
953
+ call_user_func_array( 'wp_widget_control', $args );
954
+ $replacements = array(
955
+ '<form action="" method="post">' => '<div class="form">',
956
+ '</form>' => '</div><!-- .form -->',
957
+ );
958
+
959
+ $control_tpl = ob_get_clean();
960
+
961
+ $control_tpl = str_replace( array_keys( $replacements ), array_values( $replacements ), $control_tpl );
962
+
963
+ return $control_tpl;
964
+ }
965
+
966
+ /**
967
+ * Add hooks for the customizer preview.
968
+ *
969
+ * @since 3.9.0
970
+ * @access public
971
+ */
972
+ public function customize_preview_init() {
973
+ add_filter( 'sidebars_widgets', array( $this, 'preview_sidebars_widgets' ), 1 );
974
+ add_action( 'wp_enqueue_scripts', array( $this, 'customize_preview_enqueue' ) );
975
+ add_action( 'wp_print_styles', array( $this, 'print_preview_css' ), 1 );
976
+ add_action( 'wp_footer', array( $this, 'export_preview_data' ), 20 );
977
+ }
978
+
979
+ /**
980
+ * When previewing, make sure the proper previewing widgets are used.
981
+ *
982
+ * Because wp_get_sidebars_widgets() gets called early at init
983
+ * (via wp_convert_widget_settings()) and can set global variable
984
+ * $_wp_sidebars_widgets to the value of get_option( 'sidebars_widgets' )
985
+ * before the customizer preview filter is added, we have to reset
986
+ * it after the filter has been added.
987
+ *
988
+ * @since 3.9.0
989
+ * @access public
990
+ *
991
+ * @param array $sidebars_widgets List of widgets for the current sidebar.
992
+ */
993
+ public function preview_sidebars_widgets( $sidebars_widgets ) {
994
+ $sidebars_widgets = get_option( 'sidebars_widgets' );
995
+
996
+ unset( $sidebars_widgets['array_version'] );
997
+ return $sidebars_widgets;
998
+ }
999
+
1000
+ /**
1001
+ * Enqueue scripts for the Customizer preview.
1002
+ *
1003
+ * @since 3.9.0
1004
+ * @access public
1005
+ */
1006
+ public function customize_preview_enqueue() {
1007
+ wp_enqueue_script( 'customize-preview-widgets' );
1008
+ }
1009
+
1010
+ /**
1011
+ * Insert default style for highlighted widget at early point so theme
1012
+ * stylesheet can override.
1013
+ *
1014
+ * @since 3.9.0
1015
+ * @access public
1016
+ *
1017
+ * @action wp_print_styles
1018
+ */
1019
+ public function print_preview_css() {
1020
+ ?>
1021
+ <style>
1022
+ .widget-customizer-highlighted-widget {
1023
+ outline: none;
1024
+ -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
1025
+ box-shadow: 0 0 2px rgba(30,140,190,0.8);
1026
+ position: relative;
1027
+ z-index: 1;
1028
+ }
1029
+ </style>
1030
+ <?php
1031
+ }
1032
+
1033
+ /**
1034
+ * At the very end of the page, at the very end of the wp_footer,
1035
+ * communicate the sidebars that appeared on the page.
1036
+ *
1037
+ * @since 3.9.0
1038
+ * @access public
1039
+ */
1040
+ public function export_preview_data() {
1041
+
1042
+ // Prepare customizer settings to pass to Javascript.
1043
+ $settings = array(
1044
+ 'renderedSidebars' => array_fill_keys( array_unique( $this->rendered_sidebars ), true ),
1045
+ 'renderedWidgets' => array_fill_keys( array_keys( $this->rendered_widgets ), true ),
1046
+ 'registeredSidebars' => array_values( $GLOBALS['wp_registered_sidebars'] ),
1047
+ 'registeredWidgets' => $GLOBALS['wp_registered_widgets'],
1048
+ 'l10n' => array(
1049
+ 'widgetTooltip' => __( 'Shift-click to edit this widget.' ),
1050
+ ),
1051
+ );
1052
+ foreach ( $settings['registeredWidgets'] as &$registered_widget ) {
1053
+ unset( $registered_widget['callback'] ); // may not be JSON-serializeable
1054
+ }
1055
+
1056
+ ?>
1057
+ <script type="text/javascript">
1058
+ var _wpWidgetCustomizerPreviewSettings = <?php echo json_encode( $settings ); ?>;
1059
+ </script>
1060
+ <?php
1061
+ }
1062
+
1063
+ /**
1064
+ * Keep track of the widgets that were rendered.
1065
+ *
1066
+ * @since 3.9.0
1067
+ * @access public
1068
+ *
1069
+ * @param array $widget Rendered widget to tally.
1070
+ */
1071
+ public function tally_rendered_widgets( $widget ) {
1072
+ $this->rendered_widgets[ $widget['id'] ] = true;
1073
+ }
1074
+
1075
+ /**
1076
+ * Determine if a widget is rendered on the page.
1077
+ *
1078
+ * @since 4.0.0
1079
+ * @access public
1080
+ *
1081
+ * @param string $widget_id Widget ID to check.
1082
+ * @return bool Whether the widget is rendered.
1083
+ */
1084
+ public function is_widget_rendered( $widget_id ) {
1085
+ return in_array( $widget_id, $this->rendered_widgets );
1086
+ }
1087
+
1088
+ /**
1089
+ * Determine if a sidebar is rendered on the page.
1090
+ *
1091
+ * @since 4.0.0
1092
+ * @access public
1093
+ *
1094
+ * @param string $sidebar_id Sidebar ID to check.
1095
+ * @return bool Whether the sidebar is rendered.
1096
+ */
1097
+ public function is_sidebar_rendered( $sidebar_id ) {
1098
+ return in_array( $sidebar_id, $this->rendered_sidebars );
1099
+ }
1100
+
1101
+ /**
1102
+ * Tally the sidebars rendered via is_active_sidebar().
1103
+ *
1104
+ * Keep track of the times that is_active_sidebar() is called
1105
+ * in the template, and assume that this means that the sidebar
1106
+ * would be rendered on the template if there were widgets
1107
+ * populating it.
1108
+ *
1109
+ * @since 3.9.0
1110
+ * @access public
1111
+ *
1112
+ * @param bool $is_active Whether the sidebar is active.
1113
+ * @param string $sidebar_id Sidebar ID.
1114
+ */
1115
+ public function tally_sidebars_via_is_active_sidebar_calls( $is_active, $sidebar_id ) {
1116
+ if ( isset( $GLOBALS['wp_registered_sidebars'][$sidebar_id] ) ) {
1117
+ $this->rendered_sidebars[] = $sidebar_id;
1118
+ }
1119
+ /*
1120
+ * We may need to force this to true, and also force-true the value
1121
+ * for 'dynamic_sidebar_has_widgets' if we want to ensure that there
1122
+ * is an area to drop widgets into, if the sidebar is empty.
1123
+ */
1124
+ return $is_active;
1125
+ }
1126
+
1127
+ /**
1128
+ * Tally the sidebars rendered via dynamic_sidebar().
1129
+ *
1130
+ * Keep track of the times that dynamic_sidebar() is called in the template,
1131
+ * and assume this means the sidebar would be rendered on the template if
1132
+ * there were widgets populating it.
1133
+ *
1134
+ * @since 3.9.0
1135
+ * @access public
1136
+ *
1137
+ * @param bool $has_widgets Whether the current sidebar has widgets.
1138
+ * @param string $sidebar_id Sidebar ID.
1139
+ */
1140
+ public function tally_sidebars_via_dynamic_sidebar_calls( $has_widgets, $sidebar_id ) {
1141
+ if ( isset( $GLOBALS['wp_registered_sidebars'][$sidebar_id] ) ) {
1142
+ $this->rendered_sidebars[] = $sidebar_id;
1143
+ }
1144
+
1145
+ /*
1146
+ * We may need to force this to true, and also force-true the value
1147
+ * for 'is_active_sidebar' if we want to ensure there is an area to
1148
+ * drop widgets into, if the sidebar is empty.
1149
+ */
1150
+ return $has_widgets;
1151
+ }
1152
+
1153
+ /**
1154
+ * Get MAC for a serialized widget instance string.
1155
+ *
1156
+ * Allows values posted back from JS to be rejected if any tampering of the
1157
+ * data has occurred.
1158
+ *
1159
+ * @since 3.9.0
1160
+ * @access protected
1161
+ *
1162
+ * @param string $serialized_instance Widget instance.
1163
+ * @return string MAC for serialized widget instance.
1164
+ */
1165
+ protected function get_instance_hash_key( $serialized_instance ) {
1166
+ return wp_hash( $serialized_instance );
1167
+ }
1168
+
1169
+ /**
1170
+ * Sanitize a widget instance.
1171
+ *
1172
+ * Unserialize the JS-instance for storing in the options. It's important
1173
+ * that this filter only get applied to an instance once.
1174
+ *
1175
+ * @since 3.9.0
1176
+ * @access public
1177
+ *
1178
+ * @param array $value Widget instance to sanitize.
1179
+ * @return array Sanitized widget instance.
1180
+ */
1181
+ public function sanitize_widget_instance( $value ) {
1182
+ if ( $value === array() ) {
1183
+ return $value;
1184
+ }
1185
+
1186
+ if ( empty( $value['is_widget_customizer_js_value'] )
1187
+ || empty( $value['instance_hash_key'] )
1188
+ || empty( $value['encoded_serialized_instance'] ) )
1189
+ {
1190
+ return null;
1191
+ }
1192
+
1193
+ $decoded = base64_decode( $value['encoded_serialized_instance'], true );
1194
+ if ( false === $decoded ) {
1195
+ return null;
1196
+ }
1197
+
1198
+ if ( $this->get_instance_hash_key( $decoded ) !== $value['instance_hash_key'] ) {
1199
+ return null;
1200
+ }
1201
+
1202
+ $instance = unserialize( $decoded );
1203
+ if ( false === $instance ) {
1204
+ return null;
1205
+ }
1206
+
1207
+ return $instance;
1208
+ }
1209
+
1210
+ /**
1211
+ * Convert widget instance into JSON-representable format.
1212
+ *
1213
+ * @since 3.9.0
1214
+ * @access public
1215
+ *
1216
+ * @param array $value Widget instance to convert to JSON.
1217
+ * @return array JSON-converted widget instance.
1218
+ */
1219
+ public function sanitize_widget_js_instance( $value ) {
1220
+ if ( empty( $value['is_widget_customizer_js_value'] ) ) {
1221
+ $serialized = serialize( $value );
1222
+
1223
+ $value = array(
1224
+ 'encoded_serialized_instance' => base64_encode( $serialized ),
1225
+ 'title' => empty( $value['title'] ) ? '' : $value['title'],
1226
+ 'is_widget_customizer_js_value' => true,
1227
+ 'instance_hash_key' => $this->get_instance_hash_key( $serialized ),
1228
+ );
1229
+ }
1230
+ return $value;
1231
+ }
1232
+
1233
+ /**
1234
+ * Strip out widget IDs for widgets which are no longer registered.
1235
+ *
1236
+ * One example where this might happen is when a plugin orphans a widget
1237
+ * in a sidebar upon deactivation.
1238
+ *
1239
+ * @since 3.9.0
1240
+ * @access public
1241
+ *
1242
+ * @param array $widget_ids List of widget IDs.
1243
+ * @return array Parsed list of widget IDs.
1244
+ */
1245
+ public function sanitize_sidebar_widgets_js_instance( $widget_ids ) {
1246
+ global $wp_registered_widgets;
1247
+ $widget_ids = array_values( array_intersect( $widget_ids, array_keys( $wp_registered_widgets ) ) );
1248
+ return $widget_ids;
1249
+ }
1250
+
1251
+ /**
1252
+ * Find and invoke the widget update and control callbacks.
1253
+ *
1254
+ * Requires that $_POST be populated with the instance data.
1255
+ *
1256
+ * @since 3.9.0
1257
+ * @access public
1258
+ *
1259
+ * @param string $widget_id Widget ID.
1260
+ * @return WP_Error|array Array containing the updated widget information.
1261
+ * A WP_Error object, otherwise.
1262
+ */
1263
+ public function call_widget_update( $widget_id ) {
1264
+ global $wp_registered_widget_updates, $wp_registered_widget_controls;
1265
+
1266
+ $this->start_capturing_option_updates();
1267
+ $parsed_id = $this->parse_widget_id( $widget_id );
1268
+ $option_name = 'widget_' . $parsed_id['id_base'];
1269
+
1270
+ /*
1271
+ * If a previously-sanitized instance is provided, populate the input vars
1272
+ * with its values so that the widget update callback will read this instance
1273
+ */
1274
+ $added_input_vars = array();
1275
+ if ( ! empty( $_POST['sanitized_widget_setting'] ) ) {
1276
+ $sanitized_widget_setting = json_decode( $this->get_post_value( 'sanitized_widget_setting' ), true );
1277
+ if ( false === $sanitized_widget_setting ) {
1278
+ $this->stop_capturing_option_updates();
1279
+ return new WP_Error( 'widget_setting_malformed' );
1280
+ }
1281
+
1282
+ $instance = $this->sanitize_widget_instance( $sanitized_widget_setting );
1283
+ if ( is_null( $instance ) ) {
1284
+ $this->stop_capturing_option_updates();
1285
+ return new WP_Error( 'widget_setting_unsanitized' );
1286
+ }
1287
+
1288
+ if ( ! is_null( $parsed_id['number'] ) ) {
1289
+ $value = array();
1290
+ $value[$parsed_id['number']] = $instance;
1291
+ $key = 'widget-' . $parsed_id['id_base'];
1292
+ $_REQUEST[$key] = $_POST[$key] = wp_slash( $value );
1293
+ $added_input_vars[] = $key;
1294
+ } else {
1295
+ foreach ( $instance as $key => $value ) {
1296
+ $_REQUEST[$key] = $_POST[$key] = wp_slash( $value );
1297
+ $added_input_vars[] = $key;
1298
+ }
1299
+ }
1300
+ }
1301
+
1302
+ // Invoke the widget update callback.
1303
+ foreach ( (array) $wp_registered_widget_updates as $name => $control ) {
1304
+ if ( $name === $parsed_id['id_base'] && is_callable( $control['callback'] ) ) {
1305
+ ob_start();
1306
+ call_user_func_array( $control['callback'], $control['params'] );
1307
+ ob_end_clean();
1308
+ break;
1309
+ }
1310
+ }
1311
+
1312
+ // Clean up any input vars that were manually added
1313
+ foreach ( $added_input_vars as $key ) {
1314
+ unset( $_POST[$key] );
1315
+ unset( $_REQUEST[$key] );
1316
+ }
1317
+
1318
+ // Make sure the expected option was updated.
1319
+ if ( 0 !== $this->count_captured_options() ) {
1320
+ if ( $this->count_captured_options() > 1 ) {
1321
+ $this->stop_capturing_option_updates();
1322
+ return new WP_Error( 'widget_setting_too_many_options' );
1323
+ }
1324
+
1325
+ $updated_option_name = key( $this->get_captured_options() );
1326
+ if ( $updated_option_name !== $option_name ) {
1327
+ $this->stop_capturing_option_updates();
1328
+ return new WP_Error( 'widget_setting_unexpected_option' );
1329
+ }
1330
+ }
1331
+
1332
+ // Obtain the widget control with the updated instance in place.
1333
+ ob_start();
1334
+
1335
+ $form = $wp_registered_widget_controls[$widget_id];
1336
+ if ( $form ) {
1337
+ call_user_func_array( $form['callback'], $form['params'] );
1338
+ }
1339
+
1340
+ $form = ob_get_clean();
1341
+
1342
+ // Obtain the widget instance.
1343
+ $option = get_option( $option_name );
1344
+
1345
+ if ( null !== $parsed_id['number'] ) {
1346
+ $instance = $option[$parsed_id['number']];
1347
+ } else {
1348
+ $instance = $option;
1349
+ }
1350
+
1351
+ $this->stop_capturing_option_updates();
1352
+
1353
+ return compact( 'instance', 'form' );
1354
+ }
1355
+
1356
+ /**
1357
+ * Update widget settings asynchronously.
1358
+ *
1359
+ * Allows the Customizer to update a widget using its form, but return the new
1360
+ * instance info via Ajax instead of saving it to the options table.
1361
+ *
1362
+ * Most code here copied from wp_ajax_save_widget()
1363
+ *
1364
+ * @since 3.9.0
1365
+ * @access public
1366
+ *
1367
+ * @see wp_ajax_save_widget()
1368
+ *
1369
+ */
1370
+ public function wp_ajax_update_widget() {
1371
+
1372
+ if ( ! is_user_logged_in() ) {
1373
+ wp_die( 0 );
1374
+ }
1375
+
1376
+ check_ajax_referer( 'update-widget', 'nonce' );
1377
+
1378
+ if ( ! current_user_can( 'edit_theme_options' ) ) {
1379
+ wp_die( -1 );
1380
+ }
1381
+
1382
+ if ( ! isset( $_POST['widget-id'] ) ) {
1383
+ wp_send_json_error();
1384
+ }
1385
+
1386
+ /** This action is documented in wp-admin/includes/ajax-actions.php */
1387
+ do_action( 'load-widgets.php' );
1388
+
1389
+ /** This action is documented in wp-admin/includes/ajax-actions.php */
1390
+ do_action( 'widgets.php' );
1391
+
1392
+ /** This action is documented in wp-admin/widgets.php */
1393
+ do_action( 'sidebar_admin_setup' );
1394
+
1395
+ $widget_id = $this->get_post_value( 'widget-id' );
1396
+ $parsed_id = $this->parse_widget_id( $widget_id );
1397
+ $id_base = $parsed_id['id_base'];
1398
+
1399
+ if ( isset( $_POST['widget-' . $id_base] ) && is_array( $_POST['widget-' . $id_base] ) && preg_match( '/__i__|%i%/', key( $_POST['widget-' . $id_base] ) ) ) {
1400
+ wp_send_json_error();
1401
+ }
1402
+
1403
+ $updated_widget = $this->call_widget_update( $widget_id ); // => {instance,form}
1404
+ if ( is_wp_error( $updated_widget ) ) {
1405
+ wp_send_json_error();
1406
+ }
1407
+
1408
+ $form = $updated_widget['form'];
1409
+ $instance = $this->sanitize_widget_js_instance( $updated_widget['instance'] );
1410
+
1411
+ wp_send_json_success( compact( 'form', 'instance' ) );
1412
+ }
1413
+
1414
+ /***************************************************************************
1415
+ * Option Update Capturing
1416
+ ***************************************************************************/
1417
+
1418
+ /**
1419
+ * List of captured widget option updates.
1420
+ *
1421
+ * @since 3.9.0
1422
+ * @access protected
1423
+ * @var array $_captured_options Values updated while option capture is happening.
1424
+ */
1425
+ protected $_captured_options = array();
1426
+
1427
+ /**
1428
+ * Whether option capture is currently happening.
1429
+ *
1430
+ * @since 3.9.0
1431
+ * @access protected
1432
+ * @var bool $_is_current Whether option capture is currently happening or not.
1433
+ */
1434
+ protected $_is_capturing_option_updates = false;
1435
+
1436
+ /**
1437
+ * Determine whether the captured option update should be ignored.
1438
+ *
1439
+ * @since 3.9.0
1440
+ * @access protected
1441
+ *
1442
+ * @param string $option_name Option name.
1443
+ * @return boolean Whether the option capture is ignored.
1444
+ */
1445
+ protected function is_option_capture_ignored( $option_name ) {
1446
+ return ( 0 === strpos( $option_name, '_transient_' ) );
1447
+ }
1448
+
1449
+ /**
1450
+ * Retrieve captured widget option updates.
1451
+ *
1452
+ * @since 3.9.0
1453
+ * @access protected
1454
+ *
1455
+ * @return array Array of captured options.
1456
+ */
1457
+ protected function get_captured_options() {
1458
+ return $this->_captured_options;
1459
+ }
1460
+
1461
+ /**
1462
+ * Get the number of captured widget option updates.
1463
+ *
1464
+ * @since 3.9.0
1465
+ * @access protected
1466
+ *
1467
+ * @return int Number of updated options.
1468
+ */
1469
+ protected function count_captured_options() {
1470
+ return count( $this->_captured_options );
1471
+ }
1472
+
1473
+ /**
1474
+ * Start keeping track of changes to widget options, caching new values.
1475
+ *
1476
+ * @since 3.9.0
1477
+ * @access protected
1478
+ */
1479
+ protected function start_capturing_option_updates() {
1480
+ if ( $this->_is_capturing_option_updates ) {
1481
+ return;
1482
+ }
1483
+
1484
+ $this->_is_capturing_option_updates = true;
1485
+
1486
+ add_filter( 'pre_update_option', array( $this, 'capture_filter_pre_update_option' ), 10, 3 );
1487
+ }
1488
+
1489
+ /**
1490
+ * Pre-filter captured option values before updating.
1491
+ *
1492
+ * @since 3.9.0
1493
+ * @access public
1494
+ *
1495
+ * @param mixed $new_value
1496
+ * @param string $option_name
1497
+ * @param mixed $old_value
1498
+ * @return mixed
1499
+ */
1500
+ public function capture_filter_pre_update_option( $new_value, $option_name, $old_value ) {
1501
+ if ( $this->is_option_capture_ignored( $option_name ) ) {
1502
+ return;
1503
+ }
1504
+
1505
+ if ( ! isset( $this->_captured_options[$option_name] ) ) {
1506
+ add_filter( "pre_option_{$option_name}", array( $this, 'capture_filter_pre_get_option' ) );
1507
+ }
1508
+
1509
+ $this->_captured_options[$option_name] = $new_value;
1510
+
1511
+ return $old_value;
1512
+ }
1513
+
1514
+ /**
1515
+ * Pre-filter captured option values before retrieving.
1516
+ *
1517
+ * @since 3.9.0
1518
+ * @access public
1519
+ *
1520
+ * @param mixed $value Option
1521
+ * @return mixed
1522
+ */
1523
+ public function capture_filter_pre_get_option( $value ) {
1524
+ $option_name = preg_replace( '/^pre_option_/', '', current_filter() );
1525
+
1526
+ if ( isset( $this->_captured_options[$option_name] ) ) {
1527
+ $value = $this->_captured_options[$option_name];
1528
+
1529
+ /** This filter is documented in wp-includes/option.php */
1530
+ $value = apply_filters( 'option_' . $option_name, $value );
1531
+ }
1532
+
1533
+ return $value;
1534
+ }
1535
+
1536
+ /**
1537
+ * Undo any changes to the options since options capture began.
1538
+ *
1539
+ * @since 3.9.0
1540
+ * @access protected
1541
+ */
1542
+ protected function stop_capturing_option_updates() {
1543
+ if ( ! $this->_is_capturing_option_updates ) {
1544
+ return;
1545
+ }
1546
+
1547
+ remove_filter( 'pre_update_option', array( $this, 'capture_filter_pre_update_option' ), 10, 3 );
1548
+
1549
+ foreach ( array_keys( $this->_captured_options ) as $option_name ) {
1550
+ remove_filter( "pre_option_{$option_name}", array( $this, 'capture_filter_pre_get_option' ) );
1551
+ }
1552
+
1553
+ $this->_captured_options = array();
1554
+ $this->_is_capturing_option_updates = false;
1555
+ }
1556
+ }