本文整理汇总了PHP中serendipity_specialchars函数的典型用法代码示例。如果您正苦于以下问题:PHP serendipity_specialchars函数的具体用法?PHP serendipity_specialchars怎么用?PHP serendipity_specialchars使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了serendipity_specialchars函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: showSearch
function showSearch()
{
global $serendipity;
$this->setupDB();
$term = serendipity_db_escape_string($serendipity['GET']['searchTerm']);
if ($serendipity['dbType'] == 'postgres') {
$group = '';
$distinct = 'DISTINCT';
$find_part = "(c.title ILIKE '%{$term}%' OR c.body ILIKE '%{$term}%')";
} elseif ($serendipity['dbType'] == 'sqlite') {
$group = 'GROUP BY id';
$distinct = '';
$term = serendipity_mb('strtolower', $term);
$find_part = "(lower(c.title) LIKE '%{$term}%' OR lower(c.body) LIKE '%{$term}%')";
} else {
$group = 'GROUP BY id';
$distinct = '';
$term = str_replace('"', '"', $term);
if (preg_match('@["\\+\\-\\*~<>\\(\\)]+@', $term)) {
$find_part = "MATCH(c.title,c.body) AGAINST('{$term}' IN BOOLEAN MODE)";
} else {
$find_part = "MATCH(c.title,c.body) AGAINST('{$term}')";
}
}
$querystring = "SELECT c.title AS ctitle, c.body, c.author, c.entry_id, c.timestamp AS ctimestamp, c.url, c.type,\n e.id, e.title, e.timestamp\n FROM {$serendipity['dbPrefix']}comments AS c\n LEFT OUTER JOIN {$serendipity['dbPrefix']}entries AS e\n ON e.id = c.entry_id\n WHERE c.status = 'approved'\n AND {$find_part}\n {$group}\n ORDER BY c.timestamp DESC";
$results = serendipity_db_query($querystring, false, 'assoc');
if (!is_array($results)) {
if ($results !== 1 && $results !== true) {
echo function_exists('serendipity_specialchars') ? serendipity_specialchars($results) : htmlspecialchars($results, ENT_COMPAT, LANG_CHARSET);
}
$results = array();
}
$myAddData = array("from" => "serendipity_plugin_commentsearch:generate_content");
foreach ($results as $idx => $result) {
$results[$idx]['permalink'] = serendipity_archiveURL($result['id'], $result['title'], 'baseURL', true, $result);
$results[$idx]['comment'] = $result['body'];
//(function_exists('serendipity_specialchars') ? serendipity_specialchars(strip_tags($result['body'])) : htmlspecialchars(strip_tags($result['body']), ENT_COMPAT, LANG_CHARSET));
serendipity_plugin_api::hook_event('frontend_display', $results[$idx], $myAddData);
// let the template decide, if we want to have tags or not
$results[$idx]['commenthtml'] = $results[$idx]['comment'];
$results[$idx]['comment'] = strip_tags($results[$idx]['comment']);
}
$serendipity['smarty']->assign(array('comment_searchresults' => count($results), 'comment_results' => $results));
$filename = 'plugin_commentsearch_searchresults.tpl';
$tfile = serendipity_getTemplateFile($filename, 'serendipityPath');
if (!$tfile) {
$tfile = dirname(__FILE__) . '/' . $filename;
}
$inclusion = $serendipity['smarty']->security_settings[INCLUDE_ANY];
$serendipity['smarty']->security_settings[INCLUDE_ANY] = true;
$content = $serendipity['smarty']->fetch('file:' . $tfile);
$serendipity['smarty']->security_settings[INCLUDE_ANY] = $inclusion;
echo $content;
}
示例2: displayUserList
function displayUserList()
{
global $serendipity;
$userlist = serendipity_fetchUsers();
$content = "";
foreach ($userlist as $user) {
if (function_exists('serendipity_authorURL')) {
$entryLink = serendipity_authorURL($user);
} else {
$entryLink = serendipity_rewriteURL(PATH_AUTHORS . '/' . serendipity_makePermalink(PERM_AUTHORS, array('id' => $user['authorid'], 'title' => $user['realname'])));
}
$content .= sprintf("<a href=\"%s\" title=\"%s\">%s</a><br />\n", $entryLink, function_exists('serendipity_specialchars') ? serendipity_specialchars($user['realname']) : htmlspecialchars($user['realname'], ENT_COMPAT, LANG_CHARSET), function_exists('serendipity_specialchars') ? serendipity_specialchars($user['realname']) : htmlspecialchars($user['realname'], ENT_COMPAT, LANG_CHARSET));
}
return $content;
}
示例3: example
function example()
{
global $serendipity;
$s = '';
$s .= '<br /><div style="border: 1px solid red; padding: 5px;">' . PLUGIN_EVENT_CRONJOB_DETAILS . '</div>';
$s .= '<br /><fieldset><legend>' . PLUGIN_EVENT_CRONJOB_LOG . '</legend><table cellspacing=1 cellpadding=2>';
$s .= '<tr><th>' . DATE . '</th><th>' . TYPE . '</th><th>' . DESCRIPTION . '</th></tr>';
$res = serendipity_db_query("SELECT timestamp, type, reason FROM {$serendipity['dbPrefix']}cronjoblog ORDER BY timestamp DESC");
if (is_array($res)) {
foreach ($res as $row) {
$s .= '<tr><td>' . date('d.m.Y H:i', $row['timestamp']) . '</td><td>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($row['type']) : htmlspecialchars($row['type'], ENT_COMPAT, LANG_CHARSET)) . '</td><td>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($row['reason']) : htmlspecialchars($row['reason'], ENT_COMPAT, LANG_CHARSET)) . '</td></tr>' . "\n";
}
}
$s .= '</table></fieldset>';
return $s;
}
示例4: generate_content
function generate_content(&$title)
{
global $serendipity;
$title = $this->get_config('title', $this->title);
$timespan = $this->get_config('timespan', 30);
$type = $this->get_config('type', 'IMDB');
$q = "SELECT ep.entryid AS id, e.title, e.timestamp, ep.value as rating\n\n\t\t\t\t FROM {$serendipity['dbPrefix']}entryproperties AS ep\n\t\t\t\t JOIN {$serendipity['dbPrefix']}entries AS e\n\t\t\t\t ON e.id = ep.entryid\n\n\t\t\t\t WHERE ep.property = 'cr_{$type}_rating'\n\t\t\t\t AND e.timestamp > " . (time() - 86700 * (int) $timespan) . "\n\t\t\t\t ORDER BY ep.value DESC\n\t\t\t\t LIMIT 5";
$rows = serendipity_db_query($q);
if (!is_array($rows)) {
echo "No movies during the last {$timespan} days! Maybe I dropped dead.";
}
echo '<ol class="movie {$type}">';
foreach ($rows as $row) {
$url = serendipity_archiveURL($row['id'], $row['title'], 'serendipityHTTPPath', true, array('timestamp' => $row['timestamp']));
echo '<li><a href="' . $url . '">' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($row['title']) : htmlspecialchars($row['title'], ENT_COMPAT, LANG_CHARSET)) . '</a> (' . $row['rating'] . ')</li>';
}
echo '</ol>';
}
示例5: showResults
function showResults()
{
$sorted = array();
foreach ((array) $this->poll['options'] as $option) {
$sorted[$option['title']] = $option['votes'];
}
asort($sorted);
foreach ($sorted as $title => $votes) {
echo (function_exists('serendipity_specialchars') ? serendipity_specialchars($title) : htmlspecialchars($title, ENT_COMPAT, LANG_CHARSET)) . '<br />';
if ($this->poll['votes'] > 0) {
$total = ceil($votes / $this->poll['votes'] * 100);
} else {
$total = 0;
}
echo '<div class="pollvote" style="text-align: right">' . $total . '%, ' . $votes . ' ' . PLUGIN_POLL_VOTES . '</div>';
}
printf('<div class="polltotal">' . PLUGIN_POLLBOX_TOTALVOTES . '</div>', $this->poll['votes']);
}
示例6: generate_content
function generate_content(&$title)
{
global $serendipity;
$title = $this->get_config('title', $this->title);
$url = serendipity_currentURL(true);
echo '<form id="language_chooser" action="' . $url . '" method="post"><div>';
echo '<select style="font-size: ' . $this->get_config('size', '9') . 'px" name="user_language" onchange="document.getElementById(\'language_chooser\').submit();">';
// echo '<option value=""> </option>'."\n";
foreach ($serendipity['languages'] as $lang_key => $language) {
if (serendipity_db_bool($this->get_config($lang_key, 'false'))) {
echo '<option value="' . $lang_key . '" ' . ($serendipity['lang'] == $lang_key ? 'selected="selected"' : '') . '>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($language) : htmlspecialchars($language, ENT_COMPAT, LANG_CHARSET)) . '</option>';
}
}
echo '</select>';
if (serendipity_db_bool($this->get_config('show_submit', 'false'))) {
echo '<input type="submit" name="submit" value="' . GO . '" size="4" />';
}
echo '</div></form>';
}
示例7: event_hook
function event_hook($event, &$bag, &$eventData, $addData = null)
{
global $serendipity;
$hooks =& $bag->get('event_hooks');
if (isset($hooks[$event])) {
switch ($event) {
case 'frontend_header':
$lat = $this->get_config('lat');
$long = $this->get_config('long');
print "\n" . ' <meta name="ICBM" content="' . $lat . ', ' . $long . '" />' . "\n";
print ' <meta name="geo.position" content="' . $lat . ';' . $long . '" />' . "\n";
print ' <meta name="DC.title" content="' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($serendipity['blogTitle']) : htmlspecialchars($serendipity['blogTitle'], ENT_COMPAT, LANG_CHARSET)) . '" />' . "\n";
return true;
break;
default:
return false;
}
} else {
return false;
}
}
示例8: generate_content
function generate_content(&$title)
{
global $serendipity;
$title = $this->get_config('title', $this->title);
$sort = $this->get_config('sort_order');
if ($sort == 'none') {
$sort = '';
} else {
$sort .= ' ' . $this->get_config('sort_method');
}
$is_count = serendipity_db_bool($this->get_config('showartcount'));
$mincount = (int) $this->get_config('mincount');
$authors = serendipity_fetchUsers(null, 'hidden', $is_count);
$html = '';
$image = $this->get_config('image', serendipity_getTemplateFile('img/xml.gif'));
$image = $image == "'none'" || $image == 'none' ? '' : $image;
$html .= '<ul class="plainList">' . "\n";
if (is_array($authors) && count($authors)) {
foreach ($authors as $auth) {
if ($is_count) {
if ($auth['artcount'] < $mincount) {
continue;
}
$entrycount = " ({$auth['artcount']})";
} else {
$entrycount = "";
}
$html .= '<li>';
if (!empty($image)) {
$html .= '<a class="serendipity_xml_icon" href="' . serendipity_feedAuthorURL($auth, 'serendipityHTTPPath') . '"><img src="' . $image . '" alt="XML" style="border: 0px" /></a> ';
}
$html .= '<a href="' . serendipity_authorURL($auth, 'serendipityHTTPPath') . '" title="' . serendipity_specialchars($auth['realname']) . '">' . serendipity_specialchars($auth['realname']) . $entrycount . '</a>';
$html .= '</li>' . "\n";
}
}
$html .= '</ul>' . "\n";
$html .= sprintf('<div><a href="%s" title="%s">%s</a></div>', $serendipity['serendipityHTTPPath'] . $serendipity['indexFile'], ALL_AUTHORS, ALL_AUTHORS);
print $html;
}
示例9: event_hook
function event_hook($event, &$bag, &$eventData, $addData = null)
{
global $serendipity;
$hooks =& $bag->get('event_hooks');
if (isset($hooks[$event])) {
switch ($event) {
case 'frontend_display':
if (isset($eventData['comment']) && !empty($eventData['body'])) {
$eventData['comment'] = function_exists('serendipity_specialchars') ? serendipity_specialchars($eventData['body']) : htmlspecialchars($eventData['body'], ENT_COMPAT, LANG_CHARSET);
}
return true;
break;
case 'frontend_comment':
echo '<div class="serendipity_commentDirection serendipity_comment_unstrip_tags">' . PLUGIN_EVENT_UNSTRIP_TRANSFORM . '</div>';
return true;
break;
default:
return false;
}
} else {
return false;
}
}
示例10: import
function import()
{
global $serendipity;
// Save this so we can return it to its original value at the end of this method.
$noautodiscovery = isset($serendipity['noautodiscovery']) ? $serendipity['noautodiscovery'] : false;
if ($this->data['autodiscovery'] == 'false') {
$serendipity['noautodiscovery'] = 1;
}
$this->getTransTable();
$this->data['prefix'] = serendipity_db_escape_string($this->data['prefix']);
$users = array();
$categories = array();
$entries = array();
if (!extension_loaded('mysqli')) {
return MYSQL_REQUIRED;
}
$pmdb = @mysqli_connect($this->data['host'], $this->data['user'], $this->data['pass']);
if (!$pmdb || mysqli_connect_error()) {
return sprintf(COULDNT_CONNECT, serendipity_specialchars($this->data['host']));
}
if (!@mysqli_select_db($pmdb, $this->data['name'])) {
return sprintf(COULDNT_SELECT_DB, mysqli_error($pmdb));
}
/* Users */
$res = @$this->nativeQuery("SELECT id AS ID,\n username AS user_login,\n `password` AS user_pass,\n email AS user_email,\n status AS user_level,\n url AS url\n FROM {$this->data['prefix']}members", $pmdb);
if (!$res) {
return sprintf(COULDNT_SELECT_USER_INFO, mysqli_error($pmdb));
}
for ($x = 0, $max_x = mysqli_num_rows($res); $x < $max_x; $x++) {
$users[$x] = mysqli_fetch_assoc($res);
$data = array('right_publish' => $users[$x]['user_level'] >= 3 ? 1 : 0, 'realname' => $users[$x]['user_login'], 'username' => $users[$x]['user_login'], 'email' => $users[$x]['user_email'], 'password' => $users[$x]['user_pass']);
// pMachine uses md5, too.
if ($users[$x]['user_level'] < 12) {
$data['userlevel'] = USERLEVEL_EDITOR;
} else {
$data['userlevel'] = USERLEVEL_ADMIN;
}
if ($serendipity['serendipityUserlevel'] < $data['userlevel']) {
$data['userlevel'] = $serendipity['serendipityUserlevel'];
}
serendipity_db_insert('authors', $this->strtrRecursive($data));
$users[$x]['authorid'] = serendipity_db_insert_id('authors', 'authorid');
}
/* Categories */
$res = @$this->nativeQuery("SELECT id AS cat_ID,\n category AS cat_name,\n category AS category_description\n FROM {$this->data['prefix']}categories ORDER BY id", $pmdb);
if (!$res) {
return sprintf(COULDNT_SELECT_CATEGORY_INFO, mysqli_error($pmdb));
}
// Get all the info we need
for ($x = 0, $max_x = mysqli_num_rows($res); $x < $max_x; $x++) {
$categories[] = mysqli_fetch_assoc($res);
}
// Insert all categories as top level (we need to know everyone's ID before we can represent the hierarchy).
for ($x = 0, $max_x = sizeof($categories); $x < $max_x; $x++) {
$cat = array('category_name' => $categories[$x]['cat_name'], 'category_description' => $categories[$x]['category_description'], 'parentid' => 0, 'category_left' => 0, 'category_right' => 0);
serendipity_db_insert('category', $this->strtrRecursive($cat));
$categories[$x]['categoryid'] = serendipity_db_insert_id('category', 'categoryid');
}
serendipity_rebuildCategoryTree();
/* Entries */
$res = @$this->nativeQuery("SELECT * FROM {$this->data['prefix']}weblog ORDER BY t_stamp;", $pmdb);
if (!$res) {
return sprintf(COULDNT_SELECT_ENTRY_INFO, mysqli_error($pmdb));
}
for ($x = 0, $max_x = mysqli_num_rows($res); $x < $max_x; $x++) {
$entries[$x] = mysqli_fetch_assoc($res);
$entry = array('title' => $this->decode($entries[$x]['title']), 'isdraft' => $entries[$x]['status'] == 'open' ? 'false' : 'true', 'allow_comments' => $entries[$x]['showcomments'] == '1' ? 'true' : 'false', 'timestamp' => $entries[$x]['t_stamp'], 'extended' => $this->strtr($entries[$x]['more']), 'body' => $this->strtr($entries[$x]['body']));
$entry['authorid'] = '';
$entry['author'] = '';
foreach ($users as $user) {
if ($user['ID'] == $entries[$x]['member_id']) {
$entry['authorid'] = $user['authorid'];
$entry['author'] = $user['username'];
break;
}
}
if (!is_int($entries[$x]['entryid'] = serendipity_updertEntry($entry))) {
return $entries[$x]['entryid'];
}
/* Entry/category */
foreach ($categories as $category) {
if ($category['cat_ID'] == $entries[$x]['category']) {
$data = array('entryid' => $entries[$x]['entryid'], 'categoryid' => $category['categoryid']);
serendipity_db_insert('entrycat', $this->strtrRecursive($data));
break;
}
}
}
/* Comments */
$res = @$this->nativeQuery("SELECT * FROM {$this->data['prefix']}comments;", $pmdb);
if (!$res) {
return sprintf(COULDNT_SELECT_COMMENT_INFO, mysqli_error($pmdb));
}
while ($a = mysqli_fetch_assoc($res)) {
foreach ($entries as $entry) {
if ($entry['post_id'] == $a['post_id']) {
$author = '';
$mail = '';
$url = '';
if (!empty($a['member_id'])) {
//.........这里部分代码省略.........
示例11: generate_content
function generate_content(&$title)
{
global $serendipity;
$number = $this->get_config('number');
$dateformat = $this->get_config('dateformat');
$category = $this->get_config('category', 'none');
$show_where = $this->get_config('show_where', 'both');
if ($show_where == 'extended' && (!isset($serendipity['GET']['id']) || !is_numeric($serendipity['GET']['id']))) {
return false;
} else {
if ($show_where == 'overview' && isset($serendipity['GET']['id']) && is_numeric($serendipity['GET']['id'])) {
return false;
}
}
if ($category == '_cur') {
$category = $serendipity['GET']['category'];
if (empty($category) && !empty($serendipity['GET']['id'])) {
$entry = serendipity_fetchEntry('id', $serendipity['GET']['id']);
$category = $entry['categories'][0]['categoryid'];
}
}
$title = $this->get_config('title', $this->title);
$number_from_sw = $this->get_config('number_from');
$randomize = $this->get_config('randomize') == "yes" ? true : false;
$sql_condition = array();
$sql_condition['joins'] = '';
$sql_condition['and'] = '';
if ($category != 'none' && !empty($category)) {
$sql_categories = array();
if (is_numeric($category)) {
$sql_categories[] = $category;
} else {
$sql_categories = explode('^', $category);
}
$category_parts = array();
foreach ($sql_categories as $sql_category) {
$category_parts[] = "\n" . implode(' AND ', serendipity_fetchCategoryRange($sql_category));
}
$sql_condition['and'] .= ' AND (c.category_left BETWEEN ' . implode(' OR c.category_left BETWEEN ', $category_parts) . ')';
}
if (!$number || !is_numeric($number) || $number < 1) {
$number = 10;
}
$sql_number = serendipity_db_limit_sql($number);
$db = $serendipity['dbType'];
switch ($number_from_sw) {
case 'skip':
$sql_number = serendipity_db_limit_sql(serendipity_db_limit($serendipity['fetchLimit'], $number));
break;
}
if (!$dateformat || strlen($dateformat) < 1) {
$dateformat = '%A, %B %e %Y';
}
if ($randomize) {
if ($db == 'mysql' || $db == 'mysqli') {
$sql_order = "ORDER BY RAND()";
} else {
// SQLite and PostgreSQL support this, hooray.
$sql_order = "ORDER BY RANDOM()";
}
} else {
$sql_order = "ORDER BY timestamp DESC ";
}
$sql_condition['and'] .= "AND timestamp <= " . time();
serendipity_ACL_SQL($sql_condition, $category == 'none');
if (!stristr($sql_condition['joins'], $serendipity['dbPrefix'] . 'category')) {
$sql_condition['joins'] = ' LEFT OUTER JOIN ' . $serendipity['dbPrefix'] . 'category AS c ON ec.categoryid = c.categoryid ' . $sql_condition['joins'];
}
if (!stristr($sql_condition['joins'], $serendipity['dbPrefix'] . 'entrycat')) {
$sql_condition['joins'] = ' LEFT OUTER JOIN ' . $serendipity['dbPrefix'] . 'entrycat AS ec ON id = ec.entryid ' . $sql_condition['joins'];
}
$entries_query = "SELECT DISTINCT id,\n title,\n timestamp,\n epm.value AS multilingual_title\n FROM {$serendipity['dbPrefix']}entries AS e\n {$sql_condition['joins']}\n\n LEFT OUTER JOIN {$serendipity['dbPrefix']}entryproperties AS epm\n ON (epm.entryid = e.id AND epm.property = 'multilingual_title_" . $serendipity['lang'] . "')\n\n WHERE isdraft = 'false' {$sql_condition['and']}\n {$sql_order}\n {$sql_number}";
$entries = serendipity_db_query($entries_query);
if (is_string($entries)) {
echo $entries . "<br />\n";
echo $entries_query . "<br />\n";
}
if (isset($entries) && is_array($entries)) {
echo '<dl>' . "\n";
foreach ($entries as $k => $entry) {
if (!empty($entry['multilingual_title'])) {
$entry['title'] = $entry['multilingual_title'];
}
$entryLink = serendipity_archiveURL($entry['id'], $entry['title'], 'serendipityHTTPPath', true, array('timestamp' => $entry['timestamp']));
if (empty($entry['title'])) {
$entry['title'] = '#' . $entry['id'];
}
echo '<dt class="serendipity_recententries_entrylink"><a href="' . $entryLink . '" title="' . serendipity_specialchars($entry['title']) . '">' . serendipity_specialchars($entry['title']) . '</a></dt>' . "\n" . '<dd class="serendipity_recententries_entrydate serendipitySideBarDate">' . serendipity_specialchars(serendipity_strftime($dateformat, $entry['timestamp'])) . '</dd>' . "\n";
}
echo '</dl>' . "\n\n";
}
}
示例12: printAvatarHtml
/**
* Returns HTML displaying the user avatar. This is done without any call to external servers.
* If a cached avatar is found, the image will have it as SRC, else the SRC will be filled with
* an external_plugin call, that will try to fetch a fresh avatar later.
*/
function printAvatarHtml(&$eventData, &$addData)
{
global $serendipity;
$useSmarty = serendipity_db_bool($this->get_config('smartyimage', 'false'));
// comments sidebar plugin doesn't support smarty, so switch it off, if detected
if ($addData['from'] == 'serendipity_plugin_comments:generate_content') {
if (!serendipity_db_bool($this->get_config('recent_entries', 'true'))) {
return false;
}
$useSmarty = false;
}
if (empty($eventData['url']) && empty($eventData['email']) && empty($eventData['author']) && !$this->supportDefaultAvatar()) {
$this->log("No url nor email handed and default avatar not supported!");
return false;
}
if (!empty($eventData['url']) && !preg_match('@^https*://@i', $eventData['url'])) {
$this->log("Changed wrong url: {$eventData['url']}");
$eventData['url'] = 'http://' . $eventData['url'];
}
$url = '';
if (!empty($eventData['url'])) {
$url = $eventData['url'];
}
if (!empty($eventData['url'])) {
// Strip Query params
$urlparts = explode('?', $eventData['url']);
$url = $urlparts[0];
}
$title = '';
$author = 'unknown';
if (isset($eventData['author'])) {
$author = function_exists('serendipity_specialchars') ? serendipity_specialchars($eventData['author']) : htmlspecialchars($eventData['author'], ENT_COMPAT, LANG_CHARSET);
$title = $author;
}
if (isset($eventData['email']) && !empty($eventData['email'])) {
$email_md5 = md5(strtolower($eventData['email']));
} else {
$email_md5 = '';
}
if ($this->cache_seconds > 0) {
$cache_file = $this->getCacheFilePath($eventData);
// if no cache filename was generated, no usable user data was found.
// this meens: it won't be possible to generate any image, so break at this point.
if (!isset($cache_file)) {
return false;
}
$this->log("comment print: " . print_r($eventData, true));
// If there is a cache file that's new enough, return the image immidiatly
if (file_exists($cache_file) && time() - filemtime($cache_file) < $this->cache_seconds) {
$url = $serendipity['baseURL'] . $serendipity['indexFile'] . '?/' . $this->getPermaPluginPath() . '/cachedAvatar_' . md5($url) . '_' . $email_md5 . '_' . md5($author);
} else {
// no image cached yet, call external plugin hook for fetching a new one
$url = $serendipity['baseURL'] . $serendipity['indexFile'] . '?/' . $this->getPermaPluginPath() . '/fetchAvatar_' . $this->urlencode($url) . '_' . $email_md5 . '_' . $this->urlencode($author) . '_' . $eventData['id'];
}
} else {
// call external plugin hook for fetching a new one
$url = $serendipity['baseURL'] . $serendipity['indexFile'] . '?/' . $this->getPermaPluginPath() . '/fetchAvatar_' . $this->urlencode($url) . '_' . $email_md5 . '_' . $this->urlencode($author) . '_' . $eventData['id'];
}
$image_html = $this->generateImageHtml($url, $title, $this->get_config('align', 'right'), !$useSmarty, $this->generateAvatarCssClass($addData));
if ($useSmarty) {
$eventData['avatar'] = $image_html;
} else {
$eventData['comment'] = $image_html . $eventData['comment'];
}
return true;
}
示例13: serendipity_die
}
if (preg_match('@/(serendipity_editor\\.js$)@', $_SERVER['REQUEST_URI'], $matches)) {
return 1;
}
serendipity_die(sprintf(SERENDIPITY_NEEDS_UPGRADE, $serendipity['versionInstalled'], $serendipity['version'], $serendipity['serendipityHTTPPath'] . 'serendipity_admin.php'));
}
// We don't care who tells us what to do
if (!isset($serendipity['GET']['action'])) {
$serendipity['GET']['action'] = isset($serendipity['POST']['action']) ? $serendipity['POST']['action'] : '';
}
if (!isset($serendipity['GET']['adminAction'])) {
$serendipity['GET']['adminAction'] = isset($serendipity['POST']['adminAction']) ? $serendipity['POST']['adminAction'] : '';
}
// Make sure this variable is always properly sanitized. Previously in compat.inc.php, but there LANG_CHARSET was not defined.
if (isset($serendipity['GET']['searchTerm'])) {
$serendipity['GET']['searchTerm'] = serendipity_specialchars(strip_tags($serendipity['GET']['searchTerm']));
}
// Some stuff...
if (!isset($_SESSION['serendipityAuthedUser'])) {
$_SESSION['serendipityAuthedUser'] = false;
}
if (isset($_SESSION['serendipityUser'])) {
$serendipity['user'] = $_SESSION['serendipityUser'];
}
if (isset($_SESSION['serendipityEmail'])) {
$serendipity['email'] = $_SESSION['serendipityEmail'];
}
if (defined('IN_serendipity_admin') && !isset($serendipity['use_autosave'])) {
$serendipity['use_autosave'] = true;
}
if (!isset($serendipity['use_internal_cache'])) {
示例14: generate_content
function generate_content(&$title)
{
global $serendipity;
$title = $this->get_config('title');
$url = $this->get_config('searchenginelink');
$formatstring = $this->get_config('formatstring');
$quotes = $this->get_config('quotes');
$newwindow = $this->get_config('newwindow');
$numquotes = (int) $this->get_config('numquotes');
$quotes = explode("\n", $quotes);
$i = 0;
$quotes_array = array();
if ($newwindow) {
$onclick = ' onclick="window.open(this.href); return false;"';
}
foreach ($quotes as $quote) {
if (trim($quote) != '') {
$exp = explode('|', $quote);
if (count($exp) > 0 && trim($exp[0]) != '') {
$quotes_array[$i]['quote'] = function_exists('serendipity_specialchars') ? serendipity_specialchars(trim($exp[0])) : htmlspecialchars(trim($exp[0]), ENT_COMPAT, LANG_CHARSET);
$quotes_array[$i]['author'] = trim($exp[1]);
if (count($exp) > 2) {
$quotes_array[$i]['link'] = trim($exp[2]);
}
$i++;
}
}
}
if ($numquotes > sizeof($quotes_array) || $numquotes == 0) {
$numquotes = sizeof($quotes_array);
}
if ($numquotes == 1) {
// Single key will be returned; we need an array!
$keys = array(array_rand($quotes_array, $numquotes));
} else {
$keys = array_rand($quotes_array, $numquotes);
}
foreach ($keys as $key) {
$item = $quotes_array[$key];
if (trim($item['link']) == '') {
if (trim($url) != '') {
$item['author'] = '<a href="' . str_replace('%QUERY%', urlencode($item['author']), $url) . '"' . $onclick . '>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($item['author']) : htmlspecialchars($item['author'], ENT_COMPAT, LANG_CHARSET)) . '</a>' . "\n";
}
} elseif (trim($item['link']) != 'none') {
$item['author'] = '<a href="' . $item['link'] . '"' . $onclick . '>' . (function_exists('serendipity_specialchars') ? serendipity_specialchars($item['author']) : htmlspecialchars($item['author'], ENT_COMPAT, LANG_CHARSET)) . '</a>' . "\n";
} else {
$item['author'] = function_exists('serendipity_specialchars') ? serendipity_specialchars($item['author']) : htmlspecialchars($item['author'], ENT_COMPAT, LANG_CHARSET);
}
echo str_replace(array('%QUOTE%', '%AUTHOR%'), array($item['quote'], $item['author']), $formatstring);
}
}
示例15: event_hook
//.........这里部分代码省略.........
break;
}
$file = basename($eventData);
$directory = str_replace($serendipity['serendipityPath'] . $serendipity['uploadPath'], '', dirname($eventData) . '/');
$size = (int) $serendipity['POST']['quickblog']['size'];
// check default Serendipity thumbSize, to make this happen like standard image uploads, and to get one "fullsize" image instance only,
// else create another quickblog image "resized" instance, to use as entries thumbnail image
if ($serendipity['thumbSize'] != $size) {
$oldSuffix = $serendipity['thumbSuffix'];
$serendipity['thumbSuffix'] = 'quickblog';
serendipity_makeThumbnail($file, $directory, $size);
$serendipity['thumbSuffix'] = $oldSuffix;
}
// Non-image object link generation
if ($serendipity['POST']['quickblog']['isobject'] == YES) {
$objfile = serendipity_parseFileName($file);
$filename = $objfile[0];
$suffix = $objfile[1];
$obj_mime = serendipity_guessMime($suffix);
$objpath = $serendipity['serendipityHTTPPath'] . $serendipity['uploadPath'] . $directory . $filename . '.' . $suffix;
// try to know about a working environment for imagemagicks pdf preview generation
if ($serendipity['magick'] === true && strtolower($suffix) == 'pdf' && $serendipity['thumbSize'] == $size) {
$objpreview = $serendipity['serendipityHTTPPath'] . $serendipity['uploadPath'] . $directory . $filename . '.' . $serendipity['thumbSuffix'] . '.' . $suffix . '.png';
} else {
$objpreview = serendipity_getTemplateFile('admin/img/mime_' . preg_replace('@[^0-9a-z_\\-]@i', '-', $obj_mime) . '.png');
}
if (!$objpreview || empty($objpreview)) {
$objpreview = serendipity_getTemplateFile('admin/img/mime_unknown.png');
}
}
// New draft post
$entry = array();
$entry['isdraft'] = 'false';
$entry['title'] = function_exists('serendipity_specialchars') ? serendipity_specialchars($serendipity['POST']['quickblog']['title']) : htmlspecialchars($serendipity['POST']['quickblog']['title'], ENT_COMPAT, LANG_CHARSET);
if (isset($objpath) && !empty($objpath)) {
$entry['body'] = '<a href="' . $objpath . '"><img alt="" class="serendipity_image_left serendipity_quickblog_image" src="' . $objpreview . '">' . $filename . '</a> (-' . $obj_mime . '-)<p>' . $serendipity['POST']['quickblog']['body'] . '</p>';
} else {
$entry['body'] = '<!--quickblog:' . $serendipity['POST']['quickblog']['target'] . '|' . $eventData . '-->' . $serendipity['POST']['quickblog']['body'];
}
$entry['authorid'] = $serendipity['authorid'];
$entry['exflag'] = false;
$entry['categories'][0] = function_exists('serendipity_specialchars') ? serendipity_specialchars($serendipity['POST']['quickblog']['category']) : htmlspecialchars($serendipity['POST']['quickblog']['category'], ENT_COMPAT, LANG_CHARSET);
#$entry['allow_comments'] = 'true'; // both disabled
#$entry['moderate_comments'] = 'false'; // to take default values
$serendipity['POST']['properties']['fake'] = 'fake';
$id = serendipity_updertEntry($entry);
break;
case 'frontend_display':
// auto resizing images based on width and/or height attributes in img tag
if (serendipity_db_bool($this->get_config('autoresize'))) {
if (!empty($eventData['body'])) {
$eventData['body'] = $this->substituteImages($eventData['body']);
}
if (!empty($eventData['extended'])) {
$eventData['extended'] = $this->substituteImages($eventData['extended']);
}
}
if (empty($eventData['body'])) {
return;
}
// displaying quickblog posts
if (is_object($serendipity['smarty']) && preg_match('@<!--quickblog:(.+)-->@imsU', $eventData['body'], $filematch)) {
$eventData['body'] = $this->parse_quickblog_post($filematch[1], $eventData['body']);
}
// displaying galleries introduced by markup
foreach ($this->markup_elements as $temp) {