stump-cli 0.1.3 → 1.0.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 (1243) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/README.md +9 -5
  4. data/bin/stump-cli +77 -27
  5. data/lib/{wp/.gitignore → .gitignore.erb} +2 -2
  6. data/lib/stump-cli/version.rb +1 -1
  7. data/lib/style.erb +11 -0
  8. data/stump-cli.gemspec +2 -0
  9. metadata +56 -1268
  10. data/lib/wp/Movefile-example +0 -62
  11. data/lib/wp/README.md +0 -25
  12. data/lib/wp/index.php +0 -17
  13. data/lib/wp/license.txt +0 -385
  14. data/lib/wp/readme.html +0 -96
  15. data/lib/wp/wp-activate.php +0 -131
  16. data/lib/wp/wp-admin/about.php +0 -193
  17. data/lib/wp/wp-admin/admin-ajax.php +0 -98
  18. data/lib/wp/wp-admin/admin-footer.php +0 -99
  19. data/lib/wp/wp-admin/admin-functions.php +0 -15
  20. data/lib/wp/wp-admin/admin-header.php +0 -243
  21. data/lib/wp/wp-admin/admin-post.php +0 -71
  22. data/lib/wp/wp-admin/admin.php +0 -347
  23. data/lib/wp/wp-admin/async-upload.php +0 -114
  24. data/lib/wp/wp-admin/comment.php +0 -299
  25. data/lib/wp/wp-admin/credits.php +0 -192
  26. data/lib/wp/wp-admin/css/about-rtl.css +0 -446
  27. data/lib/wp/wp-admin/css/about.css +0 -446
  28. data/lib/wp/wp-admin/css/admin-menu-rtl.css +0 -917
  29. data/lib/wp/wp-admin/css/admin-menu.css +0 -917
  30. data/lib/wp/wp-admin/css/color-picker-rtl.css +0 -127
  31. data/lib/wp/wp-admin/css/color-picker-rtl.min.css +0 -1
  32. data/lib/wp/wp-admin/css/color-picker.css +0 -127
  33. data/lib/wp/wp-admin/css/color-picker.min.css +0 -1
  34. data/lib/wp/wp-admin/css/colors/_admin.scss +0 -525
  35. data/lib/wp/wp-admin/css/colors/_mixins.scss +0 -43
  36. data/lib/wp/wp-admin/css/colors/_variables.scss +0 -58
  37. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.css +0 -341
  38. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.min.css +0 -1
  39. data/lib/wp/wp-admin/css/colors/blue/colors.css +0 -341
  40. data/lib/wp/wp-admin/css/colors/blue/colors.min.css +0 -1
  41. data/lib/wp/wp-admin/css/colors/blue/colors.scss +0 -11
  42. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.css +0 -341
  43. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.min.css +0 -1
  44. data/lib/wp/wp-admin/css/colors/coffee/colors.css +0 -341
  45. data/lib/wp/wp-admin/css/colors/coffee/colors.min.css +0 -1
  46. data/lib/wp/wp-admin/css/colors/coffee/colors.scss +0 -7
  47. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.css +0 -341
  48. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.min.css +0 -1
  49. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.css +0 -341
  50. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.min.css +0 -1
  51. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.scss +0 -8
  52. data/lib/wp/wp-admin/css/colors/light/colors-rtl.css +0 -349
  53. data/lib/wp/wp-admin/css/colors/light/colors-rtl.min.css +0 -1
  54. data/lib/wp/wp-admin/css/colors/light/colors.css +0 -349
  55. data/lib/wp/wp-admin/css/colors/light/colors.min.css +0 -1
  56. data/lib/wp/wp-admin/css/colors/light/colors.scss +0 -38
  57. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.css +0 -341
  58. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.min.css +0 -1
  59. data/lib/wp/wp-admin/css/colors/midnight/colors.css +0 -341
  60. data/lib/wp/wp-admin/css/colors/midnight/colors.min.css +0 -1
  61. data/lib/wp/wp-admin/css/colors/midnight/colors.scss +0 -5
  62. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.css +0 -341
  63. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.min.css +0 -1
  64. data/lib/wp/wp-admin/css/colors/ocean/colors.css +0 -341
  65. data/lib/wp/wp-admin/css/colors/ocean/colors.min.css +0 -1
  66. data/lib/wp/wp-admin/css/colors/ocean/colors.scss +0 -8
  67. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.css +0 -341
  68. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.min.css +0 -1
  69. data/lib/wp/wp-admin/css/colors/sunrise/colors.css +0 -341
  70. data/lib/wp/wp-admin/css/colors/sunrise/colors.min.css +0 -1
  71. data/lib/wp/wp-admin/css/colors/sunrise/colors.scss +0 -6
  72. data/lib/wp/wp-admin/css/common-rtl.css +0 -3212
  73. data/lib/wp/wp-admin/css/common.css +0 -3212
  74. data/lib/wp/wp-admin/css/customize-controls-rtl.css +0 -889
  75. data/lib/wp/wp-admin/css/customize-controls-rtl.min.css +0 -1
  76. data/lib/wp/wp-admin/css/customize-controls.css +0 -889
  77. data/lib/wp/wp-admin/css/customize-controls.min.css +0 -1
  78. data/lib/wp/wp-admin/css/customize-widgets-rtl.css +0 -603
  79. data/lib/wp/wp-admin/css/customize-widgets-rtl.min.css +0 -1
  80. data/lib/wp/wp-admin/css/customize-widgets.css +0 -603
  81. data/lib/wp/wp-admin/css/customize-widgets.min.css +0 -1
  82. data/lib/wp/wp-admin/css/dashboard-rtl.css +0 -1116
  83. data/lib/wp/wp-admin/css/dashboard.css +0 -1116
  84. data/lib/wp/wp-admin/css/deprecated-media-rtl.css +0 -371
  85. data/lib/wp/wp-admin/css/deprecated-media-rtl.min.css +0 -1
  86. data/lib/wp/wp-admin/css/deprecated-media.css +0 -371
  87. data/lib/wp/wp-admin/css/deprecated-media.min.css +0 -1
  88. data/lib/wp/wp-admin/css/edit-rtl.css +0 -1501
  89. data/lib/wp/wp-admin/css/edit.css +0 -1501
  90. data/lib/wp/wp-admin/css/farbtastic-rtl.css +0 -41
  91. data/lib/wp/wp-admin/css/farbtastic.css +0 -41
  92. data/lib/wp/wp-admin/css/forms-rtl.css +0 -992
  93. data/lib/wp/wp-admin/css/forms.css +0 -992
  94. data/lib/wp/wp-admin/css/ie-rtl.css +0 -785
  95. data/lib/wp/wp-admin/css/ie-rtl.min.css +0 -1
  96. data/lib/wp/wp-admin/css/ie.css +0 -785
  97. data/lib/wp/wp-admin/css/ie.min.css +0 -1
  98. data/lib/wp/wp-admin/css/install-rtl.css +0 -389
  99. data/lib/wp/wp-admin/css/install-rtl.min.css +0 -1
  100. data/lib/wp/wp-admin/css/install.css +0 -389
  101. data/lib/wp/wp-admin/css/install.min.css +0 -1
  102. data/lib/wp/wp-admin/css/l10n-rtl.css +0 -101
  103. data/lib/wp/wp-admin/css/l10n.css +0 -101
  104. data/lib/wp/wp-admin/css/list-tables-rtl.css +0 -1875
  105. data/lib/wp/wp-admin/css/list-tables.css +0 -1875
  106. data/lib/wp/wp-admin/css/login-rtl.css +0 -269
  107. data/lib/wp/wp-admin/css/login-rtl.min.css +0 -1
  108. data/lib/wp/wp-admin/css/login.css +0 -269
  109. data/lib/wp/wp-admin/css/login.min.css +0 -1
  110. data/lib/wp/wp-admin/css/media-rtl.css +0 -1196
  111. data/lib/wp/wp-admin/css/media.css +0 -1196
  112. data/lib/wp/wp-admin/css/nav-menus-rtl.css +0 -857
  113. data/lib/wp/wp-admin/css/nav-menus.css +0 -857
  114. data/lib/wp/wp-admin/css/press-this-rtl.css +0 -458
  115. data/lib/wp/wp-admin/css/press-this.css +0 -458
  116. data/lib/wp/wp-admin/css/revisions-rtl.css +0 -574
  117. data/lib/wp/wp-admin/css/revisions.css +0 -574
  118. data/lib/wp/wp-admin/css/themes-rtl.css +0 -1732
  119. data/lib/wp/wp-admin/css/themes.css +0 -1732
  120. data/lib/wp/wp-admin/css/widgets-rtl.css +0 -577
  121. data/lib/wp/wp-admin/css/widgets.css +0 -577
  122. data/lib/wp/wp-admin/css/wp-admin-rtl.css +0 -14
  123. data/lib/wp/wp-admin/css/wp-admin-rtl.min.css +0 -1
  124. data/lib/wp/wp-admin/css/wp-admin.css +0 -14
  125. data/lib/wp/wp-admin/css/wp-admin.min.css +0 -1
  126. data/lib/wp/wp-admin/custom-background.php +0 -482
  127. data/lib/wp/wp-admin/custom-header.php +0 -1366
  128. data/lib/wp/wp-admin/customize.php +0 -278
  129. data/lib/wp/wp-admin/edit-comments.php +0 -254
  130. data/lib/wp/wp-admin/edit-form-advanced.php +0 -636
  131. data/lib/wp/wp-admin/edit-form-comment.php +0 -160
  132. data/lib/wp/wp-admin/edit-link-form.php +0 -150
  133. data/lib/wp/wp-admin/edit-tag-form.php +0 -204
  134. data/lib/wp/wp-admin/edit-tags.php +0 -591
  135. data/lib/wp/wp-admin/edit.php +0 -330
  136. data/lib/wp/wp-admin/export.php +0 -243
  137. data/lib/wp/wp-admin/freedoms.php +0 -57
  138. data/lib/wp/wp-admin/images/align-center-2x.png +0 -0
  139. data/lib/wp/wp-admin/images/align-center.png +0 -0
  140. data/lib/wp/wp-admin/images/align-left-2x.png +0 -0
  141. data/lib/wp/wp-admin/images/align-left.png +0 -0
  142. data/lib/wp/wp-admin/images/align-none-2x.png +0 -0
  143. data/lib/wp/wp-admin/images/align-none.png +0 -0
  144. data/lib/wp/wp-admin/images/align-right-2x.png +0 -0
  145. data/lib/wp/wp-admin/images/align-right.png +0 -0
  146. data/lib/wp/wp-admin/images/arrows-2x.png +0 -0
  147. data/lib/wp/wp-admin/images/arrows.png +0 -0
  148. data/lib/wp/wp-admin/images/bubble_bg-2x.gif +0 -0
  149. data/lib/wp/wp-admin/images/bubble_bg.gif +0 -0
  150. data/lib/wp/wp-admin/images/comment-grey-bubble-2x.png +0 -0
  151. data/lib/wp/wp-admin/images/comment-grey-bubble.png +0 -0
  152. data/lib/wp/wp-admin/images/date-button-2x.gif +0 -0
  153. data/lib/wp/wp-admin/images/date-button.gif +0 -0
  154. data/lib/wp/wp-admin/images/generic.png +0 -0
  155. data/lib/wp/wp-admin/images/icons32-2x.png +0 -0
  156. data/lib/wp/wp-admin/images/icons32-vs-2x.png +0 -0
  157. data/lib/wp/wp-admin/images/icons32-vs.png +0 -0
  158. data/lib/wp/wp-admin/images/icons32.png +0 -0
  159. data/lib/wp/wp-admin/images/imgedit-icons-2x.png +0 -0
  160. data/lib/wp/wp-admin/images/imgedit-icons.png +0 -0
  161. data/lib/wp/wp-admin/images/list-2x.png +0 -0
  162. data/lib/wp/wp-admin/images/list.png +0 -0
  163. data/lib/wp/wp-admin/images/loading.gif +0 -0
  164. data/lib/wp/wp-admin/images/marker.png +0 -0
  165. data/lib/wp/wp-admin/images/mask.png +0 -0
  166. data/lib/wp/wp-admin/images/media-button-2x.png +0 -0
  167. data/lib/wp/wp-admin/images/media-button-image.gif +0 -0
  168. data/lib/wp/wp-admin/images/media-button-music.gif +0 -0
  169. data/lib/wp/wp-admin/images/media-button-other.gif +0 -0
  170. data/lib/wp/wp-admin/images/media-button-video.gif +0 -0
  171. data/lib/wp/wp-admin/images/media-button.png +0 -0
  172. data/lib/wp/wp-admin/images/menu-2x.png +0 -0
  173. data/lib/wp/wp-admin/images/menu-vs-2x.png +0 -0
  174. data/lib/wp/wp-admin/images/menu-vs.png +0 -0
  175. data/lib/wp/wp-admin/images/menu.png +0 -0
  176. data/lib/wp/wp-admin/images/no.png +0 -0
  177. data/lib/wp/wp-admin/images/post-formats-vs.png +0 -0
  178. data/lib/wp/wp-admin/images/post-formats.png +0 -0
  179. data/lib/wp/wp-admin/images/post-formats32-vs.png +0 -0
  180. data/lib/wp/wp-admin/images/post-formats32.png +0 -0
  181. data/lib/wp/wp-admin/images/resize-2x.gif +0 -0
  182. data/lib/wp/wp-admin/images/resize-rtl-2x.gif +0 -0
  183. data/lib/wp/wp-admin/images/resize-rtl.gif +0 -0
  184. data/lib/wp/wp-admin/images/resize.gif +0 -0
  185. data/lib/wp/wp-admin/images/se.png +0 -0
  186. data/lib/wp/wp-admin/images/sort-2x.gif +0 -0
  187. data/lib/wp/wp-admin/images/sort.gif +0 -0
  188. data/lib/wp/wp-admin/images/spinner-2x.gif +0 -0
  189. data/lib/wp/wp-admin/images/spinner.gif +0 -0
  190. data/lib/wp/wp-admin/images/stars-2x.png +0 -0
  191. data/lib/wp/wp-admin/images/stars.png +0 -0
  192. data/lib/wp/wp-admin/images/w-logo-blue.png +0 -0
  193. data/lib/wp/wp-admin/images/w-logo-white.png +0 -0
  194. data/lib/wp/wp-admin/images/wheel.png +0 -0
  195. data/lib/wp/wp-admin/images/wordpress-logo-white.svg +0 -1
  196. data/lib/wp/wp-admin/images/wordpress-logo.png +0 -0
  197. data/lib/wp/wp-admin/images/wordpress-logo.svg +0 -1
  198. data/lib/wp/wp-admin/images/wpspin_light-2x.gif +0 -0
  199. data/lib/wp/wp-admin/images/wpspin_light.gif +0 -0
  200. data/lib/wp/wp-admin/images/xit-2x.gif +0 -0
  201. data/lib/wp/wp-admin/images/xit.gif +0 -0
  202. data/lib/wp/wp-admin/images/yes.png +0 -0
  203. data/lib/wp/wp-admin/import.php +0 -132
  204. data/lib/wp/wp-admin/includes/admin.php +0 -74
  205. data/lib/wp/wp-admin/includes/ajax-actions.php +0 -2762
  206. data/lib/wp/wp-admin/includes/bookmark.php +0 -305
  207. data/lib/wp/wp-admin/includes/class-ftp-pure.php +0 -190
  208. data/lib/wp/wp-admin/includes/class-ftp-sockets.php +0 -250
  209. data/lib/wp/wp-admin/includes/class-ftp.php +0 -907
  210. data/lib/wp/wp-admin/includes/class-pclzip.php +0 -5687
  211. data/lib/wp/wp-admin/includes/class-wp-comments-list-table.php +0 -637
  212. data/lib/wp/wp-admin/includes/class-wp-filesystem-base.php +0 -815
  213. data/lib/wp/wp-admin/includes/class-wp-filesystem-direct.php +0 -384
  214. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpext.php +0 -415
  215. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php +0 -352
  216. data/lib/wp/wp-admin/includes/class-wp-filesystem-ssh2.php +0 -392
  217. data/lib/wp/wp-admin/includes/class-wp-importer.php +0 -302
  218. data/lib/wp/wp-admin/includes/class-wp-links-list-table.php +0 -207
  219. data/lib/wp/wp-admin/includes/class-wp-list-table.php +0 -1080
  220. data/lib/wp/wp-admin/includes/class-wp-media-list-table.php +0 -574
  221. data/lib/wp/wp-admin/includes/class-wp-ms-sites-list-table.php +0 -402
  222. data/lib/wp/wp-admin/includes/class-wp-ms-themes-list-table.php +0 -459
  223. data/lib/wp/wp-admin/includes/class-wp-ms-users-list-table.php +0 -303
  224. data/lib/wp/wp-admin/includes/class-wp-plugin-install-list-table.php +0 -490
  225. data/lib/wp/wp-admin/includes/class-wp-plugins-list-table.php +0 -605
  226. data/lib/wp/wp-admin/includes/class-wp-posts-list-table.php +0 -1306
  227. data/lib/wp/wp-admin/includes/class-wp-terms-list-table.php +0 -466
  228. data/lib/wp/wp-admin/includes/class-wp-theme-install-list-table.php +0 -431
  229. data/lib/wp/wp-admin/includes/class-wp-themes-list-table.php +0 -279
  230. data/lib/wp/wp-admin/includes/class-wp-upgrader-skins.php +0 -767
  231. data/lib/wp/wp-admin/includes/class-wp-upgrader.php +0 -2676
  232. data/lib/wp/wp-admin/includes/class-wp-users-list-table.php +0 -459
  233. data/lib/wp/wp-admin/includes/comment.php +0 -171
  234. data/lib/wp/wp-admin/includes/continents-cities.php +0 -493
  235. data/lib/wp/wp-admin/includes/dashboard.php +0 -1333
  236. data/lib/wp/wp-admin/includes/deprecated.php +0 -1190
  237. data/lib/wp/wp-admin/includes/export.php +0 -508
  238. data/lib/wp/wp-admin/includes/file.php +0 -1152
  239. data/lib/wp/wp-admin/includes/image-edit.php +0 -828
  240. data/lib/wp/wp-admin/includes/image.php +0 -598
  241. data/lib/wp/wp-admin/includes/import.php +0 -206
  242. data/lib/wp/wp-admin/includes/list-table.php +0 -113
  243. data/lib/wp/wp-admin/includes/media.php +0 -3012
  244. data/lib/wp/wp-admin/includes/menu.php +0 -322
  245. data/lib/wp/wp-admin/includes/meta-boxes.php +0 -1119
  246. data/lib/wp/wp-admin/includes/misc.php +0 -845
  247. data/lib/wp/wp-admin/includes/ms-deprecated.php +0 -78
  248. data/lib/wp/wp-admin/includes/ms.php +0 -814
  249. data/lib/wp/wp-admin/includes/nav-menu.php +0 -1328
  250. data/lib/wp/wp-admin/includes/plugin-install.php +0 -550
  251. data/lib/wp/wp-admin/includes/plugin.php +0 -1899
  252. data/lib/wp/wp-admin/includes/post.php +0 -1661
  253. data/lib/wp/wp-admin/includes/revision.php +0 -228
  254. data/lib/wp/wp-admin/includes/schema.php +0 -1038
  255. data/lib/wp/wp-admin/includes/screen.php +0 -1179
  256. data/lib/wp/wp-admin/includes/taxonomy.php +0 -284
  257. data/lib/wp/wp-admin/includes/template.php +0 -2157
  258. data/lib/wp/wp-admin/includes/theme-install.php +0 -205
  259. data/lib/wp/wp-admin/includes/theme.php +0 -474
  260. data/lib/wp/wp-admin/includes/translation-install.php +0 -240
  261. data/lib/wp/wp-admin/includes/update-core.php +0 -1186
  262. data/lib/wp/wp-admin/includes/update.php +0 -432
  263. data/lib/wp/wp-admin/includes/upgrade.php +0 -2218
  264. data/lib/wp/wp-admin/includes/user.php +0 -442
  265. data/lib/wp/wp-admin/includes/widgets.php +0 -245
  266. data/lib/wp/wp-admin/index.php +0 -131
  267. data/lib/wp/wp-admin/install-helper.php +0 -199
  268. data/lib/wp/wp-admin/install.php +0 -305
  269. data/lib/wp/wp-admin/js/accordion.js +0 -143
  270. data/lib/wp/wp-admin/js/accordion.min.js +0 -1
  271. data/lib/wp/wp-admin/js/color-picker.js +0 -155
  272. data/lib/wp/wp-admin/js/color-picker.min.js +0 -1
  273. data/lib/wp/wp-admin/js/comment.js +0 -50
  274. data/lib/wp/wp-admin/js/comment.min.js +0 -1
  275. data/lib/wp/wp-admin/js/common.js +0 -804
  276. data/lib/wp/wp-admin/js/common.min.js +0 -1
  277. data/lib/wp/wp-admin/js/custom-background.js +0 -75
  278. data/lib/wp/wp-admin/js/custom-background.min.js +0 -1
  279. data/lib/wp/wp-admin/js/custom-header.js +0 -61
  280. data/lib/wp/wp-admin/js/customize-controls.js +0 -1305
  281. data/lib/wp/wp-admin/js/customize-controls.min.js +0 -1
  282. data/lib/wp/wp-admin/js/customize-widgets.js +0 -1882
  283. data/lib/wp/wp-admin/js/customize-widgets.min.js +0 -1
  284. data/lib/wp/wp-admin/js/dashboard.js +0 -190
  285. data/lib/wp/wp-admin/js/dashboard.min.js +0 -1
  286. data/lib/wp/wp-admin/js/edit-comments.js +0 -625
  287. data/lib/wp/wp-admin/js/edit-comments.min.js +0 -1
  288. data/lib/wp/wp-admin/js/editor-expand.js +0 -705
  289. data/lib/wp/wp-admin/js/editor-expand.min.js +0 -1
  290. data/lib/wp/wp-admin/js/editor.js +0 -324
  291. data/lib/wp/wp-admin/js/editor.min.js +0 -1
  292. data/lib/wp/wp-admin/js/farbtastic.js +0 -276
  293. data/lib/wp/wp-admin/js/gallery.js +0 -237
  294. data/lib/wp/wp-admin/js/gallery.min.js +0 -1
  295. data/lib/wp/wp-admin/js/image-edit.js +0 -633
  296. data/lib/wp/wp-admin/js/image-edit.min.js +0 -1
  297. data/lib/wp/wp-admin/js/inline-edit-post.js +0 -359
  298. data/lib/wp/wp-admin/js/inline-edit-post.min.js +0 -1
  299. data/lib/wp/wp-admin/js/inline-edit-tax.js +0 -142
  300. data/lib/wp/wp-admin/js/inline-edit-tax.min.js +0 -1
  301. data/lib/wp/wp-admin/js/iris.min.js +0 -4
  302. data/lib/wp/wp-admin/js/language-chooser.js +0 -26
  303. data/lib/wp/wp-admin/js/language-chooser.min.js +0 -1
  304. data/lib/wp/wp-admin/js/link.js +0 -69
  305. data/lib/wp/wp-admin/js/link.min.js +0 -1
  306. data/lib/wp/wp-admin/js/media-gallery.js +0 -26
  307. data/lib/wp/wp-admin/js/media-gallery.min.js +0 -1
  308. data/lib/wp/wp-admin/js/media-upload.js +0 -69
  309. data/lib/wp/wp-admin/js/media-upload.min.js +0 -1
  310. data/lib/wp/wp-admin/js/media.js +0 -111
  311. data/lib/wp/wp-admin/js/media.min.js +0 -1
  312. data/lib/wp/wp-admin/js/nav-menu.js +0 -1205
  313. data/lib/wp/wp-admin/js/nav-menu.min.js +0 -1
  314. data/lib/wp/wp-admin/js/password-strength-meter.js +0 -75
  315. data/lib/wp/wp-admin/js/password-strength-meter.min.js +0 -1
  316. data/lib/wp/wp-admin/js/plugin-install.js +0 -76
  317. data/lib/wp/wp-admin/js/plugin-install.min.js +0 -1
  318. data/lib/wp/wp-admin/js/post.js +0 -1094
  319. data/lib/wp/wp-admin/js/post.min.js +0 -1
  320. data/lib/wp/wp-admin/js/postbox.js +0 -199
  321. data/lib/wp/wp-admin/js/postbox.min.js +0 -1
  322. data/lib/wp/wp-admin/js/revisions.js +0 -1110
  323. data/lib/wp/wp-admin/js/revisions.min.js +0 -1
  324. data/lib/wp/wp-admin/js/set-post-thumbnail.js +0 -24
  325. data/lib/wp/wp-admin/js/set-post-thumbnail.min.js +0 -1
  326. data/lib/wp/wp-admin/js/svg-painter.js +0 -240
  327. data/lib/wp/wp-admin/js/svg-painter.min.js +0 -1
  328. data/lib/wp/wp-admin/js/tags.js +0 -72
  329. data/lib/wp/wp-admin/js/tags.min.js +0 -1
  330. data/lib/wp/wp-admin/js/theme.js +0 -1691
  331. data/lib/wp/wp-admin/js/theme.min.js +0 -1
  332. data/lib/wp/wp-admin/js/updates.js +0 -65
  333. data/lib/wp/wp-admin/js/updates.min.js +0 -1
  334. data/lib/wp/wp-admin/js/user-profile.js +0 -127
  335. data/lib/wp/wp-admin/js/user-profile.min.js +0 -1
  336. data/lib/wp/wp-admin/js/user-suggest.js +0 -30
  337. data/lib/wp/wp-admin/js/user-suggest.min.js +0 -1
  338. data/lib/wp/wp-admin/js/widgets.js +0 -494
  339. data/lib/wp/wp-admin/js/widgets.min.js +0 -1
  340. data/lib/wp/wp-admin/js/word-count.js +0 -44
  341. data/lib/wp/wp-admin/js/word-count.min.js +0 -1
  342. data/lib/wp/wp-admin/js/wp-fullscreen.js +0 -704
  343. data/lib/wp/wp-admin/js/wp-fullscreen.min.js +0 -1
  344. data/lib/wp/wp-admin/js/xfn.js +0 -17
  345. data/lib/wp/wp-admin/js/xfn.min.js +0 -1
  346. data/lib/wp/wp-admin/link-add.php +0 -29
  347. data/lib/wp/wp-admin/link-manager.php +0 -99
  348. data/lib/wp/wp-admin/link-parse-opml.php +0 -84
  349. data/lib/wp/wp-admin/link.php +0 -117
  350. data/lib/wp/wp-admin/load-scripts.php +0 -162
  351. data/lib/wp/wp-admin/load-styles.php +0 -153
  352. data/lib/wp/wp-admin/maint/repair.php +0 -124
  353. data/lib/wp/wp-admin/media-new.php +0 -84
  354. data/lib/wp/wp-admin/media-upload.php +0 -100
  355. data/lib/wp/wp-admin/media.php +0 -146
  356. data/lib/wp/wp-admin/menu-header.php +0 -227
  357. data/lib/wp/wp-admin/menu.php +0 -255
  358. data/lib/wp/wp-admin/moderation.php +0 -12
  359. data/lib/wp/wp-admin/ms-admin.php +0 -13
  360. data/lib/wp/wp-admin/ms-delete-site.php +0 -91
  361. data/lib/wp/wp-admin/ms-edit.php +0 -13
  362. data/lib/wp/wp-admin/ms-options.php +0 -12
  363. data/lib/wp/wp-admin/ms-sites.php +0 -13
  364. data/lib/wp/wp-admin/ms-themes.php +0 -13
  365. data/lib/wp/wp-admin/ms-upgrade-network.php +0 -13
  366. data/lib/wp/wp-admin/ms-users.php +0 -13
  367. data/lib/wp/wp-admin/my-sites.php +0 -145
  368. data/lib/wp/wp-admin/nav-menus.php +0 -798
  369. data/lib/wp/wp-admin/network.php +0 -561
  370. data/lib/wp/wp-admin/network/about.php +0 -16
  371. data/lib/wp/wp-admin/network/admin.php +0 -32
  372. data/lib/wp/wp-admin/network/credits.php +0 -16
  373. data/lib/wp/wp-admin/network/edit.php +0 -42
  374. data/lib/wp/wp-admin/network/freedoms.php +0 -16
  375. data/lib/wp/wp-admin/network/index.php +0 -79
  376. data/lib/wp/wp-admin/network/menu.php +0 -63
  377. data/lib/wp/wp-admin/network/plugin-editor.php +0 -16
  378. data/lib/wp/wp-admin/network/plugin-install.php +0 -19
  379. data/lib/wp/wp-admin/network/plugins.php +0 -16
  380. data/lib/wp/wp-admin/network/profile.php +0 -16
  381. data/lib/wp/wp-admin/network/settings.php +0 -347
  382. data/lib/wp/wp-admin/network/setup.php +0 -16
  383. data/lib/wp/wp-admin/network/site-info.php +0 -178
  384. data/lib/wp/wp-admin/network/site-new.php +0 -153
  385. data/lib/wp/wp-admin/network/site-settings.php +0 -173
  386. data/lib/wp/wp-admin/network/site-themes.php +0 -185
  387. data/lib/wp/wp-admin/network/site-users.php +0 -319
  388. data/lib/wp/wp-admin/network/sites.php +0 -275
  389. data/lib/wp/wp-admin/network/theme-editor.php +0 -16
  390. data/lib/wp/wp-admin/network/theme-install.php +0 -19
  391. data/lib/wp/wp-admin/network/themes.php +0 -291
  392. data/lib/wp/wp-admin/network/update-core.php +0 -16
  393. data/lib/wp/wp-admin/network/update.php +0 -19
  394. data/lib/wp/wp-admin/network/upgrade.php +0 -120
  395. data/lib/wp/wp-admin/network/user-edit.php +0 -16
  396. data/lib/wp/wp-admin/network/user-new.php +0 -106
  397. data/lib/wp/wp-admin/network/users.php +0 -296
  398. data/lib/wp/wp-admin/options-discussion.php +0 -273
  399. data/lib/wp/wp-admin/options-general.php +0 -355
  400. data/lib/wp/wp-admin/options-head.php +0 -18
  401. data/lib/wp/wp-admin/options-media.php +0 -136
  402. data/lib/wp/wp-admin/options-permalink.php +0 -289
  403. data/lib/wp/wp-admin/options-reading.php +0 -184
  404. data/lib/wp/wp-admin/options-writing.php +0 -194
  405. data/lib/wp/wp-admin/options.php +0 -265
  406. data/lib/wp/wp-admin/plugin-editor.php +0 -279
  407. data/lib/wp/wp-admin/plugin-install.php +0 -134
  408. data/lib/wp/wp-admin/plugins.php +0 -474
  409. data/lib/wp/wp-admin/post-new.php +0 -74
  410. data/lib/wp/wp-admin/post.php +0 -318
  411. data/lib/wp/wp-admin/press-this.php +0 -691
  412. data/lib/wp/wp-admin/profile.php +0 -18
  413. data/lib/wp/wp-admin/revision.php +0 -221
  414. data/lib/wp/wp-admin/setup-config.php +0 -345
  415. data/lib/wp/wp-admin/theme-editor.php +0 -243
  416. data/lib/wp/wp-admin/theme-install.php +0 -278
  417. data/lib/wp/wp-admin/themes.php +0 -374
  418. data/lib/wp/wp-admin/tools.php +0 -75
  419. data/lib/wp/wp-admin/update-core.php +0 -653
  420. data/lib/wp/wp-admin/update.php +0 -272
  421. data/lib/wp/wp-admin/upgrade-functions.php +0 -12
  422. data/lib/wp/wp-admin/upgrade.php +0 -116
  423. data/lib/wp/wp-admin/upload.php +0 -292
  424. data/lib/wp/wp-admin/user-edit.php +0 -557
  425. data/lib/wp/wp-admin/user-new.php +0 -439
  426. data/lib/wp/wp-admin/user/about.php +0 -13
  427. data/lib/wp/wp-admin/user/admin.php +0 -32
  428. data/lib/wp/wp-admin/user/credits.php +0 -13
  429. data/lib/wp/wp-admin/user/freedoms.php +0 -13
  430. data/lib/wp/wp-admin/user/index.php +0 -12
  431. data/lib/wp/wp-admin/user/menu.php +0 -22
  432. data/lib/wp/wp-admin/user/profile.php +0 -12
  433. data/lib/wp/wp-admin/user/user-edit.php +0 -12
  434. data/lib/wp/wp-admin/users.php +0 -460
  435. data/lib/wp/wp-admin/widgets.php +0 -442
  436. data/lib/wp/wp-blog-header.php +0 -18
  437. data/lib/wp/wp-comments-post.php +0 -164
  438. data/lib/wp/wp-config-sample.php +0 -80
  439. data/lib/wp/wp-content/index.php +0 -2
  440. data/lib/wp/wp-content/plugins/hello.php +0 -82
  441. data/lib/wp/wp-content/plugins/index.php +0 -2
  442. data/lib/wp/wp-content/themes/index.php +0 -2
  443. data/lib/wp/wp-content/themes/stump/.editorconfig +0 -11
  444. data/lib/wp/wp-content/themes/stump/.jshintrc +0 -16
  445. data/lib/wp/wp-content/themes/stump/404.php +0 -13
  446. data/lib/wp/wp-content/themes/stump/CHANGELOG.md +0 -333
  447. data/lib/wp/wp-content/themes/stump/CONTRIBUTING.md +0 -121
  448. data/lib/wp/wp-content/themes/stump/Gruntfile.js +0 -151
  449. data/lib/wp/wp-content/themes/stump/LICENSE.md +0 -19
  450. data/lib/wp/wp-content/themes/stump/assets/coffee/build/.gitkeep +0 -0
  451. data/lib/wp/wp-content/themes/stump/assets/css/editor-style.css +0 -548
  452. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  453. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.svg +0 -229
  454. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  455. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  456. data/lib/wp/wp-content/themes/stump/assets/img/.gitignore +0 -0
  457. data/lib/wp/wp-content/themes/stump/assets/js/_main.js +0 -63
  458. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/affix.js +0 -137
  459. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/alert.js +0 -88
  460. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/button.js +0 -107
  461. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/carousel.js +0 -205
  462. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/collapse.js +0 -170
  463. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/dropdown.js +0 -147
  464. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/modal.js +0 -243
  465. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/popover.js +0 -110
  466. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/scrollspy.js +0 -153
  467. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tab.js +0 -125
  468. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tooltip.js +0 -399
  469. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/transition.js +0 -48
  470. data/lib/wp/wp-content/themes/stump/assets/js/scripts.min.js +0 -1
  471. data/lib/wp/wp-content/themes/stump/assets/js/vendor/jquery-1.11.0.min.js +0 -4
  472. data/lib/wp/wp-content/themes/stump/assets/js/vendor/modernizr-2.7.0.min.js +0 -4
  473. data/lib/wp/wp-content/themes/stump/assets/sass/app.scss +0 -9
  474. data/lib/wp/wp-content/themes/stump/assets/sass/core/_variables.scss +0 -1
  475. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_alerts.scss +0 -67
  476. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_badges.scss +0 -55
  477. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_bootstrap.scss +0 -49
  478. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_breadcrumbs.scss +0 -26
  479. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_button-groups.scss +0 -226
  480. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_buttons.scss +0 -159
  481. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_carousel.scss +0 -232
  482. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_close.scss +0 -35
  483. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_code.scss +0 -63
  484. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_component-animations.scss +0 -29
  485. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_dropdowns.scss +0 -213
  486. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_forms.scss +0 -436
  487. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_glyphicons.scss +0 -233
  488. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_grid.scss +0 -84
  489. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_input-groups.scss +0 -162
  490. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_jumbotron.scss +0 -44
  491. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_labels.scss +0 -64
  492. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_list-group.scss +0 -110
  493. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_media.scss +0 -56
  494. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_mixins.scss +0 -947
  495. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_modals.scss +0 -139
  496. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navbar.scss +0 -620
  497. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navs.scss +0 -242
  498. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_normalize.scss +0 -423
  499. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pager.scss +0 -55
  500. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pagination.scss +0 -88
  501. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_panels.scss +0 -241
  502. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_popovers.scss +0 -133
  503. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_print.scss +0 -101
  504. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_progress-bars.scss +0 -80
  505. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_responsive-utilities.scss +0 -74
  506. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_scaffolding.scss +0 -134
  507. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tables.scss +0 -233
  508. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_theme.scss +0 -247
  509. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_thumbnails.scss +0 -38
  510. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tooltip.scss +0 -95
  511. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_type.scss +0 -284
  512. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_utilities.scss +0 -56
  513. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_variables.scss +0 -833
  514. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_wells.scss +0 -29
  515. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon-deprecated-upcoming.scss +0 -13
  516. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon.scss +0 -59
  517. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_button.scss +0 -273
  518. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_clearfix.scss +0 -29
  519. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_font-family.scss +0 -5
  520. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_hide-text.scss +0 -5
  521. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_html5-input-types.scss +0 -56
  522. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_position.scss +0 -42
  523. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_prefixer.scss +0 -49
  524. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_retina-image.scss +0 -32
  525. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_size.scss +0 -44
  526. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_timing-functions.scss +0 -32
  527. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_triangle.scss +0 -45
  528. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_animation.scss +0 -52
  529. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_appearance.scss +0 -3
  530. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_backface-visibility.scss +0 -6
  531. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background-image.scss +0 -48
  532. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background.scss +0 -103
  533. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-image.scss +0 -55
  534. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-radius.scss +0 -22
  535. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_box-sizing.scss +0 -4
  536. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_columns.scss +0 -47
  537. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_flex-box.scss +0 -52
  538. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_font-face.scss +0 -23
  539. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_hidpi-media-query.scss +0 -10
  540. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_image-rendering.scss +0 -13
  541. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_inline-block.scss +0 -8
  542. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_keyframes.scss +0 -43
  543. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_linear-gradient.scss +0 -41
  544. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_perspective.scss +0 -8
  545. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_placeholder.scss +0 -29
  546. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_radial-gradient.scss +0 -44
  547. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transform.scss +0 -15
  548. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transition.scss +0 -34
  549. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_user-select.scss +0 -3
  550. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_compact.scss +0 -11
  551. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_flex-grid.scss +0 -39
  552. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_grid-width.scss +0 -13
  553. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_linear-gradient.scss +0 -13
  554. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_modular-scale.scss +0 -40
  555. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_px-to-em.scss +0 -8
  556. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_radial-gradient.scss +0 -23
  557. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_tint-shade.scss +0 -9
  558. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_transition-property-name.scss +0 -22
  559. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_deprecated-webkit-gradient.scss +0 -39
  560. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_gradient-positions-parser.scss +0 -13
  561. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_linear-positions-parser.scss +0 -61
  562. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-arg-parser.scss +0 -69
  563. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-positions-parser.scss +0 -18
  564. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_render-gradients.scss +0 -26
  565. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_shape-size-stripper.scss +0 -10
  566. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan.sass +0 -11
  567. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_grid.sass +0 -161
  568. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_mixins.sass +0 -63
  569. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_utilities.sass +0 -24
  570. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_variables.sass +0 -42
  571. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat-helpers.scss +0 -8
  572. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat.scss +0 -21
  573. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_new-breakpoint.scss +0 -16
  574. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_private.scss +0 -107
  575. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_px-to-em.scss +0 -3
  576. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_fill-parent.scss +0 -7
  577. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_grid.scss +0 -5
  578. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_media.scss +0 -51
  579. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_omega.scss +0 -79
  580. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_outer-container.scss +0 -8
  581. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_pad.scss +0 -8
  582. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_private.scss +0 -50
  583. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_reset.scss +0 -12
  584. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_row.scss +0 -17
  585. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_shift.scss +0 -9
  586. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_span-columns.scss +0 -38
  587. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_to-deprecate.scss +0 -57
  588. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_visual-grid.scss +0 -41
  589. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_grid.scss +0 -7
  590. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_visual-grid.scss +0 -5
  591. data/lib/wp/wp-content/themes/stump/base.php +0 -36
  592. data/lib/wp/wp-content/themes/stump/functions.php +0 -19
  593. data/lib/wp/wp-content/themes/stump/index.php +0 -21
  594. data/lib/wp/wp-content/themes/stump/lang/ar.mo +0 -0
  595. data/lib/wp/wp-content/themes/stump/lang/ar.po +0 -270
  596. data/lib/wp/wp-content/themes/stump/lang/bg_BG.mo +0 -0
  597. data/lib/wp/wp-content/themes/stump/lang/bg_BG.po +0 -338
  598. data/lib/wp/wp-content/themes/stump/lang/ca.mo +0 -0
  599. data/lib/wp/wp-content/themes/stump/lang/ca.po +0 -517
  600. data/lib/wp/wp-content/themes/stump/lang/da_DK.mo +0 -0
  601. data/lib/wp/wp-content/themes/stump/lang/da_DK.po +0 -305
  602. data/lib/wp/wp-content/themes/stump/lang/de_DE.mo +0 -0
  603. data/lib/wp/wp-content/themes/stump/lang/de_DE.po +0 -271
  604. data/lib/wp/wp-content/themes/stump/lang/el.mo +0 -0
  605. data/lib/wp/wp-content/themes/stump/lang/el.po +0 -319
  606. data/lib/wp/wp-content/themes/stump/lang/es_ES.mo +0 -0
  607. data/lib/wp/wp-content/themes/stump/lang/es_ES.po +0 -270
  608. data/lib/wp/wp-content/themes/stump/lang/et.mo +0 -0
  609. data/lib/wp/wp-content/themes/stump/lang/et.po +0 -262
  610. data/lib/wp/wp-content/themes/stump/lang/fa_IR.mo +0 -0
  611. data/lib/wp/wp-content/themes/stump/lang/fa_IR.po +0 -273
  612. data/lib/wp/wp-content/themes/stump/lang/fi_FI.mo +0 -0
  613. data/lib/wp/wp-content/themes/stump/lang/fi_FI.po +0 -367
  614. data/lib/wp/wp-content/themes/stump/lang/fr_FR.mo +0 -0
  615. data/lib/wp/wp-content/themes/stump/lang/fr_FR.po +0 -336
  616. data/lib/wp/wp-content/themes/stump/lang/he_IL.mo +0 -0
  617. data/lib/wp/wp-content/themes/stump/lang/he_IL.po +0 -336
  618. data/lib/wp/wp-content/themes/stump/lang/hu_HU.mo +0 -0
  619. data/lib/wp/wp-content/themes/stump/lang/hu_HU.po +0 -271
  620. data/lib/wp/wp-content/themes/stump/lang/id_ID.mo +0 -0
  621. data/lib/wp/wp-content/themes/stump/lang/id_ID.po +0 -278
  622. data/lib/wp/wp-content/themes/stump/lang/it_IT.mo +0 -0
  623. data/lib/wp/wp-content/themes/stump/lang/it_IT.po +0 -269
  624. data/lib/wp/wp-content/themes/stump/lang/ja.mo +0 -0
  625. data/lib/wp/wp-content/themes/stump/lang/ja.po +0 -267
  626. data/lib/wp/wp-content/themes/stump/lang/ko_KR.mo +0 -0
  627. data/lib/wp/wp-content/themes/stump/lang/ko_KR.po +0 -282
  628. data/lib/wp/wp-content/themes/stump/lang/mk_MK.mo +0 -0
  629. data/lib/wp/wp-content/themes/stump/lang/mk_MK.po +0 -297
  630. data/lib/wp/wp-content/themes/stump/lang/ms_MY.mo +0 -0
  631. data/lib/wp/wp-content/themes/stump/lang/ms_MY.po +0 -342
  632. data/lib/wp/wp-content/themes/stump/lang/nb_NO.mo +0 -0
  633. data/lib/wp/wp-content/themes/stump/lang/nb_NO.po +0 -517
  634. data/lib/wp/wp-content/themes/stump/lang/nl_NL.mo +0 -0
  635. data/lib/wp/wp-content/themes/stump/lang/nl_NL.po +0 -261
  636. data/lib/wp/wp-content/themes/stump/lang/nn_NO.mo +0 -0
  637. data/lib/wp/wp-content/themes/stump/lang/nn_NO.po +0 -517
  638. data/lib/wp/wp-content/themes/stump/lang/pl_PL.mo +0 -0
  639. data/lib/wp/wp-content/themes/stump/lang/pl_PL.po +0 -283
  640. data/lib/wp/wp-content/themes/stump/lang/pt_BR.mo +0 -0
  641. data/lib/wp/wp-content/themes/stump/lang/pt_BR.po +0 -394
  642. data/lib/wp/wp-content/themes/stump/lang/ro_RO.mo +0 -0
  643. data/lib/wp/wp-content/themes/stump/lang/ro_RO.po +0 -271
  644. data/lib/wp/wp-content/themes/stump/lang/roots.pot +0 -244
  645. data/lib/wp/wp-content/themes/stump/lang/ru_RU.mo +0 -0
  646. data/lib/wp/wp-content/themes/stump/lang/ru_RU.po +0 -255
  647. data/lib/wp/wp-content/themes/stump/lang/sk_SK.mo +0 -0
  648. data/lib/wp/wp-content/themes/stump/lang/sk_SK.po +0 -267
  649. data/lib/wp/wp-content/themes/stump/lang/sr_RS.mo +0 -0
  650. data/lib/wp/wp-content/themes/stump/lang/sr_RS.pot +0 -261
  651. data/lib/wp/wp-content/themes/stump/lang/sv_SE.mo +0 -0
  652. data/lib/wp/wp-content/themes/stump/lang/sv_SE.po +0 -323
  653. data/lib/wp/wp-content/themes/stump/lang/tr_TR.mo +0 -0
  654. data/lib/wp/wp-content/themes/stump/lang/tr_TR.po +0 -405
  655. data/lib/wp/wp-content/themes/stump/lang/vi_VN.mo +0 -0
  656. data/lib/wp/wp-content/themes/stump/lang/vi_VN.po +0 -516
  657. data/lib/wp/wp-content/themes/stump/lang/zh_CN.mo +0 -0
  658. data/lib/wp/wp-content/themes/stump/lang/zh_CN.po +0 -329
  659. data/lib/wp/wp-content/themes/stump/lang/zh_TW.mo +0 -0
  660. data/lib/wp/wp-content/themes/stump/lang/zh_TW.po +0 -261
  661. data/lib/wp/wp-content/themes/stump/lib/activation.php +0 -215
  662. data/lib/wp/wp-content/themes/stump/lib/cleanup.php +0 -261
  663. data/lib/wp/wp-content/themes/stump/lib/comments.php +0 -52
  664. data/lib/wp/wp-content/themes/stump/lib/config.php +0 -79
  665. data/lib/wp/wp-content/themes/stump/lib/custom.php +0 -4
  666. data/lib/wp/wp-content/themes/stump/lib/gallery.php +0 -130
  667. data/lib/wp/wp-content/themes/stump/lib/init.php +0 -25
  668. data/lib/wp/wp-content/themes/stump/lib/nav.php +0 -93
  669. data/lib/wp/wp-content/themes/stump/lib/relative-urls.php +0 -50
  670. data/lib/wp/wp-content/themes/stump/lib/scripts.php +0 -67
  671. data/lib/wp/wp-content/themes/stump/lib/sidebar.php +0 -43
  672. data/lib/wp/wp-content/themes/stump/lib/titles.php +0 -37
  673. data/lib/wp/wp-content/themes/stump/lib/utils.php +0 -14
  674. data/lib/wp/wp-content/themes/stump/lib/widgets.php +0 -133
  675. data/lib/wp/wp-content/themes/stump/lib/wrapper.php +0 -49
  676. data/lib/wp/wp-content/themes/stump/package.json +0 -32
  677. data/lib/wp/wp-content/themes/stump/page.php +0 -2
  678. data/lib/wp/wp-content/themes/stump/screenshot.png +0 -0
  679. data/lib/wp/wp-content/themes/stump/single.php +0 -1
  680. data/lib/wp/wp-content/themes/stump/style.css +0 -11
  681. data/lib/wp/wp-content/themes/stump/template-custom.php +0 -8
  682. data/lib/wp/wp-content/themes/stump/templates/comment.php +0 -14
  683. data/lib/wp/wp-content/themes/stump/templates/comments.php +0 -80
  684. data/lib/wp/wp-content/themes/stump/templates/content-page.php +0 -4
  685. data/lib/wp/wp-content/themes/stump/templates/content-single.php +0 -15
  686. data/lib/wp/wp-content/themes/stump/templates/content.php +0 -9
  687. data/lib/wp/wp-content/themes/stump/templates/entry-meta.php +0 -2
  688. data/lib/wp/wp-content/themes/stump/templates/footer.php +0 -8
  689. data/lib/wp/wp-content/themes/stump/templates/head.php +0 -12
  690. data/lib/wp/wp-content/themes/stump/templates/header-top-navbar.php +0 -21
  691. data/lib/wp/wp-content/themes/stump/templates/header.php +0 -14
  692. data/lib/wp/wp-content/themes/stump/templates/page-header.php +0 -5
  693. data/lib/wp/wp-content/themes/stump/templates/searchform.php +0 -9
  694. data/lib/wp/wp-content/themes/stump/templates/sidebar.php +0 -1
  695. data/lib/wp/wp-cron.php +0 -115
  696. data/lib/wp/wp-includes/ID3/getid3.lib.php +0 -1376
  697. data/lib/wp/wp-includes/ID3/getid3.php +0 -1796
  698. data/lib/wp/wp-includes/ID3/license.commercial.txt +0 -27
  699. data/lib/wp/wp-includes/ID3/license.txt +0 -29
  700. data/lib/wp/wp-includes/ID3/module.audio-video.asf.php +0 -2013
  701. data/lib/wp/wp-includes/ID3/module.audio-video.flv.php +0 -745
  702. data/lib/wp/wp-includes/ID3/module.audio-video.matroska.php +0 -1751
  703. data/lib/wp/wp-includes/ID3/module.audio-video.quicktime.php +0 -2246
  704. data/lib/wp/wp-includes/ID3/module.audio-video.riff.php +0 -2586
  705. data/lib/wp/wp-includes/ID3/module.audio.ac3.php +0 -474
  706. data/lib/wp/wp-includes/ID3/module.audio.dts.php +0 -291
  707. data/lib/wp/wp-includes/ID3/module.audio.flac.php +0 -443
  708. data/lib/wp/wp-includes/ID3/module.audio.mp3.php +0 -2012
  709. data/lib/wp/wp-includes/ID3/module.audio.ogg.php +0 -756
  710. data/lib/wp/wp-includes/ID3/module.tag.apetag.php +0 -371
  711. data/lib/wp/wp-includes/ID3/module.tag.id3v1.php +0 -360
  712. data/lib/wp/wp-includes/ID3/module.tag.id3v2.php +0 -3424
  713. data/lib/wp/wp-includes/ID3/module.tag.lyrics3.php +0 -294
  714. data/lib/wp/wp-includes/ID3/readme.txt +0 -604
  715. data/lib/wp/wp-includes/SimplePie/Author.php +0 -157
  716. data/lib/wp/wp-includes/SimplePie/Cache.php +0 -133
  717. data/lib/wp/wp-includes/SimplePie/Cache/Base.php +0 -114
  718. data/lib/wp/wp-includes/SimplePie/Cache/DB.php +0 -137
  719. data/lib/wp/wp-includes/SimplePie/Cache/File.php +0 -173
  720. data/lib/wp/wp-includes/SimplePie/Cache/Memcache.php +0 -183
  721. data/lib/wp/wp-includes/SimplePie/Cache/MySQL.php +0 -438
  722. data/lib/wp/wp-includes/SimplePie/Caption.php +0 -210
  723. data/lib/wp/wp-includes/SimplePie/Category.php +0 -157
  724. data/lib/wp/wp-includes/SimplePie/Content/Type/Sniffer.php +0 -332
  725. data/lib/wp/wp-includes/SimplePie/Copyright.php +0 -130
  726. data/lib/wp/wp-includes/SimplePie/Core.php +0 -57
  727. data/lib/wp/wp-includes/SimplePie/Credit.php +0 -156
  728. data/lib/wp/wp-includes/SimplePie/Decode/HTML/Entities.php +0 -617
  729. data/lib/wp/wp-includes/SimplePie/Enclosure.php +0 -1380
  730. data/lib/wp/wp-includes/SimplePie/Exception.php +0 -52
  731. data/lib/wp/wp-includes/SimplePie/File.php +0 -292
  732. data/lib/wp/wp-includes/SimplePie/HTTP/Parser.php +0 -500
  733. data/lib/wp/wp-includes/SimplePie/IRI.php +0 -1238
  734. data/lib/wp/wp-includes/SimplePie/Item.php +0 -2964
  735. data/lib/wp/wp-includes/SimplePie/Locator.php +0 -372
  736. data/lib/wp/wp-includes/SimplePie/Misc.php +0 -2247
  737. data/lib/wp/wp-includes/SimplePie/Net/IPv6.php +0 -276
  738. data/lib/wp/wp-includes/SimplePie/Parse/Date.php +0 -983
  739. data/lib/wp/wp-includes/SimplePie/Parser.php +0 -407
  740. data/lib/wp/wp-includes/SimplePie/Rating.php +0 -129
  741. data/lib/wp/wp-includes/SimplePie/Registry.php +0 -225
  742. data/lib/wp/wp-includes/SimplePie/Restriction.php +0 -155
  743. data/lib/wp/wp-includes/SimplePie/Sanitize.php +0 -554
  744. data/lib/wp/wp-includes/SimplePie/Source.php +0 -611
  745. data/lib/wp/wp-includes/SimplePie/XML/Declaration/Parser.php +0 -362
  746. data/lib/wp/wp-includes/SimplePie/gzdecode.php +0 -371
  747. data/lib/wp/wp-includes/Text/Diff.php +0 -450
  748. data/lib/wp/wp-includes/Text/Diff/Engine/native.php +0 -436
  749. data/lib/wp/wp-includes/Text/Diff/Engine/shell.php +0 -162
  750. data/lib/wp/wp-includes/Text/Diff/Engine/string.php +0 -248
  751. data/lib/wp/wp-includes/Text/Diff/Engine/xdiff.php +0 -64
  752. data/lib/wp/wp-includes/Text/Diff/Renderer.php +0 -235
  753. data/lib/wp/wp-includes/Text/Diff/Renderer/inline.php +0 -206
  754. data/lib/wp/wp-includes/admin-bar.php +0 -870
  755. data/lib/wp/wp-includes/atomlib.php +0 -352
  756. data/lib/wp/wp-includes/author-template.php +0 -471
  757. data/lib/wp/wp-includes/bookmark-template.php +0 -298
  758. data/lib/wp/wp-includes/bookmark.php +0 -416
  759. data/lib/wp/wp-includes/cache.php +0 -704
  760. data/lib/wp/wp-includes/canonical.php +0 -586
  761. data/lib/wp/wp-includes/capabilities.php +0 -1539
  762. data/lib/wp/wp-includes/category-template.php +0 -1407
  763. data/lib/wp/wp-includes/category.php +0 -343
  764. data/lib/wp/wp-includes/certificates/ca-bundle.crt +0 -3785
  765. data/lib/wp/wp-includes/class-IXR.php +0 -1100
  766. data/lib/wp/wp-includes/class-feed.php +0 -140
  767. data/lib/wp/wp-includes/class-http.php +0 -2245
  768. data/lib/wp/wp-includes/class-json.php +0 -936
  769. data/lib/wp/wp-includes/class-oembed.php +0 -579
  770. data/lib/wp/wp-includes/class-phpass.php +0 -260
  771. data/lib/wp/wp-includes/class-phpmailer.php +0 -3265
  772. data/lib/wp/wp-includes/class-pop3.php +0 -652
  773. data/lib/wp/wp-includes/class-simplepie.php +0 -3119
  774. data/lib/wp/wp-includes/class-smtp.php +0 -943
  775. data/lib/wp/wp-includes/class-snoopy.php +0 -1256
  776. data/lib/wp/wp-includes/class-wp-admin-bar.php +0 -517
  777. data/lib/wp/wp-includes/class-wp-ajax-response.php +0 -199
  778. data/lib/wp/wp-includes/class-wp-customize-control.php +0 -1124
  779. data/lib/wp/wp-includes/class-wp-customize-manager.php +0 -1272
  780. data/lib/wp/wp-includes/class-wp-customize-panel.php +0 -200
  781. data/lib/wp/wp-includes/class-wp-customize-section.php +0 -196
  782. data/lib/wp/wp-includes/class-wp-customize-setting.php +0 -554
  783. data/lib/wp/wp-includes/class-wp-customize-widgets.php +0 -1556
  784. data/lib/wp/wp-includes/class-wp-editor.php +0 -1435
  785. data/lib/wp/wp-includes/class-wp-embed.php +0 -373
  786. data/lib/wp/wp-includes/class-wp-error.php +0 -276
  787. data/lib/wp/wp-includes/class-wp-http-ixr-client.php +0 -97
  788. data/lib/wp/wp-includes/class-wp-image-editor-gd.php +0 -459
  789. data/lib/wp/wp-includes/class-wp-image-editor-imagick.php +0 -512
  790. data/lib/wp/wp-includes/class-wp-image-editor.php +0 -475
  791. data/lib/wp/wp-includes/class-wp-theme.php +0 -1235
  792. data/lib/wp/wp-includes/class-wp-walker.php +0 -471
  793. data/lib/wp/wp-includes/class-wp-xmlrpc-server.php +0 -5984
  794. data/lib/wp/wp-includes/class-wp.php +0 -782
  795. data/lib/wp/wp-includes/class.wp-dependencies.php +0 -509
  796. data/lib/wp/wp-includes/class.wp-scripts.php +0 -247
  797. data/lib/wp/wp-includes/class.wp-styles.php +0 -210
  798. data/lib/wp/wp-includes/comment-template.php +0 -2286
  799. data/lib/wp/wp-includes/comment.php +0 -2606
  800. data/lib/wp/wp-includes/compat.php +0 -125
  801. data/lib/wp/wp-includes/cron.php +0 -469
  802. data/lib/wp/wp-includes/css/admin-bar-rtl.css +0 -1099
  803. data/lib/wp/wp-includes/css/admin-bar-rtl.min.css +0 -1
  804. data/lib/wp/wp-includes/css/admin-bar.css +0 -1099
  805. data/lib/wp/wp-includes/css/admin-bar.min.css +0 -1
  806. data/lib/wp/wp-includes/css/buttons-rtl.css +0 -364
  807. data/lib/wp/wp-includes/css/buttons-rtl.min.css +0 -1
  808. data/lib/wp/wp-includes/css/buttons.css +0 -364
  809. data/lib/wp/wp-includes/css/buttons.min.css +0 -1
  810. data/lib/wp/wp-includes/css/dashicons.css +0 -893
  811. data/lib/wp/wp-includes/css/dashicons.min.css +0 -1
  812. data/lib/wp/wp-includes/css/editor-rtl.css +0 -1993
  813. data/lib/wp/wp-includes/css/editor-rtl.min.css +0 -1
  814. data/lib/wp/wp-includes/css/editor.css +0 -1993
  815. data/lib/wp/wp-includes/css/editor.min.css +0 -1
  816. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.css +0 -343
  817. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.min.css +0 -19
  818. data/lib/wp/wp-includes/css/jquery-ui-dialog.css +0 -343
  819. data/lib/wp/wp-includes/css/jquery-ui-dialog.min.css +0 -19
  820. data/lib/wp/wp-includes/css/media-views-rtl.css +0 -2568
  821. data/lib/wp/wp-includes/css/media-views-rtl.min.css +0 -1
  822. data/lib/wp/wp-includes/css/media-views.css +0 -2568
  823. data/lib/wp/wp-includes/css/media-views.min.css +0 -1
  824. data/lib/wp/wp-includes/css/wp-auth-check-rtl.css +0 -100
  825. data/lib/wp/wp-includes/css/wp-auth-check-rtl.min.css +0 -1
  826. data/lib/wp/wp-includes/css/wp-auth-check.css +0 -100
  827. data/lib/wp/wp-includes/css/wp-auth-check.min.css +0 -1
  828. data/lib/wp/wp-includes/css/wp-pointer-rtl.css +0 -212
  829. data/lib/wp/wp-includes/css/wp-pointer-rtl.min.css +0 -1
  830. data/lib/wp/wp-includes/css/wp-pointer.css +0 -212
  831. data/lib/wp/wp-includes/css/wp-pointer.min.css +0 -1
  832. data/lib/wp/wp-includes/date.php +0 -475
  833. data/lib/wp/wp-includes/default-constants.php +0 -323
  834. data/lib/wp/wp-includes/default-filters.php +0 -307
  835. data/lib/wp/wp-includes/default-widgets.php +0 -1423
  836. data/lib/wp/wp-includes/deprecated.php +0 -3501
  837. data/lib/wp/wp-includes/feed-atom-comments.php +0 -115
  838. data/lib/wp/wp-includes/feed-atom.php +0 -87
  839. data/lib/wp/wp-includes/feed-rdf.php +0 -81
  840. data/lib/wp/wp-includes/feed-rss.php +0 -46
  841. data/lib/wp/wp-includes/feed-rss2-comments.php +0 -97
  842. data/lib/wp/wp-includes/feed-rss2.php +0 -115
  843. data/lib/wp/wp-includes/feed.php +0 -659
  844. data/lib/wp/wp-includes/fonts/dashicons.eot +0 -0
  845. data/lib/wp/wp-includes/fonts/dashicons.svg +0 -250
  846. data/lib/wp/wp-includes/fonts/dashicons.ttf +0 -0
  847. data/lib/wp/wp-includes/fonts/dashicons.woff +0 -0
  848. data/lib/wp/wp-includes/formatting.php +0 -4006
  849. data/lib/wp/wp-includes/functions.php +0 -4631
  850. data/lib/wp/wp-includes/functions.wp-scripts.php +0 -258
  851. data/lib/wp/wp-includes/functions.wp-styles.php +0 -245
  852. data/lib/wp/wp-includes/general-template.php +0 -2982
  853. data/lib/wp/wp-includes/http.php +0 -551
  854. data/lib/wp/wp-includes/images/admin-bar-sprite-2x.png +0 -0
  855. data/lib/wp/wp-includes/images/admin-bar-sprite.png +0 -0
  856. data/lib/wp/wp-includes/images/arrow-pointer-blue-2x.png +0 -0
  857. data/lib/wp/wp-includes/images/arrow-pointer-blue.png +0 -0
  858. data/lib/wp/wp-includes/images/blank.gif +0 -0
  859. data/lib/wp/wp-includes/images/crystal/archive.png +0 -0
  860. data/lib/wp/wp-includes/images/crystal/audio.png +0 -0
  861. data/lib/wp/wp-includes/images/crystal/code.png +0 -0
  862. data/lib/wp/wp-includes/images/crystal/default.png +0 -0
  863. data/lib/wp/wp-includes/images/crystal/document.png +0 -0
  864. data/lib/wp/wp-includes/images/crystal/interactive.png +0 -0
  865. data/lib/wp/wp-includes/images/crystal/license.txt +0 -9
  866. data/lib/wp/wp-includes/images/crystal/spreadsheet.png +0 -0
  867. data/lib/wp/wp-includes/images/crystal/text.png +0 -0
  868. data/lib/wp/wp-includes/images/crystal/video.png +0 -0
  869. data/lib/wp/wp-includes/images/down_arrow-2x.gif +0 -0
  870. data/lib/wp/wp-includes/images/down_arrow.gif +0 -0
  871. data/lib/wp/wp-includes/images/icon-pointer-flag-2x.png +0 -0
  872. data/lib/wp/wp-includes/images/icon-pointer-flag.png +0 -0
  873. data/lib/wp/wp-includes/images/media/archive.png +0 -0
  874. data/lib/wp/wp-includes/images/media/audio.png +0 -0
  875. data/lib/wp/wp-includes/images/media/code.png +0 -0
  876. data/lib/wp/wp-includes/images/media/default.png +0 -0
  877. data/lib/wp/wp-includes/images/media/document.png +0 -0
  878. data/lib/wp/wp-includes/images/media/interactive.png +0 -0
  879. data/lib/wp/wp-includes/images/media/spreadsheet.png +0 -0
  880. data/lib/wp/wp-includes/images/media/text.png +0 -0
  881. data/lib/wp/wp-includes/images/media/video.png +0 -0
  882. data/lib/wp/wp-includes/images/rss-2x.png +0 -0
  883. data/lib/wp/wp-includes/images/rss.png +0 -0
  884. data/lib/wp/wp-includes/images/smilies/icon_arrow.gif +0 -0
  885. data/lib/wp/wp-includes/images/smilies/icon_biggrin.gif +0 -0
  886. data/lib/wp/wp-includes/images/smilies/icon_confused.gif +0 -0
  887. data/lib/wp/wp-includes/images/smilies/icon_cool.gif +0 -0
  888. data/lib/wp/wp-includes/images/smilies/icon_cry.gif +0 -0
  889. data/lib/wp/wp-includes/images/smilies/icon_eek.gif +0 -0
  890. data/lib/wp/wp-includes/images/smilies/icon_evil.gif +0 -0
  891. data/lib/wp/wp-includes/images/smilies/icon_exclaim.gif +0 -0
  892. data/lib/wp/wp-includes/images/smilies/icon_idea.gif +0 -0
  893. data/lib/wp/wp-includes/images/smilies/icon_lol.gif +0 -0
  894. data/lib/wp/wp-includes/images/smilies/icon_mad.gif +0 -0
  895. data/lib/wp/wp-includes/images/smilies/icon_mrgreen.gif +0 -0
  896. data/lib/wp/wp-includes/images/smilies/icon_neutral.gif +0 -0
  897. data/lib/wp/wp-includes/images/smilies/icon_question.gif +0 -0
  898. data/lib/wp/wp-includes/images/smilies/icon_razz.gif +0 -0
  899. data/lib/wp/wp-includes/images/smilies/icon_redface.gif +0 -0
  900. data/lib/wp/wp-includes/images/smilies/icon_rolleyes.gif +0 -0
  901. data/lib/wp/wp-includes/images/smilies/icon_sad.gif +0 -0
  902. data/lib/wp/wp-includes/images/smilies/icon_smile.gif +0 -0
  903. data/lib/wp/wp-includes/images/smilies/icon_surprised.gif +0 -0
  904. data/lib/wp/wp-includes/images/smilies/icon_twisted.gif +0 -0
  905. data/lib/wp/wp-includes/images/smilies/icon_wink.gif +0 -0
  906. data/lib/wp/wp-includes/images/spinner-2x.gif +0 -0
  907. data/lib/wp/wp-includes/images/spinner.gif +0 -0
  908. data/lib/wp/wp-includes/images/toggle-arrow-2x.png +0 -0
  909. data/lib/wp/wp-includes/images/toggle-arrow.png +0 -0
  910. data/lib/wp/wp-includes/images/uploader-icons-2x.png +0 -0
  911. data/lib/wp/wp-includes/images/uploader-icons.png +0 -0
  912. data/lib/wp/wp-includes/images/wlw/wp-comments.png +0 -0
  913. data/lib/wp/wp-includes/images/wlw/wp-icon.png +0 -0
  914. data/lib/wp/wp-includes/images/wlw/wp-watermark.png +0 -0
  915. data/lib/wp/wp-includes/images/wpicons-2x.png +0 -0
  916. data/lib/wp/wp-includes/images/wpicons.png +0 -0
  917. data/lib/wp/wp-includes/images/wpspin-2x.gif +0 -0
  918. data/lib/wp/wp-includes/images/wpspin.gif +0 -0
  919. data/lib/wp/wp-includes/images/xit-2x.gif +0 -0
  920. data/lib/wp/wp-includes/images/xit.gif +0 -0
  921. data/lib/wp/wp-includes/js/admin-bar.js +0 -365
  922. data/lib/wp/wp-includes/js/admin-bar.min.js +0 -1
  923. data/lib/wp/wp-includes/js/autosave.js +0 -589
  924. data/lib/wp/wp-includes/js/autosave.min.js +0 -1
  925. data/lib/wp/wp-includes/js/backbone.min.js +0 -1
  926. data/lib/wp/wp-includes/js/colorpicker.js +0 -707
  927. data/lib/wp/wp-includes/js/colorpicker.min.js +0 -1
  928. data/lib/wp/wp-includes/js/comment-reply.js +0 -47
  929. data/lib/wp/wp-includes/js/comment-reply.min.js +0 -1
  930. data/lib/wp/wp-includes/js/crop/cropper.css +0 -165
  931. data/lib/wp/wp-includes/js/crop/cropper.js +0 -516
  932. data/lib/wp/wp-includes/js/crop/marqueeHoriz.gif +0 -0
  933. data/lib/wp/wp-includes/js/crop/marqueeVert.gif +0 -0
  934. data/lib/wp/wp-includes/js/customize-base.js +0 -617
  935. data/lib/wp/wp-includes/js/customize-base.min.js +0 -1
  936. data/lib/wp/wp-includes/js/customize-loader.js +0 -246
  937. data/lib/wp/wp-includes/js/customize-loader.min.js +0 -1
  938. data/lib/wp/wp-includes/js/customize-models.js +0 -247
  939. data/lib/wp/wp-includes/js/customize-models.min.js +0 -1
  940. data/lib/wp/wp-includes/js/customize-preview-widgets.js +0 -129
  941. data/lib/wp/wp-includes/js/customize-preview-widgets.min.js +0 -1
  942. data/lib/wp/wp-includes/js/customize-preview.js +0 -154
  943. data/lib/wp/wp-includes/js/customize-preview.min.js +0 -1
  944. data/lib/wp/wp-includes/js/customize-views.js +0 -231
  945. data/lib/wp/wp-includes/js/customize-views.min.js +0 -1
  946. data/lib/wp/wp-includes/js/heartbeat.js +0 -738
  947. data/lib/wp/wp-includes/js/heartbeat.min.js +0 -1
  948. data/lib/wp/wp-includes/js/hoverIntent.js +0 -115
  949. data/lib/wp/wp-includes/js/hoverIntent.min.js +0 -1
  950. data/lib/wp/wp-includes/js/imgareaselect/border-anim-h.gif +0 -0
  951. data/lib/wp/wp-includes/js/imgareaselect/border-anim-v.gif +0 -0
  952. data/lib/wp/wp-includes/js/imgareaselect/imgareaselect.css +0 -41
  953. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.js +0 -1205
  954. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +0 -1
  955. data/lib/wp/wp-includes/js/jcrop/Jcrop.gif +0 -0
  956. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.css +0 -29
  957. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.js +0 -22
  958. data/lib/wp/wp-includes/js/jquery/jquery-migrate.js +0 -521
  959. data/lib/wp/wp-includes/js/jquery/jquery-migrate.min.js +0 -2
  960. data/lib/wp/wp-includes/js/jquery/jquery.color.min.js +0 -2
  961. data/lib/wp/wp-includes/js/jquery/jquery.form.js +0 -1193
  962. data/lib/wp/wp-includes/js/jquery/jquery.form.min.js +0 -11
  963. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.js +0 -134
  964. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.min.js +0 -1
  965. data/lib/wp/wp-includes/js/jquery/jquery.js +0 -5
  966. data/lib/wp/wp-includes/js/jquery/jquery.masonry.min.js +0 -11
  967. data/lib/wp/wp-includes/js/jquery/jquery.query.js +0 -11
  968. data/lib/wp/wp-includes/js/jquery/jquery.schedule.js +0 -36
  969. data/lib/wp/wp-includes/js/jquery/jquery.serialize-object.js +0 -31
  970. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.js +0 -99
  971. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.min.js +0 -1
  972. data/lib/wp/wp-includes/js/jquery/jquery.ui.touch-punch.js +0 -11
  973. data/lib/wp/wp-includes/js/jquery/suggest.js +0 -316
  974. data/lib/wp/wp-includes/js/jquery/suggest.min.js +0 -1
  975. data/lib/wp/wp-includes/js/jquery/ui/accordion.min.js +0 -11
  976. data/lib/wp/wp-includes/js/jquery/ui/autocomplete.min.js +0 -11
  977. data/lib/wp/wp-includes/js/jquery/ui/button.min.js +0 -11
  978. data/lib/wp/wp-includes/js/jquery/ui/core.min.js +0 -11
  979. data/lib/wp/wp-includes/js/jquery/ui/datepicker.min.js +0 -12
  980. data/lib/wp/wp-includes/js/jquery/ui/dialog.min.js +0 -11
  981. data/lib/wp/wp-includes/js/jquery/ui/draggable.min.js +0 -11
  982. data/lib/wp/wp-includes/js/jquery/ui/droppable.min.js +0 -11
  983. data/lib/wp/wp-includes/js/jquery/ui/effect-blind.min.js +0 -11
  984. data/lib/wp/wp-includes/js/jquery/ui/effect-bounce.min.js +0 -11
  985. data/lib/wp/wp-includes/js/jquery/ui/effect-clip.min.js +0 -11
  986. data/lib/wp/wp-includes/js/jquery/ui/effect-drop.min.js +0 -11
  987. data/lib/wp/wp-includes/js/jquery/ui/effect-explode.min.js +0 -11
  988. data/lib/wp/wp-includes/js/jquery/ui/effect-fade.min.js +0 -11
  989. data/lib/wp/wp-includes/js/jquery/ui/effect-fold.min.js +0 -11
  990. data/lib/wp/wp-includes/js/jquery/ui/effect-highlight.min.js +0 -11
  991. data/lib/wp/wp-includes/js/jquery/ui/effect-puff.min.js +0 -11
  992. data/lib/wp/wp-includes/js/jquery/ui/effect-pulsate.min.js +0 -11
  993. data/lib/wp/wp-includes/js/jquery/ui/effect-scale.min.js +0 -11
  994. data/lib/wp/wp-includes/js/jquery/ui/effect-shake.min.js +0 -11
  995. data/lib/wp/wp-includes/js/jquery/ui/effect-size.min.js +0 -11
  996. data/lib/wp/wp-includes/js/jquery/ui/effect-slide.min.js +0 -11
  997. data/lib/wp/wp-includes/js/jquery/ui/effect-transfer.min.js +0 -11
  998. data/lib/wp/wp-includes/js/jquery/ui/effect.min.js +0 -21
  999. data/lib/wp/wp-includes/js/jquery/ui/menu.min.js +0 -11
  1000. data/lib/wp/wp-includes/js/jquery/ui/mouse.min.js +0 -11
  1001. data/lib/wp/wp-includes/js/jquery/ui/position.min.js +0 -11
  1002. data/lib/wp/wp-includes/js/jquery/ui/progressbar.min.js +0 -11
  1003. data/lib/wp/wp-includes/js/jquery/ui/resizable.min.js +0 -11
  1004. data/lib/wp/wp-includes/js/jquery/ui/selectable.min.js +0 -11
  1005. data/lib/wp/wp-includes/js/jquery/ui/selectmenu.min.js +0 -11
  1006. data/lib/wp/wp-includes/js/jquery/ui/slider.min.js +0 -11
  1007. data/lib/wp/wp-includes/js/jquery/ui/sortable.min.js +0 -11
  1008. data/lib/wp/wp-includes/js/jquery/ui/spinner.min.js +0 -11
  1009. data/lib/wp/wp-includes/js/jquery/ui/tabs.min.js +0 -11
  1010. data/lib/wp/wp-includes/js/jquery/ui/tooltip.min.js +0 -11
  1011. data/lib/wp/wp-includes/js/jquery/ui/widget.min.js +0 -11
  1012. data/lib/wp/wp-includes/js/json2.js +0 -480
  1013. data/lib/wp/wp-includes/js/json2.min.js +0 -1
  1014. data/lib/wp/wp-includes/js/masonry.min.js +0 -1
  1015. data/lib/wp/wp-includes/js/mce-view.js +0 -829
  1016. data/lib/wp/wp-includes/js/mce-view.min.js +0 -1
  1017. data/lib/wp/wp-includes/js/media-audiovideo.js +0 -831
  1018. data/lib/wp/wp-includes/js/media-audiovideo.min.js +0 -1
  1019. data/lib/wp/wp-includes/js/media-editor.js +0 -1114
  1020. data/lib/wp/wp-includes/js/media-editor.min.js +0 -1
  1021. data/lib/wp/wp-includes/js/media-grid.js +0 -732
  1022. data/lib/wp/wp-includes/js/media-grid.min.js +0 -1
  1023. data/lib/wp/wp-includes/js/media-models.js +0 -1362
  1024. data/lib/wp/wp-includes/js/media-models.min.js +0 -1
  1025. data/lib/wp/wp-includes/js/media-views.js +0 -7484
  1026. data/lib/wp/wp-includes/js/media-views.min.js +0 -3
  1027. data/lib/wp/wp-includes/js/mediaelement/background.png +0 -0
  1028. data/lib/wp/wp-includes/js/mediaelement/bigplay.png +0 -0
  1029. data/lib/wp/wp-includes/js/mediaelement/bigplay.svg +0 -1
  1030. data/lib/wp/wp-includes/js/mediaelement/controls.png +0 -0
  1031. data/lib/wp/wp-includes/js/mediaelement/controls.svg +0 -1
  1032. data/lib/wp/wp-includes/js/mediaelement/flashmediaelement.swf +0 -0
  1033. data/lib/wp/wp-includes/js/mediaelement/loading.gif +0 -0
  1034. data/lib/wp/wp-includes/js/mediaelement/mediaelement-and-player.min.js +0 -181
  1035. data/lib/wp/wp-includes/js/mediaelement/mediaelementplayer.min.css +0 -1
  1036. data/lib/wp/wp-includes/js/mediaelement/silverlightmediaelement.xap +0 -0
  1037. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.css +0 -274
  1038. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.js +0 -34
  1039. data/lib/wp/wp-includes/js/mediaelement/wp-playlist.js +0 -175
  1040. data/lib/wp/wp-includes/js/plupload/handlers.js +0 -488
  1041. data/lib/wp/wp-includes/js/plupload/handlers.min.js +0 -1
  1042. data/lib/wp/wp-includes/js/plupload/license.txt +0 -339
  1043. data/lib/wp/wp-includes/js/plupload/plupload.flash.swf +0 -0
  1044. data/lib/wp/wp-includes/js/plupload/plupload.full.min.js +0 -28
  1045. data/lib/wp/wp-includes/js/plupload/plupload.silverlight.xap +0 -0
  1046. data/lib/wp/wp-includes/js/plupload/wp-plupload.js +0 -376
  1047. data/lib/wp/wp-includes/js/plupload/wp-plupload.min.js +0 -1
  1048. data/lib/wp/wp-includes/js/quicktags.js +0 -652
  1049. data/lib/wp/wp-includes/js/quicktags.min.js +0 -1
  1050. data/lib/wp/wp-includes/js/shortcode.js +0 -356
  1051. data/lib/wp/wp-includes/js/shortcode.min.js +0 -1
  1052. data/lib/wp/wp-includes/js/swfobject.js +0 -4
  1053. data/lib/wp/wp-includes/js/swfupload/handlers.js +0 -376
  1054. data/lib/wp/wp-includes/js/swfupload/handlers.min.js +0 -1
  1055. data/lib/wp/wp-includes/js/swfupload/license.txt +0 -32
  1056. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.cookies.js +0 -53
  1057. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.queue.js +0 -98
  1058. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.speed.js +0 -342
  1059. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.swfobject.js +0 -105
  1060. data/lib/wp/wp-includes/js/swfupload/swfupload.js +0 -980
  1061. data/lib/wp/wp-includes/js/swfupload/swfupload.swf +0 -0
  1062. data/lib/wp/wp-includes/js/thickbox/loadingAnimation.gif +0 -0
  1063. data/lib/wp/wp-includes/js/thickbox/macFFBgHack.png +0 -0
  1064. data/lib/wp/wp-includes/js/thickbox/thickbox.css +0 -138
  1065. data/lib/wp/wp-includes/js/thickbox/thickbox.js +0 -314
  1066. data/lib/wp/wp-includes/js/tinymce/langs/wp-langs-en.js +0 -519
  1067. data/lib/wp/wp-includes/js/tinymce/license.txt +0 -504
  1068. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.js +0 -370
  1069. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +0 -1
  1070. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +0 -112
  1071. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +0 -1
  1072. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css +0 -212
  1073. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.js +0 -304
  1074. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +0 -1
  1075. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.js +0 -64
  1076. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +0 -1
  1077. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +0 -136
  1078. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +0 -1
  1079. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.js +0 -30
  1080. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.min.js +0 -1
  1081. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.js +0 -450
  1082. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.min.js +0 -1
  1083. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.js +0 -786
  1084. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.min.js +0 -1
  1085. data/lib/wp/wp-includes/js/tinymce/plugins/media/moxieplayer.swf +0 -0
  1086. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.js +0 -774
  1087. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.min.js +0 -1
  1088. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.js +0 -1553
  1089. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.min.js +0 -1
  1090. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +0 -125
  1091. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +0 -1
  1092. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.js +0 -272
  1093. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +0 -1
  1094. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.js +0 -513
  1095. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +0 -1
  1096. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js +0 -207
  1097. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js +0 -1
  1098. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js +0 -92
  1099. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js +0 -1
  1100. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +0 -1035
  1101. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +0 -1
  1102. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +0 -78
  1103. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js +0 -1
  1104. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.js +0 -130
  1105. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js +0 -1
  1106. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.js +0 -63
  1107. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.min.js +0 -1
  1108. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.js +0 -694
  1109. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +0 -1
  1110. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +0 -1
  1111. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.min.css +0 -1
  1112. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/readme.md +0 -1
  1113. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  1114. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -62
  1115. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  1116. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  1117. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  1118. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +0 -63
  1119. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  1120. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  1121. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif +0 -0
  1122. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/loader.gif +0 -0
  1123. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/object.gif +0 -0
  1124. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/trans.gif +0 -0
  1125. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css +0 -1
  1126. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.min.css +0 -1
  1127. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/audio.png +0 -0
  1128. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png +0 -0
  1129. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no-alt.png +0 -0
  1130. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/embedded.png +0 -0
  1131. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png +0 -0
  1132. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery.png +0 -0
  1133. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png +0 -0
  1134. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more.png +0 -0
  1135. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png +0 -0
  1136. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png +0 -0
  1137. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png +0 -0
  1138. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png +0 -0
  1139. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/video.png +0 -0
  1140. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/wp-content.css +0 -618
  1141. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.js +0 -617
  1142. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.min.js +0 -1
  1143. data/lib/wp/wp-includes/js/tinymce/tiny_mce_popup.js +0 -539
  1144. data/lib/wp/wp-includes/js/tinymce/tinymce.min.js +0 -11
  1145. data/lib/wp/wp-includes/js/tinymce/utils/editable_selects.js +0 -70
  1146. data/lib/wp/wp-includes/js/tinymce/utils/form_utils.js +0 -210
  1147. data/lib/wp/wp-includes/js/tinymce/utils/mctabs.js +0 -164
  1148. data/lib/wp/wp-includes/js/tinymce/utils/validate.js +0 -252
  1149. data/lib/wp/wp-includes/js/tinymce/wp-mce-help.php +0 -145
  1150. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.js.gz +0 -0
  1151. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.php +0 -39
  1152. data/lib/wp/wp-includes/js/tw-sack.js +0 -193
  1153. data/lib/wp/wp-includes/js/tw-sack.min.js +0 -1
  1154. data/lib/wp/wp-includes/js/underscore.min.js +0 -1
  1155. data/lib/wp/wp-includes/js/utils.js +0 -197
  1156. data/lib/wp/wp-includes/js/utils.min.js +0 -1
  1157. data/lib/wp/wp-includes/js/wp-ajax-response.js +0 -64
  1158. data/lib/wp/wp-includes/js/wp-ajax-response.min.js +0 -1
  1159. data/lib/wp/wp-includes/js/wp-auth-check.js +0 -112
  1160. data/lib/wp/wp-includes/js/wp-auth-check.min.js +0 -1
  1161. data/lib/wp/wp-includes/js/wp-backbone.js +0 -386
  1162. data/lib/wp/wp-includes/js/wp-backbone.min.js +0 -1
  1163. data/lib/wp/wp-includes/js/wp-list-revisions.js +0 -24
  1164. data/lib/wp/wp-includes/js/wp-list-revisions.min.js +0 -1
  1165. data/lib/wp/wp-includes/js/wp-lists.js +0 -469
  1166. data/lib/wp/wp-includes/js/wp-lists.min.js +0 -1
  1167. data/lib/wp/wp-includes/js/wp-pointer.js +0 -282
  1168. data/lib/wp/wp-includes/js/wp-pointer.min.js +0 -1
  1169. data/lib/wp/wp-includes/js/wp-util.js +0 -106
  1170. data/lib/wp/wp-includes/js/wp-util.min.js +0 -1
  1171. data/lib/wp/wp-includes/js/wpdialog.js +0 -19
  1172. data/lib/wp/wp-includes/js/wpdialog.min.js +0 -1
  1173. data/lib/wp/wp-includes/js/wplink.js +0 -615
  1174. data/lib/wp/wp-includes/js/wplink.min.js +0 -1
  1175. data/lib/wp/wp-includes/js/zxcvbn-async.js +0 -18
  1176. data/lib/wp/wp-includes/js/zxcvbn-async.min.js +0 -1
  1177. data/lib/wp/wp-includes/js/zxcvbn.min.js +0 -47
  1178. data/lib/wp/wp-includes/kses.php +0 -1526
  1179. data/lib/wp/wp-includes/l10n.php +0 -908
  1180. data/lib/wp/wp-includes/link-template.php +0 -3141
  1181. data/lib/wp/wp-includes/load.php +0 -828
  1182. data/lib/wp/wp-includes/locale.php +0 -368
  1183. data/lib/wp/wp-includes/media-template.php +0 -1235
  1184. data/lib/wp/wp-includes/media.php +0 -3329
  1185. data/lib/wp/wp-includes/meta.php +0 -1221
  1186. data/lib/wp/wp-includes/ms-blogs.php +0 -939
  1187. data/lib/wp/wp-includes/ms-default-constants.php +0 -153
  1188. data/lib/wp/wp-includes/ms-default-filters.php +0 -82
  1189. data/lib/wp/wp-includes/ms-deprecated.php +0 -347
  1190. data/lib/wp/wp-includes/ms-files.php +0 -82
  1191. data/lib/wp/wp-includes/ms-functions.php +0 -2476
  1192. data/lib/wp/wp-includes/ms-load.php +0 -458
  1193. data/lib/wp/wp-includes/ms-settings.php +0 -213
  1194. data/lib/wp/wp-includes/nav-menu-template.php +0 -678
  1195. data/lib/wp/wp-includes/nav-menu.php +0 -895
  1196. data/lib/wp/wp-includes/option.php +0 -1440
  1197. data/lib/wp/wp-includes/pluggable-deprecated.php +0 -192
  1198. data/lib/wp/wp-includes/pluggable.php +0 -2283
  1199. data/lib/wp/wp-includes/plugin.php +0 -920
  1200. data/lib/wp/wp-includes/pomo/entry.php +0 -78
  1201. data/lib/wp/wp-includes/pomo/mo.php +0 -262
  1202. data/lib/wp/wp-includes/pomo/po.php +0 -384
  1203. data/lib/wp/wp-includes/pomo/streams.php +0 -209
  1204. data/lib/wp/wp-includes/pomo/translations.php +0 -275
  1205. data/lib/wp/wp-includes/post-formats.php +0 -243
  1206. data/lib/wp/wp-includes/post-template.php +0 -1766
  1207. data/lib/wp/wp-includes/post-thumbnail-template.php +0 -142
  1208. data/lib/wp/wp-includes/post.php +0 -5842
  1209. data/lib/wp/wp-includes/query.php +0 -4666
  1210. data/lib/wp/wp-includes/registration-functions.php +0 -7
  1211. data/lib/wp/wp-includes/registration.php +0 -7
  1212. data/lib/wp/wp-includes/revision.php +0 -657
  1213. data/lib/wp/wp-includes/rewrite.php +0 -2180
  1214. data/lib/wp/wp-includes/rss-functions.php +0 -9
  1215. data/lib/wp/wp-includes/rss.php +0 -936
  1216. data/lib/wp/wp-includes/script-loader.php +0 -1045
  1217. data/lib/wp/wp-includes/session.php +0 -430
  1218. data/lib/wp/wp-includes/shortcodes.php +0 -410
  1219. data/lib/wp/wp-includes/taxonomy.php +0 -4006
  1220. data/lib/wp/wp-includes/template-loader.php +0 -76
  1221. data/lib/wp/wp-includes/template.php +0 -505
  1222. data/lib/wp/wp-includes/theme-compat/comments-popup.php +0 -128
  1223. data/lib/wp/wp-includes/theme-compat/comments.php +0 -101
  1224. data/lib/wp/wp-includes/theme-compat/footer.php +0 -30
  1225. data/lib/wp/wp-includes/theme-compat/header.php +0 -49
  1226. data/lib/wp/wp-includes/theme-compat/sidebar.php +0 -83
  1227. data/lib/wp/wp-includes/theme.php +0 -2014
  1228. data/lib/wp/wp-includes/update.php +0 -674
  1229. data/lib/wp/wp-includes/user.php +0 -2292
  1230. data/lib/wp/wp-includes/vars.php +0 -144
  1231. data/lib/wp/wp-includes/version.php +0 -35
  1232. data/lib/wp/wp-includes/widgets.php +0 -1514
  1233. data/lib/wp/wp-includes/wlwmanifest.xml +0 -43
  1234. data/lib/wp/wp-includes/wp-db.php +0 -2190
  1235. data/lib/wp/wp-includes/wp-diff.php +0 -523
  1236. data/lib/wp/wp-links-opml.php +0 -80
  1237. data/lib/wp/wp-load.php +0 -73
  1238. data/lib/wp/wp-login.php +0 -952
  1239. data/lib/wp/wp-mail.php +0 -260
  1240. data/lib/wp/wp-settings.php +0 -374
  1241. data/lib/wp/wp-signup.php +0 -749
  1242. data/lib/wp/wp-trackback.php +0 -127
  1243. data/lib/wp/xmlrpc.php +0 -101
