boot-cli 0.3.0

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 (1413) hide show
  1. checksums.yaml +7 -0
  2. data/bin/boot +9 -0
  3. data/lib/Boot/Lib/Commands/Config.rb +28 -0
  4. data/lib/Boot/Lib/Commands/Help.rb +17 -0
  5. data/lib/Boot/Lib/Commands/New.rb +77 -0
  6. data/lib/Boot/Lib/Commands/Template.rb +87 -0
  7. data/lib/Boot/Lib/Commands/Version.rb +15 -0
  8. data/lib/Boot/Lib/Core/Config.rb +84 -0
  9. data/lib/Boot/Lib/Core/InvalidConfigException.rb +4 -0
  10. data/lib/Boot/Lib/Core/InvalidTemplateException.rb +4 -0
  11. data/lib/Boot/Lib/Core/SubCommand.rb +61 -0
  12. data/lib/Boot/Lib/Core/Template.rb +375 -0
  13. data/lib/Boot/Lib/autoload.rb +23 -0
  14. data/lib/boot-default-config.json +1 -0
  15. data/lib/boot.rb +60 -0
  16. data/lib/template.json-schema +144 -0
  17. data/lib/templates/.document +1 -0
  18. data/lib/templates/.gitmodules +3 -0
  19. data/lib/templates/README.md +3 -0
  20. data/lib/templates/c/static/ext/__dummy-file__ +0 -0
  21. data/lib/templates/c/static/src/main.c +0 -0
  22. data/lib/templates/c/template.json +24 -0
  23. data/lib/templates/gitignores/Actionscript.gitignore +11 -0
  24. data/lib/templates/gitignores/Ada.gitignore +5 -0
  25. data/lib/templates/gitignores/Agda.gitignore +1 -0
  26. data/lib/templates/gitignores/Android.gitignore +27 -0
  27. data/lib/templates/gitignores/AppEngine.gitignore +2 -0
  28. data/lib/templates/gitignores/AppceleratorTitanium.gitignore +3 -0
  29. data/lib/templates/gitignores/ArchLinuxPackages.gitignore +14 -0
  30. data/lib/templates/gitignores/Autotools.gitignore +14 -0
  31. data/lib/templates/gitignores/C++.gitignore +28 -0
  32. data/lib/templates/gitignores/C.gitignore +32 -0
  33. data/lib/templates/gitignores/CFWheels.gitignore +12 -0
  34. data/lib/templates/gitignores/CMake.gitignore +5 -0
  35. data/lib/templates/gitignores/CONTRIBUTING.md +34 -0
  36. data/lib/templates/gitignores/CUDA.gitignore +6 -0
  37. data/lib/templates/gitignores/CakePHP.gitignore +13 -0
  38. data/lib/templates/gitignores/ChefCookbook.gitignore +9 -0
  39. data/lib/templates/gitignores/Clojure.gitignore +12 -0
  40. data/lib/templates/gitignores/CodeIgniter.gitignore +6 -0
  41. data/lib/templates/gitignores/CommonLisp.gitignore +3 -0
  42. data/lib/templates/gitignores/Composer.gitignore +6 -0
  43. data/lib/templates/gitignores/Concrete5.gitignore +3 -0
  44. data/lib/templates/gitignores/Coq.gitignore +3 -0
  45. data/lib/templates/gitignores/CraftCMS.gitignore +3 -0
  46. data/lib/templates/gitignores/DM.gitignore +5 -0
  47. data/lib/templates/gitignores/Dart.gitignore +14 -0
  48. data/lib/templates/gitignores/Delphi.gitignore +57 -0
  49. data/lib/templates/gitignores/Drupal.gitignore +36 -0
  50. data/lib/templates/gitignores/EPiServer.gitignore +4 -0
  51. data/lib/templates/gitignores/Eagle.gitignore +36 -0
  52. data/lib/templates/gitignores/Elisp.gitignore +5 -0
  53. data/lib/templates/gitignores/Elixir.gitignore +4 -0
  54. data/lib/templates/gitignores/Erlang.gitignore +10 -0
  55. data/lib/templates/gitignores/ExpressionEngine.gitignore +19 -0
  56. data/lib/templates/gitignores/ExtJs.gitignore +4 -0
  57. data/lib/templates/gitignores/Fancy.gitignore +2 -0
  58. data/lib/templates/gitignores/Finale.gitignore +13 -0
  59. data/lib/templates/gitignores/ForceDotCom.gitignore +4 -0
  60. data/lib/templates/gitignores/Fortran.gitignore +28 -0
  61. data/lib/templates/gitignores/FuelPHP.gitignore +2 -0
  62. data/lib/templates/gitignores/GWT.gitignore +28 -0
  63. data/lib/templates/gitignores/Gcov.gitignore +5 -0
  64. data/lib/templates/gitignores/GitBook.gitignore +16 -0
  65. data/lib/templates/gitignores/Global/Anjuta.gitignore +3 -0
  66. data/lib/templates/gitignores/Global/Archives.gitignore +27 -0
  67. data/lib/templates/gitignores/Global/BricxCC.gitignore +4 -0
  68. data/lib/templates/gitignores/Global/CVS.gitignore +4 -0
  69. data/lib/templates/gitignores/Global/Cloud9.gitignore +3 -0
  70. data/lib/templates/gitignores/Global/CodeKit.gitignore +3 -0
  71. data/lib/templates/gitignores/Global/DartEditor.gitignore +2 -0
  72. data/lib/templates/gitignores/Global/Dreamweaver.gitignore +3 -0
  73. data/lib/templates/gitignores/Global/Eclipse.gitignore +36 -0
  74. data/lib/templates/gitignores/Global/EiffelStudio.gitignore +2 -0
  75. data/lib/templates/gitignores/Global/Emacs.gitignore +32 -0
  76. data/lib/templates/gitignores/Global/Ensime.gitignore +4 -0
  77. data/lib/templates/gitignores/Global/Espresso.gitignore +1 -0
  78. data/lib/templates/gitignores/Global/FlexBuilder.gitignore +3 -0
  79. data/lib/templates/gitignores/Global/IPythonNotebook.gitignore +2 -0
  80. data/lib/templates/gitignores/Global/JDeveloper.gitignore +13 -0
  81. data/lib/templates/gitignores/Global/JetBrains.gitignore +46 -0
  82. data/lib/templates/gitignores/Global/KDevelop4.gitignore +2 -0
  83. data/lib/templates/gitignores/Global/Kate.gitignore +3 -0
  84. data/lib/templates/gitignores/Global/Lazarus.gitignore +15 -0
  85. data/lib/templates/gitignores/Global/LibreOffice.gitignore +2 -0
  86. data/lib/templates/gitignores/Global/Linux.gitignore +7 -0
  87. data/lib/templates/gitignores/Global/LyX.gitignore +4 -0
  88. data/lib/templates/gitignores/Global/Matlab.gitignore +16 -0
  89. data/lib/templates/gitignores/Global/Mercurial.gitignore +3 -0
  90. data/lib/templates/gitignores/Global/MicrosoftOffice.gitignore +10 -0
  91. data/lib/templates/gitignores/Global/ModelSim.gitignore +23 -0
  92. data/lib/templates/gitignores/Global/Momentics.gitignore +8 -0
  93. data/lib/templates/gitignores/Global/MonoDevelop.gitignore +8 -0
  94. data/lib/templates/gitignores/Global/NetBeans.gitignore +8 -0
  95. data/lib/templates/gitignores/Global/Ninja.gitignore +2 -0
  96. data/lib/templates/gitignores/Global/NotepadPP.gitignore +2 -0
  97. data/lib/templates/gitignores/Global/OSX.gitignore +24 -0
  98. data/lib/templates/gitignores/Global/README.md +10 -0
  99. data/lib/templates/gitignores/Global/Redcar.gitignore +1 -0
  100. data/lib/templates/gitignores/Global/Redis.gitignore +3 -0
  101. data/lib/templates/gitignores/Global/SBT.gitignore +9 -0
  102. data/lib/templates/gitignores/Global/SVN.gitignore +1 -0
  103. data/lib/templates/gitignores/Global/SlickEdit.gitignore +11 -0
  104. data/lib/templates/gitignores/Global/SublimeText.gitignore +14 -0
  105. data/lib/templates/gitignores/Global/SynopsysVCS.gitignore +23 -0
  106. data/lib/templates/gitignores/Global/Tags.gitignore +14 -0
  107. data/lib/templates/gitignores/Global/TextMate.gitignore +3 -0
  108. data/lib/templates/gitignores/Global/TortoiseGit.gitignore +2 -0
  109. data/lib/templates/gitignores/Global/Vagrant.gitignore +1 -0
  110. data/lib/templates/gitignores/Global/Vim.gitignore +6 -0
  111. data/lib/templates/gitignores/Global/VirtualEnv.gitignore +9 -0
  112. data/lib/templates/gitignores/Global/WebMethods.gitignore +14 -0
  113. data/lib/templates/gitignores/Global/Windows.gitignore +18 -0
  114. data/lib/templates/gitignores/Global/Xcode.gitignore +14 -0
  115. data/lib/templates/gitignores/Global/XilinxISE.gitignore +57 -0
  116. data/lib/templates/gitignores/Go.gitignore +24 -0
  117. data/lib/templates/gitignores/Gradle.gitignore +8 -0
  118. data/lib/templates/gitignores/Grails.gitignore +33 -0
  119. data/lib/templates/gitignores/Haskell.gitignore +16 -0
  120. data/lib/templates/gitignores/IGORPro.gitignore +5 -0
  121. data/lib/templates/gitignores/Idris.gitignore +2 -0
  122. data/lib/templates/gitignores/Java.gitignore +12 -0
  123. data/lib/templates/gitignores/Jboss.gitignore +19 -0
  124. data/lib/templates/gitignores/Jekyll.gitignore +3 -0
  125. data/lib/templates/gitignores/Joomla.gitignore +525 -0
  126. data/lib/templates/gitignores/Jython.gitignore +2 -0
  127. data/lib/templates/gitignores/KiCAD.gitignore +11 -0
  128. data/lib/templates/gitignores/Kohana.gitignore +2 -0
  129. data/lib/templates/gitignores/LICENSE +19 -0
  130. data/lib/templates/gitignores/LabVIEW.gitignore +16 -0
  131. data/lib/templates/gitignores/Laravel.gitignore +4 -0
  132. data/lib/templates/gitignores/Leiningen.gitignore +12 -0
  133. data/lib/templates/gitignores/LemonStand.gitignore +21 -0
  134. data/lib/templates/gitignores/Lilypond.gitignore +6 -0
  135. data/lib/templates/gitignores/Lithium.gitignore +2 -0
  136. data/lib/templates/gitignores/Lua.gitignore +41 -0
  137. data/lib/templates/gitignores/Magento.gitignore +126 -0
  138. data/lib/templates/gitignores/Maven.gitignore +9 -0
  139. data/lib/templates/gitignores/Mercury.gitignore +13 -0
  140. data/lib/templates/gitignores/MetaProgrammingSystem.gitignore +16 -0
  141. data/lib/templates/gitignores/Meteor.gitignore +2 -0
  142. data/lib/templates/gitignores/Nanoc.gitignore +10 -0
  143. data/lib/templates/gitignores/Nim.gitignore +1 -0
  144. data/lib/templates/gitignores/Node.gitignore +27 -0
  145. data/lib/templates/gitignores/OCaml.gitignore +20 -0
  146. data/lib/templates/gitignores/Objective-C.gitignore +26 -0
  147. data/lib/templates/gitignores/Opa.gitignore +13 -0
  148. data/lib/templates/gitignores/OpenCart.gitignore +11 -0
  149. data/lib/templates/gitignores/OracleForms.gitignore +8 -0
  150. data/lib/templates/gitignores/Packer.gitignore +5 -0
  151. data/lib/templates/gitignores/Perl.gitignore +20 -0
  152. data/lib/templates/gitignores/Phalcon.gitignore +2 -0
  153. data/lib/templates/gitignores/PlayFramework.gitignore +17 -0
  154. data/lib/templates/gitignores/Plone.gitignore +18 -0
  155. data/lib/templates/gitignores/Prestashop.gitignore +25 -0
  156. data/lib/templates/gitignores/Processing.gitignore +7 -0
  157. data/lib/templates/gitignores/Python.gitignore +57 -0
  158. data/lib/templates/gitignores/Qooxdoo.gitignore +5 -0
  159. data/lib/templates/gitignores/Qt.gitignore +34 -0
  160. data/lib/templates/gitignores/R.gitignore +13 -0
  161. data/lib/templates/gitignores/README.md +79 -0
  162. data/lib/templates/gitignores/ROS.gitignore +47 -0
  163. data/lib/templates/gitignores/Rails.gitignore +35 -0
  164. data/lib/templates/gitignores/RhodesRhomobile.gitignore +9 -0
  165. data/lib/templates/gitignores/Ruby.gitignore +35 -0
  166. data/lib/templates/gitignores/Rust.gitignore +11 -0
  167. data/lib/templates/gitignores/SCons.gitignore +2 -0
  168. data/lib/templates/gitignores/Sass.gitignore +2 -0
  169. data/lib/templates/gitignores/Scala.gitignore +17 -0
  170. data/lib/templates/gitignores/Scrivener.gitignore +7 -0
  171. data/lib/templates/gitignores/Sdcc.gitignore +8 -0
  172. data/lib/templates/gitignores/SeamGen.gitignore +26 -0
  173. data/lib/templates/gitignores/SketchUp.gitignore +1 -0
  174. data/lib/templates/gitignores/Stella.gitignore +12 -0
  175. data/lib/templates/gitignores/SugarCRM.gitignore +25 -0
  176. data/lib/templates/gitignores/Swift.gitignore +33 -0
  177. data/lib/templates/gitignores/Symfony.gitignore +37 -0
  178. data/lib/templates/gitignores/SymphonyCMS.gitignore +6 -0
  179. data/lib/templates/gitignores/TeX.gitignore +126 -0
  180. data/lib/templates/gitignores/Textpattern.gitignore +11 -0
  181. data/lib/templates/gitignores/TurboGears2.gitignore +20 -0
  182. data/lib/templates/gitignores/Typo3.gitignore +18 -0
  183. data/lib/templates/gitignores/Umbraco.gitignore +17 -0
  184. data/lib/templates/gitignores/Unity.gitignore +21 -0
  185. data/lib/templates/gitignores/VVVV.gitignore +6 -0
  186. data/lib/templates/gitignores/VisualStudio.gitignore +196 -0
  187. data/lib/templates/gitignores/Waf.gitignore +3 -0
  188. data/lib/templates/gitignores/WordPress.gitignore +13 -0
  189. data/lib/templates/gitignores/Xojo.gitignore +11 -0
  190. data/lib/templates/gitignores/Yeoman.gitignore +6 -0
  191. data/lib/templates/gitignores/Yii.gitignore +6 -0
  192. data/lib/templates/gitignores/ZendFramework.gitignore +20 -0
  193. data/lib/templates/gitignores/Zephir.gitignore +26 -0
  194. data/lib/templates/templates/boot-template/static/static/___dummy-file___ +1 -0
  195. data/lib/templates/templates/boot-template/static/template.json +7 -0
  196. data/lib/templates/templates/boot-template/template.json +17 -0
  197. data/lib/templates/templates/c/builder/makefile +12 -0
  198. data/lib/templates/templates/c/builder/makefile-pch +12 -0
  199. data/lib/templates/templates/c/misc/main.h +1 -0
  200. data/lib/templates/templates/c/static/lib/___dummy-file___ +1 -0
  201. data/lib/templates/templates/c/static/src/main.c +4 -0
  202. data/lib/templates/templates/c/template.json +32 -0
  203. data/lib/templates/templates/c/vcs/.gitignore +1 -0
  204. data/lib/templates/templates/c/vcs/.svnignore +1 -0
  205. data/lib/templates/templates/gem/Gemfile +3 -0
  206. data/lib/templates/templates/gem/gemname-git.gemspec +13 -0
  207. data/lib/templates/templates/gem/static/[[!gemname]].gemspec +13 -0
  208. data/lib/templates/templates/gem/static/bin/[[!gemname]] +1 -0
  209. data/lib/templates/templates/gem/static/lib/[[!gemname]].rb +0 -0
  210. data/lib/templates/templates/gem/static/test/test_helper.rb +0 -0
  211. data/lib/templates/templates/gem/template.json +33 -0
  212. data/lib/templates/templates/wordpress-plugin/static/wp-content/plugins/[[!plugin-name]]/[[!plugin-name]].php +11 -0
  213. data/lib/templates/templates/wordpress-plugin/template.json +26 -0
  214. data/lib/templates/templates/wordpress-plugin/vcs/git/gitignore.gitignore +1 -0
  215. data/lib/templates/templates/wordpress-theme/static/wp-content/themes/[[!theme-name]]/index.php +1 -0
  216. data/lib/templates/templates/wordpress-theme/static/wp-content/themes/[[!theme-name]]/style.css +12 -0
  217. data/lib/templates/templates/wordpress-theme/template.json +26 -0
  218. data/lib/templates/templates/wordpress-theme/vcs/git/gitignore.gitignore +1 -0
  219. data/lib/templates/wordpress/index.php +17 -0
  220. data/lib/templates/wordpress/license.txt +385 -0
  221. data/lib/templates/wordpress/readme.html +98 -0
  222. data/lib/templates/wordpress/wp-activate.php +131 -0
  223. data/lib/templates/wordpress/wp-admin/about.php +166 -0
  224. data/lib/templates/wordpress/wp-admin/admin-ajax.php +99 -0
  225. data/lib/templates/wordpress/wp-admin/admin-footer.php +99 -0
  226. data/lib/templates/wordpress/wp-admin/admin-functions.php +15 -0
  227. data/lib/templates/wordpress/wp-admin/admin-header.php +249 -0
  228. data/lib/templates/wordpress/wp-admin/admin-post.php +71 -0
  229. data/lib/templates/wordpress/wp-admin/admin.php +361 -0
  230. data/lib/templates/wordpress/wp-admin/async-upload.php +115 -0
  231. data/lib/templates/wordpress/wp-admin/comment.php +330 -0
  232. data/lib/templates/wordpress/wp-admin/credits.php +192 -0
  233. data/lib/templates/wordpress/wp-admin/css/about-rtl.css +454 -0
  234. data/lib/templates/wordpress/wp-admin/css/about.css +454 -0
  235. data/lib/templates/wordpress/wp-admin/css/admin-menu-rtl.css +935 -0
  236. data/lib/templates/wordpress/wp-admin/css/admin-menu.css +935 -0
  237. data/lib/templates/wordpress/wp-admin/css/color-picker-rtl.css +127 -0
  238. data/lib/templates/wordpress/wp-admin/css/color-picker-rtl.min.css +1 -0
  239. data/lib/templates/wordpress/wp-admin/css/color-picker.css +127 -0
  240. data/lib/templates/wordpress/wp-admin/css/color-picker.min.css +1 -0
  241. data/lib/templates/wordpress/wp-admin/css/colors/_admin.scss +521 -0
  242. data/lib/templates/wordpress/wp-admin/css/colors/_mixins.scss +43 -0
  243. data/lib/templates/wordpress/wp-admin/css/colors/_variables.scss +58 -0
  244. data/lib/templates/wordpress/wp-admin/css/colors/blue/colors-rtl.css +330 -0
  245. data/lib/templates/wordpress/wp-admin/css/colors/blue/colors-rtl.min.css +1 -0
  246. data/lib/templates/wordpress/wp-admin/css/colors/blue/colors.css +330 -0
  247. data/lib/templates/wordpress/wp-admin/css/colors/blue/colors.min.css +1 -0
  248. data/lib/templates/wordpress/wp-admin/css/colors/blue/colors.scss +11 -0
  249. data/lib/templates/wordpress/wp-admin/css/colors/coffee/colors-rtl.css +330 -0
  250. data/lib/templates/wordpress/wp-admin/css/colors/coffee/colors-rtl.min.css +1 -0
  251. data/lib/templates/wordpress/wp-admin/css/colors/coffee/colors.css +330 -0
  252. data/lib/templates/wordpress/wp-admin/css/colors/coffee/colors.min.css +1 -0
  253. data/lib/templates/wordpress/wp-admin/css/colors/coffee/colors.scss +7 -0
  254. data/lib/templates/wordpress/wp-admin/css/colors/ectoplasm/colors-rtl.css +330 -0
  255. data/lib/templates/wordpress/wp-admin/css/colors/ectoplasm/colors-rtl.min.css +1 -0
  256. data/lib/templates/wordpress/wp-admin/css/colors/ectoplasm/colors.css +330 -0
  257. data/lib/templates/wordpress/wp-admin/css/colors/ectoplasm/colors.min.css +1 -0
  258. data/lib/templates/wordpress/wp-admin/css/colors/ectoplasm/colors.scss +8 -0
  259. data/lib/templates/wordpress/wp-admin/css/colors/light/colors-rtl.css +338 -0
  260. data/lib/templates/wordpress/wp-admin/css/colors/light/colors-rtl.min.css +1 -0
  261. data/lib/templates/wordpress/wp-admin/css/colors/light/colors.css +338 -0
  262. data/lib/templates/wordpress/wp-admin/css/colors/light/colors.min.css +1 -0
  263. data/lib/templates/wordpress/wp-admin/css/colors/light/colors.scss +38 -0
  264. data/lib/templates/wordpress/wp-admin/css/colors/midnight/colors-rtl.css +330 -0
  265. data/lib/templates/wordpress/wp-admin/css/colors/midnight/colors-rtl.min.css +1 -0
  266. data/lib/templates/wordpress/wp-admin/css/colors/midnight/colors.css +330 -0
  267. data/lib/templates/wordpress/wp-admin/css/colors/midnight/colors.min.css +1 -0
  268. data/lib/templates/wordpress/wp-admin/css/colors/midnight/colors.scss +5 -0
  269. data/lib/templates/wordpress/wp-admin/css/colors/ocean/colors-rtl.css +330 -0
  270. data/lib/templates/wordpress/wp-admin/css/colors/ocean/colors-rtl.min.css +1 -0
  271. data/lib/templates/wordpress/wp-admin/css/colors/ocean/colors.css +330 -0
  272. data/lib/templates/wordpress/wp-admin/css/colors/ocean/colors.min.css +1 -0
  273. data/lib/templates/wordpress/wp-admin/css/colors/ocean/colors.scss +8 -0
  274. data/lib/templates/wordpress/wp-admin/css/colors/sunrise/colors-rtl.css +330 -0
  275. data/lib/templates/wordpress/wp-admin/css/colors/sunrise/colors-rtl.min.css +1 -0
  276. data/lib/templates/wordpress/wp-admin/css/colors/sunrise/colors.css +330 -0
  277. data/lib/templates/wordpress/wp-admin/css/colors/sunrise/colors.min.css +1 -0
  278. data/lib/templates/wordpress/wp-admin/css/colors/sunrise/colors.scss +6 -0
  279. data/lib/templates/wordpress/wp-admin/css/common-rtl.css +3289 -0
  280. data/lib/templates/wordpress/wp-admin/css/common.css +3289 -0
  281. data/lib/templates/wordpress/wp-admin/css/customize-controls-rtl.css +1191 -0
  282. data/lib/templates/wordpress/wp-admin/css/customize-controls-rtl.min.css +1 -0
  283. data/lib/templates/wordpress/wp-admin/css/customize-controls.css +1191 -0
  284. data/lib/templates/wordpress/wp-admin/css/customize-controls.min.css +1 -0
  285. data/lib/templates/wordpress/wp-admin/css/customize-widgets-rtl.css +636 -0
  286. data/lib/templates/wordpress/wp-admin/css/customize-widgets-rtl.min.css +1 -0
  287. data/lib/templates/wordpress/wp-admin/css/customize-widgets.css +636 -0
  288. data/lib/templates/wordpress/wp-admin/css/customize-widgets.min.css +1 -0
  289. data/lib/templates/wordpress/wp-admin/css/dashboard-rtl.css +1111 -0
  290. data/lib/templates/wordpress/wp-admin/css/dashboard.css +1111 -0
  291. data/lib/templates/wordpress/wp-admin/css/deprecated-media-rtl.css +407 -0
  292. data/lib/templates/wordpress/wp-admin/css/deprecated-media-rtl.min.css +1 -0
  293. data/lib/templates/wordpress/wp-admin/css/deprecated-media.css +407 -0
  294. data/lib/templates/wordpress/wp-admin/css/deprecated-media.min.css +1 -0
  295. data/lib/templates/wordpress/wp-admin/css/edit-rtl.css +1589 -0
  296. data/lib/templates/wordpress/wp-admin/css/edit.css +1589 -0
  297. data/lib/templates/wordpress/wp-admin/css/farbtastic-rtl.css +41 -0
  298. data/lib/templates/wordpress/wp-admin/css/farbtastic.css +41 -0
  299. data/lib/templates/wordpress/wp-admin/css/forms-rtl.css +1175 -0
  300. data/lib/templates/wordpress/wp-admin/css/forms.css +1175 -0
  301. data/lib/templates/wordpress/wp-admin/css/ie-rtl.css +785 -0
  302. data/lib/templates/wordpress/wp-admin/css/ie-rtl.min.css +1 -0
  303. data/lib/templates/wordpress/wp-admin/css/ie.css +785 -0
  304. data/lib/templates/wordpress/wp-admin/css/ie.min.css +1 -0
  305. data/lib/templates/wordpress/wp-admin/css/install-rtl.css +388 -0
  306. data/lib/templates/wordpress/wp-admin/css/install-rtl.min.css +1 -0
  307. data/lib/templates/wordpress/wp-admin/css/install.css +388 -0
  308. data/lib/templates/wordpress/wp-admin/css/install.min.css +1 -0
  309. data/lib/templates/wordpress/wp-admin/css/l10n-rtl.css +111 -0
  310. data/lib/templates/wordpress/wp-admin/css/l10n.css +111 -0
  311. data/lib/templates/wordpress/wp-admin/css/list-tables-rtl.css +1925 -0
  312. data/lib/templates/wordpress/wp-admin/css/list-tables.css +1925 -0
  313. data/lib/templates/wordpress/wp-admin/css/login-rtl.css +265 -0
  314. data/lib/templates/wordpress/wp-admin/css/login-rtl.min.css +1 -0
  315. data/lib/templates/wordpress/wp-admin/css/login.css +265 -0
  316. data/lib/templates/wordpress/wp-admin/css/login.min.css +1 -0
  317. data/lib/templates/wordpress/wp-admin/css/media-rtl.css +1193 -0
  318. data/lib/templates/wordpress/wp-admin/css/media.css +1193 -0
  319. data/lib/templates/wordpress/wp-admin/css/nav-menus-rtl.css +865 -0
  320. data/lib/templates/wordpress/wp-admin/css/nav-menus.css +865 -0
  321. data/lib/templates/wordpress/wp-admin/css/press-this-editor-rtl.css +123 -0
  322. data/lib/templates/wordpress/wp-admin/css/press-this-editor.css +123 -0
  323. data/lib/templates/wordpress/wp-admin/css/press-this-rtl.css +2039 -0
  324. data/lib/templates/wordpress/wp-admin/css/press-this-rtl.min.css +1 -0
  325. data/lib/templates/wordpress/wp-admin/css/press-this.css +2039 -0
  326. data/lib/templates/wordpress/wp-admin/css/press-this.min.css +1 -0
  327. data/lib/templates/wordpress/wp-admin/css/revisions-rtl.css +575 -0
  328. data/lib/templates/wordpress/wp-admin/css/revisions.css +575 -0
  329. data/lib/templates/wordpress/wp-admin/css/themes-rtl.css +1760 -0
  330. data/lib/templates/wordpress/wp-admin/css/themes.css +1760 -0
  331. data/lib/templates/wordpress/wp-admin/css/widgets-rtl.css +579 -0
  332. data/lib/templates/wordpress/wp-admin/css/widgets.css +579 -0
  333. data/lib/templates/wordpress/wp-admin/css/wp-admin-rtl.css +13 -0
  334. data/lib/templates/wordpress/wp-admin/css/wp-admin-rtl.min.css +8 -0
  335. data/lib/templates/wordpress/wp-admin/css/wp-admin.css +13 -0
  336. data/lib/templates/wordpress/wp-admin/css/wp-admin.min.css +8 -0
  337. data/lib/templates/wordpress/wp-admin/custom-background.php +472 -0
  338. data/lib/templates/wordpress/wp-admin/custom-header.php +1303 -0
  339. data/lib/templates/wordpress/wp-admin/customize.php +300 -0
  340. data/lib/templates/wordpress/wp-admin/edit-comments.php +254 -0
  341. data/lib/templates/wordpress/wp-admin/edit-form-advanced.php +668 -0
  342. data/lib/templates/wordpress/wp-admin/edit-form-comment.php +189 -0
  343. data/lib/templates/wordpress/wp-admin/edit-link-form.php +150 -0
  344. data/lib/templates/wordpress/wp-admin/edit-tag-form.php +228 -0
  345. data/lib/templates/wordpress/wp-admin/edit-tags.php +603 -0
  346. data/lib/templates/wordpress/wp-admin/edit.php +338 -0
  347. data/lib/templates/wordpress/wp-admin/export.php +242 -0
  348. data/lib/templates/wordpress/wp-admin/freedoms.php +57 -0
  349. data/lib/templates/wordpress/wp-admin/images/align-center-2x.png +0 -0
  350. data/lib/templates/wordpress/wp-admin/images/align-center.png +0 -0
  351. data/lib/templates/wordpress/wp-admin/images/align-left-2x.png +0 -0
  352. data/lib/templates/wordpress/wp-admin/images/align-left.png +0 -0
  353. data/lib/templates/wordpress/wp-admin/images/align-none-2x.png +0 -0
  354. data/lib/templates/wordpress/wp-admin/images/align-none.png +0 -0
  355. data/lib/templates/wordpress/wp-admin/images/align-right-2x.png +0 -0
  356. data/lib/templates/wordpress/wp-admin/images/align-right.png +0 -0
  357. data/lib/templates/wordpress/wp-admin/images/arrows-2x.png +0 -0
  358. data/lib/templates/wordpress/wp-admin/images/arrows.png +0 -0
  359. data/lib/templates/wordpress/wp-admin/images/bubble_bg-2x.gif +0 -0
  360. data/lib/templates/wordpress/wp-admin/images/bubble_bg.gif +0 -0
  361. data/lib/templates/wordpress/wp-admin/images/comment-grey-bubble-2x.png +0 -0
  362. data/lib/templates/wordpress/wp-admin/images/comment-grey-bubble.png +0 -0
  363. data/lib/templates/wordpress/wp-admin/images/date-button-2x.gif +0 -0
  364. data/lib/templates/wordpress/wp-admin/images/date-button.gif +0 -0
  365. data/lib/templates/wordpress/wp-admin/images/generic.png +0 -0
  366. data/lib/templates/wordpress/wp-admin/images/icons32-2x.png +0 -0
  367. data/lib/templates/wordpress/wp-admin/images/icons32-vs-2x.png +0 -0
  368. data/lib/templates/wordpress/wp-admin/images/icons32-vs.png +0 -0
  369. data/lib/templates/wordpress/wp-admin/images/icons32.png +0 -0
  370. data/lib/templates/wordpress/wp-admin/images/imgedit-icons-2x.png +0 -0
  371. data/lib/templates/wordpress/wp-admin/images/imgedit-icons.png +0 -0
  372. data/lib/templates/wordpress/wp-admin/images/list-2x.png +0 -0
  373. data/lib/templates/wordpress/wp-admin/images/list.png +0 -0
  374. data/lib/templates/wordpress/wp-admin/images/loading.gif +0 -0
  375. data/lib/templates/wordpress/wp-admin/images/marker.png +0 -0
  376. data/lib/templates/wordpress/wp-admin/images/mask.png +0 -0
  377. data/lib/templates/wordpress/wp-admin/images/media-button-2x.png +0 -0
  378. data/lib/templates/wordpress/wp-admin/images/media-button-image.gif +0 -0
  379. data/lib/templates/wordpress/wp-admin/images/media-button-music.gif +0 -0
  380. data/lib/templates/wordpress/wp-admin/images/media-button-other.gif +0 -0
  381. data/lib/templates/wordpress/wp-admin/images/media-button-video.gif +0 -0
  382. data/lib/templates/wordpress/wp-admin/images/media-button.png +0 -0
  383. data/lib/templates/wordpress/wp-admin/images/menu-2x.png +0 -0
  384. data/lib/templates/wordpress/wp-admin/images/menu-vs-2x.png +0 -0
  385. data/lib/templates/wordpress/wp-admin/images/menu-vs.png +0 -0
  386. data/lib/templates/wordpress/wp-admin/images/menu.png +0 -0
  387. data/lib/templates/wordpress/wp-admin/images/no.png +0 -0
  388. data/lib/templates/wordpress/wp-admin/images/post-formats-vs.png +0 -0
  389. data/lib/templates/wordpress/wp-admin/images/post-formats.png +0 -0
  390. data/lib/templates/wordpress/wp-admin/images/post-formats32-vs.png +0 -0
  391. data/lib/templates/wordpress/wp-admin/images/post-formats32.png +0 -0
  392. data/lib/templates/wordpress/wp-admin/images/resize-2x.gif +0 -0
  393. data/lib/templates/wordpress/wp-admin/images/resize-rtl-2x.gif +0 -0
  394. data/lib/templates/wordpress/wp-admin/images/resize-rtl.gif +0 -0
  395. data/lib/templates/wordpress/wp-admin/images/resize.gif +0 -0
  396. data/lib/templates/wordpress/wp-admin/images/se.png +0 -0
  397. data/lib/templates/wordpress/wp-admin/images/sort-2x.gif +0 -0
  398. data/lib/templates/wordpress/wp-admin/images/sort.gif +0 -0
  399. data/lib/templates/wordpress/wp-admin/images/spinner-2x.gif +0 -0
  400. data/lib/templates/wordpress/wp-admin/images/spinner.gif +0 -0
  401. data/lib/templates/wordpress/wp-admin/images/stars-2x.png +0 -0
  402. data/lib/templates/wordpress/wp-admin/images/stars.png +0 -0
  403. data/lib/templates/wordpress/wp-admin/images/w-logo-blue.png +0 -0
  404. data/lib/templates/wordpress/wp-admin/images/w-logo-white.png +0 -0
  405. data/lib/templates/wordpress/wp-admin/images/wheel.png +0 -0
  406. data/lib/templates/wordpress/wp-admin/images/wordpress-logo-white.svg +1 -0
  407. data/lib/templates/wordpress/wp-admin/images/wordpress-logo.png +0 -0
  408. data/lib/templates/wordpress/wp-admin/images/wordpress-logo.svg +1 -0
  409. data/lib/templates/wordpress/wp-admin/images/wpspin_light-2x.gif +0 -0
  410. data/lib/templates/wordpress/wp-admin/images/wpspin_light.gif +0 -0
  411. data/lib/templates/wordpress/wp-admin/images/xit-2x.gif +0 -0
  412. data/lib/templates/wordpress/wp-admin/images/xit.gif +0 -0
  413. data/lib/templates/wordpress/wp-admin/images/yes.png +0 -0
  414. data/lib/templates/wordpress/wp-admin/import.php +130 -0
  415. data/lib/templates/wordpress/wp-admin/includes/admin.php +74 -0
  416. data/lib/templates/wordpress/wp-admin/includes/ajax-actions.php +2973 -0
  417. data/lib/templates/wordpress/wp-admin/includes/bookmark.php +305 -0
  418. data/lib/templates/wordpress/wp-admin/includes/class-ftp-pure.php +190 -0
  419. data/lib/templates/wordpress/wp-admin/includes/class-ftp-sockets.php +250 -0
  420. data/lib/templates/wordpress/wp-admin/includes/class-ftp.php +906 -0
  421. data/lib/templates/wordpress/wp-admin/includes/class-pclzip.php +5687 -0
  422. data/lib/templates/wordpress/wp-admin/includes/class-wp-comments-list-table.php +643 -0
  423. data/lib/templates/wordpress/wp-admin/includes/class-wp-filesystem-base.php +766 -0
  424. data/lib/templates/wordpress/wp-admin/includes/class-wp-filesystem-direct.php +463 -0
  425. data/lib/templates/wordpress/wp-admin/includes/class-wp-filesystem-ftpext.php +513 -0
  426. data/lib/templates/wordpress/wp-admin/includes/class-wp-filesystem-ftpsockets.php +446 -0
  427. data/lib/templates/wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php +505 -0
  428. data/lib/templates/wordpress/wp-admin/includes/class-wp-importer.php +301 -0
  429. data/lib/templates/wordpress/wp-admin/includes/class-wp-links-list-table.php +208 -0
  430. data/lib/templates/wordpress/wp-admin/includes/class-wp-list-table.php +1141 -0
  431. data/lib/templates/wordpress/wp-admin/includes/class-wp-media-list-table.php +556 -0
  432. data/lib/templates/wordpress/wp-admin/includes/class-wp-ms-sites-list-table.php +404 -0
  433. data/lib/templates/wordpress/wp-admin/includes/class-wp-ms-themes-list-table.php +480 -0
  434. data/lib/templates/wordpress/wp-admin/includes/class-wp-ms-users-list-table.php +306 -0
  435. data/lib/templates/wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php +515 -0
  436. data/lib/templates/wordpress/wp-admin/includes/class-wp-plugins-list-table.php +648 -0
  437. data/lib/templates/wordpress/wp-admin/includes/class-wp-posts-list-table.php +1416 -0
  438. data/lib/templates/wordpress/wp-admin/includes/class-wp-press-this.php +1466 -0
  439. data/lib/templates/wordpress/wp-admin/includes/class-wp-terms-list-table.php +513 -0
  440. data/lib/templates/wordpress/wp-admin/includes/class-wp-theme-install-list-table.php +431 -0
  441. data/lib/templates/wordpress/wp-admin/includes/class-wp-themes-list-table.php +285 -0
  442. data/lib/templates/wordpress/wp-admin/includes/class-wp-upgrader-skins.php +783 -0
  443. data/lib/templates/wordpress/wp-admin/includes/class-wp-upgrader.php +3254 -0
  444. data/lib/templates/wordpress/wp-admin/includes/class-wp-users-list-table.php +460 -0
  445. data/lib/templates/wordpress/wp-admin/includes/comment.php +173 -0
  446. data/lib/templates/wordpress/wp-admin/includes/continents-cities.php +493 -0
  447. data/lib/templates/wordpress/wp-admin/includes/dashboard.php +1341 -0
  448. data/lib/templates/wordpress/wp-admin/includes/deprecated.php +1183 -0
  449. data/lib/templates/wordpress/wp-admin/includes/export.php +510 -0
  450. data/lib/templates/wordpress/wp-admin/includes/file.php +1229 -0
  451. data/lib/templates/wordpress/wp-admin/includes/image-edit.php +861 -0
  452. data/lib/templates/wordpress/wp-admin/includes/image.php +600 -0
  453. data/lib/templates/wordpress/wp-admin/includes/import.php +204 -0
  454. data/lib/templates/wordpress/wp-admin/includes/list-table.php +113 -0
  455. data/lib/templates/wordpress/wp-admin/includes/media.php +3083 -0
  456. data/lib/templates/wordpress/wp-admin/includes/menu.php +322 -0
  457. data/lib/templates/wordpress/wp-admin/includes/meta-boxes.php +1132 -0
  458. data/lib/templates/wordpress/wp-admin/includes/misc.php +889 -0
  459. data/lib/templates/wordpress/wp-admin/includes/ms-deprecated.php +77 -0
  460. data/lib/templates/wordpress/wp-admin/includes/ms.php +971 -0
  461. data/lib/templates/wordpress/wp-admin/includes/nav-menu.php +1324 -0
  462. data/lib/templates/wordpress/wp-admin/includes/plugin-install.php +580 -0
  463. data/lib/templates/wordpress/wp-admin/includes/plugin.php +1892 -0
  464. data/lib/templates/wordpress/wp-admin/includes/post.php +1742 -0
  465. data/lib/templates/wordpress/wp-admin/includes/revision.php +378 -0
  466. data/lib/templates/wordpress/wp-admin/includes/schema.php +1046 -0
  467. data/lib/templates/wordpress/wp-admin/includes/screen.php +1185 -0
  468. data/lib/templates/wordpress/wp-admin/includes/taxonomy.php +290 -0
  469. data/lib/templates/wordpress/wp-admin/includes/template.php +2248 -0
  470. data/lib/templates/wordpress/wp-admin/includes/theme-install.php +205 -0
  471. data/lib/templates/wordpress/wp-admin/includes/theme.php +564 -0
  472. data/lib/templates/wordpress/wp-admin/includes/translation-install.php +241 -0
  473. data/lib/templates/wordpress/wp-admin/includes/update-core.php +1190 -0
  474. data/lib/templates/wordpress/wp-admin/includes/update.php +435 -0
  475. data/lib/templates/wordpress/wp-admin/includes/upgrade.php +2410 -0
  476. data/lib/templates/wordpress/wp-admin/includes/user.php +442 -0
  477. data/lib/templates/wordpress/wp-admin/includes/widgets.php +245 -0
  478. data/lib/templates/wordpress/wp-admin/index.php +132 -0
  479. data/lib/templates/wordpress/wp-admin/install-helper.php +198 -0
  480. data/lib/templates/wordpress/wp-admin/install.php +307 -0
  481. data/lib/templates/wordpress/wp-admin/js/accordion.js +75 -0
  482. data/lib/templates/wordpress/wp-admin/js/accordion.min.js +1 -0
  483. data/lib/templates/wordpress/wp-admin/js/bookmarklet.js +166 -0
  484. data/lib/templates/wordpress/wp-admin/js/bookmarklet.min.js +1 -0
  485. data/lib/templates/wordpress/wp-admin/js/color-picker.js +157 -0
  486. data/lib/templates/wordpress/wp-admin/js/color-picker.min.js +1 -0
  487. data/lib/templates/wordpress/wp-admin/js/comment.js +50 -0
  488. data/lib/templates/wordpress/wp-admin/js/comment.min.js +1 -0
  489. data/lib/templates/wordpress/wp-admin/js/common.js +893 -0
  490. data/lib/templates/wordpress/wp-admin/js/common.min.js +1 -0
  491. data/lib/templates/wordpress/wp-admin/js/custom-background.js +75 -0
  492. data/lib/templates/wordpress/wp-admin/js/custom-background.min.js +1 -0
  493. data/lib/templates/wordpress/wp-admin/js/custom-header.js +61 -0
  494. data/lib/templates/wordpress/wp-admin/js/customize-controls.js +3071 -0
  495. data/lib/templates/wordpress/wp-admin/js/customize-controls.min.js +2 -0
  496. data/lib/templates/wordpress/wp-admin/js/customize-widgets.js +2024 -0
  497. data/lib/templates/wordpress/wp-admin/js/customize-widgets.min.js +1 -0
  498. data/lib/templates/wordpress/wp-admin/js/dashboard.js +190 -0
  499. data/lib/templates/wordpress/wp-admin/js/dashboard.min.js +1 -0
  500. data/lib/templates/wordpress/wp-admin/js/edit-comments.js +627 -0
  501. data/lib/templates/wordpress/wp-admin/js/edit-comments.min.js +1 -0
  502. data/lib/templates/wordpress/wp-admin/js/editor-expand.js +1237 -0
  503. data/lib/templates/wordpress/wp-admin/js/editor-expand.min.js +1 -0
  504. data/lib/templates/wordpress/wp-admin/js/editor.js +324 -0
  505. data/lib/templates/wordpress/wp-admin/js/editor.min.js +1 -0
  506. data/lib/templates/wordpress/wp-admin/js/farbtastic.js +276 -0
  507. data/lib/templates/wordpress/wp-admin/js/gallery.js +237 -0
  508. data/lib/templates/wordpress/wp-admin/js/gallery.min.js +1 -0
  509. data/lib/templates/wordpress/wp-admin/js/image-edit.js +633 -0
  510. data/lib/templates/wordpress/wp-admin/js/image-edit.min.js +1 -0
  511. data/lib/templates/wordpress/wp-admin/js/inline-edit-post.js +360 -0
  512. data/lib/templates/wordpress/wp-admin/js/inline-edit-post.min.js +1 -0
  513. data/lib/templates/wordpress/wp-admin/js/inline-edit-tax.js +152 -0
  514. data/lib/templates/wordpress/wp-admin/js/inline-edit-tax.min.js +1 -0
  515. data/lib/templates/wordpress/wp-admin/js/iris.min.js +4 -0
  516. data/lib/templates/wordpress/wp-admin/js/language-chooser.js +26 -0
  517. data/lib/templates/wordpress/wp-admin/js/language-chooser.min.js +1 -0
  518. data/lib/templates/wordpress/wp-admin/js/link.js +69 -0
  519. data/lib/templates/wordpress/wp-admin/js/link.min.js +1 -0
  520. data/lib/templates/wordpress/wp-admin/js/media-gallery.js +26 -0
  521. data/lib/templates/wordpress/wp-admin/js/media-gallery.min.js +1 -0
  522. data/lib/templates/wordpress/wp-admin/js/media-upload.js +69 -0
  523. data/lib/templates/wordpress/wp-admin/js/media-upload.min.js +1 -0
  524. data/lib/templates/wordpress/wp-admin/js/media.js +114 -0
  525. data/lib/templates/wordpress/wp-admin/js/media.min.js +1 -0
  526. data/lib/templates/wordpress/wp-admin/js/nav-menu.js +1237 -0
  527. data/lib/templates/wordpress/wp-admin/js/nav-menu.min.js +1 -0
  528. data/lib/templates/wordpress/wp-admin/js/password-strength-meter.js +75 -0
  529. data/lib/templates/wordpress/wp-admin/js/password-strength-meter.min.js +1 -0
  530. data/lib/templates/wordpress/wp-admin/js/plugin-install.js +72 -0
  531. data/lib/templates/wordpress/wp-admin/js/plugin-install.min.js +1 -0
  532. data/lib/templates/wordpress/wp-admin/js/post.js +926 -0
  533. data/lib/templates/wordpress/wp-admin/js/post.min.js +1 -0
  534. data/lib/templates/wordpress/wp-admin/js/postbox.js +199 -0
  535. data/lib/templates/wordpress/wp-admin/js/postbox.min.js +1 -0
  536. data/lib/templates/wordpress/wp-admin/js/press-this.js +796 -0
  537. data/lib/templates/wordpress/wp-admin/js/press-this.min.js +1 -0
  538. data/lib/templates/wordpress/wp-admin/js/revisions.js +1166 -0
  539. data/lib/templates/wordpress/wp-admin/js/revisions.min.js +1 -0
  540. data/lib/templates/wordpress/wp-admin/js/set-post-thumbnail.js +24 -0
  541. data/lib/templates/wordpress/wp-admin/js/set-post-thumbnail.min.js +1 -0
  542. data/lib/templates/wordpress/wp-admin/js/svg-painter.js +240 -0
  543. data/lib/templates/wordpress/wp-admin/js/svg-painter.min.js +1 -0
  544. data/lib/templates/wordpress/wp-admin/js/tags-box.js +202 -0
  545. data/lib/templates/wordpress/wp-admin/js/tags-box.min.js +1 -0
  546. data/lib/templates/wordpress/wp-admin/js/tags.js +72 -0
  547. data/lib/templates/wordpress/wp-admin/js/tags.min.js +1 -0
  548. data/lib/templates/wordpress/wp-admin/js/theme.js +1726 -0
  549. data/lib/templates/wordpress/wp-admin/js/theme.min.js +1 -0
  550. data/lib/templates/wordpress/wp-admin/js/updates.js +553 -0
  551. data/lib/templates/wordpress/wp-admin/js/updates.min.js +1 -0
  552. data/lib/templates/wordpress/wp-admin/js/user-profile.js +149 -0
  553. data/lib/templates/wordpress/wp-admin/js/user-profile.min.js +1 -0
  554. data/lib/templates/wordpress/wp-admin/js/user-suggest.js +30 -0
  555. data/lib/templates/wordpress/wp-admin/js/user-suggest.min.js +1 -0
  556. data/lib/templates/wordpress/wp-admin/js/widgets.js +494 -0
  557. data/lib/templates/wordpress/wp-admin/js/widgets.min.js +1 -0
  558. data/lib/templates/wordpress/wp-admin/js/word-count.js +44 -0
  559. data/lib/templates/wordpress/wp-admin/js/word-count.min.js +1 -0
  560. data/lib/templates/wordpress/wp-admin/js/wp-fullscreen.js +704 -0
  561. data/lib/templates/wordpress/wp-admin/js/wp-fullscreen.min.js +1 -0
  562. data/lib/templates/wordpress/wp-admin/js/xfn.js +17 -0
  563. data/lib/templates/wordpress/wp-admin/js/xfn.min.js +1 -0
  564. data/lib/templates/wordpress/wp-admin/link-add.php +29 -0
  565. data/lib/templates/wordpress/wp-admin/link-manager.php +99 -0
  566. data/lib/templates/wordpress/wp-admin/link-parse-opml.php +87 -0
  567. data/lib/templates/wordpress/wp-admin/link.php +117 -0
  568. data/lib/templates/wordpress/wp-admin/load-scripts.php +162 -0
  569. data/lib/templates/wordpress/wp-admin/load-styles.php +153 -0
  570. data/lib/templates/wordpress/wp-admin/maint/repair.php +124 -0
  571. data/lib/templates/wordpress/wp-admin/media-new.php +84 -0
  572. data/lib/templates/wordpress/wp-admin/media-upload.php +103 -0
  573. data/lib/templates/wordpress/wp-admin/media.php +146 -0
  574. data/lib/templates/wordpress/wp-admin/menu-header.php +242 -0
  575. data/lib/templates/wordpress/wp-admin/menu.php +269 -0
  576. data/lib/templates/wordpress/wp-admin/moderation.php +12 -0
  577. data/lib/templates/wordpress/wp-admin/ms-admin.php +13 -0
  578. data/lib/templates/wordpress/wp-admin/ms-delete-site.php +94 -0
  579. data/lib/templates/wordpress/wp-admin/ms-edit.php +13 -0
  580. data/lib/templates/wordpress/wp-admin/ms-options.php +12 -0
  581. data/lib/templates/wordpress/wp-admin/ms-sites.php +13 -0
  582. data/lib/templates/wordpress/wp-admin/ms-themes.php +13 -0
  583. data/lib/templates/wordpress/wp-admin/ms-upgrade-network.php +13 -0
  584. data/lib/templates/wordpress/wp-admin/ms-users.php +13 -0
  585. data/lib/templates/wordpress/wp-admin/my-sites.php +143 -0
  586. data/lib/templates/wordpress/wp-admin/nav-menus.php +796 -0
  587. data/lib/templates/wordpress/wp-admin/network.php +580 -0
  588. data/lib/templates/wordpress/wp-admin/network/about.php +16 -0
  589. data/lib/templates/wordpress/wp-admin/network/admin.php +32 -0
  590. data/lib/templates/wordpress/wp-admin/network/credits.php +16 -0
  591. data/lib/templates/wordpress/wp-admin/network/edit.php +42 -0
  592. data/lib/templates/wordpress/wp-admin/network/freedoms.php +16 -0
  593. data/lib/templates/wordpress/wp-admin/network/index.php +79 -0
  594. data/lib/templates/wordpress/wp-admin/network/menu.php +63 -0
  595. data/lib/templates/wordpress/wp-admin/network/plugin-editor.php +16 -0
  596. data/lib/templates/wordpress/wp-admin/network/plugin-install.php +19 -0
  597. data/lib/templates/wordpress/wp-admin/network/plugins.php +16 -0
  598. data/lib/templates/wordpress/wp-admin/network/profile.php +16 -0
  599. data/lib/templates/wordpress/wp-admin/network/settings.php +405 -0
  600. data/lib/templates/wordpress/wp-admin/network/setup.php +16 -0
  601. data/lib/templates/wordpress/wp-admin/network/site-info.php +187 -0
  602. data/lib/templates/wordpress/wp-admin/network/site-new.php +170 -0
  603. data/lib/templates/wordpress/wp-admin/network/site-settings.php +173 -0
  604. data/lib/templates/wordpress/wp-admin/network/site-themes.php +195 -0
  605. data/lib/templates/wordpress/wp-admin/network/site-users.php +317 -0
  606. data/lib/templates/wordpress/wp-admin/network/sites.php +275 -0
  607. data/lib/templates/wordpress/wp-admin/network/theme-editor.php +16 -0
  608. data/lib/templates/wordpress/wp-admin/network/theme-install.php +19 -0
  609. data/lib/templates/wordpress/wp-admin/network/themes.php +323 -0
  610. data/lib/templates/wordpress/wp-admin/network/update-core.php +16 -0
  611. data/lib/templates/wordpress/wp-admin/network/update.php +19 -0
  612. data/lib/templates/wordpress/wp-admin/network/upgrade.php +129 -0
  613. data/lib/templates/wordpress/wp-admin/network/user-edit.php +16 -0
  614. data/lib/templates/wordpress/wp-admin/network/user-new.php +107 -0
  615. data/lib/templates/wordpress/wp-admin/network/users.php +329 -0
  616. data/lib/templates/wordpress/wp-admin/options-discussion.php +306 -0
  617. data/lib/templates/wordpress/wp-admin/options-general.php +387 -0
  618. data/lib/templates/wordpress/wp-admin/options-head.php +18 -0
  619. data/lib/templates/wordpress/wp-admin/options-media.php +136 -0
  620. data/lib/templates/wordpress/wp-admin/options-permalink.php +288 -0
  621. data/lib/templates/wordpress/wp-admin/options-reading.php +182 -0
  622. data/lib/templates/wordpress/wp-admin/options-writing.php +178 -0
  623. data/lib/templates/wordpress/wp-admin/options.php +277 -0
  624. data/lib/templates/wordpress/wp-admin/plugin-editor.php +279 -0
  625. data/lib/templates/wordpress/wp-admin/plugin-install.php +138 -0
  626. data/lib/templates/wordpress/wp-admin/plugins.php +489 -0
  627. data/lib/templates/wordpress/wp-admin/post-new.php +76 -0
  628. data/lib/templates/wordpress/wp-admin/post.php +320 -0
  629. data/lib/templates/wordpress/wp-admin/press-this.php +21 -0
  630. data/lib/templates/wordpress/wp-admin/profile.php +18 -0
  631. data/lib/templates/wordpress/wp-admin/revision.php +135 -0
  632. data/lib/templates/wordpress/wp-admin/setup-config.php +352 -0
  633. data/lib/templates/wordpress/wp-admin/theme-editor.php +241 -0
  634. data/lib/templates/wordpress/wp-admin/theme-install.php +271 -0
  635. data/lib/templates/wordpress/wp-admin/themes.php +422 -0
  636. data/lib/templates/wordpress/wp-admin/tools.php +119 -0
  637. data/lib/templates/wordpress/wp-admin/update-core.php +661 -0
  638. data/lib/templates/wordpress/wp-admin/update.php +272 -0
  639. data/lib/templates/wordpress/wp-admin/upgrade-functions.php +12 -0
  640. data/lib/templates/wordpress/wp-admin/upgrade.php +120 -0
  641. data/lib/templates/wordpress/wp-admin/upload.php +294 -0
  642. data/lib/templates/wordpress/wp-admin/user-edit.php +592 -0
  643. data/lib/templates/wordpress/wp-admin/user-new.php +440 -0
  644. data/lib/templates/wordpress/wp-admin/user/about.php +13 -0
  645. data/lib/templates/wordpress/wp-admin/user/admin.php +32 -0
  646. data/lib/templates/wordpress/wp-admin/user/credits.php +13 -0
  647. data/lib/templates/wordpress/wp-admin/user/freedoms.php +13 -0
  648. data/lib/templates/wordpress/wp-admin/user/index.php +13 -0
  649. data/lib/templates/wordpress/wp-admin/user/menu.php +22 -0
  650. data/lib/templates/wordpress/wp-admin/user/profile.php +13 -0
  651. data/lib/templates/wordpress/wp-admin/user/user-edit.php +13 -0
  652. data/lib/templates/wordpress/wp-admin/users.php +475 -0
  653. data/lib/templates/wordpress/wp-admin/widgets.php +459 -0
  654. data/lib/templates/wordpress/wp-blog-header.php +18 -0
  655. data/lib/templates/wordpress/wp-comments-post.php +167 -0
  656. data/lib/templates/wordpress/wp-config-sample.php +80 -0
  657. data/lib/templates/wordpress/wp-content/index.php +2 -0
  658. data/lib/templates/wordpress/wp-content/plugins/akismet/.htaccess +34 -0
  659. data/lib/templates/wordpress/wp-content/plugins/akismet/_inc/akismet.css +366 -0
  660. data/lib/templates/wordpress/wp-content/plugins/akismet/_inc/akismet.js +160 -0
  661. data/lib/templates/wordpress/wp-content/plugins/akismet/_inc/form.js +30 -0
  662. data/lib/templates/wordpress/wp-content/plugins/akismet/_inc/img/logo-full-2x.png +0 -0
  663. data/lib/templates/wordpress/wp-content/plugins/akismet/akismet.php +59 -0
  664. data/lib/templates/wordpress/wp-content/plugins/akismet/class.akismet-admin.php +885 -0
  665. data/lib/templates/wordpress/wp-content/plugins/akismet/class.akismet-widget.php +110 -0
  666. data/lib/templates/wordpress/wp-content/plugins/akismet/class.akismet.php +1088 -0
  667. data/lib/templates/wordpress/wp-content/plugins/akismet/index.php +2 -0
  668. data/lib/templates/wordpress/wp-content/plugins/akismet/readme.txt +266 -0
  669. data/lib/templates/wordpress/wp-content/plugins/akismet/views/config.php +220 -0
  670. data/lib/templates/wordpress/wp-content/plugins/akismet/views/get.php +5 -0
  671. data/lib/templates/wordpress/wp-content/plugins/akismet/views/notice.php +102 -0
  672. data/lib/templates/wordpress/wp-content/plugins/akismet/views/start.php +95 -0
  673. data/lib/templates/wordpress/wp-content/plugins/akismet/views/stats.php +4 -0
  674. data/lib/templates/wordpress/wp-content/plugins/akismet/views/strict.php +7 -0
  675. data/lib/templates/wordpress/wp-content/plugins/akismet/wrapper.php +213 -0
  676. data/lib/templates/wordpress/wp-content/plugins/index.php +2 -0
  677. data/lib/templates/wordpress/wp-content/themes/index.php +2 -0
  678. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/404.php +30 -0
  679. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/archive.php +64 -0
  680. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/author-bio.php +39 -0
  681. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/comments.php +58 -0
  682. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/content-link.php +60 -0
  683. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/content-none.php +37 -0
  684. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/content-page.php +37 -0
  685. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/content-search.php +37 -0
  686. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/content.php +60 -0
  687. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/css/editor-style.css +493 -0
  688. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/css/ie.css +948 -0
  689. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/css/ie7.css +89 -0
  690. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/footer.php +34 -0
  691. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/functions.php +355 -0
  692. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/COPYING.txt +9 -0
  693. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/Genericons.eot +0 -0
  694. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/Genericons.svg +543 -0
  695. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/Genericons.ttf +0 -0
  696. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/Genericons.woff +0 -0
  697. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/LICENSE.txt +339 -0
  698. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/README.md +152 -0
  699. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/example.html +719 -0
  700. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/genericons/genericons.css +209 -0
  701. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/header.php +50 -0
  702. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/image.php +94 -0
  703. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/inc/back-compat.php +63 -0
  704. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/inc/custom-header.php +356 -0
  705. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/inc/customizer.php +715 -0
  706. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/inc/template-tags.php +242 -0
  707. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/index.php +61 -0
  708. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/js/color-scheme-control.js +78 -0
  709. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/js/customize-preview.js +35 -0
  710. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/js/functions.js +162 -0
  711. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/js/html5.js +9 -0
  712. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/js/keyboard-image-navigation.js +22 -0
  713. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/js/skip-link-focus-fix.js +26 -0
  714. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/languages/twentyfifteen.pot +328 -0
  715. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/page.php +38 -0
  716. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/readme.txt +92 -0
  717. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/rtl.css +840 -0
  718. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/screenshot.png +0 -0
  719. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/search.php +53 -0
  720. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/sidebar.php +47 -0
  721. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/single.php +48 -0
  722. data/lib/templates/wordpress/wp-content/themes/twentyfifteen/style.css +5994 -0
  723. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/404.php +32 -0
  724. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/archive.php +74 -0
  725. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/author.php +74 -0
  726. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/category.php +58 -0
  727. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/comments.php +66 -0
  728. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-aside.php +62 -0
  729. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-audio.php +62 -0
  730. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-featured-post.php +34 -0
  731. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-gallery.php +62 -0
  732. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-image.php +62 -0
  733. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-link.php +62 -0
  734. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-none.php +31 -0
  735. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-page.php +31 -0
  736. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-quote.php +62 -0
  737. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content-video.php +62 -0
  738. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/content.php +71 -0
  739. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/css/editor-style.css +737 -0
  740. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/css/ie.css +1335 -0
  741. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/featured-content.php +39 -0
  742. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/footer.php +28 -0
  743. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/functions.php +519 -0
  744. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/COPYING.txt +9 -0
  745. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/Genericons-Regular.otf +0 -0
  746. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/LICENSE.txt +339 -0
  747. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/README.txt +123 -0
  748. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/example.html +464 -0
  749. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.eot +0 -0
  750. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.svg +135 -0
  751. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.ttf +0 -0
  752. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/font/genericons-regular-webfont.woff +0 -0
  753. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/genericons/genericons.css +197 -0
  754. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/header.php +65 -0
  755. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/image.php +79 -0
  756. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/images/pattern-dark.svg +16 -0
  757. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/images/pattern-light.svg +6 -0
  758. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/inc/back-compat.php +63 -0
  759. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/inc/custom-header.php +147 -0
  760. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/inc/customizer.php +115 -0
  761. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/inc/featured-content.php +531 -0
  762. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/inc/template-tags.php +227 -0
  763. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/inc/widgets.php +269 -0
  764. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/index.php +61 -0
  765. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/js/customizer.js +38 -0
  766. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/js/featured-content-admin.js +9 -0
  767. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/js/functions.js +170 -0
  768. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/js/html5.js +8 -0
  769. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/js/keyboard-image-navigation.js +21 -0
  770. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/js/slider.js +598 -0
  771. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/languages/twentyfourteen.pot +480 -0
  772. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/page-templates/contributors.php +52 -0
  773. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/page-templates/full-width.php +42 -0
  774. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/page.php +48 -0
  775. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/rtl.css +854 -0
  776. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/screenshot.png +0 -0
  777. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/search.php +49 -0
  778. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/sidebar-content.php +16 -0
  779. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/sidebar-footer.php +19 -0
  780. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/sidebar.php +29 -0
  781. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/single.php +40 -0
  782. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/style.css +4321 -0
  783. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/tag.php +60 -0
  784. data/lib/templates/wordpress/wp-content/themes/twentyfourteen/taxonomy-post_format.php +85 -0
  785. data/lib/templates/wordpress/wp-content/themes/twentythirteen/404.php +31 -0
  786. data/lib/templates/wordpress/wp-content/themes/twentythirteen/archive.php +55 -0
  787. data/lib/templates/wordpress/wp-content/themes/twentythirteen/author-bio.php +34 -0
  788. data/lib/templates/wordpress/wp-content/themes/twentythirteen/author.php +62 -0
  789. data/lib/templates/wordpress/wp-content/themes/twentythirteen/category.php +41 -0
  790. data/lib/templates/wordpress/wp-content/themes/twentythirteen/comments.php +59 -0
  791. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-aside.php +38 -0
  792. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-audio.php +44 -0
  793. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-chat.php +38 -0
  794. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-gallery.php +52 -0
  795. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-image.php +48 -0
  796. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-link.php +43 -0
  797. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-none.php +31 -0
  798. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-quote.php +34 -0
  799. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-status.php +32 -0
  800. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content-video.php +48 -0
  801. data/lib/templates/wordpress/wp-content/themes/twentythirteen/content.php +64 -0
  802. data/lib/templates/wordpress/wp-content/themes/twentythirteen/css/editor-style.css +787 -0
  803. data/lib/templates/wordpress/wp-content/themes/twentythirteen/css/ie.css +288 -0
  804. data/lib/templates/wordpress/wp-content/themes/twentythirteen/footer.php +26 -0
  805. data/lib/templates/wordpress/wp-content/themes/twentythirteen/functions.php +552 -0
  806. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/COPYING.txt +9 -0
  807. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/Genericons-Regular.otf +0 -0
  808. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/LICENSE.txt +339 -0
  809. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/README.txt +123 -0
  810. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/example.html +464 -0
  811. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.eot +0 -0
  812. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.svg +135 -0
  813. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.ttf +0 -0
  814. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/font/genericons-regular-webfont.woff +0 -0
  815. data/lib/templates/wordpress/wp-content/themes/twentythirteen/genericons/genericons.css +197 -0
  816. data/lib/templates/wordpress/wp-content/themes/twentythirteen/header.php +51 -0
  817. data/lib/templates/wordpress/wp-content/themes/twentythirteen/image.php +82 -0
  818. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/dotted-line-2x.png +0 -0
  819. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/dotted-line-light-2x.png +0 -0
  820. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/dotted-line-light.png +0 -0
  821. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/dotted-line.png +0 -0
  822. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/headers/circle-thumbnail.png +0 -0
  823. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/headers/circle.png +0 -0
  824. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/headers/diamond-thumbnail.png +0 -0
  825. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/headers/diamond.png +0 -0
  826. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/headers/star-thumbnail.png +0 -0
  827. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/headers/star.png +0 -0
  828. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/search-icon-2x.png +0 -0
  829. data/lib/templates/wordpress/wp-content/themes/twentythirteen/images/search-icon.png +0 -0
  830. data/lib/templates/wordpress/wp-content/themes/twentythirteen/inc/back-compat.php +63 -0
  831. data/lib/templates/wordpress/wp-content/themes/twentythirteen/inc/custom-header.php +230 -0
  832. data/lib/templates/wordpress/wp-content/themes/twentythirteen/index.php +38 -0
  833. data/lib/templates/wordpress/wp-content/themes/twentythirteen/js/functions.js +132 -0
  834. data/lib/templates/wordpress/wp-content/themes/twentythirteen/js/html5.js +8 -0
  835. data/lib/templates/wordpress/wp-content/themes/twentythirteen/js/theme-customizer.js +41 -0
  836. data/lib/templates/wordpress/wp-content/themes/twentythirteen/languages/twentythirteen.pot +336 -0
  837. data/lib/templates/wordpress/wp-content/themes/twentythirteen/page.php +50 -0
  838. data/lib/templates/wordpress/wp-content/themes/twentythirteen/rtl.css +766 -0
  839. data/lib/templates/wordpress/wp-content/themes/twentythirteen/screenshot.png +0 -0
  840. data/lib/templates/wordpress/wp-content/themes/twentythirteen/search.php +36 -0
  841. data/lib/templates/wordpress/wp-content/themes/twentythirteen/sidebar-main.php +18 -0
  842. data/lib/templates/wordpress/wp-content/themes/twentythirteen/sidebar.php +22 -0
  843. data/lib/templates/wordpress/wp-content/themes/twentythirteen/single.php +28 -0
  844. data/lib/templates/wordpress/wp-content/themes/twentythirteen/style.css +3227 -0
  845. data/lib/templates/wordpress/wp-content/themes/twentythirteen/tag.php +43 -0
  846. data/lib/templates/wordpress/wp-content/themes/twentythirteen/taxonomy-post_format.php +41 -0
  847. data/lib/templates/wordpress/wp-cron.php +124 -0
  848. data/lib/templates/wordpress/wp-includes/ID3/getid3.lib.php +1376 -0
  849. data/lib/templates/wordpress/wp-includes/ID3/getid3.php +1796 -0
  850. data/lib/templates/wordpress/wp-includes/ID3/license.commercial.txt +27 -0
  851. data/lib/templates/wordpress/wp-includes/ID3/license.txt +29 -0
  852. data/lib/templates/wordpress/wp-includes/ID3/module.audio-video.asf.php +2013 -0
  853. data/lib/templates/wordpress/wp-includes/ID3/module.audio-video.flv.php +745 -0
  854. data/lib/templates/wordpress/wp-includes/ID3/module.audio-video.matroska.php +1751 -0
  855. data/lib/templates/wordpress/wp-includes/ID3/module.audio-video.quicktime.php +2246 -0
  856. data/lib/templates/wordpress/wp-includes/ID3/module.audio-video.riff.php +2586 -0
  857. data/lib/templates/wordpress/wp-includes/ID3/module.audio.ac3.php +474 -0
  858. data/lib/templates/wordpress/wp-includes/ID3/module.audio.dts.php +291 -0
  859. data/lib/templates/wordpress/wp-includes/ID3/module.audio.flac.php +443 -0
  860. data/lib/templates/wordpress/wp-includes/ID3/module.audio.mp3.php +2012 -0
  861. data/lib/templates/wordpress/wp-includes/ID3/module.audio.ogg.php +756 -0
  862. data/lib/templates/wordpress/wp-includes/ID3/module.tag.apetag.php +371 -0
  863. data/lib/templates/wordpress/wp-includes/ID3/module.tag.id3v1.php +360 -0
  864. data/lib/templates/wordpress/wp-includes/ID3/module.tag.id3v2.php +3424 -0
  865. data/lib/templates/wordpress/wp-includes/ID3/module.tag.lyrics3.php +294 -0
  866. data/lib/templates/wordpress/wp-includes/ID3/readme.txt +604 -0
  867. data/lib/templates/wordpress/wp-includes/SimplePie/Author.php +157 -0
  868. data/lib/templates/wordpress/wp-includes/SimplePie/Cache.php +133 -0
  869. data/lib/templates/wordpress/wp-includes/SimplePie/Cache/Base.php +114 -0
  870. data/lib/templates/wordpress/wp-includes/SimplePie/Cache/DB.php +137 -0
  871. data/lib/templates/wordpress/wp-includes/SimplePie/Cache/File.php +173 -0
  872. data/lib/templates/wordpress/wp-includes/SimplePie/Cache/Memcache.php +183 -0
  873. data/lib/templates/wordpress/wp-includes/SimplePie/Cache/MySQL.php +438 -0
  874. data/lib/templates/wordpress/wp-includes/SimplePie/Caption.php +210 -0
  875. data/lib/templates/wordpress/wp-includes/SimplePie/Category.php +157 -0
  876. data/lib/templates/wordpress/wp-includes/SimplePie/Content/Type/Sniffer.php +332 -0
  877. data/lib/templates/wordpress/wp-includes/SimplePie/Copyright.php +130 -0
  878. data/lib/templates/wordpress/wp-includes/SimplePie/Core.php +57 -0
  879. data/lib/templates/wordpress/wp-includes/SimplePie/Credit.php +156 -0
  880. data/lib/templates/wordpress/wp-includes/SimplePie/Decode/HTML/Entities.php +617 -0
  881. data/lib/templates/wordpress/wp-includes/SimplePie/Enclosure.php +1380 -0
  882. data/lib/templates/wordpress/wp-includes/SimplePie/Exception.php +52 -0
  883. data/lib/templates/wordpress/wp-includes/SimplePie/File.php +292 -0
  884. data/lib/templates/wordpress/wp-includes/SimplePie/HTTP/Parser.php +500 -0
  885. data/lib/templates/wordpress/wp-includes/SimplePie/IRI.php +1238 -0
  886. data/lib/templates/wordpress/wp-includes/SimplePie/Item.php +2964 -0
  887. data/lib/templates/wordpress/wp-includes/SimplePie/Locator.php +372 -0
  888. data/lib/templates/wordpress/wp-includes/SimplePie/Misc.php +2247 -0
  889. data/lib/templates/wordpress/wp-includes/SimplePie/Net/IPv6.php +276 -0
  890. data/lib/templates/wordpress/wp-includes/SimplePie/Parse/Date.php +983 -0
  891. data/lib/templates/wordpress/wp-includes/SimplePie/Parser.php +407 -0
  892. data/lib/templates/wordpress/wp-includes/SimplePie/Rating.php +129 -0
  893. data/lib/templates/wordpress/wp-includes/SimplePie/Registry.php +225 -0
  894. data/lib/templates/wordpress/wp-includes/SimplePie/Restriction.php +155 -0
  895. data/lib/templates/wordpress/wp-includes/SimplePie/Sanitize.php +554 -0
  896. data/lib/templates/wordpress/wp-includes/SimplePie/Source.php +611 -0
  897. data/lib/templates/wordpress/wp-includes/SimplePie/XML/Declaration/Parser.php +362 -0
  898. data/lib/templates/wordpress/wp-includes/SimplePie/gzdecode.php +371 -0
  899. data/lib/templates/wordpress/wp-includes/Text/Diff.php +450 -0
  900. data/lib/templates/wordpress/wp-includes/Text/Diff/Engine/native.php +436 -0
  901. data/lib/templates/wordpress/wp-includes/Text/Diff/Engine/shell.php +162 -0
  902. data/lib/templates/wordpress/wp-includes/Text/Diff/Engine/string.php +248 -0
  903. data/lib/templates/wordpress/wp-includes/Text/Diff/Engine/xdiff.php +64 -0
  904. data/lib/templates/wordpress/wp-includes/Text/Diff/Renderer.php +235 -0
  905. data/lib/templates/wordpress/wp-includes/Text/Diff/Renderer/inline.php +206 -0
  906. data/lib/templates/wordpress/wp-includes/admin-bar.php +959 -0
  907. data/lib/templates/wordpress/wp-includes/atomlib.php +352 -0
  908. data/lib/templates/wordpress/wp-includes/author-template.php +453 -0
  909. data/lib/templates/wordpress/wp-includes/bookmark-template.php +298 -0
  910. data/lib/templates/wordpress/wp-includes/bookmark.php +415 -0
  911. data/lib/templates/wordpress/wp-includes/cache.php +714 -0
  912. data/lib/templates/wordpress/wp-includes/canonical.php +587 -0
  913. data/lib/templates/wordpress/wp-includes/capabilities.php +1575 -0
  914. data/lib/templates/wordpress/wp-includes/category-template.php +1459 -0
  915. data/lib/templates/wordpress/wp-includes/category.php +339 -0
  916. data/lib/templates/wordpress/wp-includes/certificates/ca-bundle.crt +3785 -0
  917. data/lib/templates/wordpress/wp-includes/class-IXR.php +1111 -0
  918. data/lib/templates/wordpress/wp-includes/class-feed.php +141 -0
  919. data/lib/templates/wordpress/wp-includes/class-http.php +2276 -0
  920. data/lib/templates/wordpress/wp-includes/class-json.php +936 -0
  921. data/lib/templates/wordpress/wp-includes/class-oembed.php +615 -0
  922. data/lib/templates/wordpress/wp-includes/class-phpass.php +268 -0
  923. data/lib/templates/wordpress/wp-includes/class-phpmailer.php +3265 -0
  924. data/lib/templates/wordpress/wp-includes/class-pop3.php +652 -0
  925. data/lib/templates/wordpress/wp-includes/class-simplepie.php +3119 -0
  926. data/lib/templates/wordpress/wp-includes/class-smtp.php +943 -0
  927. data/lib/templates/wordpress/wp-includes/class-snoopy.php +1256 -0
  928. data/lib/templates/wordpress/wp-includes/class-wp-admin-bar.php +519 -0
  929. data/lib/templates/wordpress/wp-includes/class-wp-ajax-response.php +145 -0
  930. data/lib/templates/wordpress/wp-includes/class-wp-customize-control.php +1378 -0
  931. data/lib/templates/wordpress/wp-includes/class-wp-customize-manager.php +1591 -0
  932. data/lib/templates/wordpress/wp-includes/class-wp-customize-panel.php +333 -0
  933. data/lib/templates/wordpress/wp-includes/class-wp-customize-section.php +453 -0
  934. data/lib/templates/wordpress/wp-includes/class-wp-customize-setting.php +629 -0
  935. data/lib/templates/wordpress/wp-includes/class-wp-customize-widgets.php +1549 -0
  936. data/lib/templates/wordpress/wp-includes/class-wp-editor.php +1492 -0
  937. data/lib/templates/wordpress/wp-includes/class-wp-embed.php +357 -0
  938. data/lib/templates/wordpress/wp-includes/class-wp-error.php +219 -0
  939. data/lib/templates/wordpress/wp-includes/class-wp-http-ixr-client.php +108 -0
  940. data/lib/templates/wordpress/wp-includes/class-wp-image-editor-gd.php +470 -0
  941. data/lib/templates/wordpress/wp-includes/class-wp-image-editor-imagick.php +516 -0
  942. data/lib/templates/wordpress/wp-includes/class-wp-image-editor.php +485 -0
  943. data/lib/templates/wordpress/wp-includes/class-wp-theme.php +1237 -0
  944. data/lib/templates/wordpress/wp-includes/class-wp-walker.php +416 -0
  945. data/lib/templates/wordpress/wp-includes/class-wp-xmlrpc-server.php +5935 -0
  946. data/lib/templates/wordpress/wp-includes/class-wp.php +714 -0
  947. data/lib/templates/wordpress/wp-includes/class.wp-dependencies.php +509 -0
  948. data/lib/templates/wordpress/wp-includes/class.wp-scripts.php +284 -0
  949. data/lib/templates/wordpress/wp-includes/class.wp-styles.php +248 -0
  950. data/lib/templates/wordpress/wp-includes/comment-template.php +2421 -0
  951. data/lib/templates/wordpress/wp-includes/comment.php +3066 -0
  952. data/lib/templates/wordpress/wp-includes/compat.php +149 -0
  953. data/lib/templates/wordpress/wp-includes/cron.php +470 -0
  954. data/lib/templates/wordpress/wp-includes/css/admin-bar-rtl.css +1123 -0
  955. data/lib/templates/wordpress/wp-includes/css/admin-bar-rtl.min.css +1 -0
  956. data/lib/templates/wordpress/wp-includes/css/admin-bar.css +1123 -0
  957. data/lib/templates/wordpress/wp-includes/css/admin-bar.min.css +1 -0
  958. data/lib/templates/wordpress/wp-includes/css/buttons-rtl.css +360 -0
  959. data/lib/templates/wordpress/wp-includes/css/buttons-rtl.min.css +1 -0
  960. data/lib/templates/wordpress/wp-includes/css/buttons.css +360 -0
  961. data/lib/templates/wordpress/wp-includes/css/buttons.min.css +1 -0
  962. data/lib/templates/wordpress/wp-includes/css/dashicons.css +958 -0
  963. data/lib/templates/wordpress/wp-includes/css/dashicons.min.css +1 -0
  964. data/lib/templates/wordpress/wp-includes/css/editor-rtl.css +2143 -0
  965. data/lib/templates/wordpress/wp-includes/css/editor-rtl.min.css +1 -0
  966. data/lib/templates/wordpress/wp-includes/css/editor.css +2143 -0
  967. data/lib/templates/wordpress/wp-includes/css/editor.min.css +1 -0
  968. data/lib/templates/wordpress/wp-includes/css/jquery-ui-dialog-rtl.css +362 -0
  969. data/lib/templates/wordpress/wp-includes/css/jquery-ui-dialog-rtl.min.css +17 -0
  970. data/lib/templates/wordpress/wp-includes/css/jquery-ui-dialog.css +362 -0
  971. data/lib/templates/wordpress/wp-includes/css/jquery-ui-dialog.min.css +17 -0
  972. data/lib/templates/wordpress/wp-includes/css/media-views-rtl.css +2601 -0
  973. data/lib/templates/wordpress/wp-includes/css/media-views-rtl.min.css +8 -0
  974. data/lib/templates/wordpress/wp-includes/css/media-views.css +2601 -0
  975. data/lib/templates/wordpress/wp-includes/css/media-views.min.css +8 -0
  976. data/lib/templates/wordpress/wp-includes/css/wp-auth-check-rtl.css +109 -0
  977. data/lib/templates/wordpress/wp-includes/css/wp-auth-check-rtl.min.css +1 -0
  978. data/lib/templates/wordpress/wp-includes/css/wp-auth-check.css +109 -0
  979. data/lib/templates/wordpress/wp-includes/css/wp-auth-check.min.css +1 -0
  980. data/lib/templates/wordpress/wp-includes/css/wp-pointer-rtl.css +212 -0
  981. data/lib/templates/wordpress/wp-includes/css/wp-pointer-rtl.min.css +1 -0
  982. data/lib/templates/wordpress/wp-includes/css/wp-pointer.css +212 -0
  983. data/lib/templates/wordpress/wp-includes/css/wp-pointer.min.css +1 -0
  984. data/lib/templates/wordpress/wp-includes/date.php +1013 -0
  985. data/lib/templates/wordpress/wp-includes/default-constants.php +323 -0
  986. data/lib/templates/wordpress/wp-includes/default-filters.php +392 -0
  987. data/lib/templates/wordpress/wp-includes/default-widgets.php +1479 -0
  988. data/lib/templates/wordpress/wp-includes/deprecated.php +3493 -0
  989. data/lib/templates/wordpress/wp-includes/feed-atom-comments.php +115 -0
  990. data/lib/templates/wordpress/wp-includes/feed-atom.php +87 -0
  991. data/lib/templates/wordpress/wp-includes/feed-rdf.php +85 -0
  992. data/lib/templates/wordpress/wp-includes/feed-rss.php +46 -0
  993. data/lib/templates/wordpress/wp-includes/feed-rss2-comments.php +101 -0
  994. data/lib/templates/wordpress/wp-includes/feed-rss2.php +117 -0
  995. data/lib/templates/wordpress/wp-includes/feed.php +651 -0
  996. data/lib/templates/wordpress/wp-includes/fonts/dashicons.eot +0 -0
  997. data/lib/templates/wordpress/wp-includes/fonts/dashicons.svg +253 -0
  998. data/lib/templates/wordpress/wp-includes/fonts/dashicons.ttf +0 -0
  999. data/lib/templates/wordpress/wp-includes/fonts/dashicons.woff +0 -0
  1000. data/lib/templates/wordpress/wp-includes/formatting.php +4377 -0
  1001. data/lib/templates/wordpress/wp-includes/functions.php +4847 -0
  1002. data/lib/templates/wordpress/wp-includes/functions.wp-scripts.php +296 -0
  1003. data/lib/templates/wordpress/wp-includes/functions.wp-styles.php +222 -0
  1004. data/lib/templates/wordpress/wp-includes/general-template.php +3159 -0
  1005. data/lib/templates/wordpress/wp-includes/http.php +552 -0
  1006. data/lib/templates/wordpress/wp-includes/images/admin-bar-sprite-2x.png +0 -0
  1007. data/lib/templates/wordpress/wp-includes/images/admin-bar-sprite.png +0 -0
  1008. data/lib/templates/wordpress/wp-includes/images/arrow-pointer-blue-2x.png +0 -0
  1009. data/lib/templates/wordpress/wp-includes/images/arrow-pointer-blue.png +0 -0
  1010. data/lib/templates/wordpress/wp-includes/images/blank.gif +0 -0
  1011. data/lib/templates/wordpress/wp-includes/images/crystal/archive.png +0 -0
  1012. data/lib/templates/wordpress/wp-includes/images/crystal/audio.png +0 -0
  1013. data/lib/templates/wordpress/wp-includes/images/crystal/code.png +0 -0
  1014. data/lib/templates/wordpress/wp-includes/images/crystal/default.png +0 -0
  1015. data/lib/templates/wordpress/wp-includes/images/crystal/document.png +0 -0
  1016. data/lib/templates/wordpress/wp-includes/images/crystal/interactive.png +0 -0
  1017. data/lib/templates/wordpress/wp-includes/images/crystal/license.txt +9 -0
  1018. data/lib/templates/wordpress/wp-includes/images/crystal/spreadsheet.png +0 -0
  1019. data/lib/templates/wordpress/wp-includes/images/crystal/text.png +0 -0
  1020. data/lib/templates/wordpress/wp-includes/images/crystal/video.png +0 -0
  1021. data/lib/templates/wordpress/wp-includes/images/down_arrow-2x.gif +0 -0
  1022. data/lib/templates/wordpress/wp-includes/images/down_arrow.gif +0 -0
  1023. data/lib/templates/wordpress/wp-includes/images/icon-pointer-flag-2x.png +0 -0
  1024. data/lib/templates/wordpress/wp-includes/images/icon-pointer-flag.png +0 -0
  1025. data/lib/templates/wordpress/wp-includes/images/media/archive.png +0 -0
  1026. data/lib/templates/wordpress/wp-includes/images/media/audio.png +0 -0
  1027. data/lib/templates/wordpress/wp-includes/images/media/code.png +0 -0
  1028. data/lib/templates/wordpress/wp-includes/images/media/default.png +0 -0
  1029. data/lib/templates/wordpress/wp-includes/images/media/document.png +0 -0
  1030. data/lib/templates/wordpress/wp-includes/images/media/interactive.png +0 -0
  1031. data/lib/templates/wordpress/wp-includes/images/media/spreadsheet.png +0 -0
  1032. data/lib/templates/wordpress/wp-includes/images/media/text.png +0 -0
  1033. data/lib/templates/wordpress/wp-includes/images/media/video.png +0 -0
  1034. data/lib/templates/wordpress/wp-includes/images/rss-2x.png +0 -0
  1035. data/lib/templates/wordpress/wp-includes/images/rss.png +0 -0
  1036. data/lib/templates/wordpress/wp-includes/images/smilies/frownie.png +0 -0
  1037. data/lib/templates/wordpress/wp-includes/images/smilies/icon_arrow.gif +0 -0
  1038. data/lib/templates/wordpress/wp-includes/images/smilies/icon_biggrin.gif +0 -0
  1039. data/lib/templates/wordpress/wp-includes/images/smilies/icon_confused.gif +0 -0
  1040. data/lib/templates/wordpress/wp-includes/images/smilies/icon_cool.gif +0 -0
  1041. data/lib/templates/wordpress/wp-includes/images/smilies/icon_cry.gif +0 -0
  1042. data/lib/templates/wordpress/wp-includes/images/smilies/icon_eek.gif +0 -0
  1043. data/lib/templates/wordpress/wp-includes/images/smilies/icon_evil.gif +0 -0
  1044. data/lib/templates/wordpress/wp-includes/images/smilies/icon_exclaim.gif +0 -0
  1045. data/lib/templates/wordpress/wp-includes/images/smilies/icon_idea.gif +0 -0
  1046. data/lib/templates/wordpress/wp-includes/images/smilies/icon_lol.gif +0 -0
  1047. data/lib/templates/wordpress/wp-includes/images/smilies/icon_mad.gif +0 -0
  1048. data/lib/templates/wordpress/wp-includes/images/smilies/icon_mrgreen.gif +0 -0
  1049. data/lib/templates/wordpress/wp-includes/images/smilies/icon_neutral.gif +0 -0
  1050. data/lib/templates/wordpress/wp-includes/images/smilies/icon_question.gif +0 -0
  1051. data/lib/templates/wordpress/wp-includes/images/smilies/icon_razz.gif +0 -0
  1052. data/lib/templates/wordpress/wp-includes/images/smilies/icon_redface.gif +0 -0
  1053. data/lib/templates/wordpress/wp-includes/images/smilies/icon_rolleyes.gif +0 -0
  1054. data/lib/templates/wordpress/wp-includes/images/smilies/icon_sad.gif +0 -0
  1055. data/lib/templates/wordpress/wp-includes/images/smilies/icon_smile.gif +0 -0
  1056. data/lib/templates/wordpress/wp-includes/images/smilies/icon_surprised.gif +0 -0
  1057. data/lib/templates/wordpress/wp-includes/images/smilies/icon_twisted.gif +0 -0
  1058. data/lib/templates/wordpress/wp-includes/images/smilies/icon_wink.gif +0 -0
  1059. data/lib/templates/wordpress/wp-includes/images/smilies/mrgreen.png +0 -0
  1060. data/lib/templates/wordpress/wp-includes/images/smilies/rolleyes.png +0 -0
  1061. data/lib/templates/wordpress/wp-includes/images/smilies/simple-smile.png +0 -0
  1062. data/lib/templates/wordpress/wp-includes/images/spinner-2x.gif +0 -0
  1063. data/lib/templates/wordpress/wp-includes/images/spinner.gif +0 -0
  1064. data/lib/templates/wordpress/wp-includes/images/toggle-arrow-2x.png +0 -0
  1065. data/lib/templates/wordpress/wp-includes/images/toggle-arrow.png +0 -0
  1066. data/lib/templates/wordpress/wp-includes/images/uploader-icons-2x.png +0 -0
  1067. data/lib/templates/wordpress/wp-includes/images/uploader-icons.png +0 -0
  1068. data/lib/templates/wordpress/wp-includes/images/wlw/wp-comments.png +0 -0
  1069. data/lib/templates/wordpress/wp-includes/images/wlw/wp-icon.png +0 -0
  1070. data/lib/templates/wordpress/wp-includes/images/wlw/wp-watermark.png +0 -0
  1071. data/lib/templates/wordpress/wp-includes/images/wpicons-2x.png +0 -0
  1072. data/lib/templates/wordpress/wp-includes/images/wpicons.png +0 -0
  1073. data/lib/templates/wordpress/wp-includes/images/wpspin-2x.gif +0 -0
  1074. data/lib/templates/wordpress/wp-includes/images/wpspin.gif +0 -0
  1075. data/lib/templates/wordpress/wp-includes/images/xit-2x.gif +0 -0
  1076. data/lib/templates/wordpress/wp-includes/images/xit.gif +0 -0
  1077. data/lib/templates/wordpress/wp-includes/js/admin-bar.js +379 -0
  1078. data/lib/templates/wordpress/wp-includes/js/admin-bar.min.js +1 -0
  1079. data/lib/templates/wordpress/wp-includes/js/autosave.js +591 -0
  1080. data/lib/templates/wordpress/wp-includes/js/autosave.min.js +1 -0
  1081. data/lib/templates/wordpress/wp-includes/js/backbone.min.js +1 -0
  1082. data/lib/templates/wordpress/wp-includes/js/colorpicker.js +707 -0
  1083. data/lib/templates/wordpress/wp-includes/js/colorpicker.min.js +1 -0
  1084. data/lib/templates/wordpress/wp-includes/js/comment-reply.js +47 -0
  1085. data/lib/templates/wordpress/wp-includes/js/comment-reply.min.js +1 -0
  1086. data/lib/templates/wordpress/wp-includes/js/crop/cropper.css +165 -0
  1087. data/lib/templates/wordpress/wp-includes/js/crop/cropper.js +516 -0
  1088. data/lib/templates/wordpress/wp-includes/js/crop/marqueeHoriz.gif +0 -0
  1089. data/lib/templates/wordpress/wp-includes/js/crop/marqueeVert.gif +0 -0
  1090. data/lib/templates/wordpress/wp-includes/js/customize-base.js +647 -0
  1091. data/lib/templates/wordpress/wp-includes/js/customize-base.min.js +1 -0
  1092. data/lib/templates/wordpress/wp-includes/js/customize-loader.js +259 -0
  1093. data/lib/templates/wordpress/wp-includes/js/customize-loader.min.js +1 -0
  1094. data/lib/templates/wordpress/wp-includes/js/customize-models.js +247 -0
  1095. data/lib/templates/wordpress/wp-includes/js/customize-models.min.js +1 -0
  1096. data/lib/templates/wordpress/wp-includes/js/customize-preview-widgets.js +129 -0
  1097. data/lib/templates/wordpress/wp-includes/js/customize-preview-widgets.min.js +1 -0
  1098. data/lib/templates/wordpress/wp-includes/js/customize-preview.js +171 -0
  1099. data/lib/templates/wordpress/wp-includes/js/customize-preview.min.js +1 -0
  1100. data/lib/templates/wordpress/wp-includes/js/customize-views.js +231 -0
  1101. data/lib/templates/wordpress/wp-includes/js/customize-views.min.js +1 -0
  1102. data/lib/templates/wordpress/wp-includes/js/heartbeat.js +750 -0
  1103. data/lib/templates/wordpress/wp-includes/js/heartbeat.min.js +1 -0
  1104. data/lib/templates/wordpress/wp-includes/js/hoverIntent.js +115 -0
  1105. data/lib/templates/wordpress/wp-includes/js/hoverIntent.min.js +1 -0
  1106. data/lib/templates/wordpress/wp-includes/js/imgareaselect/border-anim-h.gif +0 -0
  1107. data/lib/templates/wordpress/wp-includes/js/imgareaselect/border-anim-v.gif +0 -0
  1108. data/lib/templates/wordpress/wp-includes/js/imgareaselect/imgareaselect.css +41 -0
  1109. data/lib/templates/wordpress/wp-includes/js/imgareaselect/jquery.imgareaselect.js +1205 -0
  1110. data/lib/templates/wordpress/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +1 -0
  1111. data/lib/templates/wordpress/wp-includes/js/jcrop/Jcrop.gif +0 -0
  1112. data/lib/templates/wordpress/wp-includes/js/jcrop/jquery.Jcrop.min.css +29 -0
  1113. data/lib/templates/wordpress/wp-includes/js/jcrop/jquery.Jcrop.min.js +22 -0
  1114. data/lib/templates/wordpress/wp-includes/js/jquery/jquery-migrate.js +521 -0
  1115. data/lib/templates/wordpress/wp-includes/js/jquery/jquery-migrate.min.js +2 -0
  1116. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.color.min.js +2 -0
  1117. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.form.js +1193 -0
  1118. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.form.min.js +11 -0
  1119. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.hotkeys.js +134 -0
  1120. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.hotkeys.min.js +1 -0
  1121. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.js +5 -0
  1122. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.masonry.min.js +11 -0
  1123. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.query.js +11 -0
  1124. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.schedule.js +36 -0
  1125. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.serialize-object.js +31 -0
  1126. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.table-hotkeys.js +99 -0
  1127. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.table-hotkeys.min.js +1 -0
  1128. data/lib/templates/wordpress/wp-includes/js/jquery/jquery.ui.touch-punch.js +11 -0
  1129. data/lib/templates/wordpress/wp-includes/js/jquery/suggest.js +316 -0
  1130. data/lib/templates/wordpress/wp-includes/js/jquery/suggest.min.js +1 -0
  1131. data/lib/templates/wordpress/wp-includes/js/jquery/ui/accordion.min.js +11 -0
  1132. data/lib/templates/wordpress/wp-includes/js/jquery/ui/autocomplete.min.js +11 -0
  1133. data/lib/templates/wordpress/wp-includes/js/jquery/ui/button.min.js +11 -0
  1134. data/lib/templates/wordpress/wp-includes/js/jquery/ui/core.min.js +11 -0
  1135. data/lib/templates/wordpress/wp-includes/js/jquery/ui/datepicker.min.js +12 -0
  1136. data/lib/templates/wordpress/wp-includes/js/jquery/ui/dialog.min.js +11 -0
  1137. data/lib/templates/wordpress/wp-includes/js/jquery/ui/draggable.min.js +11 -0
  1138. data/lib/templates/wordpress/wp-includes/js/jquery/ui/droppable.min.js +11 -0
  1139. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-blind.min.js +11 -0
  1140. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-bounce.min.js +11 -0
  1141. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-clip.min.js +11 -0
  1142. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-drop.min.js +11 -0
  1143. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-explode.min.js +11 -0
  1144. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-fade.min.js +11 -0
  1145. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-fold.min.js +11 -0
  1146. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-highlight.min.js +11 -0
  1147. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-puff.min.js +11 -0
  1148. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-pulsate.min.js +11 -0
  1149. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-scale.min.js +11 -0
  1150. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-shake.min.js +11 -0
  1151. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-size.min.js +11 -0
  1152. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-slide.min.js +11 -0
  1153. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect-transfer.min.js +11 -0
  1154. data/lib/templates/wordpress/wp-includes/js/jquery/ui/effect.min.js +21 -0
  1155. data/lib/templates/wordpress/wp-includes/js/jquery/ui/menu.min.js +11 -0
  1156. data/lib/templates/wordpress/wp-includes/js/jquery/ui/mouse.min.js +11 -0
  1157. data/lib/templates/wordpress/wp-includes/js/jquery/ui/position.min.js +11 -0
  1158. data/lib/templates/wordpress/wp-includes/js/jquery/ui/progressbar.min.js +11 -0
  1159. data/lib/templates/wordpress/wp-includes/js/jquery/ui/resizable.min.js +11 -0
  1160. data/lib/templates/wordpress/wp-includes/js/jquery/ui/selectable.min.js +11 -0
  1161. data/lib/templates/wordpress/wp-includes/js/jquery/ui/selectmenu.min.js +11 -0
  1162. data/lib/templates/wordpress/wp-includes/js/jquery/ui/slider.min.js +11 -0
  1163. data/lib/templates/wordpress/wp-includes/js/jquery/ui/sortable.min.js +11 -0
  1164. data/lib/templates/wordpress/wp-includes/js/jquery/ui/spinner.min.js +11 -0
  1165. data/lib/templates/wordpress/wp-includes/js/jquery/ui/tabs.min.js +11 -0
  1166. data/lib/templates/wordpress/wp-includes/js/jquery/ui/tooltip.min.js +11 -0
  1167. data/lib/templates/wordpress/wp-includes/js/jquery/ui/widget.min.js +11 -0
  1168. data/lib/templates/wordpress/wp-includes/js/json2.js +480 -0
  1169. data/lib/templates/wordpress/wp-includes/js/json2.min.js +1 -0
  1170. data/lib/templates/wordpress/wp-includes/js/masonry.min.js +17 -0
  1171. data/lib/templates/wordpress/wp-includes/js/mce-view.js +881 -0
  1172. data/lib/templates/wordpress/wp-includes/js/mce-view.min.js +1 -0
  1173. data/lib/templates/wordpress/wp-includes/js/media-audiovideo.js +934 -0
  1174. data/lib/templates/wordpress/wp-includes/js/media-audiovideo.min.js +1 -0
  1175. data/lib/templates/wordpress/wp-includes/js/media-editor.js +1114 -0
  1176. data/lib/templates/wordpress/wp-includes/js/media-editor.min.js +1 -0
  1177. data/lib/templates/wordpress/wp-includes/js/media-grid.js +863 -0
  1178. data/lib/templates/wordpress/wp-includes/js/media-grid.min.js +1 -0
  1179. data/lib/templates/wordpress/wp-includes/js/media-models.js +1503 -0
  1180. data/lib/templates/wordpress/wp-includes/js/media-models.min.js +1 -0
  1181. data/lib/templates/wordpress/wp-includes/js/media-views.js +8421 -0
  1182. data/lib/templates/wordpress/wp-includes/js/media-views.min.js +4 -0
  1183. data/lib/templates/wordpress/wp-includes/js/mediaelement/background.png +0 -0
  1184. data/lib/templates/wordpress/wp-includes/js/mediaelement/bigplay.png +0 -0
  1185. data/lib/templates/wordpress/wp-includes/js/mediaelement/bigplay.svg +1 -0
  1186. data/lib/templates/wordpress/wp-includes/js/mediaelement/controls.png +0 -0
  1187. data/lib/templates/wordpress/wp-includes/js/mediaelement/controls.svg +1 -0
  1188. data/lib/templates/wordpress/wp-includes/js/mediaelement/flashmediaelement.swf +0 -0
  1189. data/lib/templates/wordpress/wp-includes/js/mediaelement/froogaloop.min.js +4 -0
  1190. data/lib/templates/wordpress/wp-includes/js/mediaelement/loading.gif +0 -0
  1191. data/lib/templates/wordpress/wp-includes/js/mediaelement/mediaelement-and-player.min.js +28 -0
  1192. data/lib/templates/wordpress/wp-includes/js/mediaelement/mediaelementplayer.min.css +1 -0
  1193. data/lib/templates/wordpress/wp-includes/js/mediaelement/silverlightmediaelement.xap +0 -0
  1194. data/lib/templates/wordpress/wp-includes/js/mediaelement/skipback.png +0 -0
  1195. data/lib/templates/wordpress/wp-includes/js/mediaelement/wp-mediaelement.css +308 -0
  1196. data/lib/templates/wordpress/wp-includes/js/mediaelement/wp-mediaelement.js +34 -0
  1197. data/lib/templates/wordpress/wp-includes/js/mediaelement/wp-playlist.js +175 -0
  1198. data/lib/templates/wordpress/wp-includes/js/plupload/handlers.js +488 -0
  1199. data/lib/templates/wordpress/wp-includes/js/plupload/handlers.min.js +1 -0
  1200. data/lib/templates/wordpress/wp-includes/js/plupload/license.txt +339 -0
  1201. data/lib/templates/wordpress/wp-includes/js/plupload/plupload.flash.swf +0 -0
  1202. data/lib/templates/wordpress/wp-includes/js/plupload/plupload.full.min.js +28 -0
  1203. data/lib/templates/wordpress/wp-includes/js/plupload/plupload.silverlight.xap +0 -0
  1204. data/lib/templates/wordpress/wp-includes/js/plupload/wp-plupload.js +424 -0
  1205. data/lib/templates/wordpress/wp-includes/js/plupload/wp-plupload.min.js +1 -0
  1206. data/lib/templates/wordpress/wp-includes/js/quicktags.js +683 -0
  1207. data/lib/templates/wordpress/wp-includes/js/quicktags.min.js +1 -0
  1208. data/lib/templates/wordpress/wp-includes/js/shortcode.js +356 -0
  1209. data/lib/templates/wordpress/wp-includes/js/shortcode.min.js +1 -0
  1210. data/lib/templates/wordpress/wp-includes/js/swfobject.js +4 -0
  1211. data/lib/templates/wordpress/wp-includes/js/swfupload/handlers.js +376 -0
  1212. data/lib/templates/wordpress/wp-includes/js/swfupload/handlers.min.js +1 -0
  1213. data/lib/templates/wordpress/wp-includes/js/swfupload/license.txt +32 -0
  1214. data/lib/templates/wordpress/wp-includes/js/swfupload/plugins/swfupload.cookies.js +53 -0
  1215. data/lib/templates/wordpress/wp-includes/js/swfupload/plugins/swfupload.queue.js +98 -0
  1216. data/lib/templates/wordpress/wp-includes/js/swfupload/plugins/swfupload.speed.js +342 -0
  1217. data/lib/templates/wordpress/wp-includes/js/swfupload/plugins/swfupload.swfobject.js +105 -0
  1218. data/lib/templates/wordpress/wp-includes/js/swfupload/swfupload.js +980 -0
  1219. data/lib/templates/wordpress/wp-includes/js/swfupload/swfupload.swf +0 -0
  1220. data/lib/templates/wordpress/wp-includes/js/thickbox/loadingAnimation.gif +0 -0
  1221. data/lib/templates/wordpress/wp-includes/js/thickbox/macFFBgHack.png +0 -0
  1222. data/lib/templates/wordpress/wp-includes/js/thickbox/thickbox.css +138 -0
  1223. data/lib/templates/wordpress/wp-includes/js/thickbox/thickbox.js +314 -0
  1224. data/lib/templates/wordpress/wp-includes/js/tinymce/langs/wp-langs-en.js +519 -0
  1225. data/lib/templates/wordpress/wp-includes/js/tinymce/license.txt +504 -0
  1226. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/charmap/plugin.js +396 -0
  1227. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +1 -0
  1228. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +112 -0
  1229. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +1 -0
  1230. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css +212 -0
  1231. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/compat3x/plugin.js +304 -0
  1232. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +1 -0
  1233. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/directionality/plugin.js +64 -0
  1234. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +1 -0
  1235. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +136 -0
  1236. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +1 -0
  1237. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/hr/plugin.js +30 -0
  1238. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/hr/plugin.min.js +1 -0
  1239. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/image/plugin.js +568 -0
  1240. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/image/plugin.min.js +1 -0
  1241. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.js +813 -0
  1242. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/lists/plugin.min.js +1 -0
  1243. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/media/moxieplayer.swf +0 -0
  1244. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/media/plugin.js +782 -0
  1245. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/media/plugin.min.js +1 -0
  1246. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/paste/plugin.js +1606 -0
  1247. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/paste/plugin.min.js +1 -0
  1248. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +120 -0
  1249. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +1 -0
  1250. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/textcolor/plugin.js +282 -0
  1251. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +1 -0
  1252. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wordpress/plugin.js +754 -0
  1253. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +1 -0
  1254. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js +207 -0
  1255. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js +1 -0
  1256. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js +92 -0
  1257. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js +1 -0
  1258. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +976 -0
  1259. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +1 -0
  1260. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpemoji/plugin.js +128 -0
  1261. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpemoji/plugin.min.js +1 -0
  1262. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +76 -0
  1263. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js +1 -0
  1264. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpgallery/plugin.js +112 -0
  1265. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js +1 -0
  1266. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wplink/plugin.js +50 -0
  1267. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wplink/plugin.min.js +1 -0
  1268. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpview/plugin.js +738 -0
  1269. data/lib/templates/wordpress/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +1 -0
  1270. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +1 -0
  1271. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/content.min.css +1 -0
  1272. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/readme.md +1 -0
  1273. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  1274. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg +62 -0
  1275. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  1276. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  1277. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  1278. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +63 -0
  1279. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  1280. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  1281. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif +0 -0
  1282. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/img/loader.gif +0 -0
  1283. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/img/object.gif +0 -0
  1284. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/img/trans.gif +0 -0
  1285. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css +1 -0
  1286. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/lightgray/skin.min.css +1 -0
  1287. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/audio.png +0 -0
  1288. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png +0 -0
  1289. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no.png +0 -0
  1290. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/embedded.png +0 -0
  1291. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png +0 -0
  1292. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/gallery.png +0 -0
  1293. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png +0 -0
  1294. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/more.png +0 -0
  1295. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png +0 -0
  1296. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png +0 -0
  1297. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png +0 -0
  1298. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png +0 -0
  1299. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/images/video.png +0 -0
  1300. data/lib/templates/wordpress/wp-includes/js/tinymce/skins/wordpress/wp-content.css +539 -0
  1301. data/lib/templates/wordpress/wp-includes/js/tinymce/themes/modern/theme.js +617 -0
  1302. data/lib/templates/wordpress/wp-includes/js/tinymce/themes/modern/theme.min.js +1 -0
  1303. data/lib/templates/wordpress/wp-includes/js/tinymce/tiny_mce_popup.js +542 -0
  1304. data/lib/templates/wordpress/wp-includes/js/tinymce/tinymce.min.js +14 -0
  1305. data/lib/templates/wordpress/wp-includes/js/tinymce/utils/editable_selects.js +70 -0
  1306. data/lib/templates/wordpress/wp-includes/js/tinymce/utils/form_utils.js +210 -0
  1307. data/lib/templates/wordpress/wp-includes/js/tinymce/utils/mctabs.js +164 -0
  1308. data/lib/templates/wordpress/wp-includes/js/tinymce/utils/validate.js +252 -0
  1309. data/lib/templates/wordpress/wp-includes/js/tinymce/wp-mce-help.php +142 -0
  1310. data/lib/templates/wordpress/wp-includes/js/tinymce/wp-tinymce.js.gz +0 -0
  1311. data/lib/templates/wordpress/wp-includes/js/tinymce/wp-tinymce.php +39 -0
  1312. data/lib/templates/wordpress/wp-includes/js/tw-sack.js +193 -0
  1313. data/lib/templates/wordpress/wp-includes/js/tw-sack.min.js +1 -0
  1314. data/lib/templates/wordpress/wp-includes/js/twemoji.js +542 -0
  1315. data/lib/templates/wordpress/wp-includes/js/twemoji.min.js +1 -0
  1316. data/lib/templates/wordpress/wp-includes/js/underscore.min.js +5 -0
  1317. data/lib/templates/wordpress/wp-includes/js/utils.js +197 -0
  1318. data/lib/templates/wordpress/wp-includes/js/utils.min.js +1 -0
  1319. data/lib/templates/wordpress/wp-includes/js/wp-a11y.js +46 -0
  1320. data/lib/templates/wordpress/wp-includes/js/wp-a11y.min.js +1 -0
  1321. data/lib/templates/wordpress/wp-includes/js/wp-ajax-response.js +64 -0
  1322. data/lib/templates/wordpress/wp-includes/js/wp-ajax-response.min.js +1 -0
  1323. data/lib/templates/wordpress/wp-includes/js/wp-auth-check.js +114 -0
  1324. data/lib/templates/wordpress/wp-includes/js/wp-auth-check.min.js +1 -0
  1325. data/lib/templates/wordpress/wp-includes/js/wp-backbone.js +386 -0
  1326. data/lib/templates/wordpress/wp-includes/js/wp-backbone.min.js +1 -0
  1327. data/lib/templates/wordpress/wp-includes/js/wp-emoji-loader.js +76 -0
  1328. data/lib/templates/wordpress/wp-includes/js/wp-emoji-loader.min.js +1 -0
  1329. data/lib/templates/wordpress/wp-includes/js/wp-emoji-release.min.js +4 -0
  1330. data/lib/templates/wordpress/wp-includes/js/wp-emoji.js +170 -0
  1331. data/lib/templates/wordpress/wp-includes/js/wp-emoji.min.js +1 -0
  1332. data/lib/templates/wordpress/wp-includes/js/wp-list-revisions.js +24 -0
  1333. data/lib/templates/wordpress/wp-includes/js/wp-list-revisions.min.js +1 -0
  1334. data/lib/templates/wordpress/wp-includes/js/wp-lists.js +469 -0
  1335. data/lib/templates/wordpress/wp-includes/js/wp-lists.min.js +1 -0
  1336. data/lib/templates/wordpress/wp-includes/js/wp-pointer.js +282 -0
  1337. data/lib/templates/wordpress/wp-includes/js/wp-pointer.min.js +1 -0
  1338. data/lib/templates/wordpress/wp-includes/js/wp-util.js +112 -0
  1339. data/lib/templates/wordpress/wp-includes/js/wp-util.min.js +1 -0
  1340. data/lib/templates/wordpress/wp-includes/js/wpdialog.js +19 -0
  1341. data/lib/templates/wordpress/wp-includes/js/wpdialog.min.js +1 -0
  1342. data/lib/templates/wordpress/wp-includes/js/wplink.js +707 -0
  1343. data/lib/templates/wordpress/wp-includes/js/wplink.min.js +1 -0
  1344. data/lib/templates/wordpress/wp-includes/js/zxcvbn-async.js +18 -0
  1345. data/lib/templates/wordpress/wp-includes/js/zxcvbn-async.min.js +1 -0
  1346. data/lib/templates/wordpress/wp-includes/js/zxcvbn.min.js +47 -0
  1347. data/lib/templates/wordpress/wp-includes/kses.php +1543 -0
  1348. data/lib/templates/wordpress/wp-includes/l10n.php +956 -0
  1349. data/lib/templates/wordpress/wp-includes/link-template.php +3631 -0
  1350. data/lib/templates/wordpress/wp-includes/load.php +828 -0
  1351. data/lib/templates/wordpress/wp-includes/locale.php +365 -0
  1352. data/lib/templates/wordpress/wp-includes/media-template.php +1250 -0
  1353. data/lib/templates/wordpress/wp-includes/media.php +3440 -0
  1354. data/lib/templates/wordpress/wp-includes/meta.php +1667 -0
  1355. data/lib/templates/wordpress/wp-includes/ms-blogs.php +946 -0
  1356. data/lib/templates/wordpress/wp-includes/ms-default-constants.php +153 -0
  1357. data/lib/templates/wordpress/wp-includes/ms-default-filters.php +87 -0
  1358. data/lib/templates/wordpress/wp-includes/ms-deprecated.php +349 -0
  1359. data/lib/templates/wordpress/wp-includes/ms-files.php +82 -0
  1360. data/lib/templates/wordpress/wp-includes/ms-functions.php +2433 -0
  1361. data/lib/templates/wordpress/wp-includes/ms-load.php +472 -0
  1362. data/lib/templates/wordpress/wp-includes/ms-settings.php +213 -0
  1363. data/lib/templates/wordpress/wp-includes/nav-menu-template.php +675 -0
  1364. data/lib/templates/wordpress/wp-includes/nav-menu.php +900 -0
  1365. data/lib/templates/wordpress/wp-includes/option.php +1462 -0
  1366. data/lib/templates/wordpress/wp-includes/pluggable-deprecated.php +192 -0
  1367. data/lib/templates/wordpress/wp-includes/pluggable.php +2347 -0
  1368. data/lib/templates/wordpress/wp-includes/plugin.php +907 -0
  1369. data/lib/templates/wordpress/wp-includes/pomo/entry.php +78 -0
  1370. data/lib/templates/wordpress/wp-includes/pomo/mo.php +265 -0
  1371. data/lib/templates/wordpress/wp-includes/pomo/po.php +408 -0
  1372. data/lib/templates/wordpress/wp-includes/pomo/streams.php +241 -0
  1373. data/lib/templates/wordpress/wp-includes/pomo/translations.php +324 -0
  1374. data/lib/templates/wordpress/wp-includes/post-formats.php +232 -0
  1375. data/lib/templates/wordpress/wp-includes/post-template.php +1831 -0
  1376. data/lib/templates/wordpress/wp-includes/post-thumbnail-template.php +160 -0
  1377. data/lib/templates/wordpress/wp-includes/post.php +5937 -0
  1378. data/lib/templates/wordpress/wp-includes/query.php +4725 -0
  1379. data/lib/templates/wordpress/wp-includes/registration-functions.php +7 -0
  1380. data/lib/templates/wordpress/wp-includes/registration.php +7 -0
  1381. data/lib/templates/wordpress/wp-includes/revision.php +657 -0
  1382. data/lib/templates/wordpress/wp-includes/rewrite.php +2195 -0
  1383. data/lib/templates/wordpress/wp-includes/rss-functions.php +9 -0
  1384. data/lib/templates/wordpress/wp-includes/rss.php +936 -0
  1385. data/lib/templates/wordpress/wp-includes/script-loader.php +1090 -0
  1386. data/lib/templates/wordpress/wp-includes/session.php +439 -0
  1387. data/lib/templates/wordpress/wp-includes/shortcodes.php +404 -0
  1388. data/lib/templates/wordpress/wp-includes/taxonomy.php +4726 -0
  1389. data/lib/templates/wordpress/wp-includes/template-loader.php +76 -0
  1390. data/lib/templates/wordpress/wp-includes/template.php +505 -0
  1391. data/lib/templates/wordpress/wp-includes/theme-compat/comments-popup.php +131 -0
  1392. data/lib/templates/wordpress/wp-includes/theme-compat/comments.php +114 -0
  1393. data/lib/templates/wordpress/wp-includes/theme-compat/footer.php +30 -0
  1394. data/lib/templates/wordpress/wp-includes/theme-compat/header.php +49 -0
  1395. data/lib/templates/wordpress/wp-includes/theme-compat/sidebar.php +83 -0
  1396. data/lib/templates/wordpress/wp-includes/theme.php +2048 -0
  1397. data/lib/templates/wordpress/wp-includes/update.php +692 -0
  1398. data/lib/templates/wordpress/wp-includes/user.php +2462 -0
  1399. data/lib/templates/wordpress/wp-includes/vars.php +144 -0
  1400. data/lib/templates/wordpress/wp-includes/version.php +35 -0
  1401. data/lib/templates/wordpress/wp-includes/widgets.php +1720 -0
  1402. data/lib/templates/wordpress/wp-includes/wlwmanifest.xml +43 -0
  1403. data/lib/templates/wordpress/wp-includes/wp-db.php +2949 -0
  1404. data/lib/templates/wordpress/wp-includes/wp-diff.php +544 -0
  1405. data/lib/templates/wordpress/wp-links-opml.php +80 -0
  1406. data/lib/templates/wordpress/wp-load.php +81 -0
  1407. data/lib/templates/wordpress/wp-login.php +987 -0
  1408. data/lib/templates/wordpress/wp-mail.php +260 -0
  1409. data/lib/templates/wordpress/wp-settings.php +374 -0
  1410. data/lib/templates/wordpress/wp-signup.php +732 -0
  1411. data/lib/templates/wordpress/wp-trackback.php +127 -0
  1412. data/lib/templates/wordpress/xmlrpc.php +101 -0
  1413. metadata +1455 -0
