Archived
1
0

Small code cleanup by Falk Doering:

- PHP6 forward compatibility on accessing strings
- Better indenting, other cleanups on the plugin API file
This commit is contained in:
Garvin Hicking
2007-07-17 11:31:20 +00:00
parent 1e846ef160
commit 14f04bd485
18 changed files with 574 additions and 560 deletions
+11 -11
View File
@@ -259,7 +259,7 @@ class HTTP_Request {
$this->_timeout = null; $this->_timeout = null;
$this->_response = null; $this->_response = null;
foreach ($params as $key => $value) { foreach ($params AS $key => $value) {
$this->{'_' . $key} = $value; $this->{'_' . $key} = $value;
} }
@@ -483,7 +483,7 @@ class HTTP_Request {
return call_user_func($callback, $value); return call_user_func($callback, $value);
} else { } else {
$map = array(); $map = array();
foreach ($value as $k => $v) { foreach ($value AS $k => $v) {
$map[$k] = $this->_arrayMapRecursive($callback, $v); $map[$k] = $this->_arrayMapRecursive($callback, $v);
} }
return $map; return $map;
@@ -507,7 +507,7 @@ class HTTP_Request {
if (!is_array($fileName) && !is_readable($fileName)) { if (!is_array($fileName) && !is_readable($fileName)) {
return PEAR::raiseError("File '{$fileName}' is not readable"); return PEAR::raiseError("File '{$fileName}' is not readable");
} elseif (is_array($fileName)) { } elseif (is_array($fileName)) {
foreach ($fileName as $name) { foreach ($fileName AS $name) {
if (!is_readable($name)) { if (!is_readable($name)) {
return PEAR::raiseError("File '{$name}' is not readable"); return PEAR::raiseError("File '{$name}' is not readable");
} }
@@ -653,7 +653,7 @@ class HTTP_Request {
$this->_url = &new Net_URL($redirect); $this->_url = &new Net_URL($redirect);
$this->addHeader('Host', $this->_generateHostHeader()); $this->addHeader('Host', $this->_generateHostHeader());
// Absolute path // Absolute path
} elseif ($redirect{0} == '/') { } elseif ($redirect[0] == '/') {
$this->_url->path = $redirect; $this->_url->path = $redirect;
// Relative path // Relative path
@@ -777,7 +777,7 @@ class HTTP_Request {
// Request Headers // Request Headers
if (!empty($this->_requestHeaders)) { if (!empty($this->_requestHeaders)) {
foreach ($this->_requestHeaders as $name => $value) { foreach ($this->_requestHeaders AS $name => $value) {
$canonicalName = implode('-', array_map('ucfirst', explode('-', $name))); $canonicalName = implode('-', array_map('ucfirst', explode('-', $name)));
$request .= $canonicalName . ': ' . $value . "\r\n"; $request .= $canonicalName . ': ' . $value . "\r\n";
} }
@@ -805,20 +805,20 @@ class HTTP_Request {
$postdata = ''; $postdata = '';
if (!empty($this->_postData)) { if (!empty($this->_postData)) {
$flatData = $this->_flattenArray('', $this->_postData); $flatData = $this->_flattenArray('', $this->_postData);
foreach ($flatData as $item) { foreach ($flatData AS $item) {
$postdata .= '--' . $boundary . "\r\n"; $postdata .= '--' . $boundary . "\r\n";
$postdata .= 'Content-Disposition: form-data; name="' . $item[0] . '"'; $postdata .= 'Content-Disposition: form-data; name="' . $item[0] . '"';
$postdata .= "\r\n\r\n" . urldecode($item[1]) . "\r\n"; $postdata .= "\r\n\r\n" . urldecode($item[1]) . "\r\n";
} }
} }
foreach ($this->_postFiles as $name => $value) { foreach ($this->_postFiles AS $name => $value) {
if (is_array($value['name'])) { if (is_array($value['name'])) {
$varname = $name . ($this->_useBrackets? '[]': ''); $varname = $name . ($this->_useBrackets? '[]': '');
} else { } else {
$varname = $name; $varname = $name;
$value['name'] = array($value['name']); $value['name'] = array($value['name']);
} }
foreach ($value['name'] as $key => $filename) { foreach ($value['name'] AS $key => $filename) {
$fp = fopen($filename, 'r'); $fp = fopen($filename, 'r');
$data = fread($fp, filesize($filename)); $data = fread($fp, filesize($filename));
fclose($fp); fclose($fp);
@@ -860,7 +860,7 @@ class HTTP_Request {
return array(array($name, $values)); return array(array($name, $values));
} else { } else {
$ret = array(); $ret = array();
foreach ($values as $k => $v) { foreach ($values AS $k => $v) {
if (empty($name)) { if (empty($name)) {
$newName = $k; $newName = $k;
} elseif ($this->_useBrackets) { } elseif ($this->_useBrackets) {
@@ -928,7 +928,7 @@ class HTTP_Request {
*/ */
function _notify($event, $data = null) function _notify($event, $data = null)
{ {
foreach (array_keys($this->_listeners) as $id) { foreach (array_keys($this->_listeners) AS $id) {
$this->_listeners[$id]->update($this, $event, $data); $this->_listeners[$id]->update($this, $event, $data);
} }
} }
@@ -1183,7 +1183,7 @@ class HTTP_Response
*/ */
function _notify($event, $data = null) function _notify($event, $data = null)
{ {
foreach (array_keys($this->_listeners) as $id) { foreach (array_keys($this->_listeners) AS $id) {
$this->_listeners[$id]->update($this, $event, $data); $this->_listeners[$id]->update($this, $event, $data);
} }
} }
+5 -5
View File
@@ -166,7 +166,7 @@ class Net_URL
// Default querystring // Default querystring
$this->querystring = array(); $this->querystring = array();
foreach ($urlinfo as $key => $value) { foreach ($urlinfo AS $key => $value) {
switch ($key) { switch ($key) {
case 'scheme': case 'scheme':
$this->protocol = $value; $this->protocol = $value;
@@ -181,7 +181,7 @@ class Net_URL
break; break;
case 'path': case 'path':
if ($value{0} == '/') { if ($value[0] == '/') {
$this->path = $value; $this->path = $value;
} else { } else {
$path = dirname($this->path) == DIRECTORY_SEPARATOR ? '' : dirname($this->path); $path = dirname($this->path) == DIRECTORY_SEPARATOR ? '' : dirname($this->path);
@@ -272,9 +272,9 @@ class Net_URL
function getQueryString() function getQueryString()
{ {
if (!empty($this->querystring)) { if (!empty($this->querystring)) {
foreach ($this->querystring as $name => $value) { foreach ($this->querystring AS $name => $value) {
if (is_array($value)) { if (is_array($value)) {
foreach ($value as $k => $v) { foreach ($value AS $k => $v) {
$querystring[] = $this->useBrackets ? sprintf('%s[%s]=%s', $name, $k, $v) : ($name . '=' . $v); $querystring[] = $this->useBrackets ? sprintf('%s[%s]=%s', $name, $k, $v) : ($name . '=' . $v);
} }
} elseif (!is_null($value)) { } elseif (!is_null($value)) {
@@ -303,7 +303,7 @@ class Net_URL
$parts = preg_split('/[' . preg_quote(ini_get('arg_separator.input'), '/') . ']/', $querystring, -1, PREG_SPLIT_NO_EMPTY); $parts = preg_split('/[' . preg_quote(ini_get('arg_separator.input'), '/') . ']/', $querystring, -1, PREG_SPLIT_NO_EMPTY);
$return = array(); $return = array();
foreach ($parts as $part) { foreach ($parts AS $part) {
if (strpos($part, '=') !== false) { if (strpos($part, '=') !== false) {
$value = substr($part, strpos($part, '=') + 1); $value = substr($part, strpos($part, '=') + 1);
$key = substr($part, 0, strpos($part, '=')); $key = substr($part, 0, strpos($part, '='));
@@ -140,7 +140,7 @@ class Text_Wiki_Parse_Wikilink extends Text_Wiki_Parse {
{ {
// when prefixed with !, it's explicitly not a wiki link. // when prefixed with !, it's explicitly not a wiki link.
// return everything as it was. // return everything as it was.
if ($matches[2]{0} == '!') { if ($matches[2][0] == '!') {
return $matches[1] . substr($matches[2], 1) . $matches[3]; return $matches[1] . substr($matches[2], 1) . $matches[3];
} }
+1 -1
View File
@@ -56,7 +56,7 @@ class Text_Wiki_Render_Xhtml_Url extends Text_Wiki_Render {
} else { } else {
// allow for alternative targets on non-anchor HREFs // allow for alternative targets on non-anchor HREFs
if ($href{0} == '#') { if ($href[0] == '#') {
$target = ''; $target = '';
} else { } else {
$target = $this->getConf('target'); $target = $this->getConf('target');
+1 -1
View File
@@ -159,7 +159,7 @@ class Text_Wiki_Rule_wikilink extends Text_Wiki_Rule {
{ {
// when prefixed with !, it's explicitly not a wiki link. // when prefixed with !, it's explicitly not a wiki link.
// return everything as it was. // return everything as it was.
if ($matches[2]{0} == '!') { if ($matches[2][0] == '!') {
return $matches[1] . substr($matches[2], 1) . $matches[3]; return $matches[1] . substr($matches[2], 1) . $matches[3];
} }
+4 -4
View File
@@ -31,7 +31,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
$res = serendipity_fetchCategories('all'); $res = serendipity_fetchCategories('all');
$ret = array(0 => NO_CATEGORY); $ret = array(0 => NO_CATEGORY);
if (is_array($res)) { if (is_array($res)) {
foreach ($res as $v) { foreach ($res AS $v) {
$ret[$v['categoryid']] = $v['category_name']; $ret[$v['categoryid']] = $v['category_name'];
} }
} }
@@ -112,7 +112,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
$i = 0; $i = 0;
while (false !== ($dir = readdir($root))) { while (false !== ($dir = readdir($root))) {
if ($dir{0} == '.') continue; if ($dir[0] == '.') continue;
if (substr($dir, 0, 8) == 'standard') { if (substr($dir, 0, 8) == 'standard') {
printf('&nbsp;&nbsp;&middot; ' . CHECKING_DIRECTORY . '...<br />', $dir); printf('&nbsp;&nbsp;&middot; ' . CHECKING_DIRECTORY . '...<br />', $dir);
$data = $this->unserialize($this->data['pivot_path'] . '/' . $dir . '/index-' . $dir . '.php'); $data = $this->unserialize($this->data['pivot_path'] . '/' . $dir . '/index-' . $dir . '.php');
@@ -124,7 +124,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
continue; continue;
} }
foreach($data as $entry) { foreach($data AS $entry) {
$entryid = str_pad($entry['code'], 5, '0', STR_PAD_LEFT); $entryid = str_pad($entry['code'], 5, '0', STR_PAD_LEFT);
if ($i >= $max_import) { if ($i >= $max_import) {
@@ -166,7 +166,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
$i++; $i++;
if (isset($entrydata['comments']) && count($entrydata['comments']) > 0) { if (isset($entrydata['comments']) && count($entrydata['comments']) > 0) {
foreach($entrydata['comments'] as $comment) { foreach($entrydata['comments'] AS $comment) {
$comment = array('entry_id ' => $entry['id'], $comment = array('entry_id ' => $entry['id'],
'parent_id' => 0, 'parent_id' => 0,
'timestamp' => $this->toTimestamp($comment['date']), 'timestamp' => $this->toTimestamp($comment['date']),
+1 -1
View File
@@ -314,7 +314,7 @@ function serendipity_db_schema_import($query) {
$query = trim(str_replace($search, $replace, $query)); $query = trim(str_replace($search, $replace, $query));
if ($query{0} == '@') { if ($query[0] == '@') {
// Errors are expected to happen (like duplicate index creation) // Errors are expected to happen (like duplicate index creation)
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true); return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
} else { } else {
+1 -1
View File
@@ -283,7 +283,7 @@ function serendipity_db_schema_import($query) {
} }
$query = trim(str_replace($search, $replace, $query)); $query = trim(str_replace($search, $replace, $query));
if ($query{0} == '@') { if ($query[0] == '@') {
// Errors are expected to happen (like duplicate index creation) // Errors are expected to happen (like duplicate index creation)
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true); return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
} else { } else {
+3 -3
View File
@@ -158,7 +158,7 @@ function serendipity_db_insert_id($table = '', $id = '') {
$query = "SELECT currval('{$serendipity['dbPrefix']}{$table}_{$id}_seq'::text) AS {$id}"; $query = "SELECT currval('{$serendipity['dbPrefix']}{$table}_{$id}_seq'::text) AS {$id}";
$res = $serendipity['dbConn']->prepare($query); $res = $serendipity['dbConn']->prepare($query);
$res->execute(); $res->execute();
foreach($res->fetchAll(PDO::FETCH_ASSOC) as $row) { foreach($res->fetchAll(PDO::FETCH_ASSOC) AS $row) {
return $row[$id]; return $row[$id];
} }
return $serendipity['dbConn']->lastInsertId(); return $serendipity['dbConn']->lastInsertId();
@@ -224,7 +224,7 @@ function &serendipity_db_query($sql, $single = false, $result_type = "both", $re
$n = 0; $n = 0;
$rows = array(); $rows = array();
foreach($serendipity['dbSth']->fetchAll($result_type) as $row) { foreach($serendipity['dbSth']->fetchAll($result_type) AS $row) {
if (!empty($assocKey)) { if (!empty($assocKey)) {
// You can fetch a key-associated array via the two function parameters assocKey and assocVal // You can fetch a key-associated array via the two function parameters assocKey and assocVal
if (empty($assocVal)) { if (empty($assocVal)) {
@@ -266,7 +266,7 @@ function serendipity_db_schema_import($query) {
} }
$query = trim(str_replace($search, $replace, $query)); $query = trim(str_replace($search, $replace, $query));
if ($query{0} == '@') { if ($query[0] == '@') {
// Errors are expected to happen (like duplicate index creation) // Errors are expected to happen (like duplicate index creation)
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true); return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
} else { } else {
+1 -1
View File
@@ -279,7 +279,7 @@ function serendipity_db_schema_import($query) {
} }
$query = trim(str_replace($search, $replace, $query)); $query = trim(str_replace($search, $replace, $query));
if ($query{0} == '@') { if ($query[0] == '@') {
// Errors are expected to happen (like duplicate index creation) // Errors are expected to happen (like duplicate index creation)
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true); return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
} else { } else {
+2 -2
View File
@@ -149,7 +149,7 @@ function serendipity_db_sqlite_fetch_array($res, $type = SQLITE_BOTH)
} }
/* strip any slashes, correct fieldname */ /* strip any slashes, correct fieldname */
foreach ($row as $i => $v) { foreach ($row AS $i => $v) {
// TODO: If a query of the format 'SELECT a.id, b.text FROM table' is used, // TODO: If a query of the format 'SELECT a.id, b.text FROM table' is used,
// the sqlite extension will give us key indizes 'a.id' and 'b.text' // the sqlite extension will give us key indizes 'a.id' and 'b.text'
// instead of just 'id' and 'text' like in mysql/postgresql extension. // instead of just 'id' and 'text' like in mysql/postgresql extension.
@@ -339,7 +339,7 @@ function serendipity_db_schema_import($query)
} }
$query = trim(str_replace($search, $replace, $query)); $query = trim(str_replace($search, $replace, $query));
if ($query{0} == '@') { if ($query[0] == '@') {
// Errors are expected to happen (like duplicate index creation) // Errors are expected to happen (like duplicate index creation)
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true); return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
} else { } else {
+3 -3
View File
@@ -148,7 +148,7 @@ function serendipity_db_sqlite_fetch_array($res, $type = SQLITE3_BOTH)
} }
/* strip any slashes, correct fieldname */ /* strip any slashes, correct fieldname */
foreach ($row as $i => $v) { foreach ($row AS $i => $v) {
// TODO: If a query of the format 'SELECT a.id, b.text FROM table' is used, // TODO: If a query of the format 'SELECT a.id, b.text FROM table' is used,
// the sqlite extension will give us key indizes 'a.id' and 'b.text' // the sqlite extension will give us key indizes 'a.id' and 'b.text'
// instead of just 'id' and 'text' like in mysql/postgresql extension. // instead of just 'id' and 'text' like in mysql/postgresql extension.
@@ -165,7 +165,7 @@ function serendipity_db_sqlite_fetch_array($res, $type = SQLITE3_BOTH)
if ($type != SQLITE3_ASSOC) { if ($type != SQLITE3_ASSOC) {
$i = 0; $i = 0;
foreach($row as $k => $v) { foreach($row AS $k => $v) {
$frow[$i] = $v; $frow[$i] = $v;
$i++; $i++;
} }
@@ -350,7 +350,7 @@ function serendipity_db_schema_import($query)
} }
$query = trim(str_replace($search, $replace, $query)); $query = trim(str_replace($search, $replace, $query));
if ($query{0} == '@') { if ($query[0] == '@') {
// Errors are expected to happen (like duplicate index creation) // Errors are expected to happen (like duplicate index creation)
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true); return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
} else { } else {
+15 -15
View File
@@ -288,7 +288,7 @@ function serendipity_updateImageInDatabase($updates, $id) {
$i=0; $i=0;
if (sizeof($updates) > 0) { if (sizeof($updates) > 0) {
foreach ($updates as $k => $v) { foreach ($updates AS $k => $v) {
$q[] = $k ." = '" . serendipity_db_escape_string($v) . "'"; $q[] = $k ." = '" . serendipity_db_escape_string($v) . "'";
} }
serendipity_db_query("UPDATE {$serendipity['dbPrefix']}images SET ". implode($q, ',') ." WHERE id = " . (int)$id . " $admin"); serendipity_db_query("UPDATE {$serendipity['dbPrefix']}images SET ". implode($q, ',') ." WHERE id = " . (int)$id . " $admin");
@@ -339,7 +339,7 @@ function serendipity_deleteImage($id) {
} }
serendipity_plugin_api::hook_event('backend_media_delete', $dThumb); serendipity_plugin_api::hook_event('backend_media_delete', $dThumb);
foreach($dThumb as $thumb) { foreach($dThumb AS $thumb) {
$dfnThumb = $file['path'] . $file['name'] . (!empty($thumb['fthumb']) ? '.' . $thumb['fthumb'] : '') . '.' . $file['extension']; $dfnThumb = $file['path'] . $file['name'] . (!empty($thumb['fthumb']) ? '.' . $thumb['fthumb'] : '') . '.' . $file['extension'];
$dfThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $dfnThumb; $dfThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $dfnThumb;
@@ -385,7 +385,7 @@ function serendipity_fetchImages($group = false, $start = 0, $end = 20, $images
} }
@closedir($dir); @closedir($dir);
sort($aTempArray); sort($aTempArray);
foreach($aTempArray as $f) { foreach($aTempArray AS $f) {
if (strpos($f, $serendipity['thumbSuffix']) !== false) { if (strpos($f, $serendipity['thumbSuffix']) !== false) {
// This is a s9y thumbnail, skip it. // This is a s9y thumbnail, skip it.
continue; continue;
@@ -777,7 +777,7 @@ function serendipity_generateThumbs() {
$i=0; $i=0;
$serendipity['imageList'] = serendipity_fetchImagesFromDatabase(0, 0, $total); $serendipity['imageList'] = serendipity_fetchImagesFromDatabase(0, 0, $total);
foreach ($serendipity['imageList'] as $k => $file) { foreach ($serendipity['imageList'] AS $k => $file) {
$is_image = serendipity_isImage($file); $is_image = serendipity_isImage($file);
if ($is_image && !$file['hotlink']) { if ($is_image && !$file['hotlink']) {
@@ -1507,14 +1507,14 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
$dprops = $keywords = array(); $dprops = $keywords = array();
if ($serendipity['parseMediaOverview']) { if ($serendipity['parseMediaOverview']) {
$ids = array(); $ids = array();
foreach ($serendipity['imageList'] as $k => $file) { foreach ($serendipity['imageList'] AS $k => $file) {
$ids[] = $file['id']; $ids[] = $file['id'];
} }
$allprops =& serendipity_fetchMediaProperties($ids); $allprops =& serendipity_fetchMediaProperties($ids);
} }
if (count($serendipity['imageList']) > 0) { if (count($serendipity['imageList']) > 0) {
foreach ($serendipity['imageList'] as $k => $file) { foreach ($serendipity['imageList'] AS $k => $file) {
if (!($serendipity['authorid'] == $file['authorid'] || $file['authorid'] == '0' || serendipity_checkPermission('adminImagesViewOthers'))) { if (!($serendipity['authorid'] == $file['authorid'] || $file['authorid'] == '0' || serendipity_checkPermission('adminImagesViewOthers'))) {
// This is a fail-safe continue. Basically a non-matching file should already be filtered in SQL. // This is a fail-safe continue. Basically a non-matching file should already be filtered in SQL.
continue; continue;
@@ -2789,23 +2789,23 @@ function serendipity_getMediaRaw($filename) {
$filedata = fread($f, 2); $filedata = fread($f, 2);
if ($filedata{0} != "\xFF") { if ($filedata[0] != "\xFF") {
fclose($f); fclose($f);
return $ret; return $ret;
} }
while (!$abort && !feof($f) && $filedata{1} != "\xD9") { while (!$abort && !feof($f) && $filedata[1] != "\xD9") {
if ((ord($filedata{1}) < 0xD0) || (ord($filedata{1}) > 0xD7)) { if ((ord($filedata[1]) < 0xD0) || (ord($filedata[1]) > 0xD7)) {
$ordret = fread($f, 2); $ordret = fread($f, 2);
$ordstart = ftell($f); $ordstart = ftell($f);
$int = unpack('nsize', $ordret); $int = unpack('nsize', $ordret);
if (ord($filedata{1}) == 225) { if (ord($filedata[1]) == 225) {
$content = fread($f, $int['size'] - 2); $content = fread($f, $int['size'] - 2);
if (substr($content, 0, 24) == 'http://ns.adobe.com/xap/') { if (substr($content, 0, 24) == 'http://ns.adobe.com/xap/') {
$ret[] = array( $ret[] = array(
'ord' => ord($filedata{1}), 'ord' => ord($filedata[1]),
'ordstart' => $ordstart, 'ordstart' => $ordstart,
'int' => $int, 'int' => $int,
'content' => $content 'content' => $content
@@ -2816,11 +2816,11 @@ function serendipity_getMediaRaw($filename) {
} }
} }
if ($filedata{1} == "\xDA") { if ($filedata[1] == "\xDA") {
$abort = true; $abort = true;
} else { } else {
$filedata = fread($f, 2); $filedata = fread($f, 2);
if ($filedata{0} != "\xFF") { if ($filedata[0] != "\xFF") {
fclose($f); fclose($f);
return $ret; return $ret;
} }
@@ -3180,7 +3180,7 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i
// Rename file // Rename file
rename($renameValues[0]['from'], $renameValues[0]['to']); rename($renameValues[0]['from'], $renameValues[0]['to']);
foreach($renameValues as $renameData) { foreach($renameValues AS $renameData) {
// Rename thumbnail // Rename thumbnail
rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . '.' . $file['extension'], rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . '.' . $file['extension'],
$serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $newDir . '.' . $renameData['thumb'] . '.' . $file['extension']); $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $newDir . '.' . $renameData['thumb'] . '.' . $file['extension']);
@@ -3232,7 +3232,7 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i
// Rename file // Rename file
rename($renameValues[0]['from'], $renameValues[0]['to']); rename($renameValues[0]['from'], $renameValues[0]['to']);
foreach($renameValues as $renameData) { foreach($renameValues AS $renameData) {
// Rename thumbnail // Rename thumbnail
rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $oldDir . $pick['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . '.' . $pick['extension'], rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $oldDir . $pick['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . '.' . $pick['extension'],
$serendipity['serendipityPath'] . $serendipity['uploadPath'] . $newDir . $pick['name'] . '.' . $renameData['thumb'] . '.' . $pick['extension']); $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $newDir . $pick['name'] . '.' . $renameData['thumb'] . '.' . $pick['extension']);
+116 -102
View File
@@ -34,9 +34,10 @@ if (!defined('S9Y_FRAMEWORK_FUNCTIONS')) {
* The user can configure instances of plugins. * The user can configure instances of plugins.
*/ */
class serendipity_plugin_api { class serendipity_plugin_api
{
/** /**
* Register the default list of plugins for installation. * Register the default list of plugins for installation.
* *
* @access public * @access public
@@ -78,7 +79,7 @@ class serendipity_plugin_api {
} }
} }
/** /**
* Create an instance of a plugin. * Create an instance of a plugin.
* *
* $plugin_class_id is of the form: * $plugin_class_id is of the form:
@@ -119,7 +120,7 @@ class serendipity_plugin_api {
$rs = serendipity_db_query("SELECT MAX(sort_order) as sort_order_max FROM {$serendipity['dbPrefix']}plugins WHERE placement = '$default_placement'", true, 'num'); $rs = serendipity_db_query("SELECT MAX(sort_order) as sort_order_max FROM {$serendipity['dbPrefix']}plugins WHERE placement = '$default_placement'", true, 'num');
if (is_array($rs)) { if (is_array($rs)) {
$nextidx = intval($rs[0]+1); $nextidx = intval($rs[0] + 1);
} else { } else {
$nextidx = 0; $nextidx = 0;
} }
@@ -134,7 +135,7 @@ class serendipity_plugin_api {
/* Check for multiple dependencies */ /* Check for multiple dependencies */
$plugin =& serendipity_plugin_api::load_plugin($key, $authorid, $pluginPath); $plugin =& serendipity_plugin_api::load_plugin($key, $authorid, $pluginPath);
if (is_object($plugin)) { if (is_object($plugin)) {
$bag = new serendipity_property_bag; $bag = new serendipity_property_bag();
$plugin->introspect($bag); $plugin->introspect($bag);
serendipity_plugin_api::get_event_plugins(false, true); // Refresh static list of plugins to allow execution of added plugin serendipity_plugin_api::get_event_plugins(false, true); // Refresh static list of plugins to allow execution of added plugin
$plugin->register_dependencies(false, $authorid); $plugin->register_dependencies(false, $authorid);
@@ -147,7 +148,7 @@ class serendipity_plugin_api {
return $key; return $key;
} }
/** /**
* Removes a plugin by it's instance name * Removes a plugin by it's instance name
* *
* @access public * @access public
@@ -160,7 +161,7 @@ class serendipity_plugin_api {
$plugin =& serendipity_plugin_api::load_plugin($plugin_instance_id); $plugin =& serendipity_plugin_api::load_plugin($plugin_instance_id);
if (is_object($plugin)) { if (is_object($plugin)) {
$bag = new serendipity_property_bag; $bag = new serendipity_property_bag();
$plugin->introspect($bag); $plugin->introspect($bag);
$plugin->uninstall($bag); $plugin->uninstall($bag);
} }
@@ -174,7 +175,7 @@ class serendipity_plugin_api {
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}config where name LIKE '$plugin_instance_id/%'"); serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}config where name LIKE '$plugin_instance_id/%'");
} }
/** /**
* Removes an empty plugin configuration value * Removes an empty plugin configuration value
* *
* @access public * @access public
@@ -196,7 +197,7 @@ class serendipity_plugin_api {
serendipity_db_query($query); serendipity_db_query($query);
} }
/** /**
* Retrieve a list of available plugin classes * Retrieve a list of available plugin classes
* *
* This function searches through all directories and loaded internal files and tries * This function searches through all directories and loaded internal files and tries
@@ -214,7 +215,7 @@ class serendipity_plugin_api {
/* built-in classes first */ /* built-in classes first */
$cls = get_declared_classes(); $cls = get_declared_classes();
foreach ($cls as $class_name) { foreach ($cls AS $class_name) {
if (strncmp($class_name, 'serendipity_', 6)) { if (strncmp($class_name, 'serendipity_', 6)) {
continue; continue;
} }
@@ -250,7 +251,7 @@ class serendipity_plugin_api {
return $classes; return $classes;
} }
/** /**
* Traverse a specific directory and search if a serendipity plugin exists there. * Traverse a specific directory and search if a serendipity plugin exists there.
* *
* @access public * @access public
@@ -260,11 +261,12 @@ class serendipity_plugin_api {
* @param string The maindir where we started searching from [for recursive use] * @param string The maindir where we started searching from [for recursive use]
* @return * @return
*/ */
function traverse_plugin_dir($ppath, &$classes, $event_only, $maindir = '') { function traverse_plugin_dir($ppath, &$classes, $event_only, $maindir = '')
{
$d = @opendir($ppath); $d = @opendir($ppath);
if ($d) { if ($d) {
while (($f = readdir($d)) !== false) { while (($f = readdir($d)) !== false) {
if ($f{0} == '.' || $f == 'CVS' || !is_dir($ppath . '/' . $f) || !is_readable($ppath . '/' .$f)) { if ($f[0] == '.' || $f == 'CVS' || !is_dir($ppath . '/' . $f) || !is_readable($ppath . '/' .$f)) {
continue; continue;
} }
@@ -277,7 +279,7 @@ class serendipity_plugin_api {
$final_loop = false; $final_loop = false;
while (($subf = readdir($subd)) !== false) { while (($subf = readdir($subd)) !== false) {
if ($subf{0} == '.' || $subf == 'CVS') { if ($subf[0] == '.' || $subf == 'CVS') {
continue; continue;
} }
@@ -322,27 +324,26 @@ class serendipity_plugin_api {
} }
} }
/** /**
* Returns a list of currently installed plugins * Returns a list of currently installed plugins
* *
* @access public * @access public
* @param string The filter for plugins (left|right|hide|event|eventh) * @param string The filter for plugins (left|right|hide|event|eventh)
* @return array The list of plugins * @return array The list of plugins
*/ */
function get_installed_plugins($filter = '*') { function get_installed_plugins($filter = '*')
{
$plugins = serendipity_plugin_api::enum_plugins($filter); $plugins = serendipity_plugin_api::enum_plugins($filter);
$res = array(); $res = array();
foreach ( (array)$plugins as $plugin ) { foreach ( (array)$plugins AS $plugin ) {
list($class_name) = explode(':', $plugin['name']); list($class_name) = explode(':', $plugin['name']);
if ($class_name{0} == '@') { $class_name = ltrim($class_name, '@');
$class_name = substr($class_name, 1);
}
$res[] = $class_name; $res[] = $class_name;
} }
return $res; return $res;
} }
/** /**
* Searches for installed plugins based on specific conditions * Searches for installed plugins based on specific conditions
* *
* @access public * @access public
@@ -384,7 +385,7 @@ class serendipity_plugin_api {
return serendipity_db_query($sql); return serendipity_db_query($sql);
} }
/** /**
* Count the number of plugins to which the filter criteria matches * Count the number of plugins to which the filter criteria matches
* *
* @access public * @access public
@@ -414,13 +415,13 @@ class serendipity_plugin_api {
$count = serendipity_db_query($sql, true); $count = serendipity_db_query($sql, true);
if (is_array($count) && isset($count[0])) { if (is_array($count) && isset($count[0])) {
return (int)$count[0]; return (int) $count[0];
} }
return 0; return 0;
} }
/** /**
* Detect the filename to use for a specific plugin * Detect the filename to use for a specific plugin
* *
* @access public * @access public
@@ -429,7 +430,8 @@ class serendipity_plugin_api {
* @param string If an instance ID is passed this means, the plugin to be loaded is internally available * @param string If an instance ID is passed this means, the plugin to be loaded is internally available
* @return string Returns the filename to include for a specific plugin * @return string Returns the filename to include for a specific plugin
*/ */
function includePlugin($name, $pluginPath = '', $instance_id = '') { function includePlugin($name, $pluginPath = '', $instance_id = '')
{
global $serendipity; global $serendipity;
if (empty($pluginPath)) { if (empty($pluginPath)) {
@@ -444,7 +446,7 @@ class serendipity_plugin_api {
// First try the local path, and then (if existing) a shared library repository ... // First try the local path, and then (if existing) a shared library repository ...
// Internal plugins ignored. // Internal plugins ignored.
if (!empty($instance_id) && $instance_id{0} == '@') { if (!empty($instance_id) && $instance_id[0] == '@') {
$file = S9Y_INCLUDE_PATH . 'include/plugin_internal.inc.php'; $file = S9Y_INCLUDE_PATH . 'include/plugin_internal.inc.php';
} elseif (file_exists($serendipity['serendipityPath'] . $pluginFile)) { } elseif (file_exists($serendipity['serendipityPath'] . $pluginFile)) {
$file = $serendipity['serendipityPath'] . $pluginFile; $file = $serendipity['serendipityPath'] . $pluginFile;
@@ -455,7 +457,7 @@ class serendipity_plugin_api {
return $file; return $file;
} }
/** /**
* Returns the plugin class name by a plugin instance ID * Returns the plugin class name by a plugin instance ID
* *
* @access public * @access public
@@ -463,20 +465,14 @@ class serendipity_plugin_api {
* @param boolean If true, the plugin is a internal plugin (prefixed with '@') * @param boolean If true, the plugin is a internal plugin (prefixed with '@')
* @return string The classname of the plugin * @return string The classname of the plugin
*/ */
function getClassByInstanceID($instance_id, &$is_internal) { function getClassByInstanceID($instance_id, &$is_internal)
{
$instance = explode(':', $instance_id); $instance = explode(':', $instance_id);
$name = $instance[0]; $class_name = ltrim($instance[0], '@');
if ($name{0} == '@') {
$class_name = substr($name, 1);
} else {
$class_name =& $name;
}
return $class_name; return $class_name;
} }
/** /**
* Auto-detect a plugin and see if the file information is given, and if not, detect it. * Auto-detect a plugin and see if the file information is given, and if not, detect it.
* *
* @access public * @access public
@@ -486,7 +482,8 @@ class serendipity_plugin_api {
* @return string Returns the filename of a plugin to load * @return string Returns the filename of a plugin to load
*/ */
/* Probes for the plugin filename */ /* Probes for the plugin filename */
function probePlugin($instance_id, &$class_name, &$pluginPath) { function probePlugin($instance_id, &$class_name, &$pluginPath)
{
global $serendipity; global $serendipity;
$filename = false; $filename = false;
@@ -516,7 +513,8 @@ class serendipity_plugin_api {
if (empty($filename)) { if (empty($filename)) {
$serendipity['debug']['pluginload'][] = "No valid path/filename found. Aborting."; $serendipity['debug']['pluginload'][] = "No valid path/filename found. Aborting.";
return false; $retval = false;
return $retval;
} }
} }
@@ -524,7 +522,7 @@ class serendipity_plugin_api {
return $filename; return $filename;
} }
/** /**
* Instantiates a plugin class * Instantiates a plugin class
* *
* @access public * @access public
@@ -534,7 +532,8 @@ class serendipity_plugin_api {
* @param string The filename of a plugin (can be autodetected) * @param string The filename of a plugin (can be autodetected)
* @return * @return
*/ */
function &load_plugin($instance_id, $authorid = null, $pluginPath = '', $pluginFile = null) { function &load_plugin($instance_id, $authorid = null, $pluginPath = '', $pluginFile = null)
{
global $serendipity; global $serendipity;
if ($pluginFile === null) { if ($pluginFile === null) {
@@ -554,8 +553,7 @@ class serendipity_plugin_api {
if (!class_exists($class_name)) { if (!class_exists($class_name)) {
$serendipity['debug']['pluginload'][] = "Classname $class_name still does not exist. Aborting."; $serendipity['debug']['pluginload'][] = "Classname $class_name still does not exist. Aborting.";
$retval = false; return false;
return $retval;
} }
// $serendipity['debug']['pluginload'][] = "Returning new $class_name($instance_id)"; // $serendipity['debug']['pluginload'][] = "Returning new $class_name($instance_id)";
@@ -573,7 +571,7 @@ class serendipity_plugin_api {
return $p; return $p;
} }
/** /**
* Gets cached properties/information about a specific plugin, auto-loads a cache of all plugins * Gets cached properties/information about a specific plugin, auto-loads a cache of all plugins
* *
* @access public * @access public
@@ -582,7 +580,8 @@ class serendipity_plugin_api {
* @param type The type of the plugin (local|spartacus|...) * @param type The type of the plugin (local|spartacus|...)
* @return array Information about the plugin * @return array Information about the plugin
*/ */
function &getPluginInfo(&$pluginFile, &$class_data, $type) { function &getPluginInfo(&$pluginFile, &$class_data, $type)
{
global $serendipity; global $serendipity;
static $pluginlist = null; static $pluginlist = null;
@@ -611,9 +610,8 @@ class serendipity_plugin_api {
if (is_array($pluginlist[$pluginFile]) && !preg_match('@plugin_internal\.inc\.php@', $pluginFile)) { if (is_array($pluginlist[$pluginFile]) && !preg_match('@plugin_internal\.inc\.php@', $pluginFile)) {
$data = $pluginlist[$pluginFile]; $data = $pluginlist[$pluginFile];
if ((int)filemtime($pluginFile) == (int)$data['last_modified']) { if ((int) filemtime($pluginFile) == (int) $data['last_modified']) {
$data['stackable'] = serendipity_db_bool($data['stackable']); $data['stackable'] = serendipity_db_bool($data['stackable']);
$plugin = $data; $plugin = $data;
return $plugin; return $plugin;
} }
@@ -624,7 +622,7 @@ class serendipity_plugin_api {
return $plugin; return $plugin;
} }
/** /**
* Set cache information about a plugin * Set cache information about a plugin
* *
* @access public * @access public
@@ -635,7 +633,8 @@ class serendipity_plugin_api {
* @param string The location/type of a plugin (local|spartacus) * @param string The location/type of a plugin (local|spartacus)
* @return * @return
*/ */
function &setPluginInfo(&$plugin, &$pluginFile, &$bag, &$class_data, $pluginlocation = 'local') { function &setPluginInfo(&$plugin, &$pluginFile, &$bag, &$class_data, $pluginlocation = 'local')
{
global $serendipity; global $serendipity;
static $dbfields = array( static $dbfields = array(
@@ -735,7 +734,7 @@ class serendipity_plugin_api {
return $data; return $data;
} }
/** /**
* Moves a sidebar plugin to a different side or up/down * Moves a sidebar plugin to a different side or up/down
* *
* @access public * @access public
@@ -744,7 +743,7 @@ class serendipity_plugin_api {
* @param string A new sort order for the plugin * @param string A new sort order for the plugin
* @return * @return
*/ */
function update_plugin_placement($name, $placement, $order=null) function update_plugin_placement($name, $placement, $order = null)
{ {
global $serendipity; global $serendipity;
@@ -765,7 +764,7 @@ class serendipity_plugin_api {
return serendipity_db_query($sql); return serendipity_db_query($sql);
} }
/** /**
* Updates the ownership information about a plugin * Updates the ownership information about a plugin
* *
* @access public * @access public
@@ -791,7 +790,7 @@ class serendipity_plugin_api {
return serendipity_db_query($sql); return serendipity_db_query($sql);
} }
/** /**
* Get a list of Sidebar plugins and pass them to Smarty * Get a list of Sidebar plugins and pass them to Smarty
* *
* @access public * @access public
@@ -829,7 +828,7 @@ class serendipity_plugin_api {
$serendipity['prevent_sidebar_plugins_' . $side] = true; $serendipity['prevent_sidebar_plugins_' . $side] = true;
} }
foreach ($plugins as $plugin_data) { foreach ($plugins AS $plugin_data) {
$plugin =& serendipity_plugin_api::load_plugin($plugin_data['name'], $plugin_data['authorid'], $plugin_data['path']); $plugin =& serendipity_plugin_api::load_plugin($plugin_data['name'], $plugin_data['authorid'], $plugin_data['path']);
if (is_object($plugin)) { if (is_object($plugin)) {
$class = get_class($plugin); $class = get_class($plugin);
@@ -841,7 +840,7 @@ class serendipity_plugin_api {
$content = ob_get_contents(); $content = ob_get_contents();
ob_end_clean(); ob_end_clean();
if ($show_plugin !== FALSE) { if ($show_plugin !== false) {
$pluginData[] = array('side' => $side, $pluginData[] = array('side' => $side,
'class' => $class, 'class' => $class,
'title' => $title, 'title' => $title,
@@ -862,7 +861,7 @@ class serendipity_plugin_api {
return serendipity_smarty_fetch('sidebar_'. $side, 'sidebar.tpl', true); return serendipity_smarty_fetch('sidebar_'. $side, 'sidebar.tpl', true);
} }
/** /**
* Gets the title of a plugin to be shown in plugin overview * Gets the title of a plugin to be shown in plugin overview
* *
* @access public * @access public
@@ -881,8 +880,8 @@ class serendipity_plugin_api {
// Preferred way of fetching a plugins title // Preferred way of fetching a plugins title
$title = &$plugin->title; $title = &$plugin->title;
} else { } else {
$ne = (isset($serendipity['no_events']) && $serendipity['no_events'] ? TRUE : FALSE); $ne = (isset($serendipity['no_events']) && $serendipity['no_events'] ? true : false);
$serendipity['no_events'] = TRUE; $serendipity['no_events'] = true;
ob_start(); ob_start();
$plugin->generate_content($title); $plugin->generate_content($title);
ob_end_clean(); ob_end_clean();
@@ -900,7 +899,7 @@ class serendipity_plugin_api {
return $title; return $title;
} }
/** /**
* Check if a plugin is an event plugin * Check if a plugin is an event plugin
* *
* Refactoring: decompose conditional * Refactoring: decompose conditional
@@ -909,11 +908,12 @@ class serendipity_plugin_api {
* @param string Name of a plugin * @param string Name of a plugin
* @return boolean * @return boolean
*/ */
function is_event_plugin($name) { function is_event_plugin($name)
{
return (strstr($name, '_event_')); return (strstr($name, '_event_'));
} }
/** /**
* Prepares a cache of all event plugins and load them in queue so that they can be fetched * Prepares a cache of all event plugins and load them in queue so that they can be fetched
* *
* @access public * @access public
@@ -921,7 +921,8 @@ class serendipity_plugin_api {
* @param boolean If set to true, the list of cached event plugins will be refreshed * @param boolean If set to true, the list of cached event plugins will be refreshed
* @return mixed Either returns the whole list of event plugins, or only a specific instance * @return mixed Either returns the whole list of event plugins, or only a specific instance
*/ */
function &get_event_plugins($getInstance = false, $refresh = false) { function &get_event_plugins($getInstance = false, $refresh = false)
{
static $event_plugins; static $event_plugins;
static $false = false; static $false = false;
@@ -962,7 +963,7 @@ class serendipity_plugin_api {
return $event_plugins; return $event_plugins;
} }
/** /**
* Executes a specific Eventhook * Executes a specific Eventhook
* *
* If you want to temporarily block any event plugins, you can set $serendipity['no_events'] before * If you want to temporarily block any event plugins, you can set $serendipity['no_events'] before
@@ -974,7 +975,8 @@ class serendipity_plugin_api {
* @param mixed May contain any type of variables that are passed to an event plugin * @param mixed May contain any type of variables that are passed to an event plugin
* @return true * @return true
*/ */
function hook_event($event_name, &$eventData, $addData = null) { function hook_event($event_name, &$eventData, $addData = null)
{
global $serendipity; global $serendipity;
// Can be bypassed globally by setting $serendipity['no_events'] = TRUE; // Can be bypassed globally by setting $serendipity['no_events'] = TRUE;
@@ -1019,14 +1021,15 @@ class serendipity_plugin_api {
return true; return true;
} }
/** /**
* Checks if a specific plugin instance is already installed * Checks if a specific plugin instance is already installed
* *
* @access public * @access public
* @param string A name (may contain wildcards) of a plugin class to check * @param string A name (may contain wildcards) of a plugin class to check
* @return boolean True if a plugin was found * @return boolean True if a plugin was found
*/ */
function exists($instance_id) { function exists($instance_id)
{
global $serendipity; global $serendipity;
if (!strstr($instance_id, ':')) { if (!strstr($instance_id, ':')) {
@@ -1042,7 +1045,7 @@ class serendipity_plugin_api {
return false; return false;
} }
/** /**
* Install a new plugin by ensuring that it does not already exist * Install a new plugin by ensuring that it does not already exist
* *
* @access public * @access public
@@ -1051,7 +1054,8 @@ class serendipity_plugin_api {
* @param boolean Indicates if the plugin is an event plugin * @param boolean Indicates if the plugin is an event plugin
* @return object Returns the plugin object or false, if failure * @return object Returns the plugin object or false, if failure
*/ */
function &autodetect_instance($plugin_name, $authorid, $is_event_plugin = false) { function &autodetect_instance($plugin_name, $authorid, $is_event_plugin = false)
{
if ($is_event_plugin) { if ($is_event_plugin) {
$side = 'event'; $side = 'event';
} else { } else {
@@ -1069,21 +1073,25 @@ class serendipity_plugin_api {
} }
} }
/* holds a bunch of properties; since serendipity 0.8 only one value per key is allowed [was never really useful] */
class serendipity_property_bag {
/** /**
* holds a bunch of properties; since serendipity 0.8 only one value per key is
* allowed [was never really useful]
*/
class serendipity_property_bag
{
/**
* @access private * @access private
* @var array property storage container. * @var array property storage container.
*/ */
var $properties = array(); var $properties = array();
/** /**
* @access private * @access private
* @var string Name of the property bag * @var string Name of the property bag
*/ */
var $name = null; var $name = null;
/** /**
* Adds a property value to the bag * Adds a property value to the bag
* *
* @access public * @access public
@@ -1096,7 +1104,7 @@ class serendipity_property_bag {
$this->properties[$name] = $value; $this->properties[$name] = $value;
} }
/** /**
* Returns a property value of a bag * Returns a property value of a bag
* *
* @access public * @access public
@@ -1108,7 +1116,7 @@ class serendipity_property_bag {
return $this->properties[$name]; return $this->properties[$name];
} }
/** /**
* Check if a specific property name is already set * Check if a specific property name is already set
* *
* @access public * @access public
@@ -1117,16 +1125,16 @@ class serendipity_property_bag {
*/ */
function is_set($name) function is_set($name)
{ {
if (isset($this->properties[$name])) { return isset($this->properties[$name]);
return true;
} }
return false;
}
} }
/* A core plugin, with methods that both event and sidebar plugins share */ /**
class serendipity_plugin { * A core plugin, with methods that both event and sidebar plugins share
*/
class serendipity_plugin
{
var $instance = null; var $instance = null;
var $protected = false; var $protected = false;
var $wrap_class = 'serendipitySideBarItem'; var $wrap_class = 'serendipitySideBarItem';
@@ -1134,7 +1142,7 @@ class serendipity_plugin {
var $content_class = 'serendipitySideBarContent'; var $content_class = 'serendipitySideBarContent';
var $title = null; var $title = null;
/** /**
* The constructor of a plugin * The constructor of a plugin
* *
* Needs to be implemented by your own class. * Needs to be implemented by your own class.
@@ -1149,7 +1157,7 @@ class serendipity_plugin {
$this->instance = $instance; $this->instance = $instance;
} }
/** /**
* Perform configuration routines * Perform configuration routines
* *
* Called by Serendipity when the plugin is being configured. * Called by Serendipity when the plugin is being configured.
@@ -1165,7 +1173,7 @@ class serendipity_plugin {
return true; return true;
} }
/** /**
* Perform install routines * Perform install routines
* *
* Called by Serendipity when the plugin is first installed. * Called by Serendipity when the plugin is first installed.
@@ -1179,7 +1187,7 @@ class serendipity_plugin {
return true; return true;
} }
/** /**
* Perform uninstall routines * Perform uninstall routines
* *
* Called by Serendipity when the plugin is removed/uninstalled. * Called by Serendipity when the plugin is removed/uninstalled.
@@ -1194,7 +1202,7 @@ class serendipity_plugin {
return true; return true;
} }
/** /**
* The introspection function of a plugin, to setup properties * The introspection function of a plugin, to setup properties
* *
* Called by serendipity when it wants to display information * Called by serendipity when it wants to display information
@@ -1218,12 +1226,12 @@ class serendipity_plugin {
// ) // )
// ); // );
$this->protected = FALSE; // If set to TRUE, only allows the owner of the plugin to modify its configuration $this->protected = false; // If set to TRUE, only allows the owner of the plugin to modify its configuration
return true; return true;
} }
/** /**
* Introspection of a plugin configuration item * Introspection of a plugin configuration item
* *
* Called by serendipity when it wants to display the configuration * Called by serendipity when it wants to display the configuration
@@ -1246,7 +1254,7 @@ class serendipity_plugin {
return false; return false;
} }
/** /**
* Validate plugin configuration options. * Validate plugin configuration options.
* *
* Called from Plugin Configuration manager. Can be extended by your own plugin, if you need. * Called from Plugin Configuration manager. Can be extended by your own plugin, if you need.
@@ -1257,7 +1265,8 @@ class serendipity_plugin {
* @param value The value of a config item * @param value The value of a config item
* @return * @return
*/ */
function validate($config_item, &$cbag, &$value) { function validate($config_item, &$cbag, &$value)
{
static $pattern_mail = '([\.\-\+~@_0-9a-z]+?)'; static $pattern_mail = '([\.\-\+~@_0-9a-z]+?)';
static $pattern_url = '([@!=~\?:&;0-9a-z#\.\-_\/]+?)'; static $pattern_url = '([@!=~\?:&;0-9a-z#\.\-_\/]+?)';
@@ -1322,7 +1331,7 @@ class serendipity_plugin {
return true; return true;
} }
/** /**
* Output plugin's contents (Sidebar plugins) * Output plugin's contents (Sidebar plugins)
* *
* Called by serendipity when it wants your plugin to display itself. * Called by serendipity when it wants your plugin to display itself.
@@ -1342,7 +1351,7 @@ class serendipity_plugin {
echo 'This is a sample!'; echo 'This is a sample!';
} }
/** /**
* Get a config value of the plugin * Get a config value of the plugin
* *
* @access public * @access public
@@ -1363,7 +1372,7 @@ class serendipity_plugin {
} }
if (is_null($_res)) { if (is_null($_res)) {
$cbag = new serendipity_property_bag; $cbag = new serendipity_property_bag();
$this->introspect_config_item($name, $cbag); $this->introspect_config_item($name, $cbag);
$_res = $cbag->get('default'); $_res = $cbag->get('default');
unset($cbag); unset($cbag);
@@ -1374,7 +1383,7 @@ class serendipity_plugin {
return $_res; return $_res;
} }
/** /**
* Sets a configuration value for a plugin * Sets a configuration value for a plugin
* *
* @access public * @access public
@@ -1397,7 +1406,7 @@ class serendipity_plugin {
return serendipity_set_config_var($name, $dbvalue); return serendipity_set_config_var($name, $dbvalue);
} }
/** /**
* Garbage Collection * Garbage Collection
* *
* Called by serendipity after insertion of a config item. If you want to kick out certain * Called by serendipity after insertion of a config item. If you want to kick out certain
@@ -1413,7 +1422,7 @@ class serendipity_plugin {
return true; return true;
} }
/** /**
* Auto-Register dependencies of a plugin * Auto-Register dependencies of a plugin
* *
* This method evaluates the "dependencies" member variable to check which plugins need to be installed. * This method evaluates the "dependencies" member variable to check which plugins need to be installed.
@@ -1467,12 +1476,14 @@ class serendipity_plugin {
} }
} }
/* Events can be called on several occasions when s9y performs an action. /**
* Events can be called on several occasions when s9y performs an action.
* One or multiple plugin can be registered for each of those hooks. * One or multiple plugin can be registered for each of those hooks.
*/ */
class serendipity_event extends serendipity_plugin { class serendipity_event extends serendipity_plugin
{
/** /**
* The class constructor * The class constructor
* *
* Be sure to call this method from your derived classes constructors, * Be sure to call this method from your derived classes constructors,
@@ -1487,7 +1498,7 @@ class serendipity_event extends serendipity_plugin {
$this->instance = $instance; $this->instance = $instance;
} }
/** /**
* Gets a reference to an $entry / $eventData array pointer, interacting with Cache-Options * Gets a reference to an $entry / $eventData array pointer, interacting with Cache-Options
* *
* This function is used by specific event plugins that require to properly get a reference * This function is used by specific event plugins that require to properly get a reference
@@ -1499,7 +1510,8 @@ class serendipity_event extends serendipity_plugin {
* @param array The entry superarray to get the reference from * @param array The entry superarray to get the reference from
* @return array The value of the array for the fieldname (reference) * @return array The value of the array for the fieldname (reference)
*/ */
function &getFieldReference($fieldname = 'body', &$eventData) { function &getFieldReference($fieldname = 'body', &$eventData)
{
// Get a reference to a content field (body/extended) of // Get a reference to a content field (body/extended) of
// $entries input data. This is a unifying function because // $entries input data. This is a unifying function because
// several plugins are using similar fields. // several plugins are using similar fields.
@@ -1534,7 +1546,7 @@ class serendipity_event extends serendipity_plugin {
return $key; return $key;
} }
/** /**
* Main logic for making a plugin "listen" to an event * Main logic for making a plugin "listen" to an event
* *
* This method is called by the main plugin API for every event, that is executed. * This method is called by the main plugin API for every event, that is executed.
@@ -1547,7 +1559,8 @@ class serendipity_event extends serendipity_plugin {
* @param mixed Any additional data from the hook_event call * @param mixed Any additional data from the hook_event call
* @return true * @return true
*/ */
function event_hook($event, &$bag, &$eventData, $addData = null) { function event_hook($event, &$bag, &$eventData, $addData = null)
{
// Define event hooks here, if you want you plugin to execute those instead of being a sidebar item. // Define event hooks here, if you want you plugin to execute those instead of being a sidebar item.
// Look at external plugins 'serendipity_event_mailer' or 'serendipity_event_weblogping' for usage. // Look at external plugins 'serendipity_event_mailer' or 'serendipity_event_weblogping' for usage.
// Currently available events: // Currently available events:
@@ -1557,6 +1570,7 @@ class serendipity_event extends serendipity_plugin {
// frontend_comment [after displaying the "enter comment" dialog] // frontend_comment [after displaying the "enter comment" dialog]
return true; return true;
} }
} }
if (!defined('S9Y_FRAMEWORK_PLUGIN_INTERNAL')) { if (!defined('S9Y_FRAMEWORK_PLUGIN_INTERNAL')) {
+17 -17
View File
@@ -97,23 +97,23 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
$_args = $serendipity['uriArguments']; $_args = $serendipity['uriArguments'];
/* Attempt to locate hidden variables within the URI */ /* Attempt to locate hidden variables within the URI */
foreach ($_args as $k => $v){ foreach ($_args AS $k => $v){
if ($v == PATH_ARCHIVES) { if ($v == PATH_ARCHIVES) {
continue; continue;
} }
if ($v{0} == 'C') { /* category */ if ($v[0] == 'C') { /* category */
$cat = substr($v, 1); $cat = substr($v, 1);
if (is_numeric($cat)) { if (is_numeric($cat)) {
$serendipity['GET']['category'] = $cat; $serendipity['GET']['category'] = $cat;
unset($_args[$k]); unset($_args[$k]);
} }
} elseif ($v{0} == 'A') { /* Author */ } elseif ($v[0] == 'A') { /* Author */
$url_author = substr($v, 1); $url_author = substr($v, 1);
if (is_numeric($url_author)) { if (is_numeric($url_author)) {
$serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author; $serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author;
unset($_args[$k]); unset($_args[$k]);
} }
} elseif ($v{0} == 'W') { /* Week */ } elseif ($v[0] == 'W') { /* Week */
$week = substr($v, 1); $week = substr($v, 1);
if (is_numeric($week)) { if (is_numeric($week)) {
unset($_args[$k]); unset($_args[$k]);
@@ -121,7 +121,7 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
} elseif ($v == 'summary') { /* Summary */ } elseif ($v == 'summary') { /* Summary */
$serendipity['short_archives'] = true; $serendipity['short_archives'] = true;
unset($_args[$k]); unset($_args[$k]);
} elseif ($v{0} == 'P') { /* Page */ } elseif ($v[0] == 'P') { /* Page */
$page = substr($v, 1); $page = substr($v, 1);
if (is_numeric($page)) { if (is_numeric($page)) {
$serendipity['GET']['page'] = $page; $serendipity['GET']['page'] = $page;
@@ -358,18 +358,18 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
$serendipity['GET']['action'] = 'archives'; $serendipity['GET']['action'] = 'archives';
$_args = $serendipity['uriArguments']; $_args = $serendipity['uriArguments'];
/* Attempt to locate hidden variables within the URI */ /* Attempt to locate hidden variables within the URI */
foreach ($_args as $k => $v){ foreach ($_args AS $k => $v){
if ($v == PATH_ARCHIVE) { if ($v == PATH_ARCHIVE) {
continue; continue;
} }
if ($v{0} == 'C') { /* category */ if ($v[0] == 'C') { /* category */
$cat = substr($v, 1); $cat = substr($v, 1);
if (is_numeric($cat)) { if (is_numeric($cat)) {
$serendipity['GET']['category'] = $cat; $serendipity['GET']['category'] = $cat;
unset($_args[$k]); unset($_args[$k]);
} }
} elseif ($v{0} == 'A') { /* Author */ } elseif ($v[0] == 'A') { /* Author */
$url_author = substr($v, 1); $url_author = substr($v, 1);
if (is_numeric($url_author)) { if (is_numeric($url_author)) {
$serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author; $serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author;
@@ -402,18 +402,18 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
$_args = $serendipity['uriArguments']; $_args = $serendipity['uriArguments'];
/* Attempt to locate hidden variables within the URI */ /* Attempt to locate hidden variables within the URI */
foreach ($_args as $k => $v) { foreach ($_args AS $k => $v) {
if ($v == PATH_CATEGORIES) { if ($v == PATH_CATEGORIES) {
continue; continue;
} }
if ($v{0} == 'P') { /* Page */ if ($v[0] == 'P') { /* Page */
$page = substr($v, 1); $page = substr($v, 1);
if (is_numeric($page)) { if (is_numeric($page)) {
$serendipity['GET']['page'] = $page; $serendipity['GET']['page'] = $page;
unset($_args[$k]); unset($_args[$k]);
unset($serendipity['uriArguments'][$k]); unset($serendipity['uriArguments'][$k]);
} }
} elseif ($v{0} == 'A') { /* Author */ } elseif ($v[0] == 'A') { /* Author */
$url_author = substr($v, 1); $url_author = substr($v, 1);
if (is_numeric($url_author)) { if (is_numeric($url_author)) {
$serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author; $serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author;
@@ -455,8 +455,8 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
$_args = $serendipity['uriArguments']; $_args = $serendipity['uriArguments'];
/* Attempt to locate hidden variables within the URI */ /* Attempt to locate hidden variables within the URI */
foreach ($_args as $k => $v){ foreach ($_args AS $k => $v){
if ($v{0} == 'P') { /* Page */ if ($v[0] == 'P') { /* Page */
$page = substr($v, 1); $page = substr($v, 1);
if (is_numeric($page)) { if (is_numeric($page)) {
$serendipity['GET']['page'] = $page; $serendipity['GET']['page'] = $page;
@@ -489,12 +489,12 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
/* Attempt to locate hidden variables within the URI */ /* Attempt to locate hidden variables within the URI */
$search = array(); $search = array();
foreach ($_args as $k => $v){ foreach ($_args AS $k => $v){
if ($v == PATH_SEARCH) { if ($v == PATH_SEARCH) {
continue; continue;
} }
if ($v{0} == 'P') { /* Page */ if ($v[0] == 'P') { /* Page */
$page = substr($v, 1); $page = substr($v, 1);
if (is_numeric($page)) { if (is_numeric($page)) {
$serendipity['GET']['page'] = $page; $serendipity['GET']['page'] = $page;
@@ -523,12 +523,12 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
/* Attempt to locate hidden variables within the URI */ /* Attempt to locate hidden variables within the URI */
$search = array(); $search = array();
foreach ($_args as $k => $v){ foreach ($_args AS $k => $v){
if ($v == PATH_COMMENTS) { if ($v == PATH_COMMENTS) {
continue; continue;
} }
if ($v{0} == 'P') { /* Page */ if ($v[0] == 'P') { /* Page */
$page = substr($v, 1); $page = substr($v, 1);
if (is_numeric($page)) { if (is_numeric($page)) {
$serendipity['GET']['page'] = $page; $serendipity['GET']['page'] = $page;
+1 -1
View File
@@ -34,7 +34,7 @@ if (!$d) {
$const = array(); $const = array();
$const['checked'] = get_defined_constants(); $const['checked'] = get_defined_constants();
while(($file = readdir($d)) !== false) { while(($file = readdir($d)) !== false) {
if ($file{0} == '.') { if ($file[0] == '.') {
continue; continue;
} }
+1 -1
View File
@@ -34,7 +34,7 @@ if (!$d) {
$const = array(); $const = array();
$const['checked'] = get_defined_constants(); $const['checked'] = get_defined_constants();
while(($file = readdir($d)) !== false) { while(($file = readdir($d)) !== false) {
if ($file{0} == '.') { if ($file[0] == '.') {
continue; continue;
} }
@@ -50,9 +50,9 @@ class serendipity_event_weblogping extends serendipity_event
$manual_services = explode(',', $this->get_config('manual_services')); $manual_services = explode(',', $this->get_config('manual_services'));
if (is_array($manual_services)) { if (is_array($manual_services)) {
foreach($manual_services as $ms_index => $ms_name) { foreach($manual_services AS $ms_index => $ms_name) {
if (!empty($ms_name)) { if (!empty($ms_name)) {
$is_extended = ($ms_name{0} == '*' ? true : false); $is_extended = ($ms_name[0] == '*' ? true : false);
$ms_name = trim($ms_name, '*'); $ms_name = trim($ms_name, '*');
$ms_parts = explode('/', $ms_name); $ms_parts = explode('/', $ms_name);
$ms_host = $ms_parts[0]; $ms_host = $ms_parts[0];
@@ -151,7 +151,7 @@ class serendipity_event_weblogping extends serendipity_event
} }
// First cycle through list of services to remove superseding services which may have been checked // First cycle through list of services to remove superseding services which may have been checked
foreach ($this->services as $index => $service) { foreach ($this->services AS $index => $service) {
if (!empty($service['supersedes']) && isset($serendipity['POST']['announce_entries_' . $service['name']])) { if (!empty($service['supersedes']) && isset($serendipity['POST']['announce_entries_' . $service['name']])) {
$supersedes = explode(', ', $service['supersedes']); $supersedes = explode(', ', $service['supersedes']);
foreach($supersedes AS $sid => $servicename) { foreach($supersedes AS $sid => $servicename) {
@@ -160,7 +160,7 @@ class serendipity_event_weblogping extends serendipity_event
} }
} }
} }
foreach ($this->services as $index => $service) { foreach ($this->services AS $index => $service) {
if (isset($serendipity['POST']['announce_entries_' . $service['name']]) || (defined('SERENDIPITY_IS_XMLRPC') && serendipity_db_bool($this->get_config($service['name'])))) { if (isset($serendipity['POST']['announce_entries_' . $service['name']]) || (defined('SERENDIPITY_IS_XMLRPC') && serendipity_db_bool($this->get_config($service['name'])))) {
if (!defined('SERENDIPITY_IS_XMLRPC') || defined('SERENDIPITY_XMLRPC_VERBOSE')) { if (!defined('SERENDIPITY_IS_XMLRPC') || defined('SERENDIPITY_XMLRPC_VERBOSE')) {
printf(PLUGIN_EVENT_WEBLOGPING_SENDINGPING . '...', $service['host']); printf(PLUGIN_EVENT_WEBLOGPING_SENDINGPING . '...', $service['host']);