function cleanup() { serendipity_event_freetag::static_install(); }
function displayTagCloud($tag) { global $serendipity; $tags = $this->getTagCloudTags($tag); $serendipity['smarty']->assign('freetag_tagTitle', function_exists('serendipity_specialchars') ? serendipity_specialchars(is_array($this->displayTag) ? implode(' + ', $this->displayTag) : $this->displayTag) : htmlspecialchars(is_array($this->displayTag) ? implode(' + ', $this->displayTag) : $this->displayTag, ENT_COMPAT, LANG_CHARSET)); if (!empty($tags)) { $serendipity['smarty']->assign('freetag_hasTags', true); $min = $this->get_config('min_percent', 100); $max = $this->get_config('max_percent', 300); ob_start(); serendipity_event_freetag::displayTags($tags, false, false, true, $max, $min, serendipity_db_bool($this->get_config('use_flash')), serendipity_db_bool($this->get_config('flash_bg_trans', true)), $this->get_config('flash_tag_color', 'ff6600'), $this->get_config('flash_bg_color', 'ffffff'), $this->get_config('flash_width', 600), $this->get_config('flash_speed', 100), $this->get_config('taglink'), $this->get_config('template'), $this->get_config('xml_image', 'img/xml.gif')); $tagout = ob_get_contents(); ob_end_clean(); $serendipity['smarty']->assign('freetag_displayTags', $tagout); } else { $serendipity['smarty']->assign('freetag_hasTags', false); } $content = $this->parseTemplate('plugin_freetag.tpl'); echo $content; }
function wp_getTags($message) { global $serendipity; $val = $message->params[1]; $username = $val->getval(); $val = $message->params[2]; $password = $val->getval(); if (!serendipity_authenticate_author($username, $password)) { return new XML_RPC_Response('', XMLRPC_ERR_CODE_AUTHFAILED, XMLRPC_ERR_NAME_AUTHFAILED); } $xml_entries_vals = array(); if (class_exists('serendipity_event_freetag')) { $tags = serendipity_event_freetag::getAllTags(); $rsslink = $serendipity['baseURL'] . 'rss.php?serendipity%5Btag%5D='; // Find the plugins tag http path setting $q = "select value from {$serendipity['dbPrefix']}config WHERE name LIKE 'serendipity_plugin_freetag:%/taglink'"; $row = serendipity_db_query($q, true); if (is_array($row)) { $http_url = $row['value']; } else { $http_url = $serendipity['baseURL'] . ($serendipity['rewrite'] == 'none' ? $serendipity['indexFile'] . '?/' : '') . 'plugin/tag/'; } // copied default from plugin $tagid = 1; foreach ($tags as $tag => $count) { $values = array('tag_id' => new XML_RPC_Value(0, 'string'), 'name' => new XML_RPC_Value($tag, 'string'), 'count' => new XML_RPC_Value($count, 'string'), 'slug' => new XML_RPC_Value($tag, 'string'), 'html_url' => new XML_RPC_Value($http_url . $tag, 'string'), 'rss_url' => new XML_RPC_Value($rsslink . $tag, 'string')); $xml_entries_vals[] = new XML_RPC_Value($values, 'struct'); $tagid++; } } $xml_entries = new XML_RPC_Value($xml_entries_vals, 'array'); return new XML_RPC_Response($xml_entries); }
/** * @param string $event * @param serendipity_property_bag $bag * @param mixed $eventData * @param mixed $addData * @return bool */ function event_hook($event, &$bag, &$eventData, $addData = null) { global $serendipity; switch ($event) { case 'backend_publish': case 'backend_save': serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}entryproperties WHERE entryid = '" . $eventData['id'] . "' AND property LIKE 'ep_flattr%'"); foreach ($this->flattr_attrs as $attr => $attr_desc) { serendipity_db_query("INSERT INTO {$serendipity['dbPrefix']}entryproperties (entryid, value, property) VALUES ('" . $eventData['id'] . "', '" . serendipity_db_escape_string($serendipity['POST']['properties']['ep_' . $attr]) . "', 'ep_" . $attr . "')"); } return true; break; case 'backend_display': ?> <fieldset style="margin: 5px"> <legend><?php echo PLUGIN_FLATTR_NAME; ?> </legend> <?php foreach ($this->flattr_attrs as $attr => $attr_desc) { if (isset($serendipity['POST']['properties']['ep_' . $attr])) { $val = $serendipity['POST']['properties']['ep_' . $attr]; } elseif (isset($eventData['id'])) { $val = $eventData['properties']['ep_' . $attr]; } else { $val = ''; } echo '<label for="serendipity[properties][ep_' . $attr . ']" title="' . PLUGIN_FLATTR_NAME . '"> ' . $attr_desc . ':</label><br/>'; if ($attr == 'flattr_active' || $attr == 'flattr_lng' || $attr == 'flattr_cat') { echo '<select name="serendipity[properties][ep_' . $attr . ']" id="properties_' . $attr . '" class="input_select">'; if ($attr == 'flattr_lng') { $opt = $this->flattr_langs; echo '<option value=""></option>' . "\n"; } elseif ($attr == 'flattr_cat') { $opt = $this->flattr_cats; echo '<option value=""></option>' . "\n"; } elseif ($attr == 'flattr_active') { $opt = array('1' => YES, '-1' => NO); } foreach ($opt as $key => $kval) { echo '<option value="' . $key . '" ' . ((string) $val == (string) $key ? 'selected="selected"' : '') . '>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($kval) : htmlspecialchars($kval, ENT_COMPAT, LANG_CHARSET)) . '</option>' . "\n"; } echo '</select>'; } else { echo '<input type="text" name="serendipity[properties][ep_' . $attr . ']" id="properties_' . $attr . '" class="input_textbox" value="' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($val) : htmlspecialchars($val, ENT_COMPAT, LANG_CHARSET)) . '" style="width: 100%" />' . "\n"; } echo '<br />'; } ?> </fieldset> <?php return true; break; case 'frontend_header': $flattr_uid = substr($this->_addslashes($this->get_config('userid')), 0, 500); $flattr_btn = $this->_addslashes($this->get_config('flattr_btn')); $flattr_lng = substr($this->get_config('flattr_lng'), 0, 255); $flattr_cat = substr($this->get_config('flattr_cat'), 0, 255); ?> <script type="text/javascript"> /* <![CDATA[ */ (function() { var s = document.createElement('script'); var t = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true; s.src = 'https://api.flattr.com/js/0.6/load.js?mode=auto'; s.src += '&popout=<?php echo (int) $this->get_config('flattr_pop'); ?> '; s.src += '&uid=<?php echo $flattr_uid; ?> '; s.src += '&language=<?php echo $flattr_lng; ?> '; s.src += '&category=<?php echo $flattr_cat; ?> '; <?php if (in_array($flattr_btn, array('default', 'compact'))) { ?> s.src += '&button=<?php echo $flattr_btn; ?> '; <?php } ?> t.parentNode.insertBefore(s, t); })(); /* ]]> */ </script> <?php break; case 'frontend_display': if (empty($eventData['properties'])) { $eventData['properties'] =& serendipity_fetchEntryProperties($eventData['id']); } if ($eventData['properties']['ep_flattr_active'] == '-1') { return true; } if (empty($eventData['body']) && empty($eventData['extended'])) { return true; } $flattr_uid = $this->_addslashes($this->get_config('userid')); $flattr_tle = $this->_addslashes($eventData['title']); $flattr_pop = (int) $this->get_config('flattr_pop'); $flattr_dsc = $this->_addslashes($eventData['properties']['ep_flattr_dsc']); $flattr_cat = $this->_addslashes($eventData['properties']['ep_flattr_cat']); $flattr_lng = $this->_addslashes($eventData['properties']['ep_flattr_lng']); $flattr_tag = $this->_addslashes($eventData['properties']['ep_flattr_tag']); if (empty($flattr_dsc)) { $flattr_dsc = $this->_addslashes($eventData['body']); } $flattr_dsc = strip_tags($flattr_dsc); if (empty($flattr_cat)) { $flattr_cat = $this->get_config('flattr_cat'); } if (empty($flattr_lng)) { $flattr_lng = $this->get_config('flattr_lng'); } if (empty($flattr_tag) && class_exists('serendipity_event_freetag')) { $_tags = serendipity_event_freetag::getTagsForEntries(array($eventData['id'])); $tags = is_array($_tags) ? array_pop($_tags) : array(); $flattr_tag = implode(',', $tags); } $flattr_url = $this->_addslashes(serendipity_archiveURL($eventData['id'], $eventData['title'], 'baseURL', true, array('timestamp' => $eventData['timestamp']))); $flattr_btn = $this->_addslashes($this->get_config('flattr_btn')); $flattr_uid = substr($flattr_uid, 0, 500); $flattr_tle = substr($flattr_tle, 0, 500); $flattr_dsc = substr($flattr_dsc, 0, 1000); $flattr_cat = substr($flattr_cat, 0, 255); $flattr_lng = substr($flattr_lng, 0, 255); $flattr_tag = substr($flattr_tag, 0, 255); $flattr_url = substr($flattr_url, 0, 2048); $flattr_btn = substr($flattr_btn, 0, 255); if ($flattr_btn != 'default' && $flattr_btn != 'compact') { $flattr = "<a href=\"https://flattr.com/submit/auto?" . "user_id=" . urlencode($flattr_uid) . "&" . "url=" . urlencode($flattr_url) . "&" . "title=" . urlencode($flattr_tle) . "&" . "description=" . urlencode($flattr_dsc) . "&" . "category=" . urlencode($flattr_cat) . "&" . "popout=" . urlencode($flattr_pop) . "&" . "language=" . urlencode($flattr_lng) . "\">" . $flattr_btn . "</a>"; } else { $flattr_tle2 = stripslashes($flattr_tle2); $flattr_tle2 = function_exists('serendipity_specialchars') ? serendipity_specialchars($flattr_tle2) : htmlspecialchars($flattr_tle2, ENT_COMPAT, LANG_CHARSET); $flattr = "\r\n<a class='FlattrButton' style='display:none;'\r\n title=\"" . $flattr_tle2 . "\"\r\n data-flattr-uid='" . $flattr_uid . "'\r\n data-flattr-tags='" . $flattr_tag . "'\r\n data-flattr-category='" . $flattr_cat . "'\r\n data-flattr-language='" . $flattr_lng . "'\r\n href='" . $flattr_url . "'>\r\n\r\n " . stripslashes($flattr_dsc) . "\r\n</a>\r\n "; } $field = $this->get_config('placement'); if ($addData['from'] == 'functions_entries:updertEntry') { } elseif ($addData['from'] == 'functions_entries:printEntries_rss') { $entryText =& $this->getFieldReference($field, $eventData); $entryText .= function_exists('serendipity_specialchars') ? serendipity_specialchars($flattr) : htmlspecialchars($flattr, ENT_COMPAT, LANG_CHARSET); } else { $entryText =& $this->getFieldReference($field, $eventData); $entryText .= $flattr; } if ($field == 'extended') { $eventData['is_extended'] = true; } break; case 'frontend_display:rss-1.0:namespace': case 'frontend_display:rss-2.0:namespace': if ($this->get_config('add_to_feed')) { $eventData['display_dat'] .= ' xmlns:atom="http://www.w3.org/2005/Atom"'; } return true; break; case 'frontend_display:rss-1.0:per_entry': case 'frontend_display:rss-2.0:per_entry': if ($this->get_config('add_to_feed')) { $flattr_uid = $this->_addslashes($this->get_config('userid')); $flattr_uid = substr($flattr_uid, 0, 500); $flattr_url = $this->_addslashes(serendipity_archiveURL($eventData['id'], $eventData['title'], 'baseURL', true, array('timestamp' => $eventData['timestamp']))); $flattr_url = substr($flattr_url, 0, 2048); $eventData['display_dat'] .= ' <atom:link rel="payment" href="https://flattr.com/submit/auto?url=' . urlencode($flattr_url) . '&user_id=' . $flattr_uid . '" type="text/html" />'; } return true; break; case 'frontend_display:atom-1.0:per_entry': if ($this->get_config('add_to_feed')) { $flattr_uid = $this->_addslashes($this->get_config('userid')); $flattr_uid = substr($flattr_uid, 0, 500); $flattr_url = $this->_addslashes(serendipity_archiveURL($eventData['id'], $eventData['title'], 'baseURL', true, array('timestamp' => $eventData['timestamp']))); $flattr_url = substr($flattr_url, 0, 2048); $eventData['display_dat'] .= ' <link rel="payment" href="https://flattr.com/submit/auto?url=' . $flattr_url . '&user_id=' . $flattr_uid . '" type="text/html" />'; } return true; break; } }