@@ -0,0 +1,57 @@
1
+ <?php
2
+ /**
3
+ * Your Rights administration panel.
4
+ *
5
+ * @package WordPress
6
+ * @subpackage Administration
7
+ */
8
+
9
+ /** WordPress Administration Bootstrap */
10
+ require_once( dirname( __FILE__ ) . '/admin.php' );
11
+
12
+ $title = __( 'Freedoms' );
13
+
14
+ list( $display_version ) = explode( '-', $wp_version );
15
+
16
+ include( ABSPATH . 'wp-admin/admin-header.php' );
17
+ ?>
18
+ <div class="wrap about-wrap">
19
+
20
+ <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
21
+
22
+ <div class="about-text"><?php printf( __( 'Thank you for updating! WordPress %s helps you communicate and share, globally.' ), $display_version ); ?></div>
23
+
24
+ <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
25
+
26
+ <h2 class="nav-tab-wrapper">
27
+ <a href="about.php" class="nav-tab">
28
+ <?php _e( 'What&#8217;s New' ); ?>
29
+ </a><a href="credits.php" class="nav-tab">
30
+ <?php _e( 'Credits' ); ?>
31
+ </a><a href="freedoms.php" class="nav-tab nav-tab-active">
32
+ <?php _e( 'Freedoms' ); ?>
33
+ </a>
34
+ </h2>
35
+
36
+ <p class="about-description"><?php printf( __( 'WordPress is Free and open source software, built by a distributed community of mostly volunteer developers from around the world. WordPress comes with some awesome, worldview-changing rights courtesy of its <a href="%s">license</a>, the GPL.' ), 'https://wordpress.org/about/license/' ); ?></p>
37
+
38
+ <ol start="0">
39
+ <li><p><?php _e( 'You have the freedom to run the program, for any purpose.' ); ?></p></li>
40
+ <li><p><?php _e( 'You have access to the source code, the freedom to study how the program works, and the freedom to change it to make it do what you wish.' ); ?></p></li>
41
+ <li><p><?php _e( 'You have the freedom to redistribute copies of the original program so you can help your neighbor.' ); ?></p></li>
42
+ <li><p><?php _e( 'You have the freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes.' ); ?></p></li>
43
+ </ol>
44
+
45
+ <p><?php printf( __( 'WordPress grows when people like you tell their friends about it, and the thousands of businesses and services that are built on and around WordPress share that fact with their users. We&#8217;re flattered every time someone spreads the good word, just make sure to <a href="%s">check out our trademark guidelines</a> first.' ), 'http://wordpressfoundation.org/trademark-policy/' ); ?></p>
46
+
47
+ <p><?php
48
+
49
+ $plugins_url = current_user_can( 'activate_plugins' ) ? admin_url( 'plugins.php' ) : 'https://wordpress.org/plugins/';
50
+ $themes_url = current_user_can( 'switch_themes' ) ? admin_url( 'themes.php' ) : 'https://wordpress.org/themes/';
51
+
52
+ printf( __( 'Every plugin and theme in WordPress.org&#8217;s directory is 100%% GPL or a similarly free and compatible license, so you can feel safe finding <a href="%1$s">plugins</a> and <a href="%2$s">themes</a> there. If you get a plugin or theme from another source, make sure to <a href="%3$s">ask them if it&#8217;s GPL</a> first. If they don&#8217;t respect the WordPress license, we don&#8217;t recommend them.' ), $plugins_url, $themes_url, 'https://wordpress.org/about/license/' ); ?></p>
53
+
54
+ <p><?php _e( 'Don&#8217;t you wish all software came with these freedoms? So do we! For more information, check out the <a href="http://www.fsf.org/">Free Software Foundation</a>.' ); ?></p>
55
+
56
+ </div>
57
+ <?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"><style>.style0{fill:#fff;}</style><g><g><path d="M4.548 31.999c0 10.9 6.3 20.3 15.5 24.706L6.925 20.827C5.402 24.2 4.5 28 4.5 31.999z M50.531 30.614c0-3.394-1.219-5.742-2.264-7.57c-1.391-2.263-2.695-4.177-2.695-6.439c0-2.523 1.912-4.872 4.609-4.872 c0.121 0 0.2 0 0.4 0.022C45.653 7.3 39.1 4.5 32 4.548c-9.591 0-18.027 4.921-22.936 12.4 c0.645 0 1.3 0 1.8 0.033c2.871 0 7.316-0.349 7.316-0.349c1.479-0.086 1.7 2.1 0.2 2.3 c0 0-1.487 0.174-3.142 0.261l9.997 29.735l6.008-18.017l-4.276-11.718c-1.479-0.087-2.879-0.261-2.879-0.261 c-1.48-0.087-1.306-2.349 0.174-2.262c0 0 4.5 0.3 7.2 0.349c2.87 0 7.317-0.349 7.317-0.349 c1.479-0.086 1.7 2.1 0.2 2.262c0 0-1.489 0.174-3.142 0.261l9.92 29.508l2.739-9.148 C49.628 35.7 50.5 33 50.5 30.614z M32.481 34.4l-8.237 23.934c2.46 0.7 5.1 1.1 7.8 1.1 c3.197 0 6.262-0.552 9.116-1.556c-0.072-0.118-0.141-0.243-0.196-0.379L32.481 34.4z M56.088 18.8 c0.119 0.9 0.2 1.8 0.2 2.823c0 2.785-0.521 5.916-2.088 9.832l-8.385 24.242c8.161-4.758 13.65-13.6 13.65-23.728 C59.451 27.2 58.2 22.7 56.1 18.83z M32 0c-17.645 0-32 14.355-32 32C0 49.6 14.4 64 32 64s32-14.355 32-32.001 C64 14.4 49.6 0 32 0z M32 62.533c-16.835 0-30.533-13.698-30.533-30.534C1.467 15.2 15.2 1.5 32 1.5 s30.534 13.7 30.5 30.532C62.533 48.8 48.8 62.5 32 62.533z" class="style0"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"><style>.style0{fill: #0073aa;}</style><g><g><path d="M4.548 31.999c0 10.9 6.3 20.3 15.5 24.706L6.925 20.827C5.402 24.2 4.5 28 4.5 31.999z M50.531 30.614c0-3.394-1.219-5.742-2.264-7.57c-1.391-2.263-2.695-4.177-2.695-6.439c0-2.523 1.912-4.872 4.609-4.872 c0.121 0 0.2 0 0.4 0.022C45.653 7.3 39.1 4.5 32 4.548c-9.591 0-18.027 4.921-22.936 12.4 c0.645 0 1.3 0 1.8 0.033c2.871 0 7.316-0.349 7.316-0.349c1.479-0.086 1.7 2.1 0.2 2.3 c0 0-1.487 0.174-3.142 0.261l9.997 29.735l6.008-18.017l-4.276-11.718c-1.479-0.087-2.879-0.261-2.879-0.261 c-1.48-0.087-1.306-2.349 0.174-2.262c0 0 4.5 0.3 7.2 0.349c2.87 0 7.317-0.349 7.317-0.349 c1.479-0.086 1.7 2.1 0.2 2.262c0 0-1.489 0.174-3.142 0.261l9.92 29.508l2.739-9.148 C49.628 35.7 50.5 33 50.5 30.614z M32.481 34.4l-8.237 23.934c2.46 0.7 5.1 1.1 7.8 1.1 c3.197 0 6.262-0.552 9.116-1.556c-0.072-0.118-0.141-0.243-0.196-0.379L32.481 34.4z M56.088 18.8 c0.119 0.9 0.2 1.8 0.2 2.823c0 2.785-0.521 5.916-2.088 9.832l-8.385 24.242c8.161-4.758 13.65-13.6 13.65-23.728 C59.451 27.2 58.2 22.7 56.1 18.83z M32 0c-17.645 0-32 14.355-32 32C0 49.6 14.4 64 32 64s32-14.355 32-32.001 C64 14.4 49.6 0 32 0z M32 62.533c-16.835 0-30.533-13.698-30.533-30.534C1.467 15.2 15.2 1.5 32 1.5 s30.534 13.7 30.5 30.532C62.533 48.8 48.8 62.5 32 62.533z" class="style0"/></g></g></svg>
@@ -0,0 +1,130 @@
1
+ <?php
2
+ /**
3
+ * Import WordPress Administration Screen
4
+ *
5
+ * @package WordPress
6
+ * @subpackage Administration
7
+ */
8
+
9
+ define('WP_LOAD_IMPORTERS', true);
10
+
11
+ /** Load WordPress Bootstrap */
12
+ require_once( dirname( __FILE__ ) . '/admin.php' );
13
+
14
+ if ( !current_user_can('import') )
15
+ wp_die(__('You do not have sufficient permissions to import content in this site.'));
16
+
17
+ $title = __('Import');
18
+
19
+ get_current_screen()->add_help_tab( array(
20
+ 'id' => 'overview',
21
+ 'title' => __('Overview'),
22
+ 'content' => '<p>' . __('This screen lists links to plugins to import data from blogging/content management platforms. Choose the platform you want to import from, and click Install Now when you are prompted in the popup window. If your platform is not listed, click the link to search the plugin directory for other importer plugins to see if there is one for your platform.') . '</p>' .
23
+ '<p>' . __('In previous versions of WordPress, all importers were built-in. They have been turned into plugins since most people only use them once or infrequently.') . '</p>',
24
+ ) );
25
+
26
+ get_current_screen()->set_help_sidebar(
27
+ '<p><strong>' . __('For more information:') . '</strong></p>' .
28
+ '<p>' . __('<a href="https://codex.wordpress.org/Tools_Import_Screen" target="_blank">Documentation on Import</a>') . '</p>' .
29
+ '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
30
+ );
31
+
32
+ if ( current_user_can( 'install_plugins' ) )
33
+ $popular_importers = wp_get_popular_importers();
34
+ else
35
+ $popular_importers = array();
36
+
37
+ // Detect and redirect invalid importers like 'movabletype', which is registered as 'mt'
38
+ if ( ! empty( $_GET['invalid'] ) && isset( $popular_importers[ $_GET['invalid'] ] ) ) {
39
+ $importer_id = $popular_importers[ $_GET['invalid'] ]['importer-id'];
40
+ if ( $importer_id != $_GET['invalid'] ) { // Prevent redirect loops.
41
+ wp_redirect( admin_url( 'admin.php?import=' . $importer_id ) );
42
+ exit;
43
+ }
44
+ unset( $importer_id );
45
+ }
46
+
47
+ add_thickbox();
48
+ wp_enqueue_script( 'plugin-install' );
49
+
50
+ require_once( ABSPATH . 'wp-admin/admin-header.php' );
51
+ $parent_file = 'tools.php';
52
+ ?>
53
+
54
+ <div class="wrap">
55
+ <h2><?php echo esc_html( $title ); ?></h2>
56
+ <?php if ( ! empty( $_GET['invalid'] ) ) : ?>
57
+ <div class="error"><p><strong><?php _e('ERROR:')?></strong> <?php printf( __('The <strong>%s</strong> importer is invalid or is not installed.'), esc_html( $_GET['invalid'] ) ); ?></p></div>
58
+ <?php endif; ?>
59
+ <p><?php _e('If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:'); ?></p>
60
+
61
+ <?php
62
+
63
+ $importers = get_importers();
64
+
65
+ // If a popular importer is not registered, create a dummy registration that links to the plugin installer.
66
+ foreach ( $popular_importers as $pop_importer => $pop_data ) {
67
+ if ( isset( $importers[ $pop_importer ] ) )
68
+ continue;
69
+ if ( isset( $importers[ $pop_data['importer-id'] ] ) )
70
+ continue;
71
+ $importers[ $pop_data['importer-id'] ] = array( $pop_data['name'], $pop_data['description'], 'install' => $pop_data['plugin-slug'] );
72
+ }
73
+
74
+ if ( empty( $importers ) ) {
75
+ echo '<p>' . __('No importers are available.') . '</p>'; // TODO: make more helpful
76
+ } else {
77
+ uasort( $importers, '_usort_by_first_member' );
78
+ ?>
79
+ <table class="widefat importers striped">
80
+
81
+ <?php
82
+ foreach ($importers as $importer_id => $data) {
83
+ $action = '';
84
+ if ( isset( $data['install'] ) ) {
85
+ $plugin_slug = $data['install'];
86
+ if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_slug ) ) {
87
+ // Looks like Importer is installed, But not active
88
+ $plugins = get_plugins( '/' . $plugin_slug );
89
+ if ( !empty($plugins) ) {
90
+ $keys = array_keys($plugins);
91
+ $plugin_file = $plugin_slug . '/' . $keys[0];
92
+ $action = '<a href="' . esc_url(wp_nonce_url(admin_url('plugins.php?action=activate&plugin=' . $plugin_file . '&from=import'), 'activate-plugin_' . $plugin_file)) .
93
+ '"title="' . esc_attr__('Activate importer') . '"">' . $data[0] . '</a>';
94
+ }
95
+ }
96
+ if ( empty($action) ) {
97
+ if ( is_main_site() ) {
98
+ $action = '<a href="' . esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $plugin_slug .
99
+ '&from=import&TB_iframe=true&width=600&height=550' ) ) . '" class="thickbox" title="' .
100
+ esc_attr__('Install importer') . '">' . $data[0] . '</a>';
101
+ } else {
102
+ $action = $data[0];
103
+ $data[1] = sprintf( __( 'This importer is not installed. Please install importers from <a href="%s">the main site</a>.' ), get_admin_url( $current_site->blog_id, 'import.php' ) );
104
+ }
105
+ }
106
+ } else {
107
+ $action = "<a href='" . esc_url( "admin.php?import=$importer_id" ) . "' title='" . esc_attr( wptexturize( strip_tags( $data[1] ) ) ) ."'>{$data[0]}</a>";
108
+ }
109
+
110
+ echo "
111
+ <tr>
112
+ <td class='import-system row-title'>$action</td>
113
+ <td class='desc'>{$data[1]}</td>
114
+ </tr>";
115
+ }
116
+ ?>
117
+
118
+ </table>
119
+ <?php
120
+ }
121
+
122
+ if ( current_user_can('install_plugins') )
123
+ echo '<p>' . sprintf( __('If the importer you need is not listed, <a href="%s">search the plugin directory</a> to see if an importer is available.'), esc_url( network_admin_url( 'plugin-install.php?tab=search&type=tag&s=importer' ) ) ) . '</p>';
124
+ ?>
125
+
126
+ </div>
127
+
128
+ <?php
129
+
130
+ include( ABSPATH . 'wp-admin/admin-footer.php' );
@@ -0,0 +1,74 @@
1
+ <?php
2
+ /**
3
+ * Includes all of the WordPress Administration API files.
4
+ *
5
+ * @package WordPress
6
+ * @subpackage Administration
7
+ */
8
+
9
+ if ( ! defined('WP_ADMIN') ) {
10
+ /*
11
+ * This file is being included from a file other than wp-admin/admin.php, so
12
+ * some setup was skipped. Make sure the admin message catalog is loaded since
13
+ * load_default_textdomain() will not have done so in this context.
14
+ */
15
+ load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' );
16
+ }
17
+
18
+ /** WordPress Bookmark Administration API */
19
+ require_once(ABSPATH . 'wp-admin/includes/bookmark.php');
20
+
21
+ /** WordPress Comment Administration API */
22
+ require_once(ABSPATH . 'wp-admin/includes/comment.php');
23
+
24
+ /** WordPress Administration File API */
25
+ require_once(ABSPATH . 'wp-admin/includes/file.php');
26
+
27
+ /** WordPress Image Administration API */
28
+ require_once(ABSPATH . 'wp-admin/includes/image.php');
29
+
30
+ /** WordPress Media Administration API */
31
+ require_once(ABSPATH . 'wp-admin/includes/media.php');
32
+
33
+ /** WordPress Import Administration API */
34
+ require_once(ABSPATH . 'wp-admin/includes/import.php');
35
+
36
+ /** WordPress Misc Administration API */
37
+ require_once(ABSPATH . 'wp-admin/includes/misc.php');
38
+
39
+ /** WordPress Plugin Administration API */
40
+ require_once(ABSPATH . 'wp-admin/includes/plugin.php');
41
+
42
+ /** WordPress Post Administration API */
43
+ require_once(ABSPATH . 'wp-admin/includes/post.php');
44
+
45
+ /** WordPress Administration Screen API */
46
+ require_once(ABSPATH . 'wp-admin/includes/screen.php');
47
+
48
+ /** WordPress Taxonomy Administration API */
49
+ require_once(ABSPATH . 'wp-admin/includes/taxonomy.php');
50
+
51
+ /** WordPress Template Administration API */
52
+ require_once(ABSPATH . 'wp-admin/includes/template.php');
53
+
54
+ /** WordPress List Table Administration API and base class */
55
+ require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
56
+ require_once(ABSPATH . 'wp-admin/includes/list-table.php');
57
+
58
+ /** WordPress Theme Administration API */
59
+ require_once(ABSPATH . 'wp-admin/includes/theme.php');
60
+
61
+ /** WordPress User Administration API */
62
+ require_once(ABSPATH . 'wp-admin/includes/user.php');
63
+
64
+ /** WordPress Update Administration API */
65
+ require_once(ABSPATH . 'wp-admin/includes/update.php');
66
+
67
+ /** WordPress Deprecated Administration API */
68
+ require_once(ABSPATH . 'wp-admin/includes/deprecated.php');
69
+
70
+ /** WordPress Multisite support API */
71
+ if ( is_multisite() ) {
72
+ require_once(ABSPATH . 'wp-admin/includes/ms.php');
73
+ require_once(ABSPATH . 'wp-admin/includes/ms-deprecated.php');
74
+ }
@@ -0,0 +1,2973 @@
1
+ <?php
2
+ /**
3
+ * WordPress Core Ajax Handlers.
4
+ *
5
+ * @package WordPress
6
+ * @subpackage Administration
7
+ */
8
+
9
+ //
10
+ // No-privilege Ajax handlers.
11
+ //
12
+
13
+ /**
14
+ * Ajax handler for the Heartbeat API in
15
+ * the no-privilege context.
16
+ *
17
+ * Runs when the user is not logged in.
18
+ *
19
+ * @since 3.6.0
20
+ */
21
+ function wp_ajax_nopriv_heartbeat() {
22
+ $response = array();
23
+
24
+ // screen_id is the same as $current_screen->id and the JS global 'pagenow'.
25
+ if ( ! empty($_POST['screen_id']) )
26
+ $screen_id = sanitize_key($_POST['screen_id']);
27
+ else
28
+ $screen_id = 'front';
29
+
30
+ if ( ! empty($_POST['data']) ) {
31
+ $data = wp_unslash( (array) $_POST['data'] );
32
+
33
+ /**
34
+ * Filter Heartbeat AJAX response in no-privilege environments.
35
+ *
36
+ * @since 3.6.0
37
+ *
38
+ * @param array|object $response The no-priv Heartbeat response object or array.
39
+ * @param array $data An array of data passed via $_POST.
40
+ * @param string $screen_id The screen id.
41
+ */
42
+ $response = apply_filters( 'heartbeat_nopriv_received', $response, $data, $screen_id );
43
+ }
44
+
45
+ /**
46
+ * Filter Heartbeat AJAX response when no data is passed.
47
+ *
48
+ * @since 3.6.0
49
+ *
50
+ * @param array|object $response The Heartbeat response object or array.
51
+ * @param string $screen_id The screen id.
52
+ */
53
+ $response = apply_filters( 'heartbeat_nopriv_send', $response, $screen_id );
54
+
55
+ /**
56
+ * Fires when Heartbeat ticks in no-privilege environments.
57
+ *
58
+ * Allows the transport to be easily replaced with long-polling.
59
+ *
60
+ * @since 3.6.0
61
+ *
62
+ * @param array|object $response The no-priv Heartbeat response.
63
+ * @param string $screen_id The screen id.
64
+ */
65
+ do_action( 'heartbeat_nopriv_tick', $response, $screen_id );
66
+
67
+ // Send the current time according to the server.
68
+ $response['server_time'] = time();
69
+
70
+ wp_send_json($response);
71
+ }
72
+
73
+ //
74
+ // GET-based Ajax handlers.
75
+ //
76
+
77
+ /**
78
+ * Ajax handler for fetching a list table.
79
+ *
80
+ * @since 3.1.0
81
+ */
82
+ function wp_ajax_fetch_list() {
83
+ global $wp_list_table;
84
+
85
+ $list_class = $_GET['list_args']['class'];
86
+ check_ajax_referer( "fetch-list-$list_class", '_ajax_fetch_list_nonce' );
87
+
88
+ $wp_list_table = _get_list_table( $list_class, array( 'screen' => $_GET['list_args']['screen']['id'] ) );
89
+ if ( ! $wp_list_table )
90
+ wp_die( 0 );
91
+
92
+ if ( ! $wp_list_table->ajax_user_can() )
93
+ wp_die( -1 );
94
+
95
+ $wp_list_table->ajax_response();
96
+
97
+ wp_die( 0 );
98
+ }
99
+
100
+ /**
101
+ * Ajax handler for tag search.
102
+ *
103
+ * @since 3.1.0
104
+ */
105
+ function wp_ajax_ajax_tag_search() {
106
+ if ( ! isset( $_GET['tax'] ) ) {
107
+ wp_die( 0 );
108
+ }
109
+
110
+ $taxonomy = sanitize_key( $_GET['tax'] );
111
+ $tax = get_taxonomy( $taxonomy );
112
+ if ( ! $tax ) {
113
+ wp_die( 0 );
114
+ }
115
+
116
+ if ( ! current_user_can( $tax->cap->assign_terms ) ) {
117
+ wp_die( -1 );
118
+ }
119
+
120
+ $s = wp_unslash( $_GET['q'] );
121
+
122
+ $comma = _x( ',', 'tag delimiter' );
123
+ if ( ',' !== $comma )
124
+ $s = str_replace( $comma, ',', $s );
125
+ if ( false !== strpos( $s, ',' ) ) {
126
+ $s = explode( ',', $s );
127
+ $s = $s[count( $s ) - 1];
128
+ }
129
+ $s = trim( $s );
130
+
131
+ /**
132
+ * Filter the minimum number of characters required to fire a tag search via AJAX.
133
+ *
134
+ * @since 4.0.0
135
+ *
136
+ * @param int $characters The minimum number of characters required. Default 2.
137
+ * @param object $tax The taxonomy object.
138
+ * @param string $s The search term.
139
+ */
140
+ $term_search_min_chars = (int) apply_filters( 'term_search_min_chars', 2, $tax, $s );
141
+
142
+ /*
143
+ * Require $term_search_min_chars chars for matching (default: 2)
144
+ * ensure it's a non-negative, non-zero integer.
145
+ */
146
+ if ( ( $term_search_min_chars == 0 ) || ( strlen( $s ) < $term_search_min_chars ) ){
147
+ wp_die();
148
+ }
149
+
150
+ $results = get_terms( $taxonomy, array( 'name__like' => $s, 'fields' => 'names', 'hide_empty' => false ) );
151
+
152
+ echo join( $results, "\n" );
153
+ wp_die();
154
+ }
155
+
156
+ /**
157
+ * Ajax handler for compression testing.
158
+ *
159
+ * @since 3.1.0
160
+ */
161
+ function wp_ajax_wp_compression_test() {
162
+ if ( !current_user_can( 'manage_options' ) )
163
+ wp_die( -1 );
164
+
165
+ if ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') ) {
166
+ update_site_option('can_compress_scripts', 0);
167
+ wp_die( 0 );
168
+ }
169
+
170
+ if ( isset($_GET['test']) ) {
171
+ header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
172
+ header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
173
+ header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );
174
+ header( 'Pragma: no-cache' );
175
+ header('Content-Type: application/javascript; charset=UTF-8');
176
+ $force_gzip = ( defined('ENFORCE_GZIP') && ENFORCE_GZIP );
177
+ $test_str = '"wpCompressionTest Lorem ipsum dolor sit amet consectetuer mollis sapien urna ut a. Eu nonummy condimentum fringilla tempor pretium platea vel nibh netus Maecenas. Hac molestie amet justo quis pellentesque est ultrices interdum nibh Morbi. Cras mattis pretium Phasellus ante ipsum ipsum ut sociis Suspendisse Lorem. Ante et non molestie. Porta urna Vestibulum egestas id congue nibh eu risus gravida sit. Ac augue auctor Ut et non a elit massa id sodales. Elit eu Nulla at nibh adipiscing mattis lacus mauris at tempus. Netus nibh quis suscipit nec feugiat eget sed lorem et urna. Pellentesque lacus at ut massa consectetuer ligula ut auctor semper Pellentesque. Ut metus massa nibh quam Curabitur molestie nec mauris congue. Volutpat molestie elit justo facilisis neque ac risus Ut nascetur tristique. Vitae sit lorem tellus et quis Phasellus lacus tincidunt nunc Fusce. Pharetra wisi Suspendisse mus sagittis libero lacinia Integer consequat ac Phasellus. Et urna ac cursus tortor aliquam Aliquam amet tellus volutpat Vestibulum. Justo interdum condimentum In augue congue tellus sollicitudin Quisque quis nibh."';
178
+
179
+ if ( 1 == $_GET['test'] ) {
180
+ echo $test_str;
181
+ wp_die();
182
+ } elseif ( 2 == $_GET['test'] ) {
183
+ if ( !isset($_SERVER['HTTP_ACCEPT_ENCODING']) )
184
+ wp_die( -1 );
185
+ if ( false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'deflate') && function_exists('gzdeflate') && ! $force_gzip ) {
186
+ header('Content-Encoding: deflate');
187
+ $out = gzdeflate( $test_str, 1 );
188
+ } elseif ( false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') && function_exists('gzencode') ) {
189
+ header('Content-Encoding: gzip');
190
+ $out = gzencode( $test_str, 1 );
191
+ } else {
192
+ wp_die( -1 );
193
+ }
194
+ echo $out;
195
+ wp_die();
196
+ } elseif ( 'no' == $_GET['test'] ) {
197
+ update_site_option('can_compress_scripts', 0);
198
+ } elseif ( 'yes' == $_GET['test'] ) {
199
+ update_site_option('can_compress_scripts', 1);
200
+ }
201
+ }
202
+
203
+ wp_die( 0 );
204
+ }
205
+
206
+ /**
207
+ * Ajax handler for image editor previews.
208
+ *
209
+ * @since 3.1.0
210
+ */
211
+ function wp_ajax_imgedit_preview() {
212
+ $post_id = intval($_GET['postid']);
213
+ if ( empty($post_id) || !current_user_can('edit_post', $post_id) )
214
+ wp_die( -1 );
215
+
216
+ check_ajax_referer( "image_editor-$post_id" );
217
+
218
+ include_once( ABSPATH . 'wp-admin/includes/image-edit.php' );
219
+ if ( ! stream_preview_image($post_id) )
220
+ wp_die( -1 );
221
+
222
+ wp_die();
223
+ }
224
+
225
+ /**
226
+ * Ajax handler for oEmbed caching.
227
+ *
228
+ * @since 3.1.0
229
+ */
230
+ function wp_ajax_oembed_cache() {
231
+ $GLOBALS['wp_embed']->cache_oembed( $_GET['post'] );
232
+ wp_die( 0 );
233
+ }
234
+
235
+ /**
236
+ * Ajax handler for user autocomplete.
237
+ *
238
+ * @since 3.4.0
239
+ */
240
+ function wp_ajax_autocomplete_user() {
241
+ if ( ! is_multisite() || ! current_user_can( 'promote_users' ) || wp_is_large_network( 'users' ) )
242
+ wp_die( -1 );
243
+
244
+ /** This filter is documented in wp-admin/user-new.php */
245
+ if ( ! is_super_admin() && ! apply_filters( 'autocomplete_users_for_site_admins', false ) )
246
+ wp_die( -1 );
247
+
248
+ $return = array();
249
+
250
+ // Check the type of request
251
+ // Current allowed values are `add` and `search`
252
+ if ( isset( $_REQUEST['autocomplete_type'] ) && 'search' === $_REQUEST['autocomplete_type'] ) {
253
+ $type = $_REQUEST['autocomplete_type'];
254
+ } else {
255
+ $type = 'add';
256
+ }
257
+
258
+ // Check the desired field for value
259
+ // Current allowed values are `user_email` and `user_login`
260
+ if ( isset( $_REQUEST['autocomplete_field'] ) && 'user_email' === $_REQUEST['autocomplete_field'] ) {
261
+ $field = $_REQUEST['autocomplete_field'];
262
+ } else {
263
+ $field = 'user_login';
264
+ }
265
+
266
+ // Exclude current users of this blog
267
+ if ( isset( $_REQUEST['site_id'] ) ) {
268
+ $id = absint( $_REQUEST['site_id'] );
269
+ } else {
270
+ $id = get_current_blog_id();
271
+ }
272
+
273
+ $include_blog_users = ( $type == 'search' ? get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ) : array() );
274
+ $exclude_blog_users = ( $type == 'add' ? get_users( array( 'blog_id' => $id, 'fields' => 'ID' ) ) : array() );
275
+
276
+ $users = get_users( array(
277
+ 'blog_id' => false,
278
+ 'search' => '*' . $_REQUEST['term'] . '*',
279
+ 'include' => $include_blog_users,
280
+ 'exclude' => $exclude_blog_users,
281
+ 'search_columns' => array( 'user_login', 'user_nicename', 'user_email' ),
282
+ ) );
283
+
284
+ foreach ( $users as $user ) {
285
+ $return[] = array(
286
+ /* translators: 1: user_login, 2: user_email */
287
+ 'label' => sprintf( __( '%1$s (%2$s)' ), $user->user_login, $user->user_email ),
288
+ 'value' => $user->$field,
289
+ );
290
+ }
291
+
292
+ wp_die( wp_json_encode( $return ) );
293
+ }
294
+
295
+ /**
296
+ * Ajax handler for dashboard widgets.
297
+ *
298
+ * @since 3.4.0
299
+ */
300
+ function wp_ajax_dashboard_widgets() {
301
+ require_once ABSPATH . 'wp-admin/includes/dashboard.php';
302
+
303
+ $pagenow = $_GET['pagenow'];
304
+ if ( $pagenow === 'dashboard-user' || $pagenow === 'dashboard-network' || $pagenow === 'dashboard' ) {
305
+ set_current_screen( $pagenow );
306
+ }
307
+
308
+ switch ( $_GET['widget'] ) {
309
+ case 'dashboard_primary' :
310
+ wp_dashboard_primary();
311
+ break;
312
+ }
313
+ wp_die();
314
+ }
315
+
316
+ /**
317
+ * Ajax handler for Customizer preview logged-in status.
318
+ *
319
+ * @since 3.4.0
320
+ */
321
+ function wp_ajax_logged_in() {
322
+ wp_die( 1 );
323
+ }
324
+
325
+ //
326
+ // Ajax helpers.
327
+ //
328
+
329
+ /**
330
+ * Sends back current comment total and new page links if they need to be updated.
331
+ *
332
+ * Contrary to normal success AJAX response ("1"), die with time() on success.
333
+ *
334
+ * @since 2.7.0
335
+ *
336
+ * @param int $comment_id
337
+ * @return die
338
+ */
339
+ function _wp_ajax_delete_comment_response( $comment_id, $delta = -1 ) {
340
+ $total = isset( $_POST['_total'] ) ? (int) $_POST['_total'] : 0;
341
+ $per_page = isset( $_POST['_per_page'] ) ? (int) $_POST['_per_page'] : 0;
342
+ $page = isset( $_POST['_page'] ) ? (int) $_POST['_page'] : 0;
343
+ $url = isset( $_POST['_url'] ) ? esc_url_raw( $_POST['_url'] ) : '';
344
+
345
+ // JS didn't send us everything we need to know. Just die with success message
346
+ if ( !$total || !$per_page || !$page || !$url )
347
+ wp_die( time() );
348
+
349
+ $total += $delta;
350
+ if ( $total < 0 )
351
+ $total = 0;
352
+
353
+ // Only do the expensive stuff on a page-break, and about 1 other time per page
354
+ if ( 0 == $total % $per_page || 1 == mt_rand( 1, $per_page ) ) {
355
+ $post_id = 0;
356
+ $status = 'total_comments'; // What type of comment count are we looking for?
357
+ $parsed = parse_url( $url );
358
+ if ( isset( $parsed['query'] ) ) {
359
+ parse_str( $parsed['query'], $query_vars );
360
+ if ( !empty( $query_vars['comment_status'] ) )
361
+ $status = $query_vars['comment_status'];
362
+ if ( !empty( $query_vars['p'] ) )
363
+ $post_id = (int) $query_vars['p'];
364
+ }
365
+
366
+ $comment_count = wp_count_comments($post_id);
367
+
368
+ // We're looking for a known type of comment count.
369
+ if ( isset( $comment_count->$status ) )
370
+ $total = $comment_count->$status;
371
+ // Else use the decremented value from above.
372
+ }
373
+
374
+ // The time since the last comment count.
375
+ $time = time();
376
+
377
+ $x = new WP_Ajax_Response( array(
378
+ 'what' => 'comment',
379
+ // Here for completeness - not used.
380
+ 'id' => $comment_id,
381
+ 'supplemental' => array(
382
+ 'total_items_i18n' => sprintf( _n( '%s item', '%s items', $total ), number_format_i18n( $total ) ),
383
+ 'total_pages' => ceil( $total / $per_page ),
384
+ 'total_pages_i18n' => number_format_i18n( ceil( $total / $per_page ) ),
385
+ 'total' => $total,
386
+ 'time' => $time
387
+ )
388
+ ) );
389
+ $x->send();
390
+ }
391
+
392
+ //
393
+ // POST-based Ajax handlers.
394
+ //
395
+
396
+ /**
397
+ * Ajax handler for adding a hierarchical term.
398
+ *
399
+ * @since 3.1.0
400
+ */
401
+ function _wp_ajax_add_hierarchical_term() {
402
+ $action = $_POST['action'];
403
+ $taxonomy = get_taxonomy(substr($action, 4));
404
+ check_ajax_referer( $action, '_ajax_nonce-add-' . $taxonomy->name );
405
+ if ( !current_user_can( $taxonomy->cap->edit_terms ) )
406
+ wp_die( -1 );
407
+ $names = explode(',', $_POST['new'.$taxonomy->name]);
408
+ $parent = isset($_POST['new'.$taxonomy->name.'_parent']) ? (int) $_POST['new'.$taxonomy->name.'_parent'] : 0;
409
+ if ( 0 > $parent )
410
+ $parent = 0;
411
+ if ( $taxonomy->name == 'category' )
412
+ $post_category = isset($_POST['post_category']) ? (array) $_POST['post_category'] : array();
413
+ else
414
+ $post_category = ( isset($_POST['tax_input']) && isset($_POST['tax_input'][$taxonomy->name]) ) ? (array) $_POST['tax_input'][$taxonomy->name] : array();
415
+ $checked_categories = array_map( 'absint', (array) $post_category );
416
+ $popular_ids = wp_popular_terms_checklist($taxonomy->name, 0, 10, false);
417
+
418
+ foreach ( $names as $cat_name ) {
419
+ $cat_name = trim($cat_name);
420
+ $category_nicename = sanitize_title($cat_name);
421
+ if ( '' === $category_nicename )
422
+ continue;
423
+ if ( !$cat_id = term_exists( $cat_name, $taxonomy->name, $parent ) )
424
+ $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) );
425
+ if ( is_wp_error( $cat_id ) ) {
426
+ continue;
427
+ } elseif ( is_array( $cat_id ) ) {
428
+ $cat_id = $cat_id['term_id'];
429
+ }
430
+ $checked_categories[] = $cat_id;
431
+ if ( $parent ) // Do these all at once in a second
432
+ continue;
433
+ ob_start();
434
+ wp_terms_checklist( 0, array( 'taxonomy' => $taxonomy->name, 'descendants_and_self' => $cat_id, 'selected_cats' => $checked_categories, 'popular_cats' => $popular_ids ));
435
+ $data = ob_get_contents();
436
+ ob_end_clean();
437
+ $add = array(
438
+ 'what' => $taxonomy->name,
439
+ 'id' => $cat_id,
440
+ 'data' => str_replace( array("\n", "\t"), '', $data),
441
+ 'position' => -1
442
+ );
443
+ }
444
+
445
+ if ( $parent ) { // Foncy - replace the parent and all its children
446
+ $parent = get_term( $parent, $taxonomy->name );
447
+ $term_id = $parent->term_id;
448
+
449
+ while ( $parent->parent ) { // get the top parent
450
+ $parent = get_term( $parent->parent, $taxonomy->name );
451
+ if ( is_wp_error( $parent ) )
452
+ break;
453
+ $term_id = $parent->term_id;
454
+ }
455
+
456
+ ob_start();
457
+ wp_terms_checklist( 0, array('taxonomy' => $taxonomy->name, 'descendants_and_self' => $term_id, 'selected_cats' => $checked_categories, 'popular_cats' => $popular_ids));
458
+ $data = ob_get_contents();
459
+ ob_end_clean();
460
+ $add = array(
461
+ 'what' => $taxonomy->name,
462
+ 'id' => $term_id,
463
+ 'data' => str_replace( array("\n", "\t"), '', $data),
464
+ 'position' => -1
465
+ );
466
+ }
467
+
468
+ ob_start();
469
+ wp_dropdown_categories( array(
470
+ 'taxonomy' => $taxonomy->name, 'hide_empty' => 0, 'name' => 'new'.$taxonomy->name.'_parent', 'orderby' => 'name',
471
+ 'hierarchical' => 1, 'show_option_none' => '&mdash; '.$taxonomy->labels->parent_item.' &mdash;'
472
+ ) );
473
+ $sup = ob_get_contents();
474
+ ob_end_clean();
475
+ $add['supplemental'] = array( 'newcat_parent' => $sup );
476
+
477
+ $x = new WP_Ajax_Response( $add );
478
+ $x->send();
479
+ }
480
+
481
+ /**
482
+ * Ajax handler for deleting a comment.
483
+ *
484
+ * @since 3.1.0
485
+ */
486
+ function wp_ajax_delete_comment() {
487
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
488
+
489
+ if ( !$comment = get_comment( $id ) )
490
+ wp_die( time() );
491
+ if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) )
492
+ wp_die( -1 );
493
+
494
+ check_ajax_referer( "delete-comment_$id" );
495
+ $status = wp_get_comment_status( $comment->comment_ID );
496
+
497
+ $delta = -1;
498
+ if ( isset($_POST['trash']) && 1 == $_POST['trash'] ) {
499
+ if ( 'trash' == $status )
500
+ wp_die( time() );
501
+ $r = wp_trash_comment( $comment->comment_ID );
502
+ } elseif ( isset($_POST['untrash']) && 1 == $_POST['untrash'] ) {
503
+ if ( 'trash' != $status )
504
+ wp_die( time() );
505
+ $r = wp_untrash_comment( $comment->comment_ID );
506
+ if ( ! isset( $_POST['comment_status'] ) || $_POST['comment_status'] != 'trash' ) // undo trash, not in trash
507
+ $delta = 1;
508
+ } elseif ( isset($_POST['spam']) && 1 == $_POST['spam'] ) {
509
+ if ( 'spam' == $status )
510
+ wp_die( time() );
511
+ $r = wp_spam_comment( $comment->comment_ID );
512
+ } elseif ( isset($_POST['unspam']) && 1 == $_POST['unspam'] ) {
513
+ if ( 'spam' != $status )
514
+ wp_die( time() );
515
+ $r = wp_unspam_comment( $comment->comment_ID );
516
+ if ( ! isset( $_POST['comment_status'] ) || $_POST['comment_status'] != 'spam' ) // undo spam, not in spam
517
+ $delta = 1;
518
+ } elseif ( isset($_POST['delete']) && 1 == $_POST['delete'] ) {
519
+ $r = wp_delete_comment( $comment->comment_ID );
520
+ } else {
521
+ wp_die( -1 );
522
+ }
523
+
524
+ if ( $r ) // Decide if we need to send back '1' or a more complicated response including page links and comment counts
525
+ _wp_ajax_delete_comment_response( $comment->comment_ID, $delta );
526
+ wp_die( 0 );
527
+ }
528
+
529
+ /**
530
+ * Ajax handler for deleting a tag.
531
+ *
532
+ * @since 3.1.0
533
+ */
534
+ function wp_ajax_delete_tag() {
535
+ $tag_id = (int) $_POST['tag_ID'];
536
+ check_ajax_referer( "delete-tag_$tag_id" );
537
+
538
+ $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
539
+ $tax = get_taxonomy($taxonomy);
540
+
541
+ if ( !current_user_can( $tax->cap->delete_terms ) )
542
+ wp_die( -1 );
543
+
544
+ $tag = get_term( $tag_id, $taxonomy );
545
+ if ( !$tag || is_wp_error( $tag ) )
546
+ wp_die( 1 );
547
+
548
+ if ( wp_delete_term($tag_id, $taxonomy))
549
+ wp_die( 1 );
550
+ else
551
+ wp_die( 0 );
552
+ }
553
+
554
+ /**
555
+ * Ajax handler for deleting a link.
556
+ *
557
+ * @since 3.1.0
558
+ */
559
+ function wp_ajax_delete_link() {
560
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
561
+
562
+ check_ajax_referer( "delete-bookmark_$id" );
563
+ if ( !current_user_can( 'manage_links' ) )
564
+ wp_die( -1 );
565
+
566
+ $link = get_bookmark( $id );
567
+ if ( !$link || is_wp_error( $link ) )
568
+ wp_die( 1 );
569
+
570
+ if ( wp_delete_link( $id ) )
571
+ wp_die( 1 );
572
+ else
573
+ wp_die( 0 );
574
+ }
575
+
576
+ /**
577
+ * Ajax handler for deleting meta.
578
+ *
579
+ * @since 3.1.0
580
+ */
581
+ function wp_ajax_delete_meta() {
582
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
583
+
584
+ check_ajax_referer( "delete-meta_$id" );
585
+ if ( !$meta = get_metadata_by_mid( 'post', $id ) )
586
+ wp_die( 1 );
587
+
588
+ if ( is_protected_meta( $meta->meta_key, 'post' ) || ! current_user_can( 'delete_post_meta', $meta->post_id, $meta->meta_key ) )
589
+ wp_die( -1 );
590
+ if ( delete_meta( $meta->meta_id ) )
591
+ wp_die( 1 );
592
+ wp_die( 0 );
593
+ }
594
+
595
+ /**
596
+ * Ajax handler for deleting a post.
597
+ *
598
+ * @since 3.1.0
599
+ *
600
+ * @param string $action Action to perform.
601
+ */
602
+ function wp_ajax_delete_post( $action ) {
603
+ if ( empty( $action ) )
604
+ $action = 'delete-post';
605
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
606
+
607
+ check_ajax_referer( "{$action}_$id" );
608
+ if ( !current_user_can( 'delete_post', $id ) )
609
+ wp_die( -1 );
610
+
611
+ if ( !get_post( $id ) )
612
+ wp_die( 1 );
613
+
614
+ if ( wp_delete_post( $id ) )
615
+ wp_die( 1 );
616
+ else
617
+ wp_die( 0 );
618
+ }
619
+
620
+ /**
621
+ * Ajax handler for sending a post to the trash.
622
+ *
623
+ * @since 3.1.0
624
+ *
625
+ * @param string $action Action to perform.
626
+ */
627
+ function wp_ajax_trash_post( $action ) {
628
+ if ( empty( $action ) )
629
+ $action = 'trash-post';
630
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
631
+
632
+ check_ajax_referer( "{$action}_$id" );
633
+ if ( !current_user_can( 'delete_post', $id ) )
634
+ wp_die( -1 );
635
+
636
+ if ( !get_post( $id ) )
637
+ wp_die( 1 );
638
+
639
+ if ( 'trash-post' == $action )
640
+ $done = wp_trash_post( $id );
641
+ else
642
+ $done = wp_untrash_post( $id );
643
+
644
+ if ( $done )
645
+ wp_die( 1 );
646
+
647
+ wp_die( 0 );
648
+ }
649
+
650
+ /**
651
+ * Ajax handler to restore a post from the trash.
652
+ *
653
+ * @since 3.1.0
654
+ *
655
+ * @param string $action Action to perform.
656
+ */
657
+ function wp_ajax_untrash_post( $action ) {
658
+ if ( empty( $action ) )
659
+ $action = 'untrash-post';
660
+ wp_ajax_trash_post( $action );
661
+ }
662
+
663
+ function wp_ajax_delete_page( $action ) {
664
+ if ( empty( $action ) )
665
+ $action = 'delete-page';
666
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
667
+
668
+ check_ajax_referer( "{$action}_$id" );
669
+ if ( !current_user_can( 'delete_page', $id ) )
670
+ wp_die( -1 );
671
+
672
+ if ( ! get_post( $id ) )
673
+ wp_die( 1 );
674
+
675
+ if ( wp_delete_post( $id ) )
676
+ wp_die( 1 );
677
+ else
678
+ wp_die( 0 );
679
+ }
680
+
681
+ /**
682
+ * Ajax handler to dim a comment.
683
+ *
684
+ * @since 3.1.0
685
+ */
686
+ function wp_ajax_dim_comment() {
687
+ $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0;
688
+
689
+ if ( !$comment = get_comment( $id ) ) {
690
+ $x = new WP_Ajax_Response( array(
691
+ 'what' => 'comment',
692
+ 'id' => new WP_Error('invalid_comment', sprintf(__('Comment %d does not exist'), $id))
693
+ ) );
694
+ $x->send();
695
+ }
696
+
697
+ if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) && ! current_user_can( 'moderate_comments' ) )
698
+ wp_die( -1 );
699
+
700
+ $current = wp_get_comment_status( $comment->comment_ID );
701
+ if ( isset( $_POST['new'] ) && $_POST['new'] == $current )
702
+ wp_die( time() );
703
+
704
+ check_ajax_referer( "approve-comment_$id" );
705
+ if ( in_array( $current, array( 'unapproved', 'spam' ) ) )
706
+ $result = wp_set_comment_status( $comment->comment_ID, 'approve', true );
707
+ else
708
+ $result = wp_set_comment_status( $comment->comment_ID, 'hold', true );
709
+
710
+ if ( is_wp_error($result) ) {
711
+ $x = new WP_Ajax_Response( array(
712
+ 'what' => 'comment',
713
+ 'id' => $result
714
+ ) );
715
+ $x->send();
716
+ }
717
+
718
+ // Decide if we need to send back '1' or a more complicated response including page links and comment counts
719
+ _wp_ajax_delete_comment_response( $comment->comment_ID );
720
+ wp_die( 0 );
721
+ }
722
+
723
+ /**
724
+ * Ajax handler for deleting a link category.
725
+ *
726
+ * @since 3.1.0
727
+ *
728
+ * @param string $action Action to perform.
729
+ */
730
+ function wp_ajax_add_link_category( $action ) {
731
+ if ( empty( $action ) )
732
+ $action = 'add-link-category';
733
+ check_ajax_referer( $action );
734
+ if ( !current_user_can( 'manage_categories' ) )
735
+ wp_die( -1 );
736
+ $names = explode(',', wp_unslash( $_POST['newcat'] ) );
737
+ $x = new WP_Ajax_Response();
738
+ foreach ( $names as $cat_name ) {
739
+ $cat_name = trim($cat_name);
740
+ $slug = sanitize_title($cat_name);
741
+ if ( '' === $slug )
742
+ continue;
743
+ if ( !$cat_id = term_exists( $cat_name, 'link_category' ) )
744
+ $cat_id = wp_insert_term( $cat_name, 'link_category' );
745
+ if ( is_wp_error( $cat_id ) ) {
746
+ continue;
747
+ } elseif ( is_array( $cat_id ) ) {
748
+ $cat_id = $cat_id['term_id'];
749
+ }
750
+ $cat_name = esc_html( $cat_name );
751
+ $x->add( array(
752
+ 'what' => 'link-category',
753
+ 'id' => $cat_id,
754
+ 'data' => "<li id='link-category-$cat_id'><label for='in-link-category-$cat_id' class='selectit'><input value='" . esc_attr($cat_id) . "' type='checkbox' checked='checked' name='link_category[]' id='in-link-category-$cat_id'/> $cat_name</label></li>",
755
+ 'position' => -1
756
+ ) );
757
+ }
758
+ $x->send();
759
+ }
760
+
761
+ /**
762
+ * Ajax handler to add a tag.
763
+ *
764
+ * @since 3.1.0
765
+ */
766
+ function wp_ajax_add_tag() {
767
+ global $wp_list_table;
768
+
769
+ check_ajax_referer( 'add-tag', '_wpnonce_add-tag' );
770
+ $taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
771
+ $tax = get_taxonomy($taxonomy);
772
+
773
+ if ( !current_user_can( $tax->cap->edit_terms ) )
774
+ wp_die( -1 );
775
+
776
+ $x = new WP_Ajax_Response();
777
+
778
+ $tag = wp_insert_term($_POST['tag-name'], $taxonomy, $_POST );
779
+
780
+ if ( !$tag || is_wp_error($tag) || (!$tag = get_term( $tag['term_id'], $taxonomy )) ) {
781
+ $message = __('An error has occurred. Please reload the page and try again.');
782
+ if ( is_wp_error($tag) && $tag->get_error_message() )
783
+ $message = $tag->get_error_message();
784
+
785
+ $x->add( array(
786
+ 'what' => 'taxonomy',
787
+ 'data' => new WP_Error('error', $message )
788
+ ) );
789
+ $x->send();
790
+ }
791
+
792
+ $wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => $_POST['screen'] ) );
793
+
794
+ $level = 0;
795
+ if ( is_taxonomy_hierarchical($taxonomy) ) {
796
+ $level = count( get_ancestors( $tag->term_id, $taxonomy, 'taxonomy' ) );
797
+ ob_start();
798
+ $wp_list_table->single_row( $tag, $level );
799
+ $noparents = ob_get_clean();
800
+ }
801
+
802
+ ob_start();
803
+ $wp_list_table->single_row( $tag );
804
+ $parents = ob_get_clean();
805
+
806
+ $x->add( array(
807
+ 'what' => 'taxonomy',
808
+ 'supplemental' => compact('parents', 'noparents')
809
+ ) );
810
+ $x->add( array(
811
+ 'what' => 'term',
812
+ 'position' => $level,
813
+ 'supplemental' => (array) $tag
814
+ ) );
815
+ $x->send();
816
+ }
817
+
818
+ /**
819
+ * Ajax handler for getting a tagcloud.
820
+ *
821
+ * @since 3.1.0
822
+ */
823
+ function wp_ajax_get_tagcloud() {
824
+ if ( ! isset( $_POST['tax'] ) ) {
825
+ wp_die( 0 );
826
+ }
827
+
828
+ $taxonomy = sanitize_key( $_POST['tax'] );
829
+ $tax = get_taxonomy( $taxonomy );
830
+ if ( ! $tax ) {
831
+ wp_die( 0 );
832
+ }
833
+
834
+ if ( ! current_user_can( $tax->cap->assign_terms ) ) {
835
+ wp_die( -1 );
836
+ }
837
+
838
+ $tags = get_terms( $taxonomy, array( 'number' => 45, 'orderby' => 'count', 'order' => 'DESC' ) );
839
+
840
+ if ( empty( $tags ) )
841
+ wp_die( $tax->labels->not_found );
842
+
843
+ if ( is_wp_error( $tags ) )
844
+ wp_die( $tags->get_error_message() );
845
+
846
+ foreach ( $tags as $key => $tag ) {
847
+ $tags[ $key ]->link = '#';
848
+ $tags[ $key ]->id = $tag->term_id;
849
+ }
850
+
851
+ // We need raw tag names here, so don't filter the output
852
+ $return = wp_generate_tag_cloud( $tags, array('filter' => 0) );
853
+
854
+ if ( empty($return) )
855
+ wp_die( 0 );
856
+
857
+ echo $return;
858
+
859
+ wp_die();
860
+ }
861
+
862
+ /**
863
+ * Ajax handler for getting comments.
864
+ *
865
+ * @since 3.1.0
866
+ *
867
+ * @param string $action Action to perform.
868
+ */
869
+ function wp_ajax_get_comments( $action ) {
870
+ global $wp_list_table, $post_id;
871
+ if ( empty( $action ) )
872
+ $action = 'get-comments';
873
+
874
+ check_ajax_referer( $action );
875
+
876
+ if ( empty( $post_id ) && ! empty( $_REQUEST['p'] ) ) {
877
+ $id = absint( $_REQUEST['p'] );
878
+ if ( ! empty( $id ) )
879
+ $post_id = $id;
880
+ }
881
+
882
+ if ( empty( $post_id ) )
883
+ wp_die( -1 );
884
+
885
+ $wp_list_table = _get_list_table( 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
886
+
887
+ if ( ! current_user_can( 'edit_post', $post_id ) )
888
+ wp_die( -1 );
889
+
890
+ $wp_list_table->prepare_items();
891
+
892
+ if ( !$wp_list_table->has_items() )
893
+ wp_die( 1 );
894
+
895
+ $x = new WP_Ajax_Response();
896
+ ob_start();
897
+ foreach ( $wp_list_table->items as $comment ) {
898
+ if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) )
899
+ continue;
900
+ get_comment( $comment );
901
+ $wp_list_table->single_row( $comment );
902
+ }
903
+ $comment_list_item = ob_get_contents();
904
+ ob_end_clean();
905
+
906
+ $x->add( array(
907
+ 'what' => 'comments',
908
+ 'data' => $comment_list_item
909
+ ) );
910
+ $x->send();
911
+ }
912
+
913
+ /**
914
+ * Ajax handler for replying to a comment.
915
+ *
916
+ * @since 3.1.0
917
+ *
918
+ * @param string $action Action to perform.
919
+ */
920
+ function wp_ajax_replyto_comment( $action ) {
921
+ global $wp_list_table;
922
+ if ( empty( $action ) )
923
+ $action = 'replyto-comment';
924
+
925
+ check_ajax_referer( $action, '_ajax_nonce-replyto-comment' );
926
+
927
+ $comment_post_ID = (int) $_POST['comment_post_ID'];
928
+ $post = get_post( $comment_post_ID );
929
+ if ( ! $post )
930
+ wp_die( -1 );
931
+
932
+ if ( !current_user_can( 'edit_post', $comment_post_ID ) )
933
+ wp_die( -1 );
934
+
935
+ if ( empty( $post->post_status ) )
936
+ wp_die( 1 );
937
+ elseif ( in_array($post->post_status, array('draft', 'pending', 'trash') ) )
938
+ wp_die( __('ERROR: you are replying to a comment on a draft post.') );
939
+
940
+ $user = wp_get_current_user();
941
+ if ( $user->exists() ) {
942
+ $user_ID = $user->ID;
943
+ $comment_author = wp_slash( $user->display_name );
944
+ $comment_author_email = wp_slash( $user->user_email );
945
+ $comment_author_url = wp_slash( $user->user_url );
946
+ $comment_content = trim( $_POST['content'] );
947
+ $comment_type = isset( $_POST['comment_type'] ) ? trim( $_POST['comment_type'] ) : '';
948
+ if ( current_user_can( 'unfiltered_html' ) ) {
949
+ if ( ! isset( $_POST['_wp_unfiltered_html_comment'] ) )
950
+ $_POST['_wp_unfiltered_html_comment'] = '';
951
+
952
+ if ( wp_create_nonce( 'unfiltered-html-comment' ) != $_POST['_wp_unfiltered_html_comment'] ) {
953
+ kses_remove_filters(); // start with a clean slate
954
+ kses_init_filters(); // set up the filters
955
+ }
956
+ }
957
+ } else {
958
+ wp_die( __( 'Sorry, you must be logged in to reply to a comment.' ) );
959
+ }
960
+
961
+ if ( '' == $comment_content )
962
+ wp_die( __( 'ERROR: please type a comment.' ) );
963
+
964
+ $comment_parent = 0;
965
+ if ( isset( $_POST['comment_ID'] ) )
966
+ $comment_parent = absint( $_POST['comment_ID'] );
967
+ $comment_auto_approved = false;
968
+ $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
969
+
970
+ // Automatically approve parent comment.
971
+ if ( !empty($_POST['approve_parent']) ) {
972
+ $parent = get_comment( $comment_parent );
973
+
974
+ if ( $parent && $parent->comment_approved === '0' && $parent->comment_post_ID == $comment_post_ID ) {
975
+ if ( wp_set_comment_status( $parent->comment_ID, 'approve' ) )
976
+ $comment_auto_approved = true;
977
+ }
978
+ }
979
+
980
+ $comment_id = wp_new_comment( $commentdata );
981
+ $comment = get_comment($comment_id);
982
+ if ( ! $comment ) wp_die( 1 );
983
+
984
+ $position = ( isset($_POST['position']) && (int) $_POST['position'] ) ? (int) $_POST['position'] : '-1';
985
+
986
+ ob_start();
987
+ if ( isset( $_REQUEST['mode'] ) && 'dashboard' == $_REQUEST['mode'] ) {
988
+ require_once( ABSPATH . 'wp-admin/includes/dashboard.php' );
989
+ _wp_dashboard_recent_comments_row( $comment );
990
+ } else {
991
+ if ( isset( $_REQUEST['mode'] ) && 'single' == $_REQUEST['mode'] ) {
992
+ $wp_list_table = _get_list_table('WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
993
+ } else {
994
+ $wp_list_table = _get_list_table('WP_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
995
+ }
996
+ $wp_list_table->single_row( $comment );
997
+ }
998
+ $comment_list_item = ob_get_clean();
999
+
1000
+ $response = array(
1001
+ 'what' => 'comment',
1002
+ 'id' => $comment->comment_ID,
1003
+ 'data' => $comment_list_item,
1004
+ 'position' => $position
1005
+ );
1006
+
1007
+ if ( $comment_auto_approved )
1008
+ $response['supplemental'] = array( 'parent_approved' => $parent->comment_ID );
1009
+
1010
+ $x = new WP_Ajax_Response();
1011
+ $x->add( $response );
1012
+ $x->send();
1013
+ }
1014
+
1015
+ /**
1016
+ * Ajax handler for editing a comment.
1017
+ *
1018
+ * @since 3.1.0
1019
+ */
1020
+ function wp_ajax_edit_comment() {
1021
+ global $wp_list_table;
1022
+
1023
+ check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' );
1024
+
1025
+ $comment_id = (int) $_POST['comment_ID'];
1026
+ if ( ! current_user_can( 'edit_comment', $comment_id ) )
1027
+ wp_die( -1 );
1028
+
1029
+ if ( '' == $_POST['content'] )
1030
+ wp_die( __( 'ERROR: please type a comment.' ) );
1031
+
1032
+ if ( isset( $_POST['status'] ) )
1033
+ $_POST['comment_status'] = $_POST['status'];
1034
+ edit_comment();
1035
+
1036
+ $position = ( isset($_POST['position']) && (int) $_POST['position']) ? (int) $_POST['position'] : '-1';
1037
+ $checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
1038
+ $wp_list_table = _get_list_table( $checkbox ? 'WP_Comments_List_Table' : 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
1039
+
1040
+ $comment = get_comment( $comment_id );
1041
+ if ( empty( $comment->comment_ID ) )
1042
+ wp_die( -1 );
1043
+
1044
+ ob_start();
1045
+ $wp_list_table->single_row( $comment );
1046
+ $comment_list_item = ob_get_clean();
1047
+
1048
+ $x = new WP_Ajax_Response();
1049
+
1050
+ $x->add( array(
1051
+ 'what' => 'edit_comment',
1052
+ 'id' => $comment->comment_ID,
1053
+ 'data' => $comment_list_item,
1054
+ 'position' => $position
1055
+ ));
1056
+
1057
+ $x->send();
1058
+ }
1059
+
1060
+ /**
1061
+ * Ajax handler for adding a menu item.
1062
+ *
1063
+ * @since 3.1.0
1064
+ */
1065
+ function wp_ajax_add_menu_item() {
1066
+ check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
1067
+
1068
+ if ( ! current_user_can( 'edit_theme_options' ) )
1069
+ wp_die( -1 );
1070
+
1071
+ require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
1072
+
1073
+ // For performance reasons, we omit some object properties from the checklist.
1074
+ // The following is a hacky way to restore them when adding non-custom items.
1075
+
1076
+ $menu_items_data = array();
1077
+ foreach ( (array) $_POST['menu-item'] as $menu_item_data ) {
1078
+ if (
1079
+ ! empty( $menu_item_data['menu-item-type'] ) &&
1080
+ 'custom' != $menu_item_data['menu-item-type'] &&
1081
+ ! empty( $menu_item_data['menu-item-object-id'] )
1082
+ ) {
1083
+ switch( $menu_item_data['menu-item-type'] ) {
1084
+ case 'post_type' :
1085
+ $_object = get_post( $menu_item_data['menu-item-object-id'] );
1086
+ break;
1087
+
1088
+ case 'taxonomy' :
1089
+ $_object = get_term( $menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object'] );
1090
+ break;
1091
+ }
1092
+
1093
+ $_menu_items = array_map( 'wp_setup_nav_menu_item', array( $_object ) );
1094
+ $_menu_item = reset( $_menu_items );
1095
+
1096
+ // Restore the missing menu item properties
1097
+ $menu_item_data['menu-item-description'] = $_menu_item->description;
1098
+ }
1099
+
1100
+ $menu_items_data[] = $menu_item_data;
1101
+ }
1102
+
1103
+ $item_ids = wp_save_nav_menu_items( 0, $menu_items_data );
1104
+ if ( is_wp_error( $item_ids ) )
1105
+ wp_die( 0 );
1106
+
1107
+ $menu_items = array();
1108
+
1109
+ foreach ( (array) $item_ids as $menu_item_id ) {
1110
+ $menu_obj = get_post( $menu_item_id );
1111
+ if ( ! empty( $menu_obj->ID ) ) {
1112
+ $menu_obj = wp_setup_nav_menu_item( $menu_obj );
1113
+ $menu_obj->label = $menu_obj->title; // don't show "(pending)" in ajax-added items
1114
+ $menu_items[] = $menu_obj;
1115
+ }
1116
+ }
1117
+
1118
+ /** This filter is documented in wp-admin/includes/nav-menu.php */
1119
+ $walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $_POST['menu'] );
1120
+
1121
+ if ( ! class_exists( $walker_class_name ) )
1122
+ wp_die( 0 );
1123
+
1124
+ if ( ! empty( $menu_items ) ) {
1125
+ $args = array(
1126
+ 'after' => '',
1127
+ 'before' => '',
1128
+ 'link_after' => '',
1129
+ 'link_before' => '',
1130
+ 'walker' => new $walker_class_name,
1131
+ );
1132
+ echo walk_nav_menu_tree( $menu_items, 0, (object) $args );
1133
+ }
1134
+ wp_die();
1135
+ }
1136
+
1137
+ /**
1138
+ * Ajax handler for adding meta.
1139
+ *
1140
+ * @since 3.1.0
1141
+ */
1142
+ function wp_ajax_add_meta() {
1143
+ check_ajax_referer( 'add-meta', '_ajax_nonce-add-meta' );
1144
+ $c = 0;
1145
+ $pid = (int) $_POST['post_id'];
1146
+ $post = get_post( $pid );
1147
+
1148
+ if ( isset($_POST['metakeyselect']) || isset($_POST['metakeyinput']) ) {
1149
+ if ( !current_user_can( 'edit_post', $pid ) )
1150
+ wp_die( -1 );
1151
+ if ( isset($_POST['metakeyselect']) && '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) )
1152
+ wp_die( 1 );
1153
+
1154
+ // If the post is an autodraft, save the post as a draft and then attempt to save the meta.
1155
+ if ( $post->post_status == 'auto-draft' ) {
1156
+ $save_POST = $_POST; // Backup $_POST
1157
+ $_POST = array(); // Make it empty for edit_post()
1158
+ $_POST['action'] = 'draft'; // Warning fix
1159
+ $_POST['post_ID'] = $pid;
1160
+ $_POST['post_type'] = $post->post_type;
1161
+ $_POST['post_status'] = 'draft';
1162
+ $now = current_time('timestamp', 1);
1163
+ $_POST['post_title'] = sprintf( __( 'Draft created on %1$s at %2$s' ), date( get_option( 'date_format' ), $now ), date( get_option( 'time_format' ), $now ) );
1164
+
1165
+ if ( $pid = edit_post() ) {
1166
+ if ( is_wp_error( $pid ) ) {
1167
+ $x = new WP_Ajax_Response( array(
1168
+ 'what' => 'meta',
1169
+ 'data' => $pid
1170
+ ) );
1171
+ $x->send();
1172
+ }
1173
+ $_POST = $save_POST; // Now we can restore original $_POST again
1174
+ if ( !$mid = add_meta( $pid ) )
1175
+ wp_die( __( 'Please provide a custom field value.' ) );
1176
+ } else {
1177
+ wp_die( 0 );
1178
+ }
1179
+ } elseif ( ! $mid = add_meta( $pid ) ) {
1180
+ wp_die( __( 'Please provide a custom field value.' ) );
1181
+ }
1182
+
1183
+ $meta = get_metadata_by_mid( 'post', $mid );
1184
+ $pid = (int) $meta->post_id;
1185
+ $meta = get_object_vars( $meta );
1186
+ $x = new WP_Ajax_Response( array(
1187
+ 'what' => 'meta',
1188
+ 'id' => $mid,
1189
+ 'data' => _list_meta_row( $meta, $c ),
1190
+ 'position' => 1,
1191
+ 'supplemental' => array('postid' => $pid)
1192
+ ) );
1193
+ } else { // Update?
1194
+ $mid = (int) key( $_POST['meta'] );
1195
+ $key = wp_unslash( $_POST['meta'][$mid]['key'] );
1196
+ $value = wp_unslash( $_POST['meta'][$mid]['value'] );
1197
+ if ( '' == trim($key) )
1198
+ wp_die( __( 'Please provide a custom field name.' ) );
1199
+ if ( '' == trim($value) )
1200
+ wp_die( __( 'Please provide a custom field value.' ) );
1201
+ if ( ! $meta = get_metadata_by_mid( 'post', $mid ) )
1202
+ wp_die( 0 ); // if meta doesn't exist
1203
+ if ( is_protected_meta( $meta->meta_key, 'post' ) || is_protected_meta( $key, 'post' ) ||
1204
+ ! current_user_can( 'edit_post_meta', $meta->post_id, $meta->meta_key ) ||
1205
+ ! current_user_can( 'edit_post_meta', $meta->post_id, $key ) )
1206
+ wp_die( -1 );
1207
+ if ( $meta->meta_value != $value || $meta->meta_key != $key ) {
1208
+ if ( !$u = update_metadata_by_mid( 'post', $mid, $value, $key ) )
1209
+ wp_die( 0 ); // We know meta exists; we also know it's unchanged (or DB error, in which case there are bigger problems).
1210
+ }
1211
+
1212
+ $x = new WP_Ajax_Response( array(
1213
+ 'what' => 'meta',
1214
+ 'id' => $mid, 'old_id' => $mid,
1215
+ 'data' => _list_meta_row( array(
1216
+ 'meta_key' => $key,
1217
+ 'meta_value' => $value,
1218
+ 'meta_id' => $mid
1219
+ ), $c ),
1220
+ 'position' => 0,
1221
+ 'supplemental' => array('postid' => $meta->post_id)
1222
+ ) );
1223
+ }
1224
+ $x->send();
1225
+ }
1226
+
1227
+ /**
1228
+ * Ajax handler for adding a user.
1229
+ *
1230
+ * @since 3.1.0
1231
+ *
1232
+ * @param string $action Action to perform.
1233
+ */
1234
+ function wp_ajax_add_user( $action ) {
1235
+ global $wp_list_table;
1236
+ if ( empty( $action ) )
1237
+ $action = 'add-user';
1238
+
1239
+ check_ajax_referer( $action );
1240
+ if ( ! current_user_can('create_users') )
1241
+ wp_die( -1 );
1242
+ if ( ! $user_id = edit_user() ) {
1243
+ wp_die( 0 );
1244
+ } elseif ( is_wp_error( $user_id ) ) {
1245
+ $x = new WP_Ajax_Response( array(
1246
+ 'what' => 'user',
1247
+ 'id' => $user_id
1248
+ ) );
1249
+ $x->send();
1250
+ }
1251
+ $user_object = get_userdata( $user_id );
1252
+
1253
+ $wp_list_table = _get_list_table('WP_Users_List_Table');
1254
+
1255
+ $role = current( $user_object->roles );
1256
+
1257
+ $x = new WP_Ajax_Response( array(
1258
+ 'what' => 'user',
1259
+ 'id' => $user_id,
1260
+ 'data' => $wp_list_table->single_row( $user_object, '', $role ),
1261
+ 'supplemental' => array(
1262
+ 'show-link' => sprintf(__( 'User <a href="#%s">%s</a> added' ), "user-$user_id", $user_object->user_login),
1263
+ 'role' => $role,
1264
+ )
1265
+ ) );
1266
+ $x->send();
1267
+ }
1268
+
1269
+ /**
1270
+ * Ajax handler for closed post boxes.
1271
+ *
1272
+ * @since 3.1.0
1273
+ */
1274
+ function wp_ajax_closed_postboxes() {
1275
+ check_ajax_referer( 'closedpostboxes', 'closedpostboxesnonce' );
1276
+ $closed = isset( $_POST['closed'] ) ? explode( ',', $_POST['closed']) : array();
1277
+ $closed = array_filter($closed);
1278
+
1279
+ $hidden = isset( $_POST['hidden'] ) ? explode( ',', $_POST['hidden']) : array();
1280
+ $hidden = array_filter($hidden);
1281
+
1282
+ $page = isset( $_POST['page'] ) ? $_POST['page'] : '';
1283
+
1284
+ if ( $page != sanitize_key( $page ) )
1285
+ wp_die( 0 );
1286
+
1287
+ if ( ! $user = wp_get_current_user() )
1288
+ wp_die( -1 );
1289
+
1290
+ if ( is_array($closed) )
1291
+ update_user_option($user->ID, "closedpostboxes_$page", $closed, true);
1292
+
1293
+ if ( is_array($hidden) ) {
1294
+ $hidden = array_diff( $hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu') ); // postboxes that are always shown
1295
+ update_user_option($user->ID, "metaboxhidden_$page", $hidden, true);
1296
+ }
1297
+
1298
+ wp_die( 1 );
1299
+ }
1300
+
1301
+ /**
1302
+ * Ajax handler for hidden columns.
1303
+ *
1304
+ * @since 3.1.0
1305
+ */
1306
+ function wp_ajax_hidden_columns() {
1307
+ check_ajax_referer( 'screen-options-nonce', 'screenoptionnonce' );
1308
+ $hidden = explode( ',', isset( $_POST['hidden'] ) ? $_POST['hidden'] : '' );
1309
+ $page = isset( $_POST['page'] ) ? $_POST['page'] : '';
1310
+
1311
+ if ( $page != sanitize_key( $page ) )
1312
+ wp_die( 0 );
1313
+
1314
+ if ( ! $user = wp_get_current_user() )
1315
+ wp_die( -1 );
1316
+
1317
+ if ( is_array($hidden) )
1318
+ update_user_option($user->ID, "manage{$page}columnshidden", $hidden, true);
1319
+
1320
+ wp_die( 1 );
1321
+ }
1322
+
1323
+ /**
1324
+ * Ajax handler for updating whether to display the welcome panel.
1325
+ *
1326
+ * @since 3.1.0
1327
+ */
1328
+ function wp_ajax_update_welcome_panel() {
1329
+ check_ajax_referer( 'welcome-panel-nonce', 'welcomepanelnonce' );
1330
+
1331
+ if ( ! current_user_can( 'edit_theme_options' ) )
1332
+ wp_die( -1 );
1333
+
1334
+ update_user_meta( get_current_user_id(), 'show_welcome_panel', empty( $_POST['visible'] ) ? 0 : 1 );
1335
+
1336
+ wp_die( 1 );
1337
+ }
1338
+
1339
+ /**
1340
+ * Ajax handler for retrieving menu meta boxes.
1341
+ *
1342
+ * @since 3.1.0
1343
+ */
1344
+ function wp_ajax_menu_get_metabox() {
1345
+ if ( ! current_user_can( 'edit_theme_options' ) )
1346
+ wp_die( -1 );
1347
+
1348
+ require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
1349
+
1350
+ if ( isset( $_POST['item-type'] ) && 'post_type' == $_POST['item-type'] ) {
1351
+ $type = 'posttype';
1352
+ $callback = 'wp_nav_menu_item_post_type_meta_box';
1353
+ $items = (array) get_post_types( array( 'show_in_nav_menus' => true ), 'object' );
1354
+ } elseif ( isset( $_POST['item-type'] ) && 'taxonomy' == $_POST['item-type'] ) {
1355
+ $type = 'taxonomy';
1356
+ $callback = 'wp_nav_menu_item_taxonomy_meta_box';
1357
+ $items = (array) get_taxonomies( array( 'show_ui' => true ), 'object' );
1358
+ }
1359
+
1360
+ if ( ! empty( $_POST['item-object'] ) && isset( $items[$_POST['item-object']] ) ) {
1361
+ $menus_meta_box_object = $items[ $_POST['item-object'] ];
1362
+
1363
+ /** This filter is documented in wp-admin/includes/nav-menu.php */
1364
+ $item = apply_filters( 'nav_menu_meta_box_object', $menus_meta_box_object );
1365
+ ob_start();
1366
+ call_user_func_array($callback, array(
1367
+ null,
1368
+ array(
1369
+ 'id' => 'add-' . $item->name,
1370
+ 'title' => $item->labels->name,
1371
+ 'callback' => $callback,
1372
+ 'args' => $item,
1373
+ )
1374
+ ));
1375
+
1376
+ $markup = ob_get_clean();
1377
+
1378
+ echo wp_json_encode(array(
1379
+ 'replace-id' => $type . '-' . $item->name,
1380
+ 'markup' => $markup,
1381
+ ));
1382
+ }
1383
+
1384
+ wp_die();
1385
+ }
1386
+
1387
+ /**
1388
+ * Ajax handler for internal linking.
1389
+ *
1390
+ * @since 3.1.0
1391
+ */
1392
+ function wp_ajax_wp_link_ajax() {
1393
+ check_ajax_referer( 'internal-linking', '_ajax_linking_nonce' );
1394
+
1395
+ $args = array();
1396
+
1397
+ if ( isset( $_POST['search'] ) )
1398
+ $args['s'] = wp_unslash( $_POST['search'] );
1399
+ $args['pagenum'] = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 1;
1400
+
1401
+ require(ABSPATH . WPINC . '/class-wp-editor.php');
1402
+ $results = _WP_Editors::wp_link_query( $args );
1403
+
1404
+ if ( ! isset( $results ) )
1405
+ wp_die( 0 );
1406
+
1407
+ echo wp_json_encode( $results );
1408
+ echo "\n";
1409
+
1410
+ wp_die();
1411
+ }
1412
+
1413
+ /**
1414
+ * Ajax handler for menu locations save.
1415
+ *
1416
+ * @since 3.1.0
1417
+ */
1418
+ function wp_ajax_menu_locations_save() {
1419
+ if ( ! current_user_can( 'edit_theme_options' ) )
1420
+ wp_die( -1 );
1421
+ check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' );
1422
+ if ( ! isset( $_POST['menu-locations'] ) )
1423
+ wp_die( 0 );
1424
+ set_theme_mod( 'nav_menu_locations', array_map( 'absint', $_POST['menu-locations'] ) );
1425
+ wp_die( 1 );
1426
+ }
1427
+
1428
+ /**
1429
+ * Ajax handler for saving the meta box order.
1430
+ *
1431
+ * @since 3.1.0
1432
+ */
1433
+ function wp_ajax_meta_box_order() {
1434
+ check_ajax_referer( 'meta-box-order' );
1435
+ $order = isset( $_POST['order'] ) ? (array) $_POST['order'] : false;
1436
+ $page_columns = isset( $_POST['page_columns'] ) ? $_POST['page_columns'] : 'auto';
1437
+
1438
+ if ( $page_columns != 'auto' )
1439
+ $page_columns = (int) $page_columns;
1440
+
1441
+ $page = isset( $_POST['page'] ) ? $_POST['page'] : '';
1442
+
1443
+ if ( $page != sanitize_key( $page ) )
1444
+ wp_die( 0 );
1445
+
1446
+ if ( ! $user = wp_get_current_user() )
1447
+ wp_die( -1 );
1448
+
1449
+ if ( $order )
1450
+ update_user_option($user->ID, "meta-box-order_$page", $order, true);
1451
+
1452
+ if ( $page_columns )
1453
+ update_user_option($user->ID, "screen_layout_$page", $page_columns, true);
1454
+
1455
+ wp_die( 1 );
1456
+ }
1457
+
1458
+ /**
1459
+ * Ajax handler for menu quick searching.
1460
+ *
1461
+ * @since 3.1.0
1462
+ */
1463
+ function wp_ajax_menu_quick_search() {
1464
+ if ( ! current_user_can( 'edit_theme_options' ) )
1465
+ wp_die( -1 );
1466
+
1467
+ require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
1468
+
1469
+ _wp_ajax_menu_quick_search( $_POST );
1470
+
1471
+ wp_die();
1472
+ }
1473
+
1474
+ /**
1475
+ * Ajax handler to retrieve a permalink.
1476
+ *
1477
+ * @since 3.1.0
1478
+ */
1479
+ function wp_ajax_get_permalink() {
1480
+ check_ajax_referer( 'getpermalink', 'getpermalinknonce' );
1481
+ $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
1482
+ wp_die( add_query_arg( array( 'preview' => 'true' ), get_permalink( $post_id ) ) );
1483
+ }
1484
+
1485
+ /**
1486
+ * Ajax handler to retrieve a sample permalink.
1487
+ *
1488
+ * @since 3.1.0
1489
+ */
1490
+ function wp_ajax_sample_permalink() {
1491
+ check_ajax_referer( 'samplepermalink', 'samplepermalinknonce' );
1492
+ $post_id = isset($_POST['post_id'])? intval($_POST['post_id']) : 0;
1493
+ $title = isset($_POST['new_title'])? $_POST['new_title'] : '';
1494
+ $slug = isset($_POST['new_slug'])? $_POST['new_slug'] : null;
1495
+ wp_die( get_sample_permalink_html( $post_id, $title, $slug ) );
1496
+ }
1497
+
1498
+ /**
1499
+ * Ajax handler for Quick Edit saving a post from a list table.
1500
+ *
1501
+ * @since 3.1.0
1502
+ */
1503
+ function wp_ajax_inline_save() {
1504
+ global $wp_list_table;
1505
+
1506
+ check_ajax_referer( 'inlineeditnonce', '_inline_edit' );
1507
+
1508
+ if ( ! isset($_POST['post_ID']) || ! ( $post_ID = (int) $_POST['post_ID'] ) )
1509
+ wp_die();
1510
+
1511
+ if ( 'page' == $_POST['post_type'] ) {
1512
+ if ( ! current_user_can( 'edit_page', $post_ID ) )
1513
+ wp_die( __( 'You are not allowed to edit this page.' ) );
1514
+ } else {
1515
+ if ( ! current_user_can( 'edit_post', $post_ID ) )
1516
+ wp_die( __( 'You are not allowed to edit this post.' ) );
1517
+ }
1518
+
1519
+ if ( $last = wp_check_post_lock( $post_ID ) ) {
1520
+ $last_user = get_userdata( $last );
1521
+ $last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
1522
+ printf( $_POST['post_type'] == 'page' ? __( 'Saving is disabled: %s is currently editing this page.' ) : __( 'Saving is disabled: %s is currently editing this post.' ), esc_html( $last_user_name ) );
1523
+ wp_die();
1524
+ }
1525
+
1526
+ $data = &$_POST;
1527
+
1528
+ $post = get_post( $post_ID, ARRAY_A );
1529
+
1530
+ // Since it's coming from the database.
1531
+ $post = wp_slash($post);
1532
+
1533
+ $data['content'] = $post['post_content'];
1534
+ $data['excerpt'] = $post['post_excerpt'];
1535
+
1536
+ // Rename.
1537
+ $data['user_ID'] = get_current_user_id();
1538
+
1539
+ if ( isset($data['post_parent']) )
1540
+ $data['parent_id'] = $data['post_parent'];
1541
+
1542
+ // Status.
1543
+ if ( isset($data['keep_private']) && 'private' == $data['keep_private'] )
1544
+ $data['post_status'] = 'private';
1545
+ else
1546
+ $data['post_status'] = $data['_status'];
1547
+
1548
+ if ( empty($data['comment_status']) )
1549
+ $data['comment_status'] = 'closed';
1550
+ if ( empty($data['ping_status']) )
1551
+ $data['ping_status'] = 'closed';
1552
+
1553
+ // Exclude terms from taxonomies that are not supposed to appear in Quick Edit.
1554
+ if ( ! empty( $data['tax_input'] ) ) {
1555
+ foreach ( $data['tax_input'] as $taxonomy => $terms ) {
1556
+ $tax_object = get_taxonomy( $taxonomy );
1557
+ /** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */
1558
+ if ( ! apply_filters( 'quick_edit_show_taxonomy', $tax_object->show_in_quick_edit, $taxonomy, $post['post_type'] ) ) {
1559
+ unset( $data['tax_input'][ $taxonomy ] );
1560
+ }
1561
+ }
1562
+ }
1563
+
1564
+ // Hack: wp_unique_post_slug() doesn't work for drafts, so we will fake that our post is published.
1565
+ if ( ! empty( $data['post_name'] ) && in_array( $post['post_status'], array( 'draft', 'pending' ) ) ) {
1566
+ $post['post_status'] = 'publish';
1567
+ $data['post_name'] = wp_unique_post_slug( $data['post_name'], $post['ID'], $post['post_status'], $post['post_type'], $post['post_parent'] );
1568
+ }
1569
+
1570
+ // Update the post.
1571
+ edit_post();
1572
+
1573
+ $wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
1574
+
1575
+ $level = 0;
1576
+ $request_post = array( get_post( $_POST['post_ID'] ) );
1577
+ $parent = $request_post[0]->post_parent;
1578
+
1579
+ while ( $parent > 0 ) {
1580
+ $parent_post = get_post( $parent );
1581
+ $parent = $parent_post->post_parent;
1582
+ $level++;
1583
+ }
1584
+
1585
+ $wp_list_table->display_rows( array( get_post( $_POST['post_ID'] ) ), $level );
1586
+
1587
+ wp_die();
1588
+ }
1589
+
1590
+ /**
1591
+ * Ajax handler for quick edit saving for a term.
1592
+ *
1593
+ * @since 3.1.0
1594
+ */
1595
+ function wp_ajax_inline_save_tax() {
1596
+ global $wp_list_table;
1597
+
1598
+ check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' );
1599
+
1600
+ $taxonomy = sanitize_key( $_POST['taxonomy'] );
1601
+ $tax = get_taxonomy( $taxonomy );
1602
+ if ( ! $tax )
1603
+ wp_die( 0 );
1604
+
1605
+ if ( ! current_user_can( $tax->cap->edit_terms ) )
1606
+ wp_die( -1 );
1607
+
1608
+ $wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => 'edit-' . $taxonomy ) );
1609
+
1610
+ if ( ! isset($_POST['tax_ID']) || ! ( $id = (int) $_POST['tax_ID'] ) )
1611
+ wp_die( -1 );
1612
+
1613
+ $tag = get_term( $id, $taxonomy );
1614
+ $_POST['description'] = $tag->description;
1615
+
1616
+ $updated = wp_update_term($id, $taxonomy, $_POST);
1617
+ if ( $updated && !is_wp_error($updated) ) {
1618
+ $tag = get_term( $updated['term_id'], $taxonomy );
1619
+ if ( !$tag || is_wp_error( $tag ) ) {
1620
+ if ( is_wp_error($tag) && $tag->get_error_message() )
1621
+ wp_die( $tag->get_error_message() );
1622
+ wp_die( __( 'Item not updated.' ) );
1623
+ }
1624
+ } else {
1625
+ if ( is_wp_error($updated) && $updated->get_error_message() )
1626
+ wp_die( $updated->get_error_message() );
1627
+ wp_die( __( 'Item not updated.' ) );
1628
+ }
1629
+ $level = 0;
1630
+ $parent = $tag->parent;
1631
+ while ( $parent > 0 ) {
1632
+ $parent_tag = get_term( $parent, $taxonomy );
1633
+ $parent = $parent_tag->parent;
1634
+ $level++;
1635
+ }
1636
+ $wp_list_table->single_row( $tag, $level );
1637
+ wp_die();
1638
+ }
1639
+
1640
+ /**
1641
+ * Ajax handler for querying posts for the Find Posts modal.
1642
+ *
1643
+ * @see window.findPosts
1644
+ *
1645
+ * @since 3.1.0
1646
+ */
1647
+ function wp_ajax_find_posts() {
1648
+ check_ajax_referer( 'find-posts' );
1649
+
1650
+ $post_types = get_post_types( array( 'public' => true ), 'objects' );
1651
+ unset( $post_types['attachment'] );
1652
+
1653
+ $s = wp_unslash( $_POST['ps'] );
1654
+ $args = array(
1655
+ 'post_type' => array_keys( $post_types ),
1656
+ 'post_status' => 'any',
1657
+ 'posts_per_page' => 50,
1658
+ );
1659
+ if ( '' !== $s )
1660
+ $args['s'] = $s;
1661
+
1662
+ $posts = get_posts( $args );
1663
+
1664
+ if ( ! $posts ) {
1665
+ wp_send_json_error( __( 'No items found.' ) );
1666
+ }
1667
+
1668
+ $html = '<table class="widefat"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th class="no-break">'.__('Type').'</th><th class="no-break">'.__('Date').'</th><th class="no-break">'.__('Status').'</th></tr></thead><tbody>';
1669
+ $alt = '';
1670
+ foreach ( $posts as $post ) {
1671
+ $title = trim( $post->post_title ) ? $post->post_title : __( '(no title)' );
1672
+ $alt = ( 'alternate' == $alt ) ? '' : 'alternate';
1673
+
1674
+ switch ( $post->post_status ) {
1675
+ case 'publish' :
1676
+ case 'private' :
1677
+ $stat = __('Published');
1678
+ break;
1679
+ case 'future' :
1680
+ $stat = __('Scheduled');
1681
+ break;
1682
+ case 'pending' :
1683
+ $stat = __('Pending Review');
1684
+ break;
1685
+ case 'draft' :
1686
+ $stat = __('Draft');
1687
+ break;
1688
+ }
1689
+
1690
+ if ( '0000-00-00 00:00:00' == $post->post_date ) {
1691
+ $time = '';
1692
+ } else {
1693
+ /* translators: date format in table columns, see http://php.net/date */
1694
+ $time = mysql2date(__('Y/m/d'), $post->post_date);
1695
+ }
1696
+
1697
+ $html .= '<tr class="' . trim( 'found-posts ' . $alt ) . '"><td class="found-radio"><input type="radio" id="found-'.$post->ID.'" name="found_post_id" value="' . esc_attr($post->ID) . '"></td>';
1698
+ $html .= '<td><label for="found-'.$post->ID.'">' . esc_html( $title ) . '</label></td><td class="no-break">' . esc_html( $post_types[$post->post_type]->labels->singular_name ) . '</td><td class="no-break">'.esc_html( $time ) . '</td><td class="no-break">' . esc_html( $stat ). ' </td></tr>' . "\n\n";
1699
+ }
1700
+
1701
+ $html .= '</tbody></table>';
1702
+
1703
+ wp_send_json_success( $html );
1704
+ }
1705
+
1706
+ /**
1707
+ * Ajax handler for saving the widgets order.
1708
+ *
1709
+ * @since 3.1.0
1710
+ */
1711
+ function wp_ajax_widgets_order() {
1712
+ check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
1713
+
1714
+ if ( !current_user_can('edit_theme_options') )
1715
+ wp_die( -1 );
1716
+
1717
+ unset( $_POST['savewidgets'], $_POST['action'] );
1718
+
1719
+ // Save widgets order for all sidebars.
1720
+ if ( is_array($_POST['sidebars']) ) {
1721
+ $sidebars = array();
1722
+ foreach ( $_POST['sidebars'] as $key => $val ) {
1723
+ $sb = array();
1724
+ if ( !empty($val) ) {
1725
+ $val = explode(',', $val);
1726
+ foreach ( $val as $k => $v ) {
1727
+ if ( strpos($v, 'widget-') === false )
1728
+ continue;
1729
+
1730
+ $sb[$k] = substr($v, strpos($v, '_') + 1);
1731
+ }
1732
+ }
1733
+ $sidebars[$key] = $sb;
1734
+ }
1735
+ wp_set_sidebars_widgets($sidebars);
1736
+ wp_die( 1 );
1737
+ }
1738
+
1739
+ wp_die( -1 );
1740
+ }
1741
+
1742
+ /**
1743
+ * Ajax handler for saving a widget.
1744
+ *
1745
+ * @since 3.1.0
1746
+ */
1747
+ function wp_ajax_save_widget() {
1748
+ global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates;
1749
+
1750
+ check_ajax_referer( 'save-sidebar-widgets', 'savewidgets' );
1751
+
1752
+ if ( !current_user_can('edit_theme_options') || !isset($_POST['id_base']) )
1753
+ wp_die( -1 );
1754
+
1755
+ unset( $_POST['savewidgets'], $_POST['action'] );
1756
+
1757
+ /**
1758
+ * Fires early when editing the widgets displayed in sidebars.
1759
+ *
1760
+ * @since 2.8.0
1761
+ */
1762
+ do_action( 'load-widgets.php' );
1763
+
1764
+ /**
1765
+ * Fires early when editing the widgets displayed in sidebars.
1766
+ *
1767
+ * @since 2.8.0
1768
+ */
1769
+ do_action( 'widgets.php' );
1770
+
1771
+ /** This action is documented in wp-admin/widgets.php */
1772
+ do_action( 'sidebar_admin_setup' );
1773
+
1774
+ $id_base = $_POST['id_base'];
1775
+ $widget_id = $_POST['widget-id'];
1776
+ $sidebar_id = $_POST['sidebar'];
1777
+ $multi_number = !empty($_POST['multi_number']) ? (int) $_POST['multi_number'] : 0;
1778
+ $settings = isset($_POST['widget-' . $id_base]) && is_array($_POST['widget-' . $id_base]) ? $_POST['widget-' . $id_base] : false;
1779
+ $error = '<p>' . __('An error has occurred. Please reload the page and try again.') . '</p>';
1780
+
1781
+ $sidebars = wp_get_sidebars_widgets();
1782
+ $sidebar = isset($sidebars[$sidebar_id]) ? $sidebars[$sidebar_id] : array();
1783
+
1784
+ // Delete.
1785
+ if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
1786
+
1787
+ if ( !isset($wp_registered_widgets[$widget_id]) )
1788
+ wp_die( $error );
1789
+
1790
+ $sidebar = array_diff( $sidebar, array($widget_id) );
1791
+ $_POST = array('sidebar' => $sidebar_id, 'widget-' . $id_base => array(), 'the-widget-id' => $widget_id, 'delete_widget' => '1');
1792
+ } elseif ( $settings && preg_match( '/__i__|%i%/', key($settings) ) ) {
1793
+ if ( !$multi_number )
1794
+ wp_die( $error );
1795
+
1796
+ $_POST[ 'widget-' . $id_base ] = array( $multi_number => reset( $settings ) );
1797
+ $widget_id = $id_base . '-' . $multi_number;
1798
+ $sidebar[] = $widget_id;
1799
+ }
1800
+ $_POST['widget-id'] = $sidebar;
1801
+
1802
+ foreach ( (array) $wp_registered_widget_updates as $name => $control ) {
1803
+
1804
+ if ( $name == $id_base ) {
1805
+ if ( !is_callable( $control['callback'] ) )
1806
+ continue;
1807
+
1808
+ ob_start();
1809
+ call_user_func_array( $control['callback'], $control['params'] );
1810
+ ob_end_clean();
1811
+ break;
1812
+ }
1813
+ }
1814
+
1815
+ if ( isset($_POST['delete_widget']) && $_POST['delete_widget'] ) {
1816
+ $sidebars[$sidebar_id] = $sidebar;
1817
+ wp_set_sidebars_widgets($sidebars);
1818
+ echo "deleted:$widget_id";
1819
+ wp_die();
1820
+ }
1821
+
1822
+ if ( !empty($_POST['add_new']) )
1823
+ wp_die();
1824
+
1825
+ if ( $form = $wp_registered_widget_controls[$widget_id] )
1826
+ call_user_func_array( $form['callback'], $form['params'] );
1827
+
1828
+ wp_die();
1829
+ }
1830
+
1831
+ /**
1832
+ * Ajax handler for saving a widget.
1833
+ *
1834
+ * @since 3.9.0
1835
+ */
1836
+ function wp_ajax_update_widget() {
1837
+ global $wp_customize;
1838
+ $wp_customize->widgets->wp_ajax_update_widget();
1839
+ }
1840
+
1841
+ /**
1842
+ * Ajax handler for uploading attachments
1843
+ *
1844
+ * @since 3.3.0
1845
+ */
1846
+ function wp_ajax_upload_attachment() {
1847
+ check_ajax_referer( 'media-form' );
1848
+ /*
1849
+ * This function does not use wp_send_json_success() / wp_send_json_error()
1850
+ * as the html4 Plupload handler requires a text/html content-type for older IE.
1851
+ * See https://core.trac.wordpress.org/ticket/31037
1852
+ */
1853
+
1854
+ if ( ! current_user_can( 'upload_files' ) ) {
1855
+ echo wp_json_encode( array(
1856
+ 'success' => false,
1857
+ 'data' => array(
1858
+ 'message' => __( "You don't have permission to upload files." ),
1859
+ 'filename' => $_FILES['async-upload']['name'],
1860
+ )
1861
+ ) );
1862
+
1863
+ wp_die();
1864
+ }
1865
+
1866
+ if ( isset( $_REQUEST['post_id'] ) ) {
1867
+ $post_id = $_REQUEST['post_id'];
1868
+ if ( ! current_user_can( 'edit_post', $post_id ) ) {
1869
+ echo wp_json_encode( array(
1870
+ 'success' => false,
1871
+ 'data' => array(
1872
+ 'message' => __( "You don't have permission to attach files to this post." ),
1873
+ 'filename' => $_FILES['async-upload']['name'],
1874
+ )
1875
+ ) );
1876
+
1877
+ wp_die();
1878
+ }
1879
+ } else {
1880
+ $post_id = null;
1881
+ }
1882
+
1883
+ $post_data = isset( $_REQUEST['post_data'] ) ? $_REQUEST['post_data'] : array();
1884
+
1885
+ // If the context is custom header or background, make sure the uploaded file is an image.
1886
+ if ( isset( $post_data['context'] ) && in_array( $post_data['context'], array( 'custom-header', 'custom-background' ) ) ) {
1887
+ $wp_filetype = wp_check_filetype_and_ext( $_FILES['async-upload']['tmp_name'], $_FILES['async-upload']['name'] );
1888
+ if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) ) {
1889
+ echo wp_json_encode( array(
1890
+ 'success' => false,
1891
+ 'data' => array(
1892
+ 'message' => __( 'The uploaded file is not a valid image. Please try again.' ),
1893
+ 'filename' => $_FILES['async-upload']['name'],
1894
+ )
1895
+ ) );
1896
+
1897
+ wp_die();
1898
+ }
1899
+ }
1900
+
1901
+ $attachment_id = media_handle_upload( 'async-upload', $post_id, $post_data );
1902
+
1903
+ if ( is_wp_error( $attachment_id ) ) {
1904
+ echo wp_json_encode( array(
1905
+ 'success' => false,
1906
+ 'data' => array(
1907
+ 'message' => $attachment_id->get_error_message(),
1908
+ 'filename' => $_FILES['async-upload']['name'],
1909
+ )
1910
+ ) );
1911
+
1912
+ wp_die();
1913
+ }
1914
+
1915
+ if ( isset( $post_data['context'] ) && isset( $post_data['theme'] ) ) {
1916
+ if ( 'custom-background' === $post_data['context'] )
1917
+ update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', $post_data['theme'] );
1918
+
1919
+ if ( 'custom-header' === $post_data['context'] )
1920
+ update_post_meta( $attachment_id, '_wp_attachment_is_custom_header', $post_data['theme'] );
1921
+ }
1922
+
1923
+ if ( ! $attachment = wp_prepare_attachment_for_js( $attachment_id ) )
1924
+ wp_die();
1925
+
1926
+ echo wp_json_encode( array(
1927
+ 'success' => true,
1928
+ 'data' => $attachment,
1929
+ ) );
1930
+
1931
+ wp_die();
1932
+ }
1933
+
1934
+ /**
1935
+ * Ajax handler for image editing.
1936
+ *
1937
+ * @since 3.1.0
1938
+ */
1939
+ function wp_ajax_image_editor() {
1940
+ $attachment_id = intval($_POST['postid']);
1941
+ if ( empty($attachment_id) || !current_user_can('edit_post', $attachment_id) )
1942
+ wp_die( -1 );
1943
+
1944
+ check_ajax_referer( "image_editor-$attachment_id" );
1945
+ include_once( ABSPATH . 'wp-admin/includes/image-edit.php' );
1946
+
1947
+ $msg = false;
1948
+ switch ( $_POST['do'] ) {
1949
+ case 'save' :
1950
+ $msg = wp_save_image($attachment_id);
1951
+ $msg = wp_json_encode($msg);
1952
+ wp_die( $msg );
1953
+ break;
1954
+ case 'scale' :
1955
+ $msg = wp_save_image($attachment_id);
1956
+ break;
1957
+ case 'restore' :
1958
+ $msg = wp_restore_image($attachment_id);
1959
+ break;
1960
+ }
1961
+
1962
+ wp_image_editor($attachment_id, $msg);
1963
+ wp_die();
1964
+ }
1965
+
1966
+ /**
1967
+ * Ajax handler for setting the featured image.
1968
+ *
1969
+ * @since 3.1.0
1970
+ */
1971
+ function wp_ajax_set_post_thumbnail() {
1972
+ $json = ! empty( $_REQUEST['json'] ); // New-style request
1973
+
1974
+ $post_ID = intval( $_POST['post_id'] );
1975
+ if ( ! current_user_can( 'edit_post', $post_ID ) )
1976
+ wp_die( -1 );
1977
+
1978
+ $thumbnail_id = intval( $_POST['thumbnail_id'] );
1979
+
1980
+ if ( $json )
1981
+ check_ajax_referer( "update-post_$post_ID" );
1982
+ else
1983
+ check_ajax_referer( "set_post_thumbnail-$post_ID" );
1984
+
1985
+ if ( $thumbnail_id == '-1' ) {
1986
+ if ( delete_post_thumbnail( $post_ID ) ) {
1987
+ $return = _wp_post_thumbnail_html( null, $post_ID );
1988
+ $json ? wp_send_json_success( $return ) : wp_die( $return );
1989
+ } else {
1990
+ wp_die( 0 );
1991
+ }
1992
+ }
1993
+
1994
+ if ( set_post_thumbnail( $post_ID, $thumbnail_id ) ) {
1995
+ $return = _wp_post_thumbnail_html( $thumbnail_id, $post_ID );
1996
+ $json ? wp_send_json_success( $return ) : wp_die( $return );
1997
+ }
1998
+
1999
+ wp_die( 0 );
2000
+ }
2001
+
2002
+ /**
2003
+ * AJAX handler for setting the featured image for an attachment.
2004
+ *
2005
+ * @since 4.0.0
2006
+ *
2007
+ * @see set_post_thumbnail()
2008
+ */
2009
+ function wp_ajax_set_attachment_thumbnail() {
2010
+ if ( empty( $_POST['urls'] ) || ! is_array( $_POST['urls'] ) ) {
2011
+ wp_send_json_error();
2012
+ }
2013
+
2014
+ $thumbnail_id = (int) $_POST['thumbnail_id'];
2015
+ if ( empty( $thumbnail_id ) ) {
2016
+ wp_send_json_error();
2017
+ }
2018
+
2019
+ $post_ids = array();
2020
+ // For each URL, try to find its corresponding post ID.
2021
+ foreach ( $_POST['urls'] as $url ) {
2022
+ $post_id = attachment_url_to_postid( $url );
2023
+ if ( ! empty( $post_id ) ) {
2024
+ $post_ids[] = $post_id;
2025
+ }
2026
+ }
2027
+
2028
+ if ( empty( $post_ids ) ) {
2029
+ wp_send_json_error();
2030
+ }
2031
+
2032
+ $success = 0;
2033
+ // For each found attachment, set its thumbnail.
2034
+ foreach ( $post_ids as $post_id ) {
2035
+ if ( ! current_user_can( 'edit_post', $post_id ) ) {
2036
+ continue;
2037
+ }
2038
+
2039
+ if ( set_post_thumbnail( $post_id, $thumbnail_id ) ) {
2040
+ $success++;
2041
+ }
2042
+ }
2043
+
2044
+ if ( 0 === $success ) {
2045
+ wp_send_json_error();
2046
+ } else {
2047
+ wp_send_json_success();
2048
+ }
2049
+
2050
+ wp_send_json_error();
2051
+ }
2052
+
2053
+ /**
2054
+ * Ajax handler for date formatting.
2055
+ *
2056
+ * @since 3.1.0
2057
+ */
2058
+ function wp_ajax_date_format() {
2059
+ wp_die( date_i18n( sanitize_option( 'date_format', wp_unslash( $_POST['date'] ) ) ) );
2060
+ }
2061
+
2062
+ /**
2063
+ * Ajax handler for time formatting.
2064
+ *
2065
+ * @since 3.1.0
2066
+ */
2067
+ function wp_ajax_time_format() {
2068
+ wp_die( date_i18n( sanitize_option( 'time_format', wp_unslash( $_POST['date'] ) ) ) );
2069
+ }
2070
+
2071
+ /**
2072
+ * Ajax handler for saving posts from the fullscreen editor.
2073
+ *
2074
+ * @since 3.1.0
2075
+ */
2076
+ function wp_ajax_wp_fullscreen_save_post() {
2077
+ $post_id = isset( $_POST['post_ID'] ) ? (int) $_POST['post_ID'] : 0;
2078
+
2079
+ $post = null;
2080
+
2081
+ if ( $post_id )
2082
+ $post = get_post( $post_id );
2083
+
2084
+ check_ajax_referer('update-post_' . $post_id, '_wpnonce');
2085
+
2086
+ $post_id = edit_post();
2087
+
2088
+ if ( is_wp_error( $post_id ) ) {
2089
+ wp_send_json_error();
2090
+ }
2091
+
2092
+ if ( $post ) {
2093
+ $last_date = mysql2date( get_option('date_format'), $post->post_modified );
2094
+ $last_time = mysql2date( get_option('time_format'), $post->post_modified );
2095
+ } else {
2096
+ $last_date = date_i18n( get_option('date_format') );
2097
+ $last_time = date_i18n( get_option('time_format') );
2098
+ }
2099
+
2100
+ if ( $last_id = get_post_meta( $post_id, '_edit_last', true ) ) {
2101
+ $last_user = get_userdata( $last_id );
2102
+ $last_edited = sprintf( __('Last edited by %1$s on %2$s at %3$s'), esc_html( $last_user->display_name ), $last_date, $last_time );
2103
+ } else {
2104
+ $last_edited = sprintf( __('Last edited on %1$s at %2$s'), $last_date, $last_time );
2105
+ }
2106
+
2107
+ wp_send_json_success( array( 'last_edited' => $last_edited ) );
2108
+ }
2109
+
2110
+ /**
2111
+ * Ajax handler for removing a post lock.
2112
+ *
2113
+ * @since 3.1.0
2114
+ */
2115
+ function wp_ajax_wp_remove_post_lock() {
2116
+ if ( empty( $_POST['post_ID'] ) || empty( $_POST['active_post_lock'] ) )
2117
+ wp_die( 0 );
2118
+ $post_id = (int) $_POST['post_ID'];
2119
+ if ( ! $post = get_post( $post_id ) )
2120
+ wp_die( 0 );
2121
+
2122
+ check_ajax_referer( 'update-post_' . $post_id );
2123
+
2124
+ if ( ! current_user_can( 'edit_post', $post_id ) )
2125
+ wp_die( -1 );
2126
+
2127
+ $active_lock = array_map( 'absint', explode( ':', $_POST['active_post_lock'] ) );
2128
+ if ( $active_lock[1] != get_current_user_id() )
2129
+ wp_die( 0 );
2130
+
2131
+ /**
2132
+ * Filter the post lock window duration.
2133
+ *
2134
+ * @since 3.3.0
2135
+ *
2136
+ * @param int $interval The interval in seconds the post lock duration
2137
+ * should last, plus 5 seconds. Default 150.
2138
+ */
2139
+ $new_lock = ( time() - apply_filters( 'wp_check_post_lock_window', 150 ) + 5 ) . ':' . $active_lock[1];
2140
+ update_post_meta( $post_id, '_edit_lock', $new_lock, implode( ':', $active_lock ) );
2141
+ wp_die( 1 );
2142
+ }
2143
+
2144
+ /**
2145
+ * Ajax handler for dismissing a WordPress pointer.
2146
+ *
2147
+ * @since 3.1.0
2148
+ */
2149
+ function wp_ajax_dismiss_wp_pointer() {
2150
+ $pointer = $_POST['pointer'];
2151
+ if ( $pointer != sanitize_key( $pointer ) )
2152
+ wp_die( 0 );
2153
+
2154
+ // check_ajax_referer( 'dismiss-pointer_' . $pointer );
2155
+
2156
+ $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) );
2157
+
2158
+ if ( in_array( $pointer, $dismissed ) )
2159
+ wp_die( 0 );
2160
+
2161
+ $dismissed[] = $pointer;
2162
+ $dismissed = implode( ',', $dismissed );
2163
+
2164
+ update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', $dismissed );
2165
+ wp_die( 1 );
2166
+ }
2167
+
2168
+ /**
2169
+ * Ajax handler for getting an attachment.
2170
+ *
2171
+ * @since 3.5.0
2172
+ */
2173
+ function wp_ajax_get_attachment() {
2174
+ if ( ! isset( $_REQUEST['id'] ) )
2175
+ wp_send_json_error();
2176
+
2177
+ if ( ! $id = absint( $_REQUEST['id'] ) )
2178
+ wp_send_json_error();
2179
+
2180
+ if ( ! $post = get_post( $id ) )
2181
+ wp_send_json_error();
2182
+
2183
+ if ( 'attachment' != $post->post_type )
2184
+ wp_send_json_error();
2185
+
2186
+ if ( ! current_user_can( 'upload_files' ) )
2187
+ wp_send_json_error();
2188
+
2189
+ if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
2190
+ wp_send_json_error();
2191
+
2192
+ wp_send_json_success( $attachment );
2193
+ }
2194
+
2195
+ /**
2196
+ * Ajax handler for querying attachments.
2197
+ *
2198
+ * @since 3.5.0
2199
+ */
2200
+ function wp_ajax_query_attachments() {
2201
+ if ( ! current_user_can( 'upload_files' ) )
2202
+ wp_send_json_error();
2203
+
2204
+ $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
2205
+ $keys = array(
2206
+ 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
2207
+ 'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
2208
+ );
2209
+ foreach ( get_taxonomies_for_attachments( 'objects' ) as $t ) {
2210
+ if ( $t->query_var && isset( $query[ $t->query_var ] ) ) {
2211
+ $keys[] = $t->query_var;
2212
+ }
2213
+ }
2214
+
2215
+ $query = array_intersect_key( $query, array_flip( $keys ) );
2216
+ $query['post_type'] = 'attachment';
2217
+ if ( MEDIA_TRASH
2218
+ && ! empty( $_REQUEST['query']['post_status'] )
2219
+ && 'trash' === $_REQUEST['query']['post_status'] ) {
2220
+ $query['post_status'] = 'trash';
2221
+ } else {
2222
+ $query['post_status'] = 'inherit';
2223
+ }
2224
+
2225
+ if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
2226
+ $query['post_status'] .= ',private';
2227
+
2228
+ /**
2229
+ * Filter the arguments passed to WP_Query during an AJAX
2230
+ * call for querying attachments.
2231
+ *
2232
+ * @since 3.7.0
2233
+ *
2234
+ * @see WP_Query::parse_query()
2235
+ *
2236
+ * @param array $query An array of query variables.
2237
+ */
2238
+ $query = apply_filters( 'ajax_query_attachments_args', $query );
2239
+ $query = new WP_Query( $query );
2240
+
2241
+ $posts = array_map( 'wp_prepare_attachment_for_js', $query->posts );
2242
+ $posts = array_filter( $posts );
2243
+
2244
+ wp_send_json_success( $posts );
2245
+ }
2246
+
2247
+ /**
2248
+ * Ajax handler for updating attachment attributes.
2249
+ *
2250
+ * @since 3.5.0
2251
+ */
2252
+ function wp_ajax_save_attachment() {
2253
+ if ( ! isset( $_REQUEST['id'] ) || ! isset( $_REQUEST['changes'] ) )
2254
+ wp_send_json_error();
2255
+
2256
+ if ( ! $id = absint( $_REQUEST['id'] ) )
2257
+ wp_send_json_error();
2258
+
2259
+ check_ajax_referer( 'update-post_' . $id, 'nonce' );
2260
+
2261
+ if ( ! current_user_can( 'edit_post', $id ) )
2262
+ wp_send_json_error();
2263
+
2264
+ $changes = $_REQUEST['changes'];
2265
+ $post = get_post( $id, ARRAY_A );
2266
+
2267
+ if ( 'attachment' != $post['post_type'] )
2268
+ wp_send_json_error();
2269
+
2270
+ if ( isset( $changes['parent'] ) )
2271
+ $post['post_parent'] = $changes['parent'];
2272
+
2273
+ if ( isset( $changes['title'] ) )
2274
+ $post['post_title'] = $changes['title'];
2275
+
2276
+ if ( isset( $changes['caption'] ) )
2277
+ $post['post_excerpt'] = $changes['caption'];
2278
+
2279
+ if ( isset( $changes['description'] ) )
2280
+ $post['post_content'] = $changes['description'];
2281
+
2282
+ if ( MEDIA_TRASH && isset( $changes['status'] ) )
2283
+ $post['post_status'] = $changes['status'];
2284
+
2285
+ if ( isset( $changes['alt'] ) ) {
2286
+ $alt = wp_unslash( $changes['alt'] );
2287
+ if ( $alt != get_post_meta( $id, '_wp_attachment_image_alt', true ) ) {
2288
+ $alt = wp_strip_all_tags( $alt, true );
2289
+ update_post_meta( $id, '_wp_attachment_image_alt', wp_slash( $alt ) );
2290
+ }
2291
+ }
2292
+
2293
+ if ( wp_attachment_is( 'audio', $post['ID'] ) ) {
2294
+ $changed = false;
2295
+ $id3data = wp_get_attachment_metadata( $post['ID'] );
2296
+ if ( ! is_array( $id3data ) ) {
2297
+ $changed = true;
2298
+ $id3data = array();
2299
+ }
2300
+ foreach ( wp_get_attachment_id3_keys( (object) $post, 'edit' ) as $key => $label ) {
2301
+ if ( isset( $changes[ $key ] ) ) {
2302
+ $changed = true;
2303
+ $id3data[ $key ] = sanitize_text_field( wp_unslash( $changes[ $key ] ) );
2304
+ }
2305
+ }
2306
+
2307
+ if ( $changed ) {
2308
+ wp_update_attachment_metadata( $id, $id3data );
2309
+ }
2310
+ }
2311
+
2312
+ if ( MEDIA_TRASH && isset( $changes['status'] ) && 'trash' === $changes['status'] ) {
2313
+ wp_delete_post( $id );
2314
+ } else {
2315
+ wp_update_post( $post );
2316
+ }
2317
+
2318
+ wp_send_json_success();
2319
+ }
2320
+
2321
+ /**
2322
+ * Ajax handler for saving backwards compatible attachment attributes.
2323
+ *
2324
+ * @since 3.5.0
2325
+ */
2326
+ function wp_ajax_save_attachment_compat() {
2327
+ if ( ! isset( $_REQUEST['id'] ) )
2328
+ wp_send_json_error();
2329
+
2330
+ if ( ! $id = absint( $_REQUEST['id'] ) )
2331
+ wp_send_json_error();
2332
+
2333
+ if ( empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][ $id ] ) )
2334
+ wp_send_json_error();
2335
+ $attachment_data = $_REQUEST['attachments'][ $id ];
2336
+
2337
+ check_ajax_referer( 'update-post_' . $id, 'nonce' );
2338
+
2339
+ if ( ! current_user_can( 'edit_post', $id ) )
2340
+ wp_send_json_error();
2341
+
2342
+ $post = get_post( $id, ARRAY_A );
2343
+
2344
+ if ( 'attachment' != $post['post_type'] )
2345
+ wp_send_json_error();
2346
+
2347
+ /** This filter is documented in wp-admin/includes/media.php */
2348
+ $post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );
2349
+
2350
+ if ( isset( $post['errors'] ) ) {
2351
+ $errors = $post['errors']; // @todo return me and display me!
2352
+ unset( $post['errors'] );
2353
+ }
2354
+
2355
+ wp_update_post( $post );
2356
+
2357
+ foreach ( get_attachment_taxonomies( $post ) as $taxonomy ) {
2358
+ if ( isset( $attachment_data[ $taxonomy ] ) )
2359
+ wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false );
2360
+ }
2361
+
2362
+ if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
2363
+ wp_send_json_error();
2364
+
2365
+ wp_send_json_success( $attachment );
2366
+ }
2367
+
2368
+ /**
2369
+ * Ajax handler for saving the attachment order.
2370
+ *
2371
+ * @since 3.5.0
2372
+ */
2373
+ function wp_ajax_save_attachment_order() {
2374
+ if ( ! isset( $_REQUEST['post_id'] ) )
2375
+ wp_send_json_error();
2376
+
2377
+ if ( ! $post_id = absint( $_REQUEST['post_id'] ) )
2378
+ wp_send_json_error();
2379
+
2380
+ if ( empty( $_REQUEST['attachments'] ) )
2381
+ wp_send_json_error();
2382
+
2383
+ check_ajax_referer( 'update-post_' . $post_id, 'nonce' );
2384
+
2385
+ $attachments = $_REQUEST['attachments'];
2386
+
2387
+ if ( ! current_user_can( 'edit_post', $post_id ) )
2388
+ wp_send_json_error();
2389
+
2390
+ foreach ( $attachments as $attachment_id => $menu_order ) {
2391
+ if ( ! current_user_can( 'edit_post', $attachment_id ) )
2392
+ continue;
2393
+ if ( ! $attachment = get_post( $attachment_id ) )
2394
+ continue;
2395
+ if ( 'attachment' != $attachment->post_type )
2396
+ continue;
2397
+
2398
+ wp_update_post( array( 'ID' => $attachment_id, 'menu_order' => $menu_order ) );
2399
+ }
2400
+
2401
+ wp_send_json_success();
2402
+ }
2403
+
2404
+ /**
2405
+ * Ajax handler for sending an attachment to the editor.
2406
+ *
2407
+ * Generates the HTML to send an attachment to the editor.
2408
+ * Backwards compatible with the media_send_to_editor filter
2409
+ * and the chain of filters that follow.
2410
+ *
2411
+ * @since 3.5.0
2412
+ */
2413
+ function wp_ajax_send_attachment_to_editor() {
2414
+ check_ajax_referer( 'media-send-to-editor', 'nonce' );
2415
+
2416
+ $attachment = wp_unslash( $_POST['attachment'] );
2417
+
2418
+ $id = intval( $attachment['id'] );
2419
+
2420
+ if ( ! $post = get_post( $id ) )
2421
+ wp_send_json_error();
2422
+
2423
+ if ( 'attachment' != $post->post_type )
2424
+ wp_send_json_error();
2425
+
2426
+ if ( current_user_can( 'edit_post', $id ) ) {
2427
+ // If this attachment is unattached, attach it. Primarily a back compat thing.
2428
+ if ( 0 == $post->post_parent && $insert_into_post_id = intval( $_POST['post_id'] ) ) {
2429
+ wp_update_post( array( 'ID' => $id, 'post_parent' => $insert_into_post_id ) );
2430
+ }
2431
+ }
2432
+
2433
+ $rel = $url = '';
2434
+ $html = isset( $attachment['post_title'] ) ? $attachment['post_title'] : '';
2435
+ if ( ! empty( $attachment['url'] ) ) {
2436
+ $url = $attachment['url'];
2437
+ if ( strpos( $url, 'attachment_id') || get_attachment_link( $id ) == $url )
2438
+ $rel = ' rel="attachment wp-att-' . $id . '"';
2439
+ $html = '<a href="' . esc_url( $url ) . '"' . $rel . '>' . $html . '</a>';
2440
+ }
2441
+
2442
+ remove_filter( 'media_send_to_editor', 'image_media_send_to_editor' );
2443
+
2444
+ if ( 'image' === substr( $post->post_mime_type, 0, 5 ) ) {
2445
+ $align = isset( $attachment['align'] ) ? $attachment['align'] : 'none';
2446
+ $size = isset( $attachment['image-size'] ) ? $attachment['image-size'] : 'medium';
2447
+ $alt = isset( $attachment['image_alt'] ) ? $attachment['image_alt'] : '';
2448
+
2449
+ // No whitespace-only captions.
2450
+ $caption = isset( $attachment['post_excerpt'] ) ? $attachment['post_excerpt'] : '';
2451
+ if ( '' === trim( $caption ) ) {
2452
+ $caption = '';
2453
+ }
2454
+
2455
+ $title = ''; // We no longer insert title tags into <img> tags, as they are redundant.
2456
+ $html = get_image_send_to_editor( $id, $caption, $title, $align, $url, (bool) $rel, $size, $alt );
2457
+ } elseif ( wp_attachment_is( 'video', $post ) || wp_attachment_is( 'audio', $post ) ) {
2458
+ $html = stripslashes_deep( $_POST['html'] );
2459
+ }
2460
+
2461
+ /** This filter is documented in wp-admin/includes/media.php */
2462
+ $html = apply_filters( 'media_send_to_editor', $html, $id, $attachment );
2463
+
2464
+ wp_send_json_success( $html );
2465
+ }
2466
+
2467
+ /**
2468
+ * Ajax handler for sending a link to the editor.
2469
+ *
2470
+ * Generates the HTML to send a non-image embed link to the editor.
2471
+ *
2472
+ * Backwards compatible with the following filters:
2473
+ * - file_send_to_editor_url
2474
+ * - audio_send_to_editor_url
2475
+ * - video_send_to_editor_url
2476
+ *
2477
+ * @since 3.5.0
2478
+ */
2479
+ function wp_ajax_send_link_to_editor() {
2480
+ global $post, $wp_embed;
2481
+
2482
+ check_ajax_referer( 'media-send-to-editor', 'nonce' );
2483
+
2484
+ if ( ! $src = wp_unslash( $_POST['src'] ) )
2485
+ wp_send_json_error();
2486
+
2487
+ if ( ! strpos( $src, '://' ) )
2488
+ $src = 'http://' . $src;
2489
+
2490
+ if ( ! $src = esc_url_raw( $src ) )
2491
+ wp_send_json_error();
2492
+
2493
+ if ( ! $link_text = trim( wp_unslash( $_POST['link_text'] ) ) )
2494
+ $link_text = wp_basename( $src );
2495
+
2496
+ $post = get_post( isset( $_POST['post_id'] ) ? $_POST['post_id'] : 0 );
2497
+
2498
+ // Ping WordPress for an embed.
2499
+ $check_embed = $wp_embed->run_shortcode( '[embed]'. $src .'[/embed]' );
2500
+
2501
+ // Fallback that WordPress creates when no oEmbed was found.
2502
+ $fallback = $wp_embed->maybe_make_link( $src );
2503
+
2504
+ if ( $check_embed !== $fallback ) {
2505
+ // TinyMCE view for [embed] will parse this
2506
+ $html = '[embed]' . $src . '[/embed]';
2507
+ } elseif ( $link_text ) {
2508
+ $html = '<a href="' . esc_url( $src ) . '">' . $link_text . '</a>';
2509
+ } else {
2510
+ $html = '';
2511
+ }
2512
+
2513
+ // Figure out what filter to run:
2514
+ $type = 'file';
2515
+ if ( ( $ext = preg_replace( '/^.+?\.([^.]+)$/', '$1', $src ) ) && ( $ext_type = wp_ext2type( $ext ) )
2516
+ && ( 'audio' == $ext_type || 'video' == $ext_type ) )
2517
+ $type = $ext_type;
2518
+
2519
+ /** This filter is documented in wp-admin/includes/media.php */
2520
+ $html = apply_filters( $type . '_send_to_editor_url', $html, $src, $link_text );
2521
+
2522
+ wp_send_json_success( $html );
2523
+ }
2524
+
2525
+ /**
2526
+ * Ajax handler for the Heartbeat API.
2527
+ *
2528
+ * Runs when the user is logged in.
2529
+ *
2530
+ * @since 3.6.0
2531
+ */
2532
+ function wp_ajax_heartbeat() {
2533
+ if ( empty( $_POST['_nonce'] ) )
2534
+ wp_send_json_error();
2535
+
2536
+ $response = array();
2537
+
2538
+ if ( false === wp_verify_nonce( $_POST['_nonce'], 'heartbeat-nonce' ) ) {
2539
+ // User is logged in but nonces have expired.
2540
+ $response['nonces_expired'] = true;
2541
+ wp_send_json($response);
2542
+ }
2543
+
2544
+ // screen_id is the same as $current_screen->id and the JS global 'pagenow'.
2545
+ if ( ! empty($_POST['screen_id']) )
2546
+ $screen_id = sanitize_key($_POST['screen_id']);
2547
+ else
2548
+ $screen_id = 'front';
2549
+
2550
+ if ( ! empty($_POST['data']) ) {
2551
+ $data = wp_unslash( (array) $_POST['data'] );
2552
+
2553
+ /**
2554
+ * Filter the Heartbeat response received.
2555
+ *
2556
+ * @since 3.6.0
2557
+ *
2558
+ * @param array|object $response The Heartbeat response object or array.
2559
+ * @param array $data The $_POST data sent.
2560
+ * @param string $screen_id The screen id.
2561
+ */
2562
+ $response = apply_filters( 'heartbeat_received', $response, $data, $screen_id );
2563
+ }
2564
+
2565
+ /**
2566
+ * Filter the Heartbeat response sent.
2567
+ *
2568
+ * @since 3.6.0
2569
+ *
2570
+ * @param array|object $response The Heartbeat response object or array.
2571
+ * @param string $screen_id The screen id.
2572
+ */
2573
+ $response = apply_filters( 'heartbeat_send', $response, $screen_id );
2574
+
2575
+ /**
2576
+ * Fires when Heartbeat ticks in logged-in environments.
2577
+ *
2578
+ * Allows the transport to be easily replaced with long-polling.
2579
+ *
2580
+ * @since 3.6.0
2581
+ *
2582
+ * @param array|object $response The Heartbeat response object or array.
2583
+ * @param string $screen_id The screen id.
2584
+ */
2585
+ do_action( 'heartbeat_tick', $response, $screen_id );
2586
+
2587
+ // Send the current time according to the server
2588
+ $response['server_time'] = time();
2589
+
2590
+ wp_send_json($response);
2591
+ }
2592
+
2593
+ /**
2594
+ * Ajax handler for getting revision diffs.
2595
+ *
2596
+ * @since 3.6.0
2597
+ */
2598
+ function wp_ajax_get_revision_diffs() {
2599
+ require ABSPATH . 'wp-admin/includes/revision.php';
2600
+
2601
+ if ( ! $post = get_post( (int) $_REQUEST['post_id'] ) )
2602
+ wp_send_json_error();
2603
+
2604
+ if ( ! current_user_can( 'read_post', $post->ID ) )
2605
+ wp_send_json_error();
2606
+
2607
+ // Really just pre-loading the cache here.
2608
+ if ( ! $revisions = wp_get_post_revisions( $post->ID, array( 'check_enabled' => false ) ) )
2609
+ wp_send_json_error();
2610
+
2611
+ $return = array();
2612
+ @set_time_limit( 0 );
2613
+
2614
+ foreach ( $_REQUEST['compare'] as $compare_key ) {
2615
+ list( $compare_from, $compare_to ) = explode( ':', $compare_key ); // from:to
2616
+
2617
+ $return[] = array(
2618
+ 'id' => $compare_key,
2619
+ 'fields' => wp_get_revision_ui_diff( $post, $compare_from, $compare_to ),
2620
+ );
2621
+ }
2622
+ wp_send_json_success( $return );
2623
+ }
2624
+
2625
+ /**
2626
+ * Ajax handler for auto-saving the selected color scheme for
2627
+ * a user's own profile.
2628
+ *
2629
+ * @since 3.8.0
2630
+ */
2631
+ function wp_ajax_save_user_color_scheme() {
2632
+ global $_wp_admin_css_colors;
2633
+
2634
+ check_ajax_referer( 'save-color-scheme', 'nonce' );
2635
+
2636
+ $color_scheme = sanitize_key( $_POST['color_scheme'] );
2637
+
2638
+ if ( ! isset( $_wp_admin_css_colors[ $color_scheme ] ) ) {
2639
+ wp_send_json_error();
2640
+ }
2641
+
2642
+ $previous_color_scheme = get_user_meta( get_current_user_id(), 'admin_color', true );
2643
+ update_user_meta( get_current_user_id(), 'admin_color', $color_scheme );
2644
+
2645
+ wp_send_json_success( array(
2646
+ 'previousScheme' => 'admin-color-' . $previous_color_scheme,
2647
+ 'currentScheme' => 'admin-color-' . $color_scheme
2648
+ ) );
2649
+ }
2650
+
2651
+ /**
2652
+ * Ajax handler for getting themes from themes_api().
2653
+ *
2654
+ * @since 3.9.0
2655
+ */
2656
+ function wp_ajax_query_themes() {
2657
+ global $themes_allowedtags, $theme_field_defaults;
2658
+
2659
+ if ( ! current_user_can( 'install_themes' ) ) {
2660
+ wp_send_json_error();
2661
+ }
2662
+
2663
+ $args = wp_parse_args( wp_unslash( $_REQUEST['request'] ), array(
2664
+ 'per_page' => 20,
2665
+ 'fields' => $theme_field_defaults
2666
+ ) );
2667
+
2668
+ $old_filter = isset( $args['browse'] ) ? $args['browse'] : 'search';
2669
+
2670
+ /** This filter is documented in wp-admin/includes/class-wp-theme-install-list-table.php */
2671
+ $args = apply_filters( 'install_themes_table_api_args_' . $old_filter, $args );
2672
+
2673
+ $api = themes_api( 'query_themes', $args );
2674
+
2675
+ if ( is_wp_error( $api ) ) {
2676
+ wp_send_json_error();
2677
+ }
2678
+
2679
+ $update_php = network_admin_url( 'update.php?action=install-theme' );
2680
+ foreach ( $api->themes as &$theme ) {
2681
+ $theme->install_url = add_query_arg( array(
2682
+ 'theme' => $theme->slug,
2683
+ '_wpnonce' => wp_create_nonce( 'install-theme_' . $theme->slug )
2684
+ ), $update_php );
2685
+
2686
+ $theme->name = wp_kses( $theme->name, $themes_allowedtags );
2687
+ $theme->author = wp_kses( $theme->author, $themes_allowedtags );
2688
+ $theme->version = wp_kses( $theme->version, $themes_allowedtags );
2689
+ $theme->description = wp_kses( $theme->description, $themes_allowedtags );
2690
+ $theme->num_ratings = sprintf( _n( '(based on %s rating)', '(based on %s ratings)', $theme->num_ratings ), number_format_i18n( $theme->num_ratings ) );
2691
+ $theme->preview_url = set_url_scheme( $theme->preview_url );
2692
+ }
2693
+
2694
+ wp_send_json_success( $api );
2695
+ }
2696
+
2697
+ /**
2698
+ * Apply [embed] AJAX handlers to a string.
2699
+ *
2700
+ * @since 4.0.0
2701
+ *
2702
+ * @global WP_Post $post Global $post.
2703
+ * @global WP_Embed $wp_embed Embed API instance.
2704
+ */
2705
+ function wp_ajax_parse_embed() {
2706
+ global $post, $wp_embed;
2707
+
2708
+ if ( ! $post = get_post( (int) $_POST['post_ID'] ) ) {
2709
+ wp_send_json_error();
2710
+ }
2711
+
2712
+ if ( empty( $_POST['shortcode'] ) || ! current_user_can( 'edit_post', $post->ID ) ) {
2713
+ wp_send_json_error();
2714
+ }
2715
+
2716
+ $shortcode = wp_unslash( $_POST['shortcode'] );
2717
+ $url = str_replace( '[embed]', '', str_replace( '[/embed]', '', $shortcode ) );
2718
+
2719
+ $parsed = false;
2720
+ setup_postdata( $post );
2721
+
2722
+ $wp_embed->return_false_on_fail = true;
2723
+
2724
+ if ( is_ssl() && preg_match( '%^\\[embed[^\\]]*\\]http://%i', $shortcode ) ) {
2725
+ // Admin is ssl and the user pasted non-ssl URL.
2726
+ // Check if the provider supports ssl embeds and use that for the preview.
2727
+ $ssl_shortcode = preg_replace( '%^(\\[embed[^\\]]*\\])http://%i', '$1https://', $shortcode );
2728
+ $parsed = $wp_embed->run_shortcode( $ssl_shortcode );
2729
+
2730
+ if ( ! $parsed ) {
2731
+ $no_ssl_support = true;
2732
+ }
2733
+ }
2734
+
2735
+ if ( ! $parsed ) {
2736
+ $parsed = $wp_embed->run_shortcode( $shortcode );
2737
+ }
2738
+
2739
+ if ( ! $parsed ) {
2740
+ wp_send_json_error( array(
2741
+ 'type' => 'not-embeddable',
2742
+ 'message' => sprintf( __( '%s failed to embed.' ), '<code>' . esc_html( $url ) . '</code>' ),
2743
+ ) );
2744
+ }
2745
+
2746
+ if ( has_shortcode( $parsed, 'audio' ) || has_shortcode( $parsed, 'video' ) ) {
2747
+ $styles = '';
2748
+ $mce_styles = wpview_media_sandbox_styles();
2749
+ foreach ( $mce_styles as $style ) {
2750
+ $styles .= sprintf( '<link rel="stylesheet" href="%s"/>', $style );
2751
+ }
2752
+
2753
+ $html = do_shortcode( $parsed );
2754
+
2755
+ global $wp_scripts;
2756
+ if ( ! empty( $wp_scripts ) ) {
2757
+ $wp_scripts->done = array();
2758
+ }
2759
+ ob_start();
2760
+ wp_print_scripts( 'wp-mediaelement' );
2761
+ $scripts = ob_get_clean();
2762
+
2763
+ $parsed = $styles . $html . $scripts;
2764
+ }
2765
+
2766
+
2767
+ if ( ! empty( $no_ssl_support ) || ( is_ssl() && ( preg_match( '%<(iframe|script|embed) [^>]*src="http://%', $parsed ) ||
2768
+ preg_match( '%<link [^>]*href="http://%', $parsed ) ) ) ) {
2769
+ // Admin is ssl and the embed is not. Iframes, scripts, and other "active content" will be blocked.
2770
+ wp_send_json_error( array(
2771
+ 'type' => 'not-ssl',
2772
+ 'message' => __( 'This preview is unavailable in the editor.' ),
2773
+ ) );
2774
+ }
2775
+
2776
+ wp_send_json_success( array(
2777
+ 'body' => $parsed
2778
+ ) );
2779
+ }
2780
+
2781
+ function wp_ajax_parse_media_shortcode() {
2782
+ global $post, $wp_scripts;
2783
+
2784
+ if ( empty( $_POST['shortcode'] ) ) {
2785
+ wp_send_json_error();
2786
+ }
2787
+
2788
+ $shortcode = wp_unslash( $_POST['shortcode'] );
2789
+
2790
+ if ( ! empty( $_POST['post_ID'] ) ) {
2791
+ $post = get_post( (int) $_POST['post_ID'] );
2792
+ }
2793
+
2794
+ // the embed shortcode requires a post
2795
+ if ( ! $post || ! current_user_can( 'edit_post', $post->ID ) ) {
2796
+ if ( 'embed' === $shortcode ) {
2797
+ wp_send_json_error();
2798
+ }
2799
+ } else {
2800
+ setup_postdata( $post );
2801
+ }
2802
+
2803
+ $parsed = do_shortcode( $shortcode );
2804
+
2805
+ if ( empty( $parsed ) ) {
2806
+ wp_send_json_error( array(
2807
+ 'type' => 'no-items',
2808
+ 'message' => __( 'No items found.' ),
2809
+ ) );
2810
+ }
2811
+
2812
+ $head = '';
2813
+ $styles = wpview_media_sandbox_styles();
2814
+
2815
+ foreach ( $styles as $style ) {
2816
+ $head .= '<link type="text/css" rel="stylesheet" href="' . $style . '">';
2817
+ }
2818
+
2819
+ if ( ! empty( $wp_scripts ) ) {
2820
+ $wp_scripts->done = array();
2821
+ }
2822
+
2823
+ ob_start();
2824
+
2825
+ echo $parsed;
2826
+
2827
+ if ( 'playlist' === $_REQUEST['type'] ) {
2828
+ wp_underscore_playlist_templates();
2829
+
2830
+ wp_print_scripts( 'wp-playlist' );
2831
+ } else {
2832
+ wp_print_scripts( array( 'froogaloop', 'wp-mediaelement' ) );
2833
+ }
2834
+
2835
+ wp_send_json_success( array(
2836
+ 'head' => $head,
2837
+ 'body' => ob_get_clean()
2838
+ ) );
2839
+ }
2840
+
2841
+ /**
2842
+ * AJAX handler for destroying multiple open sessions for a user.
2843
+ *
2844
+ * @since 4.1.0
2845
+ */
2846
+ function wp_ajax_destroy_sessions() {
2847
+
2848
+ $user = get_userdata( (int) $_POST['user_id'] );
2849
+ if ( $user ) {
2850
+ if ( ! current_user_can( 'edit_user', $user->ID ) ) {
2851
+ $user = false;
2852
+ } elseif ( ! wp_verify_nonce( $_POST['nonce'], 'update-user_' . $user->ID ) ) {
2853
+ $user = false;
2854
+ }
2855
+ }
2856
+
2857
+ if ( ! $user ) {
2858
+ wp_send_json_error( array(
2859
+ 'message' => __( 'Could not log out user sessions. Please try again.' ),
2860
+ ) );
2861
+ }
2862
+
2863
+ $sessions = WP_Session_Tokens::get_instance( $user->ID );
2864
+
2865
+ if ( $user->ID === get_current_user_id() ) {
2866
+ $sessions->destroy_others( wp_get_session_token() );
2867
+ $message = __( 'You are now logged out everywhere else.' );
2868
+ } else {
2869
+ $sessions->destroy_all();
2870
+ /* translators: 1: User's display name. */
2871
+ $message = sprintf( __( '%s has been logged out.' ), $user->display_name );
2872
+ }
2873
+
2874
+ wp_send_json_success( array( 'message' => $message ) );
2875
+ }
2876
+
2877
+
2878
+ /**
2879
+ * AJAX handler for updating a plugin.
2880
+ *
2881
+ * @since 4.2.0
2882
+ *
2883
+ * @see Plugin_Upgrader
2884
+ */
2885
+ function wp_ajax_update_plugin() {
2886
+ $plugin = urldecode( $_POST['plugin'] );
2887
+
2888
+ $status = array(
2889
+ 'update' => 'plugin',
2890
+ 'plugin' => $plugin,
2891
+ 'slug' => sanitize_key( $_POST['slug'] ),
2892
+ 'oldVersion' => '',
2893
+ 'newVersion' => '',
2894
+ );
2895
+ $plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
2896
+ if ( $plugin_data['Version'] ) {
2897
+ $status['oldVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
2898
+ }
2899
+
2900
+ if ( ! current_user_can( 'update_plugins' ) ) {
2901
+ $status['error'] = __( 'You do not have sufficient permissions to update plugins on this site.' );
2902
+ wp_send_json_error( $status );
2903
+ }
2904
+
2905
+ check_ajax_referer( 'updates' );
2906
+
2907
+ include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
2908
+
2909
+ $current = get_site_transient( 'update_plugins' );
2910
+ if ( empty( $current ) ) {
2911
+ wp_update_plugins();
2912
+ }
2913
+
2914
+ $upgrader = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
2915
+ $result = $upgrader->bulk_upgrade( array( $plugin ) );
2916
+
2917
+ if ( is_array( $result ) ) {
2918
+ $plugin_update_data = current( $result );
2919
+
2920
+ /*
2921
+ * If the `update_plugins` site transient is empty (e.g. when you update
2922
+ * two plugins in quick succession before the transient repopulates),
2923
+ * this may be the return.
2924
+ *
2925
+ * Preferably something can be done to ensure `update_plugins` isn't empty.
2926
+ * For now, surface some sort of error here.
2927
+ */
2928
+ if ( $plugin_update_data === true ) {
2929
+ wp_send_json_error( $status );
2930
+ }
2931
+
2932
+ $plugin_data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin );
2933
+
2934
+ if ( $plugin_data['Version'] ) {
2935
+ $status['newVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
2936
+ }
2937
+
2938
+ wp_send_json_success( $status );
2939
+ } else if ( is_wp_error( $result ) ) {
2940
+ $status['error'] = $result->get_error_message();
2941
+ wp_send_json_error( $status );
2942
+ } else if ( is_bool( $result ) && ! $result ) {
2943
+ $status['errorCode'] = 'unable_to_connect_to_filesystem';
2944
+ $status['error'] = __( 'Unable to connect to the filesystem. Please confirm your credentials.' );
2945
+ wp_send_json_error( $status );
2946
+ }
2947
+ }
2948
+
2949
+ /**
2950
+ * AJAX handler for saving a post from Press This.
2951
+ *
2952
+ * @since 4.2.0
2953
+ */
2954
+ function wp_ajax_press_this_save_post() {
2955
+ if ( empty( $GLOBALS['wp_press_this'] ) ) {
2956
+ include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
2957
+ }
2958
+
2959
+ $GLOBALS['wp_press_this']->save_post();
2960
+ }
2961
+
2962
+ /**
2963
+ * AJAX handler for creating new category from Press This.
2964
+ *
2965
+ * @since 4.2.0
2966
+ */
2967
+ function wp_ajax_press_this_add_category() {
2968
+ if ( empty( $GLOBALS['wp_press_this'] ) ) {
2969
+ include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
2970
+ }
2971
+
2972
+ $GLOBALS['wp_press_this']->add_category();
2973
+ }