apiqvitterupdatebackgroundcolor.php 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. /* · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
  3. · ·
  4. · ·
  5. · Q V I T T E R ·
  6. · ·
  7. · https://git.gnu.io/h2p/Qvitter ·
  8. · ·
  9. · ·
  10. · <o) ·
  11. · /_//// ·
  12. · (____/ ·
  13. · (o< ·
  14. · o> \\\\_\ ·
  15. · \\) \____) ·
  16. · ·
  17. · ·
  18. · ·
  19. · Qvitter is free software: you can redistribute it and / or modify it ·
  20. · under the terms of the GNU Affero General Public License as published by ·
  21. · the Free Software Foundation, either version three of the License or (at ·
  22. · your option) any later version. ·
  23. · ·
  24. · Qvitter is distributed in hope that it will be useful but WITHOUT ANY ·
  25. · WARRANTY; without even the implied warranty of MERCHANTABILTY or FITNESS ·
  26. · FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for ·
  27. · more details. ·
  28. · ·
  29. · You should have received a copy of the GNU Affero General Public License ·
  30. · along with Qvitter. If not, see <http://www.gnu.org/licenses/>. ·
  31. · ·
  32. · Contact h@nnesmannerhe.im if you have any questions. ·
  33. · ·
  34. · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
  35. if (!defined('GNUSOCIAL')) { exit(1); }
  36. class ApiQvitterUpdateBackgroundColorAction extends ApiAuthAction
  37. {
  38. var $backgroundcolor = null;
  39. protected $needPost = true;
  40. /**
  41. * Take arguments for running
  42. *
  43. * @param array $args $_REQUEST args
  44. *
  45. * @return boolean success flag
  46. */
  47. protected function prepare(array $args=array())
  48. {
  49. parent::prepare($args);
  50. $this->format = 'json';
  51. $this->backgroundcolor = $this->trimmed('backgroundcolor');
  52. return true;
  53. }
  54. /**
  55. * Handle the request
  56. *
  57. * Try to save the user's colors in her design. Create a new design
  58. * if the user doesn't already have one.
  59. *
  60. * @param array $args $_REQUEST data (unused)
  61. *
  62. * @return void
  63. */
  64. protected function handle()
  65. {
  66. parent::handle();
  67. $validhex = preg_match('/^[a-f0-9]{6}$/i',$this->backgroundcolor);
  68. if ($validhex === false || $validhex == 0) {
  69. $this->clientError(_('Not a valid hex color.'), 400);
  70. }
  71. Profile_prefs::setData($this->scoped, 'theme', 'backgroundcolor', $this->backgroundcolor);
  72. // unset background-image
  73. Profile_prefs::setData($this->scoped, 'qvitter', 'background_image', '');
  74. $twitter_user = $this->twitterUserArray($this->scoped, true);
  75. $this->initDocument('json');
  76. $this->showJsonObjects($twitter_user);
  77. $this->endDocument('json');
  78. }
  79. }