+
+function common_disfavor_form($notice) {
+ common_element_start('form', array('id' => 'disfavor-' . $notice->id,
+ 'method' => 'post',
+ 'class' => 'disfavor',
+ 'action' => common_local_url('disfavor')));
+
+ common_element('input', array('type' => 'hidden',
+ 'name' => 'token-'. $notice->id,
+ 'id' => 'token-'. $notice->id,
+ 'class' => 'token',
+ 'value' => common_session_token()));
+
+ common_element('input', array('type' => 'hidden',
+ 'name' => 'notice',
+ 'id' => 'notice-n'. $notice->id,
+ 'class' => 'notice',
+ 'value' => $notice->id));
+
+ common_element('input', array('type' => 'submit',
+ 'id' => 'disfavor-submit-' . $notice->id,
+ 'name' => 'disfavor-submit-' . $notice->id,
+ 'class' => 'disfavor',
+ 'value' => 'Disfavor favorite',
+ 'title' => 'Remove this message from favorites'));
+ common_element_end('form');
+}
+
+function common_favor_form($notice) {
+ common_element_start('form', array('id' => 'favor-' . $notice->id,
+ 'method' => 'post',
+ 'class' => 'favor',
+ 'action' => common_local_url('favor')));
+
+ common_element('input', array('type' => 'hidden',
+ 'name' => 'token-'. $notice->id,
+ 'id' => 'token-'. $notice->id,
+ 'class' => 'token',
+ 'value' => common_session_token()));
+
+ common_element('input', array('type' => 'hidden',
+ 'name' => 'notice',
+ 'id' => 'notice-n'. $notice->id,
+ 'class' => 'notice',
+ 'value' => $notice->id));
+
+ common_element('input', array('type' => 'submit',
+ 'id' => 'favor-submit-' . $notice->id,
+ 'name' => 'favor-submit-' . $notice->id,
+ 'class' => 'favor',
+ 'value' => 'Add to favorites',
+ 'title' => 'Add this message to favorites'));
+ common_element_end('form');
+}
+
+function common_nudge_form($profile) {
+ common_element_start('form', array('id' => 'nudge', 'method' => 'post',
+ 'action' => common_local_url('nudge', array('nickname' => $profile->nickname))));
+ common_hidden('token', common_session_token());
+ common_element('input', array('type' => 'submit',
+ 'class' => 'submit',
+ 'value' => _('Send a nudge')));
+ common_element_end('form');
+}
+
+function common_subscribe_response() {
+ common_element('p', array('id' => 'subscribe_response'), _('Subscribed'));
+}
+
+function common_unsubscribe_response() {
+ common_element('p', array('id' => 'unsubscribe_response'), _('Unsubscribed'));
+}
+
+function common_nudge_response() {
+ common_element('p', array('id' => 'nudge_response'), _('Nudge sent!'));
+}
+
+function common_cache_key($extra) {
+ return 'laconica:' . common_keyize(common_config('site', 'name')) . ':' . $extra;
+}
+
+function common_keyize($str) {
+ $str = strtolower($str);
+ $str = preg_replace('/\s/', '_', $str);
+ return $str;
+}
+
+function common_message_form($content, $user, $to) {
+
+ common_element_start('form', array('id' => 'message_form',
+ 'method' => 'post',
+ 'action' => common_local_url('newmessage')));
+
+ $mutual_users = $user->mutuallySubscribedUsers();
+
+ $mutual = array();
+
+ while ($mutual_users->fetch()) {
+ if ($mutual_users->id != $user->id) {
+ $mutual[$mutual_users->id] = $mutual_users->nickname;
+ }
+ }
+
+ $mutual_users->free();
+ unset($mutual_users);
+
+ common_dropdown('to', _('To'), $mutual, NULL, FALSE, $to->id);
+
+ common_element_start('p');
+
+ common_element('textarea', array('id' => 'message_content',
+ 'cols' => 60,
+ 'rows' => 3,
+ 'name' => 'content'),
+ ($content) ? $content : '');
+
+ common_element('input', array('id' => 'message_send',
+ 'name' => 'message_send',
+ 'type' => 'submit',
+ 'value' => _('Send')));
+
+ common_hidden('token', common_session_token());
+
+ common_element_end('p');
+ common_element_end('form');
+}
+
+function common_memcache() {
+ static $cache = NULL;
+ if (!common_config('memcached', 'enabled')) {
+ return NULL;
+ } else {
+ if (!$cache) {
+ $cache = new Memcache();
+ $servers = common_config('memcached', 'server');
+ if (is_array($servers)) {
+ foreach($servers as $server) {
+ $cache->addServer($server);
+ }
+ } else {
+ $cache->addServer($servers);
+ }
+ }
+ return $cache;
+ }
+}