@@ -1,82 +0,0 @@
1
- <?php
2
- /**
3
- * Multisite upload handler.
4
- *
5
- * @since 3.0.0
6
- *
7
- * @package WordPress
8
- * @subpackage Multisite
9
- */
10
-
11
- define( 'SHORTINIT', true );
12
- require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
13
-
14
- if( !is_multisite() )
15
- die( 'Multisite support not enabled' );
16
-
17
- ms_file_constants();
18
-
19
- error_reporting( 0 );
20
-
21
- if ( $current_blog->archived == '1' || $current_blog->spam == '1' || $current_blog->deleted == '1' ) {
22
- status_header( 404 );
23
- die( '404 &#8212; File not found.' );
24
- }
25
-
26
- $file = rtrim( BLOGUPLOADDIR, '/' ) . '/' . str_replace( '..', '', $_GET[ 'file' ] );
27
- if ( !is_file( $file ) ) {
28
- status_header( 404 );
29
- die( '404 &#8212; File not found.' );
30
- }
31
-
32
- $mime = wp_check_filetype( $file );
33
- if( false === $mime[ 'type' ] && function_exists( 'mime_content_type' ) )
34
- $mime[ 'type' ] = mime_content_type( $file );
35
-
36
- if( $mime[ 'type' ] )
37
- $mimetype = $mime[ 'type' ];
38
- else
39
- $mimetype = 'image/' . substr( $file, strrpos( $file, '.' ) + 1 );
40
-
41
- header( 'Content-Type: ' . $mimetype ); // always send this
42
- if ( false === strpos( $_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS' ) )
43
- header( 'Content-Length: ' . filesize( $file ) );
44
-
45
- // Optional support for X-Sendfile and X-Accel-Redirect
46
- if ( WPMU_ACCEL_REDIRECT ) {
47
- header( 'X-Accel-Redirect: ' . str_replace( WP_CONTENT_DIR, '', $file ) );
48
- exit;
49
- } elseif ( WPMU_SENDFILE ) {
50
- header( 'X-Sendfile: ' . $file );
51
- exit;
52
- }
53
-
54
- $last_modified = gmdate( 'D, d M Y H:i:s', filemtime( $file ) );
55
- $etag = '"' . md5( $last_modified ) . '"';
56
- header( "Last-Modified: $last_modified GMT" );
57
- header( 'ETag: ' . $etag );
58
- header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + 100000000 ) . ' GMT' );
59
-
60
- // Support for Conditional GET - use stripslashes to avoid formatting.php dependency
61
- $client_etag = isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) ? stripslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) : false;
62
-
63
- if( ! isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) )
64
- $_SERVER['HTTP_IF_MODIFIED_SINCE'] = false;
65
-
66
- $client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE'] );
67
- // If string is empty, return 0. If not, attempt to parse into a timestamp
68
- $client_modified_timestamp = $client_last_modified ? strtotime( $client_last_modified ) : 0;
69
-
70
- // Make a timestamp for our most recent modification...
71
- $modified_timestamp = strtotime($last_modified);
72
-
73
- if ( ( $client_last_modified && $client_etag )
74
- ? ( ( $client_modified_timestamp >= $modified_timestamp) && ( $client_etag == $etag ) )
75
- : ( ( $client_modified_timestamp >= $modified_timestamp) || ( $client_etag == $etag ) )
76
- ) {
77
- status_header( 304 );
78
- exit;
79
- }
80
-
81
- // If we made it this far, just serve the file
82
- readfile( $file );
@@ -1,2476 +0,0 @@
1
- <?php
2
- /**
3
- * Multisite WordPress API
4
- *
5
- * @package WordPress
6
- * @subpackage Multisite
7
- * @since 3.0.0
8
- */
9
-
10
- /**
11
- * Gets the network's site and user counts.
12
- *
13
- * @since MU 1.0
14
- * @uses get_blog_count()
15
- * @uses get_user_count()
16
- *
17
- * @return array Site and user count for the network.
18
- */
19
- function get_sitestats() {
20
- $stats = array(
21
- 'blogs' => get_blog_count(),
22
- 'users' => get_user_count(),
23
- );
24
-
25
- return $stats;
26
- }
27
-
28
- /**
29
- * Get the admin for a domain/path combination.
30
- *
31
- * @since MU 1.0
32
- *
33
- * @param string $sitedomain Optional. Site domain.
34
- * @param string $path Optional. Site path.
35
- * @return array The network admins
36
- */
37
- function get_admin_users_for_domain( $sitedomain = '', $path = '' ) {
38
- global $wpdb;
39
-
40
- if ( ! $sitedomain )
41
- $site_id = $wpdb->siteid;
42
- else
43
- $site_id = $wpdb->get_var( $wpdb->prepare( "SELECT id FROM $wpdb->site WHERE domain = %s AND path = %s", $sitedomain, $path ) );
44
-
45
- if ( $site_id )
46
- return $wpdb->get_results( $wpdb->prepare( "SELECT u.ID, u.user_login, u.user_pass FROM $wpdb->users AS u, $wpdb->sitemeta AS sm WHERE sm.meta_key = 'admin_user_id' AND u.ID = sm.meta_value AND sm.site_id = %d", $site_id ), ARRAY_A );
47
-
48
- return false;
49
- }
50
-
51
- /**
52
- * Get one of a user's active blogs
53
- *
54
- * Returns the user's primary blog, if they have one and
55
- * it is active. If it's inactive, function returns another
56
- * active blog of the user. If none are found, the user
57
- * is added as a Subscriber to the Dashboard Blog and that blog
58
- * is returned.
59
- *
60
- * @since MU 1.0
61
- * @uses get_blogs_of_user()
62
- * @uses add_user_to_blog()
63
- * @uses get_blog_details()
64
- *
65
- * @param int $user_id The unique ID of the user
66
- * @return object The blog object
67
- */
68
- function get_active_blog_for_user( $user_id ) {
69
- global $wpdb;
70
- $blogs = get_blogs_of_user( $user_id );
71
- if ( empty( $blogs ) )
72
- return null;
73
-
74
- if ( !is_multisite() )
75
- return $blogs[$wpdb->blogid];
76
-
77
- $primary_blog = get_user_meta( $user_id, 'primary_blog', true );
78
- $first_blog = current($blogs);
79
- if ( false !== $primary_blog ) {
80
- if ( ! isset( $blogs[ $primary_blog ] ) ) {
81
- update_user_meta( $user_id, 'primary_blog', $first_blog->userblog_id );
82
- $primary = get_blog_details( $first_blog->userblog_id );
83
- } else {
84
- $primary = get_blog_details( $primary_blog );
85
- }
86
- } else {
87
- //TODO Review this call to add_user_to_blog too - to get here the user must have a role on this blog?
88
- add_user_to_blog( $first_blog->userblog_id, $user_id, 'subscriber' );
89
- update_user_meta( $user_id, 'primary_blog', $first_blog->userblog_id );
90
- $primary = $first_blog;
91
- }
92
-
93
- if ( ( ! is_object( $primary ) ) || ( $primary->archived == 1 || $primary->spam == 1 || $primary->deleted == 1 ) ) {
94
- $blogs = get_blogs_of_user( $user_id, true ); // if a user's primary blog is shut down, check their other blogs.
95
- $ret = false;
96
- if ( is_array( $blogs ) && count( $blogs ) > 0 ) {
97
- foreach ( (array) $blogs as $blog_id => $blog ) {
98
- if ( $blog->site_id != $wpdb->siteid )
99
- continue;
100
- $details = get_blog_details( $blog_id );
101
- if ( is_object( $details ) && $details->archived == 0 && $details->spam == 0 && $details->deleted == 0 ) {
102
- $ret = $blog;
103
- if ( get_user_meta( $user_id , 'primary_blog', true ) != $blog_id )
104
- update_user_meta( $user_id, 'primary_blog', $blog_id );
105
- if ( !get_user_meta($user_id , 'source_domain', true) )
106
- update_user_meta( $user_id, 'source_domain', $blog->domain );
107
- break;
108
- }
109
- }
110
- } else {
111
- return null;
112
- }
113
- return $ret;
114
- } else {
115
- return $primary;
116
- }
117
- }
118
-
119
- /**
120
- * The number of active users in your installation.
121
- *
122
- * The count is cached and updated twice daily. This is not a live count.
123
- *
124
- * @since MU 2.7
125
- *
126
- * @return int
127
- */
128
- function get_user_count() {
129
- return get_site_option( 'user_count' );
130
- }
131
-
132
- /**
133
- * The number of active sites on your installation.
134
- *
135
- * The count is cached and updated twice daily. This is not a live count.
136
- *
137
- * @since MU 1.0
138
- *
139
- * @param int $network_id Deprecated, not supported.
140
- * @return int
141
- */
142
- function get_blog_count( $network_id = 0 ) {
143
- if ( func_num_args() )
144
- _deprecated_argument( __FUNCTION__, '3.1' );
145
-
146
- return get_site_option( 'blog_count' );
147
- }
148
-
149
- /**
150
- * Get a blog post from any site on the network.
151
- *
152
- * @since MU 1.0
153
- *
154
- * @param int $blog_id ID of the blog.
155
- * @param int $post_id ID of the post you're looking for.
156
- * @return WP_Post|null WP_Post on success or null on failure
157
- */
158
- function get_blog_post( $blog_id, $post_id ) {
159
- switch_to_blog( $blog_id );
160
- $post = get_post( $post_id );
161
- restore_current_blog();
162
-
163
- return $post;
164
- }
165
-
166
- /**
167
- * Add a user to a blog.
168
- *
169
- * Use the 'add_user_to_blog' action to fire an event when
170
- * users are added to a blog.
171
- *
172
- * @since MU 1.0
173
- *
174
- * @param int $blog_id ID of the blog you're adding the user to.
175
- * @param int $user_id ID of the user you're adding.
176
- * @param string $role The role you want the user to have
177
- * @return bool
178
- */
179
- function add_user_to_blog( $blog_id, $user_id, $role ) {
180
- switch_to_blog($blog_id);
181
-
182
- $user = get_userdata( $user_id );
183
-
184
- if ( ! $user ) {
185
- restore_current_blog();
186
- return new WP_Error( 'user_does_not_exist', __( 'The requested user does not exist.' ) );
187
- }
188
-
189
- if ( !get_user_meta($user_id, 'primary_blog', true) ) {
190
- update_user_meta($user_id, 'primary_blog', $blog_id);
191
- $details = get_blog_details($blog_id);
192
- update_user_meta($user_id, 'source_domain', $details->domain);
193
- }
194
-
195
- $user->set_role($role);
196
-
197
- /**
198
- * Fires immediately after a user is added to a site.
199
- *
200
- * @since MU
201
- *
202
- * @param int $user_id User ID.
203
- * @param string $role User role.
204
- * @param int $blog_id Blog ID.
205
- */
206
- do_action( 'add_user_to_blog', $user_id, $role, $blog_id );
207
- wp_cache_delete( $user_id, 'users' );
208
- restore_current_blog();
209
- return true;
210
- }
211
-
212
- /**
213
- * Remove a user from a blog.
214
- *
215
- * Use the 'remove_user_from_blog' action to fire an event when
216
- * users are removed from a blog.
217
- *
218
- * Accepts an optional $reassign parameter, if you want to
219
- * reassign the user's blog posts to another user upon removal.
220
- *
221
- * @since MU 1.0
222
- *
223
- * @param int $user_id ID of the user you're removing.
224
- * @param int $blog_id ID of the blog you're removing the user from.
225
- * @param string $reassign Optional. A user to whom to reassign posts.
226
- * @return bool
227
- */
228
- function remove_user_from_blog($user_id, $blog_id = '', $reassign = '') {
229
- global $wpdb;
230
- switch_to_blog($blog_id);
231
- $user_id = (int) $user_id;
232
- /**
233
- * Fires before a user is removed from a site.
234
- *
235
- * @since MU
236
- *
237
- * @param int $user_id User ID.
238
- * @param int $blog_id Blog ID.
239
- */
240
- do_action( 'remove_user_from_blog', $user_id, $blog_id );
241
-
242
- // If being removed from the primary blog, set a new primary if the user is assigned
243
- // to multiple blogs.
244
- $primary_blog = get_user_meta($user_id, 'primary_blog', true);
245
- if ( $primary_blog == $blog_id ) {
246
- $new_id = '';
247
- $new_domain = '';
248
- $blogs = get_blogs_of_user($user_id);
249
- foreach ( (array) $blogs as $blog ) {
250
- if ( $blog->userblog_id == $blog_id )
251
- continue;
252
- $new_id = $blog->userblog_id;
253
- $new_domain = $blog->domain;
254
- break;
255
- }
256
-
257
- update_user_meta($user_id, 'primary_blog', $new_id);
258
- update_user_meta($user_id, 'source_domain', $new_domain);
259
- }
260
-
261
- // wp_revoke_user($user_id);
262
- $user = get_userdata( $user_id );
263
- if ( ! $user ) {
264
- restore_current_blog();
265
- return new WP_Error('user_does_not_exist', __('That user does not exist.'));
266
- }
267
-
268
- $user->remove_all_caps();
269
-
270
- $blogs = get_blogs_of_user($user_id);
271
- if ( count($blogs) == 0 ) {
272
- update_user_meta($user_id, 'primary_blog', '');
273
- update_user_meta($user_id, 'source_domain', '');
274
- }
275
-
276
- if ( $reassign != '' ) {
277
- $reassign = (int) $reassign;
278
- $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $user_id ) );
279
- $link_ids = $wpdb->get_col( $wpdb->prepare( "SELECT link_id FROM $wpdb->links WHERE link_owner = %d", $user_id ) );
280
-
281
- if ( ! empty( $post_ids ) ) {
282
- $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_author = %d WHERE post_author = %d", $reassign, $user_id ) );
283
- array_walk( $post_ids, 'clean_post_cache' );
284
- }
285
-
286
- if ( ! empty( $link_ids ) ) {
287
- $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->links SET link_owner = %d WHERE link_owner = %d", $reassign, $user_id ) );
288
- array_walk( $link_ids, 'clean_bookmark_cache' );
289
- }
290
- }
291
-
292
- restore_current_blog();
293
-
294
- return true;
295
- }
296
-
297
- /**
298
- * Create an empty blog.
299
- *
300
- * @since MU 1.0
301
- * @uses install_blog()
302
- *
303
- * @param string $domain The new blog's domain.
304
- * @param string $path The new blog's path.
305
- * @param string $weblog_title The new blog's title.
306
- * @param int $site_id Optional. Defaults to 1.
307
- * @return int The ID of the newly created blog
308
- */
309
- function create_empty_blog( $domain, $path, $weblog_title, $site_id = 1 ) {
310
- if ( empty($path) )
311
- $path = '/';
312
-
313
- // Check if the domain has been used already. We should return an error message.
314
- if ( domain_exists($domain, $path, $site_id) )
315
- return __( '<strong>ERROR</strong>: Site URL already taken.' );
316
-
317
- // Need to back up wpdb table names, and create a new wp_blogs entry for new blog.
318
- // Need to get blog_id from wp_blogs, and create new table names.
319
- // Must restore table names at the end of function.
320
-
321
- if ( ! $blog_id = insert_blog($domain, $path, $site_id) )
322
- return __( '<strong>ERROR</strong>: problem creating site entry.' );
323
-
324
- switch_to_blog($blog_id);
325
- install_blog($blog_id);
326
- restore_current_blog();
327
-
328
- return $blog_id;
329
- }
330
-
331
- /**
332
- * Get the permalink for a post on another blog.
333
- *
334
- * @since MU 1.0
335
- *
336
- * @param int $blog_id ID of the source blog.
337
- * @param int $post_id ID of the desired post.
338
- * @return string The post's permalink
339
- */
340
- function get_blog_permalink( $blog_id, $post_id ) {
341
- switch_to_blog( $blog_id );
342
- $link = get_permalink( $post_id );
343
- restore_current_blog();
344
-
345
- return $link;
346
- }
347
-
348
- /**
349
- * Get a blog's numeric ID from its URL.
350
- *
351
- * On a subdirectory installation like example.com/blog1/,
352
- * $domain will be the root 'example.com' and $path the
353
- * subdirectory '/blog1/'. With subdomains like blog1.example.com,
354
- * $domain is 'blog1.example.com' and $path is '/'.
355
- *
356
- * @since MU 2.6.5
357
- *
358
- * @param string $domain
359
- * @param string $path Optional. Not required for subdomain installations.
360
- * @return int 0 if no blog found, otherwise the ID of the matching blog
361
- */
362
- function get_blog_id_from_url( $domain, $path = '/' ) {
363
- global $wpdb;
364
-
365
- $domain = strtolower( $domain );
366
- $path = strtolower( $path );
367
- $id = wp_cache_get( md5( $domain . $path ), 'blog-id-cache' );
368
-
369
- if ( $id == -1 ) // blog does not exist
370
- return 0;
371
- elseif ( $id )
372
- return (int) $id;
373
-
374
- $id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s and path = %s /* get_blog_id_from_url */", $domain, $path ) );
375
-
376
- if ( ! $id ) {
377
- wp_cache_set( md5( $domain . $path ), -1, 'blog-id-cache' );
378
- return 0;
379
- }
380
-
381
- wp_cache_set( md5( $domain . $path ), $id, 'blog-id-cache' );
382
-
383
- return $id;
384
- }
385
-
386
- // Admin functions
387
-
388
- /**
389
- * Checks an email address against a list of banned domains.
390
- *
391
- * This function checks against the Banned Email Domains list
392
- * at wp-admin/network/settings.php. The check is only run on
393
- * self-registrations; user creation at wp-admin/network/users.php
394
- * bypasses this check.
395
- *
396
- * @since MU
397
- *
398
- * @param string $user_email The email provided by the user at registration.
399
- * @return bool Returns true when the email address is banned.
400
- */
401
- function is_email_address_unsafe( $user_email ) {
402
- $banned_names = get_site_option( 'banned_email_domains' );
403
- if ( $banned_names && ! is_array( $banned_names ) )
404
- $banned_names = explode( "\n", $banned_names );
405
-
406
- $is_email_address_unsafe = false;
407
-
408
- if ( $banned_names && is_array( $banned_names ) ) {
409
- $banned_names = array_map( 'strtolower', $banned_names );
410
- $normalized_email = strtolower( $user_email );
411
-
412
- list( $email_local_part, $email_domain ) = explode( '@', $normalized_email );
413
-
414
- foreach ( $banned_names as $banned_domain ) {
415
- if ( ! $banned_domain )
416
- continue;
417
-
418
- if ( $email_domain == $banned_domain ) {
419
- $is_email_address_unsafe = true;
420
- break;
421
- }
422
-
423
- $dotted_domain = ".$banned_domain";
424
- if ( $dotted_domain === substr( $normalized_email, -strlen( $dotted_domain ) ) ) {
425
- $is_email_address_unsafe = true;
426
- break;
427
- }
428
- }
429
- }
430
-
431
- /**
432
- * Filter whether an email address is unsafe.
433
- *
434
- * @since 3.5.0
435
- *
436
- * @param bool $is_email_address_unsafe Whether the email address is "unsafe". Default false.
437
- * @param string $user_email User email address.
438
- */
439
- return apply_filters( 'is_email_address_unsafe', $is_email_address_unsafe, $user_email );
440
- }
441
-
442
- /**
443
- * Processes new user registrations.
444
- *
445
- * Checks the data provided by the user during signup. Verifies
446
- * the validity and uniqueness of user names and user email addresses,
447
- * and checks email addresses against admin-provided domain
448
- * whitelists and blacklists.
449
- *
450
- * The hook 'wpmu_validate_user_signup' provides an easy way
451
- * to modify the signup process. The value $result, which is passed
452
- * to the hook, contains both the user-provided info and the error
453
- * messages created by the function. 'wpmu_validate_user_signup' allows
454
- * you to process the data in any way you'd like, and unset the
455
- * relevant errors if necessary.
456
- *
457
- * @since MU
458
- * @uses is_email_address_unsafe()
459
- * @uses username_exists()
460
- * @uses email_exists()
461
- *
462
- * @param string $user_name The login name provided by the user.
463
- * @param string $user_email The email provided by the user.
464
- * @return array Contains username, email, and error messages.
465
- */
466
- function wpmu_validate_user_signup($user_name, $user_email) {
467
- global $wpdb;
468
-
469
- $errors = new WP_Error();
470
-
471
- $orig_username = $user_name;
472
- $user_name = preg_replace( '/\s+/', '', sanitize_user( $user_name, true ) );
473
-
474
- if ( $user_name != $orig_username || preg_match( '/[^a-z0-9]/', $user_name ) ) {
475
- $errors->add( 'user_name', __( 'Only lowercase letters (a-z) and numbers are allowed.' ) );
476
- $user_name = $orig_username;
477
- }
478
-
479
- $user_email = sanitize_email( $user_email );
480
-
481
- if ( empty( $user_name ) )
482
- $errors->add('user_name', __( 'Please enter a username.' ) );
483
-
484
- $illegal_names = get_site_option( 'illegal_names' );
485
- if ( is_array( $illegal_names ) == false ) {
486
- $illegal_names = array( 'www', 'web', 'root', 'admin', 'main', 'invite', 'administrator' );
487
- add_site_option( 'illegal_names', $illegal_names );
488
- }
489
- if ( in_array( $user_name, $illegal_names ) == true )
490
- $errors->add('user_name', __( 'That username is not allowed.' ) );
491
-
492
- if ( is_email_address_unsafe( $user_email ) )
493
- $errors->add('user_email', __('You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider.'));
494
-
495
- if ( strlen( $user_name ) < 4 )
496
- $errors->add('user_name', __( 'Username must be at least 4 characters.' ) );
497
-
498
- if ( strpos( ' ' . $user_name, '_' ) != false )
499
- $errors->add( 'user_name', __( 'Sorry, usernames may not contain the character &#8220;_&#8221;!' ) );
500
-
501
- // all numeric?
502
- if ( preg_match( '/^[0-9]*$/', $user_name ) )
503
- $errors->add('user_name', __('Sorry, usernames must have letters too!'));
504
-
505
- if ( !is_email( $user_email ) )
506
- $errors->add('user_email', __( 'Please enter a valid email address.' ) );
507
-
508
- $limited_email_domains = get_site_option( 'limited_email_domains' );
509
- if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false ) {
510
- $emaildomain = substr( $user_email, 1 + strpos( $user_email, '@' ) );
511
- if ( in_array( $emaildomain, $limited_email_domains ) == false )
512
- $errors->add('user_email', __('Sorry, that email address is not allowed!'));
513
- }
514
-
515
- // Check if the username has been used already.
516
- if ( username_exists($user_name) )
517
- $errors->add( 'user_name', __( 'Sorry, that username already exists!' ) );
518
-
519
- // Check if the email address has been used already.
520
- if ( email_exists($user_email) )
521
- $errors->add( 'user_email', __( 'Sorry, that email address is already used!' ) );
522
-
523
- // Has someone already signed up for this username?
524
- $signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->signups WHERE user_login = %s", $user_name) );
525
- if ( $signup != null ) {
526
- $registered_at = mysql2date('U', $signup->registered);
527
- $now = current_time( 'timestamp', true );
528
- $diff = $now - $registered_at;
529
- // If registered more than two days ago, cancel registration and let this signup go through.
530
- if ( $diff > 2 * DAY_IN_SECONDS )
531
- $wpdb->delete( $wpdb->signups, array( 'user_login' => $user_name ) );
532
- else
533
- $errors->add('user_name', __('That username is currently reserved but may be available in a couple of days.'));
534
- }
535
-
536
- $signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->signups WHERE user_email = %s", $user_email) );
537
- if ( $signup != null ) {
538
- $diff = current_time( 'timestamp', true ) - mysql2date('U', $signup->registered);
539
- // If registered more than two days ago, cancel registration and let this signup go through.
540
- if ( $diff > 2 * DAY_IN_SECONDS )
541
- $wpdb->delete( $wpdb->signups, array( 'user_email' => $user_email ) );
542
- else
543
- $errors->add('user_email', __('That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing.'));
544
- }
545
-
546
- $result = array('user_name' => $user_name, 'orig_username' => $orig_username, 'user_email' => $user_email, 'errors' => $errors);
547
-
548
- /**
549
- * Filter the validated user registration details.
550
- *
551
- * This does not allow you to override the username or email of the user during
552
- * registration. The values are solely used for validation and error handling.
553
- *
554
- * @since MU
555
- *
556
- * @param array $result {
557
- * The array of user name, email and the error messages.
558
- *
559
- * @type string $user_name Sanitized and unique username.
560
- * @type string $orig_username Original username.
561
- * @type string $user_email User email address.
562
- * @type WP_Error $errors WP_Error object containing any errors found.
563
- * }
564
- */
565
- return apply_filters( 'wpmu_validate_user_signup', $result );
566
- }
567
-
568
- /**
569
- * Processes new site registrations.
570
- *
571
- * Checks the data provided by the user during blog signup. Verifies
572
- * the validity and uniqueness of blog paths and domains.
573
- *
574
- * This function prevents the current user from registering a new site
575
- * with a blogname equivalent to another user's login name. Passing the
576
- * $user parameter to the function, where $user is the other user, is
577
- * effectively an override of this limitation.
578
- *
579
- * Filter 'wpmu_validate_blog_signup' if you want to modify
580
- * the way that WordPress validates new site signups.
581
- *
582
- * @since MU
583
- * @uses domain_exists()
584
- * @uses username_exists()
585
- *
586
- * @param string $blogname The blog name provided by the user. Must be unique.
587
- * @param string $blog_title The blog title provided by the user.
588
- * @return array Contains the new site data and error messages.
589
- */
590
- function wpmu_validate_blog_signup( $blogname, $blog_title, $user = '' ) {
591
- global $wpdb, $domain;
592
-
593
- $current_site = get_current_site();
594
- $base = $current_site->path;
595
-
596
- $blog_title = strip_tags( $blog_title );
597
- $blog_title = substr( $blog_title, 0, 50 );
598
-
599
- $errors = new WP_Error();
600
- $illegal_names = get_site_option( 'illegal_names' );
601
- if ( $illegal_names == false ) {
602
- $illegal_names = array( 'www', 'web', 'root', 'admin', 'main', 'invite', 'administrator' );
603
- add_site_option( 'illegal_names', $illegal_names );
604
- }
605
-
606
- /*
607
- * On sub dir installs, some names are so illegal, only a filter can
608
- * spring them from jail.
609
- */
610
- if ( ! is_subdomain_install() ) {
611
- $illegal_names = array_merge(
612
- $illegal_names,
613
- /**
614
- * Filter reserved site names on a sub-directory Multisite install.
615
- *
616
- * @since 3.0.0
617
- *
618
- * @param array $subdirectory_reserved_names Array of reserved names.
619
- */
620
- apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'blog', 'files', 'feed' ) )
621
- );
622
- }
623
-
624
- if ( empty( $blogname ) )
625
- $errors->add('blogname', __( 'Please enter a site name.' ) );
626
-
627
- if ( preg_match( '/[^a-z0-9]+/', $blogname ) )
628
- $errors->add('blogname', __( 'Only lowercase letters (a-z) and numbers are allowed.' ) );
629
-
630
- if ( in_array( $blogname, $illegal_names ) == true )
631
- $errors->add('blogname', __( 'That name is not allowed.' ) );
632
-
633
- if ( strlen( $blogname ) < 4 && !is_super_admin() )
634
- $errors->add('blogname', __( 'Site name must be at least 4 characters.' ) );
635
-
636
- if ( strpos( $blogname, '_' ) !== false )
637
- $errors->add( 'blogname', __( 'Sorry, site names may not contain the character &#8220;_&#8221;!' ) );
638
-
639
- // do not allow users to create a blog that conflicts with a page on the main blog.
640
- if ( !is_subdomain_install() && $wpdb->get_var( $wpdb->prepare( "SELECT post_name FROM " . $wpdb->get_blog_prefix( $current_site->blog_id ) . "posts WHERE post_type = 'page' AND post_name = %s", $blogname ) ) )
641
- $errors->add( 'blogname', __( 'Sorry, you may not use that site name.' ) );
642
-
643
- // all numeric?
644
- if ( preg_match( '/^[0-9]*$/', $blogname ) )
645
- $errors->add('blogname', __('Sorry, site names must have letters too!'));
646
-
647
- /**
648
- * Filter the new site name during registration.
649
- *
650
- * The name is the site's subdomain or the site's subdirectory
651
- * path depending on the network settings.
652
- *
653
- * @since MU
654
- *
655
- * @param string $blogname Site name.
656
- */
657
- $blogname = apply_filters( 'newblogname', $blogname );
658
-
659
- $blog_title = wp_unslash( $blog_title );
660
-
661
- if ( empty( $blog_title ) )
662
- $errors->add('blog_title', __( 'Please enter a site title.' ) );
663
-
664
- // Check if the domain/path has been used already.
665
- if ( is_subdomain_install() ) {
666
- $mydomain = $blogname . '.' . preg_replace( '|^www\.|', '', $domain );
667
- $path = $base;
668
- } else {
669
- $mydomain = "$domain";
670
- $path = $base.$blogname.'/';
671
- }
672
- if ( domain_exists($mydomain, $path, $current_site->id) )
673
- $errors->add( 'blogname', __( 'Sorry, that site already exists!' ) );
674
-
675
- if ( username_exists( $blogname ) ) {
676
- if ( is_object( $user ) == false || ( is_object($user) && ( $user->user_login != $blogname ) ) )
677
- $errors->add( 'blogname', __( 'Sorry, that site is reserved!' ) );
678
- }
679
-
680
- // Has someone already signed up for this domain?
681
- $signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->signups WHERE domain = %s AND path = %s", $mydomain, $path) ); // TODO: Check email too?
682
- if ( ! empty($signup) ) {
683
- $diff = current_time( 'timestamp', true ) - mysql2date('U', $signup->registered);
684
- // If registered more than two days ago, cancel registration and let this signup go through.
685
- if ( $diff > 2 * DAY_IN_SECONDS )
686
- $wpdb->delete( $wpdb->signups, array( 'domain' => $mydomain , 'path' => $path ) );
687
- else
688
- $errors->add('blogname', __('That site is currently reserved but may be available in a couple days.'));
689
- }
690
-
691
- $result = array('domain' => $mydomain, 'path' => $path, 'blogname' => $blogname, 'blog_title' => $blog_title, 'user' => $user, 'errors' => $errors);
692
-
693
- /**
694
- * Filter site details and error messages following registration.
695
- *
696
- * @since MU
697
- *
698
- * @param array $result {
699
- * Array of domain, path, blog name, blog title, user and error messages.
700
- *
701
- * @type string $domain Domain for the site.
702
- * @type string $path Path for the site. Used in subdirectory installs.
703
- * @type string $blogname The unique site name (slug).
704
- * @type string $blog_title Blog title.
705
- * @type string $user User email address.
706
- * @type WP_Error $errors WP_Error containing any errors found.
707
- * }
708
- */
709
- return apply_filters( 'wpmu_validate_blog_signup', $result );
710
- }
711
-
712
- /**
713
- * Record site signup information for future activation.
714
- *
715
- * @since MU
716
- * @uses wpmu_signup_blog_notification()
717
- *
718
- * @param string $domain The requested domain.
719
- * @param string $path The requested path.
720
- * @param string $title The requested site title.
721
- * @param string $user The user's requested login name.
722
- * @param string $user_email The user's email address.
723
- * @param array $meta By default, contains the requested privacy setting and lang_id.
724
- */
725
- function wpmu_signup_blog( $domain, $path, $title, $user, $user_email, $meta = array() ) {
726
- global $wpdb;
727
-
728
- $key = substr( md5( time() . rand() . $domain ), 0, 16 );
729
- $meta = serialize($meta);
730
-
731
- $wpdb->insert( $wpdb->signups, array(
732
- 'domain' => $domain,
733
- 'path' => $path,
734
- 'title' => $title,
735
- 'user_login' => $user,
736
- 'user_email' => $user_email,
737
- 'registered' => current_time('mysql', true),
738
- 'activation_key' => $key,
739
- 'meta' => $meta
740
- ) );
741
-
742
- wpmu_signup_blog_notification($domain, $path, $title, $user, $user_email, $key, $meta);
743
- }
744
-
745
- /**
746
- * Record user signup information for future activation.
747
- *
748
- * This function is used when user registration is open but
749
- * new site registration is not.
750
- *
751
- * @since MU
752
- * @uses wpmu_signup_user_notification()
753
- *
754
- * @param string $user The user's requested login name.
755
- * @param string $user_email The user's email address.
756
- * @param array $meta By default, this is an empty array.
757
- */
758
- function wpmu_signup_user( $user, $user_email, $meta = array() ) {
759
- global $wpdb;
760
-
761
- // Format data
762
- $user = preg_replace( '/\s+/', '', sanitize_user( $user, true ) );
763
- $user_email = sanitize_email( $user_email );
764
- $key = substr( md5( time() . rand() . $user_email ), 0, 16 );
765
- $meta = serialize($meta);
766
-
767
- $wpdb->insert( $wpdb->signups, array(
768
- 'domain' => '',
769
- 'path' => '',
770
- 'title' => '',
771
- 'user_login' => $user,
772
- 'user_email' => $user_email,
773
- 'registered' => current_time('mysql', true),
774
- 'activation_key' => $key,
775
- 'meta' => $meta
776
- ) );
777
-
778
- wpmu_signup_user_notification($user, $user_email, $key, $meta);
779
- }
780
-
781
- /**
782
- * Notify user of signup success.
783
- *
784
- * This is the notification function used when site registration
785
- * is enabled.
786
- *
787
- * Filter 'wpmu_signup_blog_notification' to bypass this function or
788
- * replace it with your own notification behavior.
789
- *
790
- * Filter 'wpmu_signup_blog_notification_email' and
791
- * 'wpmu_signup_blog_notification_subject' to change the content
792
- * and subject line of the email sent to newly registered users.
793
- *
794
- * @since MU
795
- *
796
- * @param string $domain The new blog domain.
797
- * @param string $path The new blog path.
798
- * @param string $title The site title.
799
- * @param string $user The user's login name.
800
- * @param string $user_email The user's email address.
801
- * @param string $key The activation key created in wpmu_signup_blog()
802
- * @param array $meta By default, contains the requested privacy setting and lang_id.
803
- * @return bool
804
- */
805
- function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_email, $key, $meta = array() ) {
806
- /**
807
- * Filter whether to bypass the new site email notification.
808
- *
809
- * @since MU
810
- *
811
- * @param string|bool $domain Site domain.
812
- * @param string $path Site path.
813
- * @param string $title Site title.
814
- * @param string $user User login name.
815
- * @param string $user_email User email address.
816
- * @param string $key Activation key created in wpmu_signup_blog().
817
- * @param array $meta By default, contains the requested privacy setting and lang_id.
818
- */
819
- if ( ! apply_filters( 'wpmu_signup_blog_notification', $domain, $path, $title, $user, $user_email, $key, $meta ) ) {
820
- return false;
821
- }
822
-
823
- // Send email with activation link.
824
- if ( !is_subdomain_install() || get_current_site()->id != 1 )
825
- $activate_url = network_site_url("wp-activate.php?key=$key");
826
- else
827
- $activate_url = "http://{$domain}{$path}wp-activate.php?key=$key"; // @todo use *_url() API
828
-
829
- $activate_url = esc_url($activate_url);
830
- $admin_email = get_site_option( 'admin_email' );
831
- if ( $admin_email == '' )
832
- $admin_email = 'support@' . $_SERVER['SERVER_NAME'];
833
- $from_name = get_site_option( 'site_name' ) == '' ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
834
- $message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
835
- $message = sprintf(
836
- /**
837
- * Filter the message content of the new blog notification email.
838
- *
839
- * Content should be formatted for transmission via wp_mail().
840
- *
841
- * @since MU
842
- *
843
- * @param string $content Content of the notification email.
844
- * @param string $domain Site domain.
845
- * @param string $path Site path.
846
- * @param string $title Site title.
847
- * @param string $user User login name.
848
- * @param string $user_email User email address.
849
- * @param string $key Activation key created in wpmu_signup_blog().
850
- * @param array $meta By default, contains the requested privacy setting and lang_id.
851
- */
852
- apply_filters( 'wpmu_signup_blog_notification_email',
853
- __( "To activate your blog, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login.\n\nAfter you activate, you can visit your site here:\n\n%s" ),
854
- $domain, $path, $title, $user, $user_email, $key, $meta
855
- ),
856
- $activate_url,
857
- esc_url( "http://{$domain}{$path}" ),
858
- $key
859
- );
860
- // TODO: Don't hard code activation link.
861
- $subject = sprintf(
862
- /**
863
- * Filter the subject of the new blog notification email.
864
- *
865
- * @since MU
866
- *
867
- * @param string $subject Subject of the notification email.
868
- * @param string $domain Site domain.
869
- * @param string $path Site path.
870
- * @param string $title Site title.
871
- * @param string $user User login name.
872
- * @param string $user_email User email address.
873
- * @param string $key Activation key created in wpmu_signup_blog().
874
- * @param array $meta By default, contains the requested privacy setting and lang_id.
875
- */
876
- apply_filters( 'wpmu_signup_blog_notification_subject',
877
- __( '[%1$s] Activate %2$s' ),
878
- $domain, $path, $title, $user, $user_email, $key, $meta
879
- ),
880
- $from_name,
881
- esc_url( 'http://' . $domain . $path )
882
- );
883
- wp_mail( $user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
884
- return true;
885
- }
886
-
887
- /**
888
- * Notify user of signup success.
889
- *
890
- * This is the notification function used when no new site has
891
- * been requested.
892
- *
893
- * Filter 'wpmu_signup_user_notification' to bypass this function or
894
- * replace it with your own notification behavior.
895
- *
896
- * Filter 'wpmu_signup_user_notification_email' and
897
- * 'wpmu_signup_user_notification_subject' to change the content
898
- * and subject line of the email sent to newly registered users.
899
- *
900
- * @since MU
901
- *
902
- * @param string $user The user's login name.
903
- * @param string $user_email The user's email address.
904
- * @param string $key The activation key created in wpmu_signup_user()
905
- * @param array $meta By default, an empty array.
906
- * @return bool
907
- */
908
- function wpmu_signup_user_notification( $user, $user_email, $key, $meta = array() ) {
909
- /**
910
- * Filter whether to bypass the email notification for new user sign-up.
911
- *
912
- * @since MU
913
- *
914
- * @param string $user User login name.
915
- * @param string $user_email User email address.
916
- * @param string $key Activation key created in wpmu_signup_user().
917
- * @param array $meta Signup meta data.
918
- */
919
- if ( ! apply_filters( 'wpmu_signup_user_notification', $user, $user_email, $key, $meta ) )
920
- return false;
921
-
922
- // Send email with activation link.
923
- $admin_email = get_site_option( 'admin_email' );
924
- if ( $admin_email == '' )
925
- $admin_email = 'support@' . $_SERVER['SERVER_NAME'];
926
- $from_name = get_site_option( 'site_name' ) == '' ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
927
- $message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
928
- $message = sprintf(
929
- /**
930
- * Filter the content of the notification email for new user sign-up.
931
- *
932
- * Content should be formatted for transmission via wp_mail().
933
- *
934
- * @since MU
935
- *
936
- * @param string $content Content of the notification email.
937
- * @param string $user User login name.
938
- * @param string $user_email User email address.
939
- * @param string $key Activation key created in wpmu_signup_user().
940
- * @param array $meta Signup meta data.
941
- */
942
- apply_filters( 'wpmu_signup_user_notification_email',
943
- __( "To activate your user, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login." ),
944
- $user, $user_email, $key, $meta
945
- ),
946
- site_url( "wp-activate.php?key=$key" )
947
- );
948
- // TODO: Don't hard code activation link.
949
- $subject = sprintf(
950
- /**
951
- * Filter the subject of the notification email of new user signup.
952
- *
953
- * @since MU
954
- *
955
- * @param string $subject Subject of the notification email.
956
- * @param string $user User login name.
957
- * @param string $user_email User email address.
958
- * @param string $key Activation key created in wpmu_signup_user().
959
- * @param array $meta Signup meta data.
960
- */
961
- apply_filters( 'wpmu_signup_user_notification_subject',
962
- __( '[%1$s] Activate %2$s' ),
963
- $user, $user_email, $key, $meta
964
- ),
965
- $from_name,
966
- $user
967
- );
968
- wp_mail( $user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
969
- return true;
970
- }
971
-
972
- /**
973
- * Activate a signup.
974
- *
975
- * Hook to 'wpmu_activate_user' or 'wpmu_activate_blog' for events
976
- * that should happen only when users or sites are self-created (since
977
- * those actions are not called when users and sites are created
978
- * by a Super Admin).
979
- *
980
- * @since MU
981
- * @uses wp_generate_password()
982
- * @uses wpmu_welcome_user_notification()
983
- * @uses add_user_to_blog()
984
- * @uses wpmu_create_user()
985
- * @uses wpmu_create_blog()
986
- * @uses wpmu_welcome_notification()
987
- *
988
- * @param string $key The activation key provided to the user.
989
- * @return array An array containing information about the activated user and/or blog
990
- */
991
- function wpmu_activate_signup($key) {
992
- global $wpdb;
993
-
994
- $signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->signups WHERE activation_key = %s", $key) );
995
-
996
- if ( empty( $signup ) )
997
- return new WP_Error( 'invalid_key', __( 'Invalid activation key.' ) );
998
-
999
- if ( $signup->active ) {
1000
- if ( empty( $signup->domain ) )
1001
- return new WP_Error( 'already_active', __( 'The user is already active.' ), $signup );
1002
- else
1003
- return new WP_Error( 'already_active', __( 'The site is already active.' ), $signup );
1004
- }
1005
-
1006
- $meta = maybe_unserialize($signup->meta);
1007
- $password = wp_generate_password( 12, false );
1008
-
1009
- $user_id = username_exists($signup->user_login);
1010
-
1011
- if ( ! $user_id )
1012
- $user_id = wpmu_create_user($signup->user_login, $password, $signup->user_email);
1013
- else
1014
- $user_already_exists = true;
1015
-
1016
- if ( ! $user_id )
1017
- return new WP_Error('create_user', __('Could not create user'), $signup);
1018
-
1019
- $now = current_time('mysql', true);
1020
-
1021
- if ( empty($signup->domain) ) {
1022
- $wpdb->update( $wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $key) );
1023
-
1024
- if ( isset( $user_already_exists ) )
1025
- return new WP_Error( 'user_already_exists', __( 'That username is already activated.' ), $signup);
1026
-
1027
- wpmu_welcome_user_notification( $user_id, $password, $meta );
1028
- /**
1029
- * Fires immediately after a new user is activated.
1030
- *
1031
- * @since MU
1032
- *
1033
- * @param int $user_id User ID.
1034
- * @param int $password User password.
1035
- * @param array $meta Signup meta data.
1036
- */
1037
- do_action( 'wpmu_activate_user', $user_id, $password, $meta );
1038
- return array( 'user_id' => $user_id, 'password' => $password, 'meta' => $meta );
1039
- }
1040
-
1041
- $blog_id = wpmu_create_blog( $signup->domain, $signup->path, $signup->title, $user_id, $meta, $wpdb->siteid );
1042
-
1043
- // TODO: What to do if we create a user but cannot create a blog?
1044
- if ( is_wp_error($blog_id) ) {
1045
- // If blog is taken, that means a previous attempt to activate this blog failed in between creating the blog and
1046
- // setting the activation flag. Let's just set the active flag and instruct the user to reset their password.
1047
- if ( 'blog_taken' == $blog_id->get_error_code() ) {
1048
- $blog_id->add_data( $signup );
1049
- $wpdb->update( $wpdb->signups, array( 'active' => 1, 'activated' => $now ), array( 'activation_key' => $key ) );
1050
- }
1051
- return $blog_id;
1052
- }
1053
-
1054
- $wpdb->update( $wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $key) );
1055
- wpmu_welcome_notification($blog_id, $user_id, $password, $signup->title, $meta);
1056
- /**
1057
- * Fires immediately after a site is activated.
1058
- *
1059
- * @since MU
1060
- *
1061
- * @param int $blog_id Blog ID.
1062
- * @param int $user_id User ID.
1063
- * @param int $password User password.
1064
- * @param string $signup_title Site title.
1065
- * @param array $meta Signup meta data.
1066
- */
1067
- do_action( 'wpmu_activate_blog', $blog_id, $user_id, $password, $signup->title, $meta );
1068
-
1069
- return array('blog_id' => $blog_id, 'user_id' => $user_id, 'password' => $password, 'title' => $signup->title, 'meta' => $meta);
1070
- }
1071
-
1072
- /**
1073
- * Create a user.
1074
- *
1075
- * This function runs when a user self-registers as well as when
1076
- * a Super Admin creates a new user. Hook to 'wpmu_new_user' for events
1077
- * that should affect all new users, but only on Multisite (otherwise
1078
- * use 'user_register').
1079
- *
1080
- * @since MU
1081
- * @uses wp_create_user()
1082
- *
1083
- * @param string $user_name The new user's login name.
1084
- * @param string $password The new user's password.
1085
- * @param string $email The new user's email address.
1086
- * @return mixed Returns false on failure, or int $user_id on success
1087
- */
1088
- function wpmu_create_user( $user_name, $password, $email ) {
1089
- $user_name = preg_replace( '/\s+/', '', sanitize_user( $user_name, true ) );
1090
-
1091
- $user_id = wp_create_user( $user_name, $password, $email );
1092
- if ( is_wp_error( $user_id ) )
1093
- return false;
1094
-
1095
- // Newly created users have no roles or caps until they are added to a blog.
1096
- delete_user_option( $user_id, 'capabilities' );
1097
- delete_user_option( $user_id, 'user_level' );
1098
-
1099
- /**
1100
- * Fires immediately after a new user is created.
1101
- *
1102
- * @since MU
1103
- *
1104
- * @param int $user_id User ID.
1105
- */
1106
- do_action( 'wpmu_new_user', $user_id );
1107
-
1108
- return $user_id;
1109
- }
1110
-
1111
- /**
1112
- * Create a site.
1113
- *
1114
- * This function runs when a user self-registers a new site as well
1115
- * as when a Super Admin creates a new site. Hook to 'wpmu_new_blog'
1116
- * for events that should affect all new sites.
1117
- *
1118
- * On subdirectory installs, $domain is the same as the main site's
1119
- * domain, and the path is the subdirectory name (eg 'example.com'
1120
- * and '/blog1/'). On subdomain installs, $domain is the new subdomain +
1121
- * root domain (eg 'blog1.example.com'), and $path is '/'.
1122
- *
1123
- * @since MU
1124
- * @uses domain_exists()
1125
- * @uses insert_blog()
1126
- * @uses wp_install_defaults()
1127
- * @uses add_user_to_blog()
1128
- *
1129
- * @param string $domain The new site's domain.
1130
- * @param string $path The new site's path.
1131
- * @param string $title The new site's title.
1132
- * @param int $user_id The user ID of the new site's admin.
1133
- * @param array $meta Optional. Used to set initial site options.
1134
- * @param int $site_id Optional. Only relevant on multi-network installs.
1135
- * @return mixed Returns WP_Error object on failure, int $blog_id on success
1136
- */
1137
- function wpmu_create_blog( $domain, $path, $title, $user_id, $meta = array(), $site_id = 1 ) {
1138
- $defaults = array( 'public' => 0 );
1139
- $meta = wp_parse_args( $meta, $defaults );
1140
-
1141
- $domain = preg_replace( '/\s+/', '', sanitize_user( $domain, true ) );
1142
-
1143
- if ( is_subdomain_install() )
1144
- $domain = str_replace( '@', '', $domain );
1145
-
1146
- $title = strip_tags( $title );
1147
- $user_id = (int) $user_id;
1148
-
1149
- if ( empty($path) )
1150
- $path = '/';
1151
-
1152
- // Check if the domain has been used already. We should return an error message.
1153
- if ( domain_exists($domain, $path, $site_id) )
1154
- return new WP_Error( 'blog_taken', __( 'Sorry, that site already exists!' ) );
1155
-
1156
- if ( !defined('WP_INSTALLING') )
1157
- define( 'WP_INSTALLING', true );
1158
-
1159
- if ( ! $blog_id = insert_blog($domain, $path, $site_id) )
1160
- return new WP_Error('insert_blog', __('Could not create site.'));
1161
-
1162
- switch_to_blog($blog_id);
1163
- install_blog($blog_id, $title);
1164
- wp_install_defaults($user_id);
1165
-
1166
- add_user_to_blog($blog_id, $user_id, 'administrator');
1167
-
1168
- foreach ( $meta as $key => $value ) {
1169
- if ( in_array( $key, array( 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id' ) ) )
1170
- update_blog_status( $blog_id, $key, $value );
1171
- else
1172
- update_option( $key, $value );
1173
- }
1174
-
1175
- add_option( 'WPLANG', get_site_option( 'WPLANG' ) );
1176
- update_option( 'blog_public', (int) $meta['public'] );
1177
-
1178
- if ( ! is_super_admin( $user_id ) && ! get_user_meta( $user_id, 'primary_blog', true ) )
1179
- update_user_meta( $user_id, 'primary_blog', $blog_id );
1180
-
1181
- restore_current_blog();
1182
- /**
1183
- * Fires immediately after a new site is created.
1184
- *
1185
- * @since MU
1186
- *
1187
- * @param int $blog_id Blog ID.
1188
- * @param int $user_id User ID.
1189
- * @param string $domain Site domain.
1190
- * @param string $path Site path.
1191
- * @param int $site_id Site ID. Only relevant on multi-network installs.
1192
- * @param array $meta Meta data. Used to set initial site options.
1193
- */
1194
- do_action( 'wpmu_new_blog', $blog_id, $user_id, $domain, $path, $site_id, $meta );
1195
-
1196
- return $blog_id;
1197
- }
1198
-
1199
- /**
1200
- * Notifies the network admin that a new site has been activated.
1201
- *
1202
- * Filter 'newblog_notify_siteadmin' to change the content of
1203
- * the notification email.
1204
- *
1205
- * @since MU
1206
- *
1207
- * @param int $blog_id The new site's ID.
1208
- * @return bool
1209
- */
1210
- function newblog_notify_siteadmin( $blog_id, $deprecated = '' ) {
1211
- if ( get_site_option( 'registrationnotification' ) != 'yes' )
1212
- return false;
1213
-
1214
- $email = get_site_option( 'admin_email' );
1215
- if ( is_email($email) == false )
1216
- return false;
1217
-
1218
- $options_site_url = esc_url(network_admin_url('settings.php'));
1219
-
1220
- switch_to_blog( $blog_id );
1221
- $blogname = get_option( 'blogname' );
1222
- $siteurl = site_url();
1223
- restore_current_blog();
1224
-
1225
- $msg = sprintf( __( 'New Site: %1$s
1226
- URL: %2$s
1227
- Remote IP: %3$s
1228
-
1229
- Disable these notifications: %4$s' ), $blogname, $siteurl, wp_unslash( $_SERVER['REMOTE_ADDR'] ), $options_site_url);
1230
- /**
1231
- * Filter the message body of the new site activation email sent
1232
- * to the network administrator.
1233
- *
1234
- * @since MU
1235
- *
1236
- * @param string $msg Email body.
1237
- */
1238
- $msg = apply_filters( 'newblog_notify_siteadmin', $msg );
1239
-
1240
- wp_mail( $email, sprintf( __( 'New Site Registration: %s' ), $siteurl ), $msg );
1241
- return true;
1242
- }
1243
-
1244
- /**
1245
- * Notifies the network admin that a new user has been activated.
1246
- *
1247
- * Filter 'newuser_notify_siteadmin' to change the content of
1248
- * the notification email.
1249
- *
1250
- * @since MU
1251
- * @uses apply_filters() Filter newuser_notify_siteadmin to change the content of the email message
1252
- *
1253
- * @param int $user_id The new user's ID.
1254
- * @return bool
1255
- */
1256
- function newuser_notify_siteadmin( $user_id ) {
1257
- if ( get_site_option( 'registrationnotification' ) != 'yes' )
1258
- return false;
1259
-
1260
- $email = get_site_option( 'admin_email' );
1261
-
1262
- if ( is_email($email) == false )
1263
- return false;
1264
-
1265
- $user = get_userdata( $user_id );
1266
-
1267
- $options_site_url = esc_url(network_admin_url('settings.php'));
1268
- $msg = sprintf(__('New User: %1$s
1269
- Remote IP: %2$s
1270
-
1271
- Disable these notifications: %3$s'), $user->user_login, wp_unslash( $_SERVER['REMOTE_ADDR'] ), $options_site_url);
1272
-
1273
- /**
1274
- * Filter the message body of the new user activation email sent
1275
- * to the network administrator.
1276
- *
1277
- * @since MU
1278
- *
1279
- * @param string $msg Email body.
1280
- * @param WP_User $user WP_User instance of the new user.
1281
- */
1282
- $msg = apply_filters( 'newuser_notify_siteadmin', $msg, $user );
1283
- wp_mail( $email, sprintf(__('New User Registration: %s'), $user->user_login), $msg );
1284
- return true;
1285
- }
1286
-
1287
- /**
1288
- * Check whether a blogname is already taken.
1289
- *
1290
- * Used during the new site registration process to ensure
1291
- * that each blogname is unique.
1292
- *
1293
- * @since MU
1294
- *
1295
- * @param string $domain The domain to be checked.
1296
- * @param string $path The path to be checked.
1297
- * @param int $site_id Optional. Relevant only on multi-network installs.
1298
- * @return int
1299
- */
1300
- function domain_exists($domain, $path, $site_id = 1) {
1301
- global $wpdb;
1302
- $path = trailingslashit( $path );
1303
- $result = $wpdb->get_var( $wpdb->prepare("SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s AND site_id = %d", $domain, $path, $site_id) );
1304
-
1305
- /**
1306
- * Filter whether a blogname is taken.
1307
- *
1308
- * @since 3.5.0
1309
- *
1310
- * @param int|null $result The blog_id if the blogname exists, null otherwise.
1311
- * @param string $domain Domain to be checked.
1312
- * @param string $path Path to be checked.
1313
- * @param int $site_id Site ID. Relevant only on multi-network installs.
1314
- */
1315
- return apply_filters( 'domain_exists', $result, $domain, $path, $site_id );
1316
- }
1317
-
1318
- /**
1319
- * Store basic site info in the blogs table.
1320
- *
1321
- * This function creates a row in the wp_blogs table and returns
1322
- * the new blog's ID. It is the first step in creating a new blog.
1323
- *
1324
- * @since MU
1325
- *
1326
- * @param string $domain The domain of the new site.
1327
- * @param string $path The path of the new site.
1328
- * @param int $site_id Unless you're running a multi-network install, be sure to set this value to 1.
1329
- * @return int The ID of the new row
1330
- */
1331
- function insert_blog($domain, $path, $site_id) {
1332
- global $wpdb;
1333
-
1334
- $path = trailingslashit($path);
1335
- $site_id = (int) $site_id;
1336
-
1337
- $result = $wpdb->insert( $wpdb->blogs, array('site_id' => $site_id, 'domain' => $domain, 'path' => $path, 'registered' => current_time('mysql')) );
1338
- if ( ! $result )
1339
- return false;
1340
-
1341
- $blog_id = $wpdb->insert_id;
1342
- refresh_blog_details( $blog_id );
1343
-
1344
- wp_maybe_update_network_site_counts();
1345
-
1346
- return $blog_id;
1347
- }
1348
-
1349
- /**
1350
- * Install an empty blog.
1351
- *
1352
- * Creates the new blog tables and options. If calling this function
1353
- * directly, be sure to use switch_to_blog() first, so that $wpdb
1354
- * points to the new blog.
1355
- *
1356
- * @since MU
1357
- * @uses make_db_current_silent()
1358
- * @uses populate_roles()
1359
- *
1360
- * @param int $blog_id The value returned by insert_blog().
1361
- * @param string $blog_title The title of the new site.
1362
- */
1363
- function install_blog( $blog_id, $blog_title = '' ) {
1364
- global $wpdb, $wp_roles;
1365
-
1366
- // Cast for security
1367
- $blog_id = (int) $blog_id;
1368
-
1369
- require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
1370
-
1371
- $suppress = $wpdb->suppress_errors();
1372
- if ( $wpdb->get_results( "DESCRIBE {$wpdb->posts}" ) )
1373
- die( '<h1>' . __( 'Already Installed' ) . '</h1><p>' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '</p></body></html>' );
1374
- $wpdb->suppress_errors( $suppress );
1375
-
1376
- $url = get_blogaddress_by_id( $blog_id );
1377
-
1378
- // Set everything up
1379
- make_db_current_silent( 'blog' );
1380
- populate_options();
1381
- populate_roles();
1382
- $wp_roles->_init();
1383
-
1384
- $url = untrailingslashit( $url );
1385
-
1386
- update_option( 'siteurl', $url );
1387
- update_option( 'home', $url );
1388
-
1389
- if ( get_site_option( 'ms_files_rewriting' ) )
1390
- update_option( 'upload_path', UPLOADBLOGSDIR . "/$blog_id/files" );
1391
- else
1392
- update_option( 'upload_path', get_blog_option( get_current_site()->blog_id, 'upload_path' ) );
1393
-
1394
- update_option( 'blogname', wp_unslash( $blog_title ) );
1395
- update_option( 'admin_email', '' );
1396
-
1397
- // remove all perms
1398
- $table_prefix = $wpdb->get_blog_prefix();
1399
- delete_metadata( 'user', 0, $table_prefix . 'user_level', null, true ); // delete all
1400
- delete_metadata( 'user', 0, $table_prefix . 'capabilities', null, true ); // delete all
1401
- }
1402
-
1403
- /**
1404
- * Set blog defaults.
1405
- *
1406
- * This function creates a row in the wp_blogs table.
1407
- *
1408
- * @since MU
1409
- * @deprecated MU
1410
- * @deprecated Use wp_install_defaults()
1411
- * @uses wp_install_defaults()
1412
- *
1413
- * @param int $blog_id Ignored in this function.
1414
- * @param int $user_id
1415
- */
1416
- function install_blog_defaults($blog_id, $user_id) {
1417
- global $wpdb;
1418
-
1419
- require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
1420
-
1421
- $suppress = $wpdb->suppress_errors();
1422
-
1423
- wp_install_defaults($user_id);
1424
-
1425
- $wpdb->suppress_errors( $suppress );
1426
- }
1427
-
1428
- /**
1429
- * Notify a user that their blog activation has been successful.
1430
- *
1431
- * Filter 'wpmu_welcome_notification' to disable or bypass.
1432
- *
1433
- * Filter 'update_welcome_email' and 'update_welcome_subject' to
1434
- * modify the content and subject line of the notification email.
1435
- *
1436
- * @since MU
1437
- *
1438
- * @param int $blog_id
1439
- * @param int $user_id
1440
- * @param string $password
1441
- * @param string $title The new blog's title
1442
- * @param array $meta Optional. Not used in the default function, but is passed along to hooks for customization.
1443
- * @return bool
1444
- */
1445
- function wpmu_welcome_notification( $blog_id, $user_id, $password, $title, $meta = array() ) {
1446
- $current_site = get_current_site();
1447
-
1448
- /**
1449
- * Filter whether to bypass the welcome email after site activation.
1450
- *
1451
- * Returning false disables the welcome email.
1452
- *
1453
- * @since MU
1454
- *
1455
- * @param int|bool $blog_id Blog ID.
1456
- * @param int $user_id User ID.
1457
- * @param string $password User password.
1458
- * @param string $title Site title.
1459
- * @param array $meta Signup meta data.
1460
- */
1461
- if ( ! apply_filters( 'wpmu_welcome_notification', $blog_id, $user_id, $password, $title, $meta ) )
1462
- return false;
1463
-
1464
- $welcome_email = get_site_option( 'welcome_email' );
1465
- if ( $welcome_email == false )
1466
- $welcome_email = __( 'Dear User,
1467
-
1468
- Your new SITE_NAME site has been successfully set up at:
1469
- BLOG_URL
1470
-
1471
- You can log in to the administrator account with the following information:
1472
-
1473
- Log in here: BLOG_URLwp-login.php
1474
- Username: USERNAME
1475
- Password: PASSWORD
1476
-
1477
- We hope you enjoy your new site. Thanks!
1478
-
1479
- --The Team @ SITE_NAME' );
1480
-
1481
- $url = get_blogaddress_by_id($blog_id);
1482
- $user = get_userdata( $user_id );
1483
-
1484
- $welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
1485
- $welcome_email = str_replace( 'BLOG_TITLE', $title, $welcome_email );
1486
- $welcome_email = str_replace( 'BLOG_URL', $url, $welcome_email );
1487
- $welcome_email = str_replace( 'USERNAME', $user->user_login, $welcome_email );
1488
- $welcome_email = str_replace( 'PASSWORD', $password, $welcome_email );
1489
-
1490
- /**
1491
- * Filter the content of the welcome email after site activation.
1492
- *
1493
- * Content should be formatted for transmission via wp_mail().
1494
- *
1495
- * @since MU
1496
- *
1497
- * @param string $welcome_email Message body of the email.
1498
- * @param int $blog_id Blog ID.
1499
- * @param int $user_id User ID.
1500
- * @param string $password User password.
1501
- * @param string $title Site title.
1502
- * @param array $meta Signup meta data.
1503
- */
1504
- $welcome_email = apply_filters( 'update_welcome_email', $welcome_email, $blog_id, $user_id, $password, $title, $meta );
1505
- $admin_email = get_site_option( 'admin_email' );
1506
-
1507
- if ( $admin_email == '' )
1508
- $admin_email = 'support@' . $_SERVER['SERVER_NAME'];
1509
-
1510
- $from_name = get_site_option( 'site_name' ) == '' ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
1511
- $message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
1512
- $message = $welcome_email;
1513
-
1514
- if ( empty( $current_site->site_name ) )
1515
- $current_site->site_name = 'WordPress';
1516
-
1517
- /**
1518
- * Filter the subject of the welcome email after site activation.
1519
- *
1520
- * @since MU
1521
- *
1522
- * @param string $subject Subject of the email.
1523
- */
1524
- $subject = apply_filters( 'update_welcome_subject', sprintf( __( 'New %1$s Site: %2$s' ), $current_site->site_name, wp_unslash( $title ) ) );
1525
- wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
1526
- return true;
1527
- }
1528
-
1529
- /**
1530
- * Notify a user that their account activation has been successful.
1531
- *
1532
- * Filter 'wpmu_welcome_user_notification' to disable or bypass.
1533
- *
1534
- * Filter 'update_welcome_user_email' and 'update_welcome_user_subject' to
1535
- * modify the content and subject line of the notification email.
1536
- *
1537
- * @since MU
1538
- *
1539
- * @param int $user_id
1540
- * @param string $password
1541
- * @param array $meta Optional. Not used in the default function, but is passed along to hooks for customization.
1542
- * @return bool
1543
- */
1544
- function wpmu_welcome_user_notification( $user_id, $password, $meta = array() ) {
1545
- $current_site = get_current_site();
1546
-
1547
- /**
1548
- * Filter whether to bypass the welcome email after user activation.
1549
- *
1550
- * Returning false disables the welcome email.
1551
- *
1552
- * @since MU
1553
- *
1554
- * @param int $user_id User ID.
1555
- * @param string $password User password.
1556
- * @param array $meta Signup meta data.
1557
- */
1558
- if ( ! apply_filters( 'wpmu_welcome_user_notification', $user_id, $password, $meta ) )
1559
- return false;
1560
-
1561
- $welcome_email = get_site_option( 'welcome_user_email' );
1562
-
1563
- $user = get_userdata( $user_id );
1564
-
1565
- /**
1566
- * Filter the content of the welcome email after user activation.
1567
- *
1568
- * Content should be formatted for transmission via wp_mail().
1569
- *
1570
- * @since MU
1571
- *
1572
- * @param type $welcome_email The message body of the account activation success email.
1573
- * @param int $user_id User ID.
1574
- * @param string $password User password.
1575
- * @param array $meta Signup meta data.
1576
- */
1577
- $welcome_email = apply_filters( 'update_welcome_user_email', $welcome_email, $user_id, $password, $meta );
1578
- $welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
1579
- $welcome_email = str_replace( 'USERNAME', $user->user_login, $welcome_email );
1580
- $welcome_email = str_replace( 'PASSWORD', $password, $welcome_email );
1581
- $welcome_email = str_replace( 'LOGINLINK', wp_login_url(), $welcome_email );
1582
-
1583
- $admin_email = get_site_option( 'admin_email' );
1584
-
1585
- if ( $admin_email == '' )
1586
- $admin_email = 'support@' . $_SERVER['SERVER_NAME'];
1587
-
1588
- $from_name = get_site_option( 'site_name' ) == '' ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
1589
- $message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
1590
- $message = $welcome_email;
1591
-
1592
- if ( empty( $current_site->site_name ) )
1593
- $current_site->site_name = 'WordPress';
1594
-
1595
- /**
1596
- * Filter the subject of the welcome email after user activation.
1597
- *
1598
- * @since MU
1599
- *
1600
- * @param string $subject Subject of the email.
1601
- */
1602
- $subject = apply_filters( 'update_welcome_user_subject', sprintf( __( 'New %1$s User: %2$s' ), $current_site->site_name, $user->user_login) );
1603
- wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
1604
- return true;
1605
- }
1606
-
1607
- /**
1608
- * Get the current site info.
1609
- *
1610
- * Returns an object containing the 'id', 'domain', 'path', and 'site_name'
1611
- * properties of the site being viewed.
1612
- *
1613
- * @see wpmu_current_site()
1614
- *
1615
- * @since MU
1616
- *
1617
- * @return object
1618
- */
1619
- function get_current_site() {
1620
- global $current_site;
1621
- return $current_site;
1622
- }
1623
-
1624
- /**
1625
- * Get a user's most recent post.
1626
- *
1627
- * Walks through each of a user's blogs to find the post with
1628
- * the most recent post_date_gmt.
1629
- *
1630
- * @since MU
1631
- * @uses get_blogs_of_user()
1632
- *
1633
- * @param int $user_id
1634
- * @return array Contains the blog_id, post_id, post_date_gmt, and post_gmt_ts
1635
- */
1636
- function get_most_recent_post_of_user( $user_id ) {
1637
- global $wpdb;
1638
-
1639
- $user_blogs = get_blogs_of_user( (int) $user_id );
1640
- $most_recent_post = array();
1641
-
1642
- // Walk through each blog and get the most recent post
1643
- // published by $user_id
1644
- foreach ( (array) $user_blogs as $blog ) {
1645
- $prefix = $wpdb->get_blog_prefix( $blog->userblog_id );
1646
- $recent_post = $wpdb->get_row( $wpdb->prepare("SELECT ID, post_date_gmt FROM {$prefix}posts WHERE post_author = %d AND post_type = 'post' AND post_status = 'publish' ORDER BY post_date_gmt DESC LIMIT 1", $user_id ), ARRAY_A);
1647
-
1648
- // Make sure we found a post
1649
- if ( isset($recent_post['ID']) ) {
1650
- $post_gmt_ts = strtotime($recent_post['post_date_gmt']);
1651
-
1652
- // If this is the first post checked or if this post is
1653
- // newer than the current recent post, make it the new
1654
- // most recent post.
1655
- if ( !isset($most_recent_post['post_gmt_ts']) || ( $post_gmt_ts > $most_recent_post['post_gmt_ts'] ) ) {
1656
- $most_recent_post = array(
1657
- 'blog_id' => $blog->userblog_id,
1658
- 'post_id' => $recent_post['ID'],
1659
- 'post_date_gmt' => $recent_post['post_date_gmt'],
1660
- 'post_gmt_ts' => $post_gmt_ts
1661
- );
1662
- }
1663
- }
1664
- }
1665
-
1666
- return $most_recent_post;
1667
- }
1668
-
1669
- // Misc functions
1670
-
1671
- /**
1672
- * Get the size of a directory.
1673
- *
1674
- * A helper function that is used primarily to check whether
1675
- * a blog has exceeded its allowed upload space.
1676
- *
1677
- * @since MU
1678
- * @uses recurse_dirsize()
1679
- *
1680
- * @param string $directory
1681
- * @return int
1682
- */
1683
- function get_dirsize( $directory ) {
1684
- $dirsize = get_transient( 'dirsize_cache' );
1685
- if ( is_array( $dirsize ) && isset( $dirsize[ $directory ][ 'size' ] ) )
1686
- return $dirsize[ $directory ][ 'size' ];
1687
-
1688
- if ( false == is_array( $dirsize ) )
1689
- $dirsize = array();
1690
-
1691
- $dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory );
1692
-
1693
- set_transient( 'dirsize_cache', $dirsize, HOUR_IN_SECONDS );
1694
- return $dirsize[ $directory ][ 'size' ];
1695
- }
1696
-
1697
- /**
1698
- * Get the size of a directory recursively.
1699
- *
1700
- * Used by get_dirsize() to get a directory's size when it contains
1701
- * other directories.
1702
- *
1703
- * @since MU
1704
- *
1705
- * @param string $directory
1706
- * @return int
1707
- */
1708
- function recurse_dirsize( $directory ) {
1709
- $size = 0;
1710
-
1711
- $directory = untrailingslashit( $directory );
1712
-
1713
- if ( !file_exists($directory) || !is_dir( $directory ) || !is_readable( $directory ) )
1714
- return false;
1715
-
1716
- if ($handle = opendir($directory)) {
1717
- while(($file = readdir($handle)) !== false) {
1718
- $path = $directory.'/'.$file;
1719
- if ($file != '.' && $file != '..') {
1720
- if (is_file($path)) {
1721
- $size += filesize($path);
1722
- } elseif (is_dir($path)) {
1723
- $handlesize = recurse_dirsize($path);
1724
- if ($handlesize > 0)
1725
- $size += $handlesize;
1726
- }
1727
- }
1728
- }
1729
- closedir($handle);
1730
- }
1731
- return $size;
1732
- }
1733
-
1734
- /**
1735
- * Check an array of MIME types against a whitelist.
1736
- *
1737
- * WordPress ships with a set of allowed upload filetypes,
1738
- * which is defined in wp-includes/functions.php in
1739
- * get_allowed_mime_types(). This function is used to filter
1740
- * that list against the filetype whitelist provided by Multisite
1741
- * Super Admins at wp-admin/network/settings.php.
1742
- *
1743
- * @since MU
1744
- *
1745
- * @param array $mimes
1746
- * @return array
1747
- */
1748
- function check_upload_mimes( $mimes ) {
1749
- $site_exts = explode( ' ', get_site_option( 'upload_filetypes', 'jpg jpeg png gif' ) );
1750
- $site_mimes = array();
1751
- foreach ( $site_exts as $ext ) {
1752
- foreach ( $mimes as $ext_pattern => $mime ) {
1753
- if ( $ext != '' && strpos( $ext_pattern, $ext ) !== false )
1754
- $site_mimes[$ext_pattern] = $mime;
1755
- }
1756
- }
1757
- return $site_mimes;
1758
- }
1759
-
1760
- /**
1761
- * Update a blog's post count.
1762
- *
1763
- * WordPress MS stores a blog's post count as an option so as
1764
- * to avoid extraneous COUNTs when a blog's details are fetched
1765
- * with get_blog_details(). This function is called when posts
1766
- * are published or unpublished to make sure the count stays current.
1767
- *
1768
- * @since MU
1769
- */
1770
- function update_posts_count( $deprecated = '' ) {
1771
- global $wpdb;
1772
- update_option( 'post_count', (int) $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_status = 'publish' and post_type = 'post'" ) );
1773
- }
1774
-
1775
- /**
1776
- * Logs user registrations.
1777
- *
1778
- * @since MU
1779
- *
1780
- * @param int $blog_id
1781
- * @param int $user_id
1782
- */
1783
- function wpmu_log_new_registrations( $blog_id, $user_id ) {
1784
- global $wpdb;
1785
- $user = get_userdata( (int) $user_id );
1786
- if ( $user )
1787
- $wpdb->insert( $wpdb->registration_log, array('email' => $user->user_email, 'IP' => preg_replace( '/[^0-9., ]/', '', wp_unslash( $_SERVER['REMOTE_ADDR'] ) ), 'blog_id' => $blog_id, 'date_registered' => current_time('mysql')) );
1788
- }
1789
-
1790
- /**
1791
- * Maintains a canonical list of terms by syncing terms created for each blog with the global terms table.
1792
- *
1793
- * @since 3.0.0
1794
- *
1795
- * @see term_id_filter
1796
- *
1797
- * @param int $term_id An ID for a term on the current blog.
1798
- * @return int An ID from the global terms table mapped from $term_id.
1799
- */
1800
- function global_terms( $term_id, $deprecated = '' ) {
1801
- global $wpdb;
1802
- static $global_terms_recurse = null;
1803
-
1804
- if ( !global_terms_enabled() )
1805
- return $term_id;
1806
-
1807
- // prevent a race condition
1808
- $recurse_start = false;
1809
- if ( $global_terms_recurse === null ) {
1810
- $recurse_start = true;
1811
- $global_terms_recurse = 1;
1812
- } elseif ( 10 < $global_terms_recurse++ ) {
1813
- return $term_id;
1814
- }
1815
-
1816
- $term_id = intval( $term_id );
1817
- $c = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->terms WHERE term_id = %d", $term_id ) );
1818
-
1819
- $global_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM $wpdb->sitecategories WHERE category_nicename = %s", $c->slug ) );
1820
- if ( $global_id == null ) {
1821
- $used_global_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM $wpdb->sitecategories WHERE cat_ID = %d", $c->term_id ) );
1822
- if ( null == $used_global_id ) {
1823
- $wpdb->insert( $wpdb->sitecategories, array( 'cat_ID' => $term_id, 'cat_name' => $c->name, 'category_nicename' => $c->slug ) );
1824
- $global_id = $wpdb->insert_id;
1825
- if ( empty( $global_id ) )
1826
- return $term_id;
1827
- } else {
1828
- $max_global_id = $wpdb->get_var( "SELECT MAX(cat_ID) FROM $wpdb->sitecategories" );
1829
- $max_local_id = $wpdb->get_var( "SELECT MAX(term_id) FROM $wpdb->terms" );
1830
- $new_global_id = max( $max_global_id, $max_local_id ) + mt_rand( 100, 400 );
1831
- $wpdb->insert( $wpdb->sitecategories, array( 'cat_ID' => $new_global_id, 'cat_name' => $c->name, 'category_nicename' => $c->slug ) );
1832
- $global_id = $wpdb->insert_id;
1833
- }
1834
- } elseif ( $global_id != $term_id ) {
1835
- $local_id = $wpdb->get_row( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms WHERE term_id = %d", $global_id ) );
1836
- if ( null != $local_id )
1837
- $local_id = global_terms( $local_id );
1838
- if ( 10 < $global_terms_recurse )
1839
- $global_id = $term_id;
1840
- }
1841
-
1842
- if ( $global_id != $term_id ) {
1843
- if ( get_option( 'default_category' ) == $term_id )
1844
- update_option( 'default_category', $global_id );
1845
-
1846
- $wpdb->update( $wpdb->terms, array('term_id' => $global_id), array('term_id' => $term_id) );
1847
- $wpdb->update( $wpdb->term_taxonomy, array('term_id' => $global_id), array('term_id' => $term_id) );
1848
- $wpdb->update( $wpdb->term_taxonomy, array('parent' => $global_id), array('parent' => $term_id) );
1849
-
1850
- clean_term_cache($term_id);
1851
- }
1852
- if( $recurse_start )
1853
- $global_terms_recurse = null;
1854
-
1855
- return $global_id;
1856
- }
1857
-
1858
- /**
1859
- * Ensure that the current site's domain is listed in the allowed redirect host list.
1860
- *
1861
- * @see wp_validate_redirect()
1862
- * @since MU
1863
- *
1864
- * @return array The current site's domain
1865
- */
1866
- function redirect_this_site( $deprecated = '' ) {
1867
- return array( get_current_site()->domain );
1868
- }
1869
-
1870
- /**
1871
- * Check whether an upload is too big.
1872
- *
1873
- * @since MU
1874
- *
1875
- * @param array $upload
1876
- * @return mixed If the upload is under the size limit, $upload is returned. Otherwise returns an error message.
1877
- */
1878
- function upload_is_file_too_big( $upload ) {
1879
- if ( is_array( $upload ) == false || defined( 'WP_IMPORTING' ) || get_site_option( 'upload_space_check_disabled' ) )
1880
- return $upload;
1881
-
1882
- if ( strlen( $upload['bits'] ) > ( 1024 * get_site_option( 'fileupload_maxk', 1500 ) ) )
1883
- return sprintf( __( 'This file is too big. Files must be less than %d KB in size.' ) . '<br />', get_site_option( 'fileupload_maxk', 1500 ));
1884
-
1885
- return $upload;
1886
- }
1887
-
1888
- /**
1889
- * Add a nonce field to the signup page.
1890
- *
1891
- * @since MU
1892
- * @uses wp_nonce_field()
1893
- */
1894
- function signup_nonce_fields() {
1895
- $id = mt_rand();
1896
- echo "<input type='hidden' name='signup_form_id' value='{$id}' />";
1897
- wp_nonce_field('signup_form_' . $id, '_signup_form', false);
1898
- }
1899
-
1900
- /**
1901
- * Process the signup nonce created in signup_nonce_fields().
1902
- *
1903
- * @since MU
1904
- * @uses wp_create_nonce()
1905
- *
1906
- * @param array $result
1907
- * @return array
1908
- */
1909
- function signup_nonce_check( $result ) {
1910
- if ( !strpos( $_SERVER[ 'PHP_SELF' ], 'wp-signup.php' ) )
1911
- return $result;
1912
-
1913
- if ( wp_create_nonce('signup_form_' . $_POST[ 'signup_form_id' ]) != $_POST['_signup_form'] )
1914
- wp_die( __( 'Please try again.' ) );
1915
-
1916
- return $result;
1917
- }
1918
-
1919
- /**
1920
- * Correct 404 redirects when NOBLOGREDIRECT is defined.
1921
- *
1922
- * @since MU
1923
- */
1924
- function maybe_redirect_404() {
1925
- /**
1926
- * Filter the redirect URL for 404s on the main site.
1927
- *
1928
- * The filter is only evaluated if the NOBLOGREDIRECT constant is defined.
1929
- *
1930
- * @since 3.0.0
1931
- *
1932
- * @param string $no_blog_redirect The redirect URL defined in NOBLOGREDIRECT.
1933
- */
1934
- if ( is_main_site() && is_404() && defined( 'NOBLOGREDIRECT' ) && ( $destination = apply_filters( 'blog_redirect_404', NOBLOGREDIRECT ) ) ) {
1935
- if ( $destination == '%siteurl%' )
1936
- $destination = network_home_url();
1937
- wp_redirect( $destination );
1938
- exit();
1939
- }
1940
- }
1941
-
1942
- /**
1943
- * Add a new user to a blog by visiting /newbloguser/username/.
1944
- *
1945
- * This will only work when the user's details are saved as an option
1946
- * keyed as 'new_user_x', where 'x' is the username of the user to be
1947
- * added, as when a user is invited through the regular WP Add User interface.
1948
- *
1949
- * @since MU
1950
- * @uses add_existing_user_to_blog()
1951
- */
1952
- function maybe_add_existing_user_to_blog() {
1953
- if ( false === strpos( $_SERVER[ 'REQUEST_URI' ], '/newbloguser/' ) )
1954
- return false;
1955
-
1956
- $parts = explode( '/', $_SERVER[ 'REQUEST_URI' ] );
1957
- $key = array_pop( $parts );
1958
-
1959
- if ( $key == '' )
1960
- $key = array_pop( $parts );
1961
-
1962
- $details = get_option( 'new_user_' . $key );
1963
- if ( !empty( $details ) )
1964
- delete_option( 'new_user_' . $key );
1965
-
1966
- if ( empty( $details ) || is_wp_error( add_existing_user_to_blog( $details ) ) )
1967
- wp_die( sprintf(__('An error occurred adding you to this site. Back to the <a href="%s">homepage</a>.'), home_url() ) );
1968
-
1969
- wp_die( sprintf( __( 'You have been added to this site. Please visit the <a href="%s">homepage</a> or <a href="%s">log in</a> using your username and password.' ), home_url(), admin_url() ), __( 'WordPress &rsaquo; Success' ) );
1970
- }
1971
-
1972
- /**
1973
- * Add a user to a blog based on details from maybe_add_existing_user_to_blog().
1974
- *
1975
- * @since MU
1976
- * @uses add_user_to_blog()
1977
- *
1978
- * @param array $details
1979
- */
1980
- function add_existing_user_to_blog( $details = false ) {
1981
- global $blog_id;
1982
-
1983
- if ( is_array( $details ) ) {
1984
- $result = add_user_to_blog( $blog_id, $details[ 'user_id' ], $details[ 'role' ] );
1985
- /**
1986
- * Fires immediately after an existing user is added to a site.
1987
- *
1988
- * @since MU
1989
- *
1990
- * @param int $user_id User ID.
1991
- * @param mixed $result True on success or a WP_Error object if the user doesn't exist.
1992
- */
1993
- do_action( 'added_existing_user', $details['user_id'], $result );
1994
- }
1995
- return $result;
1996
- }
1997
-
1998
- /**
1999
- * Add a newly created user to the appropriate blog
2000
- *
2001
- * To add a user in general, use add_user_to_blog(). This function
2002
- * is specifically hooked into the wpmu_activate_user action.
2003
- *
2004
- * @since MU
2005
- * @see add_user_to_blog()
2006
- *
2007
- * @param int $user_id
2008
- * @param mixed $password Ignored.
2009
- * @param array $meta
2010
- */
2011
- function add_new_user_to_blog( $user_id, $password, $meta ) {
2012
- if ( !empty( $meta[ 'add_to_blog' ] ) ) {
2013
- $blog_id = $meta[ 'add_to_blog' ];
2014
- $role = $meta[ 'new_role' ];
2015
- remove_user_from_blog($user_id, get_current_site()->blog_id); // remove user from main blog.
2016
- add_user_to_blog( $blog_id, $user_id, $role );
2017
- update_user_meta( $user_id, 'primary_blog', $blog_id );
2018
- }
2019
- }
2020
-
2021
- /**
2022
- * Correct From host on outgoing mail to match the site domain
2023
- *
2024
- * @since MU
2025
- */
2026
- function fix_phpmailer_messageid( $phpmailer ) {
2027
- $phpmailer->Hostname = get_current_site()->domain;
2028
- }
2029
-
2030
- /**
2031
- * Check to see whether a user is marked as a spammer, based on user login.
2032
- *
2033
- * @since MU
2034
- * @uses get_user_by()
2035
- *
2036
- * @param string|WP_User $user Optional. Defaults to current user. WP_User object,
2037
- * or user login name as a string.
2038
- * @return bool
2039
- */
2040
- function is_user_spammy( $user = null ) {
2041
- if ( ! is_a( $user, 'WP_User' ) ) {
2042
- if ( $user )
2043
- $user = get_user_by( 'login', $user );
2044
- else
2045
- $user = wp_get_current_user();
2046
- }
2047
-
2048
- return $user && isset( $user->spam ) && 1 == $user->spam;
2049
- }
2050
-
2051
- /**
2052
- * Update this blog's 'public' setting in the global blogs table.
2053
- *
2054
- * Public blogs have a setting of 1, private blogs are 0.
2055
- *
2056
- * @since MU
2057
- * @uses update_blog_status()
2058
- *
2059
- * @param int $old_value
2060
- * @param int $value The new public value
2061
- * @return bool
2062
- */
2063
- function update_blog_public( $old_value, $value ) {
2064
- update_blog_status( get_current_blog_id(), 'public', (int) $value );
2065
- }
2066
- add_action('update_option_blog_public', 'update_blog_public', 10, 2);
2067
-
2068
- /**
2069
- * Check whether a usermeta key has to do with the current blog.
2070
- *
2071
- * @since MU
2072
- * @uses wp_get_current_user()
2073
- *
2074
- * @param string $key
2075
- * @param int $user_id Optional. Defaults to current user.
2076
- * @param int $blog_id Optional. Defaults to current blog.
2077
- * @return bool
2078
- */
2079
- function is_user_option_local( $key, $user_id = 0, $blog_id = 0 ) {
2080
- global $wpdb;
2081
-
2082
- $current_user = wp_get_current_user();
2083
- if ( $blog_id == 0 ) {
2084
- $blog_id = $wpdb->blogid;
2085
- }
2086
- $local_key = $wpdb->get_blog_prefix( $blog_id ) . $key;
2087
-
2088
- if ( isset( $current_user->$local_key ) )
2089
- return true;
2090
-
2091
- return false;
2092
- }
2093
-
2094
- /**
2095
- * Check whether users can self-register, based on Network settings.
2096
- *
2097
- * @since MU
2098
- *
2099
- * @return bool
2100
- */
2101
- function users_can_register_signup_filter() {
2102
- $registration = get_site_option('registration');
2103
- if ( $registration == 'all' || $registration == 'user' )
2104
- return true;
2105
-
2106
- return false;
2107
- }
2108
- add_filter('option_users_can_register', 'users_can_register_signup_filter');
2109
-
2110
- /**
2111
- * Ensure that the welcome message is not empty. Currently unused.
2112
- *
2113
- * @since MU
2114
- *
2115
- * @param string $text
2116
- * @return string
2117
- */
2118
- function welcome_user_msg_filter( $text ) {
2119
- if ( !$text ) {
2120
- remove_filter( 'site_option_welcome_user_email', 'welcome_user_msg_filter' );
2121
- $text = __( 'Dear User,
2122
-
2123
- Your new account is set up.
2124
-
2125
- You can log in with the following information:
2126
- Username: USERNAME
2127
- Password: PASSWORD
2128
- LOGINLINK
2129
-
2130
- Thanks!
2131
-
2132
- --The Team @ SITE_NAME' );
2133
- update_site_option( 'welcome_user_email', $text );
2134
- }
2135
- return $text;
2136
- }
2137
- add_filter( 'site_option_welcome_user_email', 'welcome_user_msg_filter' );
2138
-
2139
- /**
2140
- * Whether to force SSL on content.
2141
- *
2142
- * @since 2.8.5
2143
- *
2144
- * @param string|bool $force
2145
- * @return bool True if forced, false if not forced.
2146
- */
2147
- function force_ssl_content( $force = '' ) {
2148
- static $forced_content;
2149
-
2150
- if ( '' != $force ) {
2151
- $old_forced = $forced_content;
2152
- $forced_content = $force;
2153
- return $old_forced;
2154
- }
2155
-
2156
- return $forced_content;
2157
- }
2158
-
2159
- /**
2160
- * Formats a URL to use https.
2161
- *
2162
- * Useful as a filter.
2163
- *
2164
- * @since 2.8.5
2165
- *
2166
- * @param string URL
2167
- * @return string URL with https as the scheme
2168
- */
2169
- function filter_SSL( $url ) {
2170
- if ( ! is_string( $url ) )
2171
- return get_bloginfo( 'url' ); // Return home blog url with proper scheme
2172
-
2173
- if ( force_ssl_content() && is_ssl() )
2174
- $url = set_url_scheme( $url, 'https' );
2175
-
2176
- return $url;
2177
- }
2178
-
2179
- /**
2180
- * Schedule update of the network-wide counts for the current network.
2181
- *
2182
- * @since 3.1.0
2183
- */
2184
- function wp_schedule_update_network_counts() {
2185
- if ( !is_main_site() )
2186
- return;
2187
-
2188
- if ( !wp_next_scheduled('update_network_counts') && !defined('WP_INSTALLING') )
2189
- wp_schedule_event(time(), 'twicedaily', 'update_network_counts');
2190
- }
2191
-
2192
- /**
2193
- * Update the network-wide counts for the current network.
2194
- *
2195
- * @since 3.1.0
2196
- */
2197
- function wp_update_network_counts() {
2198
- wp_update_network_user_counts();
2199
- wp_update_network_site_counts();
2200
- }
2201
-
2202
- /**
2203
- * Update the count of sites for the current network.
2204
- *
2205
- * If enabled through the 'enable_live_network_counts' filter, update the sites count
2206
- * on a network when a site is created or its status is updated.
2207
- *
2208
- * @since 3.7.0
2209
- *
2210
- * @uses wp_update_network_site_counts()
2211
- */
2212
- function wp_maybe_update_network_site_counts() {
2213
- $is_small_network = ! wp_is_large_network( 'sites' );
2214
-
2215
- /**
2216
- * Filter whether to update network site or user counts when a new site is created.
2217
- *
2218
- * @since 3.7.0
2219
- *
2220
- * @see wp_is_large_network()
2221
- *
2222
- * @param bool $small_network Whether the network is considered small.
2223
- * @param string $context Context. Either 'users' or 'sites'.
2224
- */
2225
- if ( ! apply_filters( 'enable_live_network_counts', $is_small_network, 'sites' ) )
2226
- return;
2227
-
2228
- wp_update_network_site_counts();
2229
- }
2230
-
2231
- /**
2232
- * Update the network-wide users count.
2233
- *
2234
- * If enabled through the 'enable_live_network_counts' filter, update the users count
2235
- * on a network when a user is created or its status is updated.
2236
- *
2237
- * @since 3.7.0
2238
- *
2239
- * @uses wp_update_network_user_counts()
2240
- */
2241
- function wp_maybe_update_network_user_counts() {
2242
- $is_small_network = ! wp_is_large_network( 'users' );
2243
-
2244
- /** This filter is documented in wp-includes/ms-functions.php */
2245
- if ( ! apply_filters( 'enable_live_network_counts', $is_small_network, 'users' ) )
2246
- return;
2247
-
2248
- wp_update_network_user_counts();
2249
- }
2250
-
2251
- /**
2252
- * Update the network-wide site count.
2253
- *
2254
- * @since 3.7.0
2255
- */
2256
- function wp_update_network_site_counts() {
2257
- global $wpdb;
2258
-
2259
- $count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(blog_id) as c FROM $wpdb->blogs WHERE site_id = %d AND spam = '0' AND deleted = '0' and archived = '0'", $wpdb->siteid) );
2260
- update_site_option( 'blog_count', $count );
2261
- }
2262
-
2263
- /**
2264
- * Update the network-wide user count.
2265
- *
2266
- * @since 3.7.0
2267
- */
2268
- function wp_update_network_user_counts() {
2269
- global $wpdb;
2270
-
2271
- $count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );
2272
- update_site_option( 'user_count', $count );
2273
- }
2274
-
2275
- /**
2276
- * Returns the space used by the current blog.
2277
- *
2278
- * @since 3.5.0
2279
- *
2280
- * @return int Used space in megabytes
2281
- */
2282
- function get_space_used() {
2283
- /**
2284
- * Filter the amount of storage space used by the current site.
2285
- *
2286
- * @since 3.5.0
2287
- *
2288
- * @param int|bool $space_used The amount of used space, in megabytes. Default false.
2289
- */
2290
- $space_used = apply_filters( 'pre_get_space_used', false );
2291
- if ( false === $space_used ) {
2292
- $upload_dir = wp_upload_dir();
2293
- $space_used = get_dirsize( $upload_dir['basedir'] ) / 1024 / 1024;
2294
- }
2295
-
2296
- return $space_used;
2297
- }
2298
-
2299
- /**
2300
- * Returns the upload quota for the current blog.
2301
- *
2302
- * @since MU
2303
- *
2304
- * @return int Quota in megabytes
2305
- */
2306
- function get_space_allowed() {
2307
- $space_allowed = get_option( 'blog_upload_space' );
2308
-
2309
- if ( ! is_numeric( $space_allowed ) )
2310
- $space_allowed = get_site_option( 'blog_upload_space' );
2311
-
2312
- if ( empty( $space_allowed ) || ! is_numeric( $space_allowed ) )
2313
- $space_allowed = 100;
2314
-
2315
- /**
2316
- * Filter the upload quota for the current site.
2317
- *
2318
- * @since 3.7.0
2319
- *
2320
- * @param int $space_allowed Upload quota in megabytes for the current blog.
2321
- */
2322
- return apply_filters( 'get_space_allowed', $space_allowed );
2323
- }
2324
-
2325
- /**
2326
- * Determines if there is any upload space left in the current blog's quota.
2327
- *
2328
- * @since 3.0.0
2329
- *
2330
- * @return int of upload space available in bytes
2331
- */
2332
- function get_upload_space_available() {
2333
- $space_allowed = get_space_allowed() * 1024 * 1024;
2334
- if ( get_site_option( 'upload_space_check_disabled' ) )
2335
- return $space_allowed;
2336
-
2337
- $space_used = get_space_used() * 1024 * 1024;
2338
-
2339
- if ( ( $space_allowed - $space_used ) <= 0 )
2340
- return 0;
2341
-
2342
- return $space_allowed - $space_used;
2343
- }
2344
-
2345
- /**
2346
- * Determines if there is any upload space left in the current blog's quota.
2347
- *
2348
- * @since 3.0.0
2349
- * @return bool True if space is available, false otherwise.
2350
- */
2351
- function is_upload_space_available() {
2352
- if ( get_site_option( 'upload_space_check_disabled' ) )
2353
- return true;
2354
-
2355
- return (bool) get_upload_space_available();
2356
- }
2357
-
2358
- /**
2359
- * @since 3.0.0
2360
- *
2361
- * @return int of upload size limit in bytes
2362
- */
2363
- function upload_size_limit_filter( $size ) {
2364
- $fileupload_maxk = 1024 * get_site_option( 'fileupload_maxk', 1500 );
2365
- if ( get_site_option( 'upload_space_check_disabled' ) )
2366
- return min( $size, $fileupload_maxk );
2367
-
2368
- return min( $size, $fileupload_maxk, get_upload_space_available() );
2369
- }
2370
-
2371
- /**
2372
- * Whether or not we have a large network.
2373
- *
2374
- * The default criteria for a large network is either more than 10,000 users or more than 10,000 sites.
2375
- * Plugins can alter this criteria using the 'wp_is_large_network' filter.
2376
- *
2377
- * @since 3.3.0
2378
- * @param string $using 'sites or 'users'. Default is 'sites'.
2379
- * @return bool True if the network meets the criteria for large. False otherwise.
2380
- */
2381
- function wp_is_large_network( $using = 'sites' ) {
2382
- if ( 'users' == $using ) {
2383
- $count = get_user_count();
2384
- /**
2385
- * Filter whether the network is considered large.
2386
- *
2387
- * @since 3.3.0
2388
- *
2389
- * @param bool $is_large_network Whether the network has more than 10000 users or sites.
2390
- * @param string $component The component to count. Accepts 'users', or 'sites'.
2391
- * @param int $count The count of items for the component.
2392
- */
2393
- return apply_filters( 'wp_is_large_network', $count > 10000, 'users', $count );
2394
- }
2395
-
2396
- $count = get_blog_count();
2397
- /** This filter is documented in wp-includes/ms-functions.php */
2398
- return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count );
2399
- }
2400
-
2401
-
2402
- /**
2403
- * Return an array of sites for a network or networks.
2404
- *
2405
- * @since 3.7.0
2406
- *
2407
- * @param array $args {
2408
- * Array of default arguments. Optional.
2409
- *
2410
- * @type int|array $network_id A network ID or array of network IDs. Set to null to retrieve sites
2411
- * from all networks. Defaults to current network ID.
2412
- * @type int $public Retrieve public or non-public sites. Default null, for any.
2413
- * @type int $archived Retrieve archived or non-archived sites. Default null, for any.
2414
- * @type int $mature Retrieve mature or non-mature sites. Default null, for any.
2415
- * @type int $spam Retrieve spam or non-spam sites. Default null, for any.
2416
- * @type int $deleted Retrieve deleted or non-deleted sites. Default null, for any.
2417
- * @type int $limit Number of sites to limit the query to. Default 100.
2418
- * @type int $offset Exclude the first x sites. Used in combination with the $limit parameter. Default 0.
2419
- * }
2420
- * @return array An empty array if the install is considered "large" via wp_is_large_network(). Otherwise,
2421
- * an associative array of site data arrays, each containing the site (network) ID, blog ID,
2422
- * site domain and path, dates registered and modified, and the language ID. Also, boolean
2423
- * values for whether the site is public, archived, mature, spam, and/or deleted.
2424
- */
2425
- function wp_get_sites( $args = array() ) {
2426
- global $wpdb;
2427
-
2428
- if ( wp_is_large_network() )
2429
- return array();
2430
-
2431
- $defaults = array(
2432
- 'network_id' => $wpdb->siteid,
2433
- 'public' => null,
2434
- 'archived' => null,
2435
- 'mature' => null,
2436
- 'spam' => null,
2437
- 'deleted' => null,
2438
- 'limit' => 100,
2439
- 'offset' => 0,
2440
- );
2441
-
2442
- $args = wp_parse_args( $args, $defaults );
2443
-
2444
- $query = "SELECT * FROM $wpdb->blogs WHERE 1=1 ";
2445
-
2446
- if ( isset( $args['network_id'] ) && ( is_array( $args['network_id'] ) || is_numeric( $args['network_id'] ) ) ) {
2447
- $network_ids = implode( ',', wp_parse_id_list( $args['network_id'] ) );
2448
- $query .= "AND site_id IN ($network_ids) ";
2449
- }
2450
-
2451
- if ( isset( $args['public'] ) )
2452
- $query .= $wpdb->prepare( "AND public = %d ", $args['public'] );
2453
-
2454
- if ( isset( $args['archived'] ) )
2455
- $query .= $wpdb->prepare( "AND archived = %d ", $args['archived'] );
2456
-
2457
- if ( isset( $args['mature'] ) )
2458
- $query .= $wpdb->prepare( "AND mature = %d ", $args['mature'] );
2459
-
2460
- if ( isset( $args['spam'] ) )
2461
- $query .= $wpdb->prepare( "AND spam = %d ", $args['spam'] );
2462
-
2463
- if ( isset( $args['deleted'] ) )
2464
- $query .= $wpdb->prepare( "AND deleted = %d ", $args['deleted'] );
2465
-
2466
- if ( isset( $args['limit'] ) && $args['limit'] ) {
2467
- if ( isset( $args['offset'] ) && $args['offset'] )
2468
- $query .= $wpdb->prepare( "LIMIT %d , %d ", $args['offset'], $args['limit'] );
2469
- else
2470
- $query .= $wpdb->prepare( "LIMIT %d ", $args['limit'] );
2471
- }
2472
-
2473
- $site_results = $wpdb->get_results( $query, ARRAY_A );
2474
-
2475
- return $site_results;
2476
- }