PageRenderTime 63ms CodeModel.GetById 35ms RepoModel.GetById 0ms app.codeStats 0ms

/apps/index.php

https://github.com/singpolyma/theveeb-ecosystem-server
PHP | 157 lines | 140 code | 15 blank | 2 comment | 12 complexity | 4cb26c3c533ee458790fe0370a3a90a7 MD5 | raw file
  1. <?php
  2. require_once dirname(__FILE__).'/../include/check_method.php';
  3. check_method(array('GET'));
  4. require dirname(__FILE__).'/../include/use_type.php';
  5. require dirname(__FILE__).'/../include/connectDB.php';
  6. require dirname(__FILE__).'/../include/activity.php';
  7. switch(use_type(array('application/xhtml+xml', 'text/html', 'application/json', 'text/plain', 'text/javascript', 'application/rss+xml'), true)) :
  8. case 'application/rss+xml':
  9. require dirname(__FILE__).'/../include/processCookie.php';
  10. header('Content-Type: application/rss+xml; charset=utf-8');
  11. $contacts = array();
  12. $constrain = 'user_activity.private=0';
  13. if($LOGIN_DATA['user_id']) {
  14. $contacts_result = mysql_query("SELECT contact_id FROM user_contacts WHERE user_id={$LOGIN_DATA['user_id']}");
  15. while($contact = mysql_fetch_assoc($contacts_result)) {
  16. $contacts[] = (int)$contact['contact_id'];
  17. }
  18. }
  19. if(count($contacts) > 0) {
  20. $constrain = ' IN ('.implode(',', $contacts).')';
  21. }
  22. echo '<?xml version="1.0" encoding="utf-8" ?>';
  23. ?>
  24. <rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  25. <channel>
  26. <title>Recent Activity<?php if(count($contacts) > 0) echo ' from '.htmlspecialchars($LOGIN_DATA['nickname']).'\'s contacts'; ?></title>
  27. <link>http://<?php echo $_SERVER['HTTP_HOST'].APPROOT; ?>apps/</link>
  28. <?php
  29. activity_rss($constrain);
  30. break;
  31. case 'text/javascript':
  32. $js = true;
  33. header('Content-Type: text/javascript; charset=utf-8');
  34. $callback = $_GET['callback'];
  35. if($callback) echo $callback.'(';
  36. case 'application/json':
  37. if(!$js) header('Content-Type: application/json; charset=utf-8');
  38. $packages = mysql_query("SELECT package FROM packages") or die(mysql_error());
  39. echo '[';
  40. $first = true;
  41. while($package = mysql_fetch_assoc($packages)) {
  42. if(!$first) {
  43. echo ',';
  44. } else {
  45. $first = false;
  46. }
  47. echo '"'.addslashes($package['package']).'"';
  48. }
  49. echo ']';
  50. if($callback) echo ')';
  51. break;
  52. case 'text/plain': /* This is a problem if we don't support text/html. Old browsers may get this */
  53. header('Content-Type: text/plain; charset=utf-8');
  54. $packages = mysql_query("SELECT package FROM packages") or die(mysql_error());
  55. while($package = mysql_fetch_assoc($packages)) {
  56. echo $package['package']."\n";
  57. }
  58. break;
  59. case 'text/html':
  60. $noxml = true;
  61. case 'application/xhtml+xml':
  62. require dirname(__FILE__).'/../include/processCookie.php';
  63. $title = 'Apps';
  64. require dirname(__FILE__).'/../include/invisible_header.php';
  65. ?>
  66. <link rel="alternate" type="application/rss+xml" title="Actionstream Feed" href="?accept=application/rss+xml" />
  67. <style type="text/css">
  68. ul#featured, #contacts {
  69. float: right;
  70. clear: both;
  71. }
  72. #contacts ul {
  73. padding: 0;
  74. }
  75. #contacts li, ul#featured li {
  76. list-style-type: none;
  77. float: left;
  78. margin-right: 0.2em;
  79. }
  80. ol.activity, ol.activity li {
  81. list-style-type: none;
  82. padding-left: 1em;
  83. }
  84. form, fieldset {
  85. display: inline;
  86. border: none;
  87. padding: 0;
  88. }
  89. </style>
  90. </head>
  91. <body>
  92. <?php require dirname(__FILE__).'/../include/visible_header.php'; ?>
  93. <ul id="featured">
  94. <?php
  95. $apps = mysql_query("SELECT * FROM (SELECT packages.package, AVG(rating) as avg_rating FROM packages LEFT JOIN user_packages ON packages.package=user_packages.package GROUP BY user_packages.package) as t WHERE avg_rating > 3 ORDER BY rand() LIMIT 5") or die(mysql_error());
  96. while($app = mysql_fetch_assoc($apps)) :
  97. ?>
  98. <li>
  99. <img src="/images/apps/<?php echo htmlspecialchars($app['package']); ?>"
  100. alt="<?php echo htmlspecialchars($app['package']); ?>" />
  101. </li>
  102. <?php endwhile; ?>
  103. </ul>
  104. <?php
  105. $contacts = array();
  106. if($LOGIN_DATA['user_id']) {
  107. require dirname(__FILE__).'/../include/contacts.php';
  108. $contacts = contacts($LOGIN_DATA['user_id']);
  109. $contact_requests = mysql_query("SELECT users.user_id,nickname FROM user_contact_requests,users WHERE user_contact_requests.user_id=users.user_id AND contact_id={$LOGIN_DATA['user_id']}") or die(mysql_error());
  110. if(mysql_num_rows($contact_requests) > 0) {
  111. echo '<h2>Contact Requests</h2><ul>';
  112. while($contact_request = mysql_fetch_assoc($contact_requests)) : ?>
  113. <li>
  114. <a href="<?php echo APPROOT; ?>users/<?php echo htmlspecialchars($contact_request['nickname']); ?>"><?php echo htmlspecialchars($contact_request['nickname']); ?></a>
  115. <form method="post" action="<?php echo APPROOT; ?>users/me"><fieldset>
  116. <input type="hidden" name="contact_request" value="<?php echo $contact_request['user_id']; ?>" />
  117. <input type="submit" name="action" value="Authorize" />
  118. <input type="submit" name="action" value="Deny" />
  119. </fieldset></form>
  120. </li>
  121. <?php
  122. endwhile;
  123. echo '</ul>';
  124. }
  125. }
  126. ?>
  127. <h2>Recent Activity<?php if(count($contacts) > 0) echo ' From Your Contacts'; ?></h2>
  128. <?php
  129. $constrain = 'user_activity.private=0';
  130. if(count($contacts) > 0) {
  131. $constrain = ' user_activity.user_id IN (';
  132. foreach($contacts as $contact) {
  133. $constrain .= $contact['contact_id'].',';
  134. }
  135. $constrain .= '-1)';
  136. }
  137. activity($constrain);
  138. ?>
  139. <?php require dirname(__FILE__).'/../include/visible_footer.php' ?>
  140. </body>
  141. </html>
  142. <?php endswitch; ?>