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:
@ -259,7 +259,7 @@ class HTTP_Request {
|
||||
$this->_timeout = null;
|
||||
$this->_response = null;
|
||||
|
||||
foreach ($params as $key => $value) {
|
||||
foreach ($params AS $key => $value) {
|
||||
$this->{'_' . $key} = $value;
|
||||
}
|
||||
|
||||
@ -483,7 +483,7 @@ class HTTP_Request {
|
||||
return call_user_func($callback, $value);
|
||||
} else {
|
||||
$map = array();
|
||||
foreach ($value as $k => $v) {
|
||||
foreach ($value AS $k => $v) {
|
||||
$map[$k] = $this->_arrayMapRecursive($callback, $v);
|
||||
}
|
||||
return $map;
|
||||
@ -507,7 +507,7 @@ class HTTP_Request {
|
||||
if (!is_array($fileName) && !is_readable($fileName)) {
|
||||
return PEAR::raiseError("File '{$fileName}' is not readable");
|
||||
} elseif (is_array($fileName)) {
|
||||
foreach ($fileName as $name) {
|
||||
foreach ($fileName AS $name) {
|
||||
if (!is_readable($name)) {
|
||||
return PEAR::raiseError("File '{$name}' is not readable");
|
||||
}
|
||||
@ -653,7 +653,7 @@ class HTTP_Request {
|
||||
$this->_url = &new Net_URL($redirect);
|
||||
$this->addHeader('Host', $this->_generateHostHeader());
|
||||
// Absolute path
|
||||
} elseif ($redirect{0} == '/') {
|
||||
} elseif ($redirect[0] == '/') {
|
||||
$this->_url->path = $redirect;
|
||||
|
||||
// Relative path
|
||||
@ -777,7 +777,7 @@ class HTTP_Request {
|
||||
|
||||
// Request Headers
|
||||
if (!empty($this->_requestHeaders)) {
|
||||
foreach ($this->_requestHeaders as $name => $value) {
|
||||
foreach ($this->_requestHeaders AS $name => $value) {
|
||||
$canonicalName = implode('-', array_map('ucfirst', explode('-', $name)));
|
||||
$request .= $canonicalName . ': ' . $value . "\r\n";
|
||||
}
|
||||
@ -805,20 +805,20 @@ class HTTP_Request {
|
||||
$postdata = '';
|
||||
if (!empty($this->_postData)) {
|
||||
$flatData = $this->_flattenArray('', $this->_postData);
|
||||
foreach ($flatData as $item) {
|
||||
foreach ($flatData AS $item) {
|
||||
$postdata .= '--' . $boundary . "\r\n";
|
||||
$postdata .= 'Content-Disposition: form-data; name="' . $item[0] . '"';
|
||||
$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'])) {
|
||||
$varname = $name . ($this->_useBrackets? '[]': '');
|
||||
} else {
|
||||
$varname = $name;
|
||||
$value['name'] = array($value['name']);
|
||||
}
|
||||
foreach ($value['name'] as $key => $filename) {
|
||||
foreach ($value['name'] AS $key => $filename) {
|
||||
$fp = fopen($filename, 'r');
|
||||
$data = fread($fp, filesize($filename));
|
||||
fclose($fp);
|
||||
@ -860,7 +860,7 @@ class HTTP_Request {
|
||||
return array(array($name, $values));
|
||||
} else {
|
||||
$ret = array();
|
||||
foreach ($values as $k => $v) {
|
||||
foreach ($values AS $k => $v) {
|
||||
if (empty($name)) {
|
||||
$newName = $k;
|
||||
} elseif ($this->_useBrackets) {
|
||||
@ -928,7 +928,7 @@ class HTTP_Request {
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -1183,7 +1183,7 @@ class HTTP_Response
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ class Net_URL
|
||||
// Default querystring
|
||||
$this->querystring = array();
|
||||
|
||||
foreach ($urlinfo as $key => $value) {
|
||||
foreach ($urlinfo AS $key => $value) {
|
||||
switch ($key) {
|
||||
case 'scheme':
|
||||
$this->protocol = $value;
|
||||
@ -181,7 +181,7 @@ class Net_URL
|
||||
break;
|
||||
|
||||
case 'path':
|
||||
if ($value{0} == '/') {
|
||||
if ($value[0] == '/') {
|
||||
$this->path = $value;
|
||||
} else {
|
||||
$path = dirname($this->path) == DIRECTORY_SEPARATOR ? '' : dirname($this->path);
|
||||
@ -272,9 +272,9 @@ class Net_URL
|
||||
function getQueryString()
|
||||
{
|
||||
if (!empty($this->querystring)) {
|
||||
foreach ($this->querystring as $name => $value) {
|
||||
foreach ($this->querystring AS $name => $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);
|
||||
}
|
||||
} 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);
|
||||
$return = array();
|
||||
|
||||
foreach ($parts as $part) {
|
||||
foreach ($parts AS $part) {
|
||||
if (strpos($part, '=') !== false) {
|
||||
$value = substr($part, strpos($part, '=') + 1);
|
||||
$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.
|
||||
// return everything as it was.
|
||||
if ($matches[2]{0} == '!') {
|
||||
if ($matches[2][0] == '!') {
|
||||
return $matches[1] . substr($matches[2], 1) . $matches[3];
|
||||
}
|
||||
|
||||
|
@ -56,7 +56,7 @@ class Text_Wiki_Render_Xhtml_Url extends Text_Wiki_Render {
|
||||
} else {
|
||||
|
||||
// allow for alternative targets on non-anchor HREFs
|
||||
if ($href{0} == '#') {
|
||||
if ($href[0] == '#') {
|
||||
$target = '';
|
||||
} else {
|
||||
$target = $this->getConf('target');
|
||||
|
@ -159,7 +159,7 @@ class Text_Wiki_Rule_wikilink extends Text_Wiki_Rule {
|
||||
{
|
||||
// when prefixed with !, it's explicitly not a wiki link.
|
||||
// return everything as it was.
|
||||
if ($matches[2]{0} == '!') {
|
||||
if ($matches[2][0] == '!') {
|
||||
return $matches[1] . substr($matches[2], 1) . $matches[3];
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
|
||||
$res = serendipity_fetchCategories('all');
|
||||
$ret = array(0 => NO_CATEGORY);
|
||||
if (is_array($res)) {
|
||||
foreach ($res as $v) {
|
||||
foreach ($res AS $v) {
|
||||
$ret[$v['categoryid']] = $v['category_name'];
|
||||
}
|
||||
}
|
||||
@ -112,7 +112,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
|
||||
|
||||
$i = 0;
|
||||
while (false !== ($dir = readdir($root))) {
|
||||
if ($dir{0} == '.') continue;
|
||||
if ($dir[0] == '.') continue;
|
||||
if (substr($dir, 0, 8) == 'standard') {
|
||||
printf(' · ' . CHECKING_DIRECTORY . '...<br />', $dir);
|
||||
$data = $this->unserialize($this->data['pivot_path'] . '/' . $dir . '/index-' . $dir . '.php');
|
||||
@ -124,7 +124,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach($data as $entry) {
|
||||
foreach($data AS $entry) {
|
||||
$entryid = str_pad($entry['code'], 5, '0', STR_PAD_LEFT);
|
||||
|
||||
if ($i >= $max_import) {
|
||||
@ -166,7 +166,7 @@ class Serendipity_Import_Pivot extends Serendipity_Import {
|
||||
$i++;
|
||||
|
||||
if (isset($entrydata['comments']) && count($entrydata['comments']) > 0) {
|
||||
foreach($entrydata['comments'] as $comment) {
|
||||
foreach($entrydata['comments'] AS $comment) {
|
||||
$comment = array('entry_id ' => $entry['id'],
|
||||
'parent_id' => 0,
|
||||
'timestamp' => $this->toTimestamp($comment['date']),
|
||||
|
@ -314,7 +314,7 @@ function serendipity_db_schema_import($query) {
|
||||
|
||||
$query = trim(str_replace($search, $replace, $query));
|
||||
|
||||
if ($query{0} == '@') {
|
||||
if ($query[0] == '@') {
|
||||
// Errors are expected to happen (like duplicate index creation)
|
||||
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
|
||||
} else {
|
||||
|
@ -283,7 +283,7 @@ function serendipity_db_schema_import($query) {
|
||||
}
|
||||
|
||||
$query = trim(str_replace($search, $replace, $query));
|
||||
if ($query{0} == '@') {
|
||||
if ($query[0] == '@') {
|
||||
// Errors are expected to happen (like duplicate index creation)
|
||||
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
|
||||
} else {
|
||||
|
@ -158,7 +158,7 @@ function serendipity_db_insert_id($table = '', $id = '') {
|
||||
$query = "SELECT currval('{$serendipity['dbPrefix']}{$table}_{$id}_seq'::text) AS {$id}";
|
||||
$res = $serendipity['dbConn']->prepare($query);
|
||||
$res->execute();
|
||||
foreach($res->fetchAll(PDO::FETCH_ASSOC) as $row) {
|
||||
foreach($res->fetchAll(PDO::FETCH_ASSOC) AS $row) {
|
||||
return $row[$id];
|
||||
}
|
||||
return $serendipity['dbConn']->lastInsertId();
|
||||
@ -224,7 +224,7 @@ function &serendipity_db_query($sql, $single = false, $result_type = "both", $re
|
||||
$n = 0;
|
||||
|
||||
$rows = array();
|
||||
foreach($serendipity['dbSth']->fetchAll($result_type) as $row) {
|
||||
foreach($serendipity['dbSth']->fetchAll($result_type) AS $row) {
|
||||
if (!empty($assocKey)) {
|
||||
// You can fetch a key-associated array via the two function parameters assocKey and assocVal
|
||||
if (empty($assocVal)) {
|
||||
@ -266,7 +266,7 @@ function serendipity_db_schema_import($query) {
|
||||
}
|
||||
|
||||
$query = trim(str_replace($search, $replace, $query));
|
||||
if ($query{0} == '@') {
|
||||
if ($query[0] == '@') {
|
||||
// Errors are expected to happen (like duplicate index creation)
|
||||
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
|
||||
} else {
|
||||
|
@ -279,7 +279,7 @@ function serendipity_db_schema_import($query) {
|
||||
}
|
||||
|
||||
$query = trim(str_replace($search, $replace, $query));
|
||||
if ($query{0} == '@') {
|
||||
if ($query[0] == '@') {
|
||||
// Errors are expected to happen (like duplicate index creation)
|
||||
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
|
||||
} else {
|
||||
|
@ -149,7 +149,7 @@ function serendipity_db_sqlite_fetch_array($res, $type = SQLITE_BOTH)
|
||||
}
|
||||
|
||||
/* 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,
|
||||
// the sqlite extension will give us key indizes 'a.id' and 'b.text'
|
||||
// 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));
|
||||
if ($query{0} == '@') {
|
||||
if ($query[0] == '@') {
|
||||
// Errors are expected to happen (like duplicate index creation)
|
||||
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
|
||||
} else {
|
||||
|
@ -148,7 +148,7 @@ function serendipity_db_sqlite_fetch_array($res, $type = SQLITE3_BOTH)
|
||||
}
|
||||
|
||||
/* 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,
|
||||
// the sqlite extension will give us key indizes 'a.id' and 'b.text'
|
||||
// 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) {
|
||||
$i = 0;
|
||||
foreach($row as $k => $v) {
|
||||
foreach($row AS $k => $v) {
|
||||
$frow[$i] = $v;
|
||||
$i++;
|
||||
}
|
||||
@ -350,7 +350,7 @@ function serendipity_db_schema_import($query)
|
||||
}
|
||||
|
||||
$query = trim(str_replace($search, $replace, $query));
|
||||
if ($query{0} == '@') {
|
||||
if ($query[0] == '@') {
|
||||
// Errors are expected to happen (like duplicate index creation)
|
||||
return serendipity_db_query(substr($query, 1), false, 'both', false, false, false, true);
|
||||
} else {
|
||||
|
@ -288,7 +288,7 @@ function serendipity_updateImageInDatabase($updates, $id) {
|
||||
|
||||
$i=0;
|
||||
if (sizeof($updates) > 0) {
|
||||
foreach ($updates as $k => $v) {
|
||||
foreach ($updates AS $k => $v) {
|
||||
$q[] = $k ." = '" . serendipity_db_escape_string($v) . "'";
|
||||
}
|
||||
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);
|
||||
foreach($dThumb as $thumb) {
|
||||
foreach($dThumb AS $thumb) {
|
||||
$dfnThumb = $file['path'] . $file['name'] . (!empty($thumb['fthumb']) ? '.' . $thumb['fthumb'] : '') . '.' . $file['extension'];
|
||||
$dfThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $dfnThumb;
|
||||
|
||||
@ -385,7 +385,7 @@ function serendipity_fetchImages($group = false, $start = 0, $end = 20, $images
|
||||
}
|
||||
@closedir($dir);
|
||||
sort($aTempArray);
|
||||
foreach($aTempArray as $f) {
|
||||
foreach($aTempArray AS $f) {
|
||||
if (strpos($f, $serendipity['thumbSuffix']) !== false) {
|
||||
// This is a s9y thumbnail, skip it.
|
||||
continue;
|
||||
@ -777,7 +777,7 @@ function serendipity_generateThumbs() {
|
||||
$i=0;
|
||||
$serendipity['imageList'] = serendipity_fetchImagesFromDatabase(0, 0, $total);
|
||||
|
||||
foreach ($serendipity['imageList'] as $k => $file) {
|
||||
foreach ($serendipity['imageList'] AS $k => $file) {
|
||||
$is_image = serendipity_isImage($file);
|
||||
|
||||
if ($is_image && !$file['hotlink']) {
|
||||
@ -1507,14 +1507,14 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa
|
||||
$dprops = $keywords = array();
|
||||
if ($serendipity['parseMediaOverview']) {
|
||||
$ids = array();
|
||||
foreach ($serendipity['imageList'] as $k => $file) {
|
||||
foreach ($serendipity['imageList'] AS $k => $file) {
|
||||
$ids[] = $file['id'];
|
||||
}
|
||||
$allprops =& serendipity_fetchMediaProperties($ids);
|
||||
}
|
||||
|
||||
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'))) {
|
||||
// This is a fail-safe continue. Basically a non-matching file should already be filtered in SQL.
|
||||
continue;
|
||||
@ -2789,23 +2789,23 @@ function serendipity_getMediaRaw($filename) {
|
||||
|
||||
$filedata = fread($f, 2);
|
||||
|
||||
if ($filedata{0} != "\xFF") {
|
||||
if ($filedata[0] != "\xFF") {
|
||||
fclose($f);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
while (!$abort && !feof($f) && $filedata{1} != "\xD9") {
|
||||
if ((ord($filedata{1}) < 0xD0) || (ord($filedata{1}) > 0xD7)) {
|
||||
while (!$abort && !feof($f) && $filedata[1] != "\xD9") {
|
||||
if ((ord($filedata[1]) < 0xD0) || (ord($filedata[1]) > 0xD7)) {
|
||||
$ordret = fread($f, 2);
|
||||
$ordstart = ftell($f);
|
||||
$int = unpack('nsize', $ordret);
|
||||
|
||||
if (ord($filedata{1}) == 225) {
|
||||
if (ord($filedata[1]) == 225) {
|
||||
$content = fread($f, $int['size'] - 2);
|
||||
|
||||
if (substr($content, 0, 24) == 'http://ns.adobe.com/xap/') {
|
||||
$ret[] = array(
|
||||
'ord' => ord($filedata{1}),
|
||||
'ord' => ord($filedata[1]),
|
||||
'ordstart' => $ordstart,
|
||||
'int' => $int,
|
||||
'content' => $content
|
||||
@ -2816,11 +2816,11 @@ function serendipity_getMediaRaw($filename) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($filedata{1} == "\xDA") {
|
||||
if ($filedata[1] == "\xDA") {
|
||||
$abort = true;
|
||||
} else {
|
||||
$filedata = fread($f, 2);
|
||||
if ($filedata{0} != "\xFF") {
|
||||
if ($filedata[0] != "\xFF") {
|
||||
fclose($f);
|
||||
return $ret;
|
||||
}
|
||||
@ -3180,7 +3180,7 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i
|
||||
// Rename file
|
||||
rename($renameValues[0]['from'], $renameValues[0]['to']);
|
||||
|
||||
foreach($renameValues as $renameData) {
|
||||
foreach($renameValues AS $renameData) {
|
||||
// Rename thumbnail
|
||||
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']);
|
||||
@ -3232,7 +3232,7 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i
|
||||
// Rename file
|
||||
rename($renameValues[0]['from'], $renameValues[0]['to']);
|
||||
|
||||
foreach($renameValues as $renameData) {
|
||||
foreach($renameValues AS $renameData) {
|
||||
// Rename thumbnail
|
||||
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']);
|
||||
|
@ -34,7 +34,8 @@ if (!defined('S9Y_FRAMEWORK_FUNCTIONS')) {
|
||||
* The user can configure instances of plugins.
|
||||
*/
|
||||
|
||||
class serendipity_plugin_api {
|
||||
class serendipity_plugin_api
|
||||
{
|
||||
|
||||
/**
|
||||
* Register the default list of plugins for installation.
|
||||
@ -134,7 +135,7 @@ class serendipity_plugin_api {
|
||||
/* Check for multiple dependencies */
|
||||
$plugin =& serendipity_plugin_api::load_plugin($key, $authorid, $pluginPath);
|
||||
if (is_object($plugin)) {
|
||||
$bag = new serendipity_property_bag;
|
||||
$bag = new serendipity_property_bag();
|
||||
$plugin->introspect($bag);
|
||||
serendipity_plugin_api::get_event_plugins(false, true); // Refresh static list of plugins to allow execution of added plugin
|
||||
$plugin->register_dependencies(false, $authorid);
|
||||
@ -160,7 +161,7 @@ class serendipity_plugin_api {
|
||||
|
||||
$plugin =& serendipity_plugin_api::load_plugin($plugin_instance_id);
|
||||
if (is_object($plugin)) {
|
||||
$bag = new serendipity_property_bag;
|
||||
$bag = new serendipity_property_bag();
|
||||
$plugin->introspect($bag);
|
||||
$plugin->uninstall($bag);
|
||||
}
|
||||
@ -214,7 +215,7 @@ class serendipity_plugin_api {
|
||||
|
||||
/* built-in classes first */
|
||||
$cls = get_declared_classes();
|
||||
foreach ($cls as $class_name) {
|
||||
foreach ($cls AS $class_name) {
|
||||
if (strncmp($class_name, 'serendipity_', 6)) {
|
||||
continue;
|
||||
}
|
||||
@ -260,11 +261,12 @@ class serendipity_plugin_api {
|
||||
* @param string The maindir where we started searching from [for recursive use]
|
||||
* @return
|
||||
*/
|
||||
function traverse_plugin_dir($ppath, &$classes, $event_only, $maindir = '') {
|
||||
function traverse_plugin_dir($ppath, &$classes, $event_only, $maindir = '')
|
||||
{
|
||||
$d = @opendir($ppath);
|
||||
if ($d) {
|
||||
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;
|
||||
}
|
||||
|
||||
@ -277,7 +279,7 @@ class serendipity_plugin_api {
|
||||
$final_loop = false;
|
||||
while (($subf = readdir($subd)) !== false) {
|
||||
|
||||
if ($subf{0} == '.' || $subf == 'CVS') {
|
||||
if ($subf[0] == '.' || $subf == 'CVS') {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -329,14 +331,13 @@ class serendipity_plugin_api {
|
||||
* @param string The filter for plugins (left|right|hide|event|eventh)
|
||||
* @return array The list of plugins
|
||||
*/
|
||||
function get_installed_plugins($filter = '*') {
|
||||
function get_installed_plugins($filter = '*')
|
||||
{
|
||||
$plugins = serendipity_plugin_api::enum_plugins($filter);
|
||||
$res = array();
|
||||
foreach ( (array)$plugins as $plugin ) {
|
||||
foreach ( (array)$plugins AS $plugin ) {
|
||||
list($class_name) = explode(':', $plugin['name']);
|
||||
if ($class_name{0} == '@') {
|
||||
$class_name = substr($class_name, 1);
|
||||
}
|
||||
$class_name = ltrim($class_name, '@');
|
||||
$res[] = $class_name;
|
||||
}
|
||||
return $res;
|
||||
@ -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
|
||||
* @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;
|
||||
|
||||
if (empty($pluginPath)) {
|
||||
@ -444,7 +446,7 @@ class serendipity_plugin_api {
|
||||
|
||||
// First try the local path, and then (if existing) a shared library repository ...
|
||||
// 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';
|
||||
} elseif (file_exists($serendipity['serendipityPath'] . $pluginFile)) {
|
||||
$file = $serendipity['serendipityPath'] . $pluginFile;
|
||||
@ -463,16 +465,10 @@ class serendipity_plugin_api {
|
||||
* @param boolean If true, the plugin is a internal plugin (prefixed with '@')
|
||||
* @return string The classname of the plugin
|
||||
*/
|
||||
function getClassByInstanceID($instance_id, &$is_internal) {
|
||||
function getClassByInstanceID($instance_id, &$is_internal)
|
||||
{
|
||||
$instance = explode(':', $instance_id);
|
||||
$name = $instance[0];
|
||||
|
||||
if ($name{0} == '@') {
|
||||
$class_name = substr($name, 1);
|
||||
} else {
|
||||
$class_name =& $name;
|
||||
}
|
||||
|
||||
$class_name = ltrim($instance[0], '@');
|
||||
return $class_name;
|
||||
}
|
||||
|
||||
@ -486,7 +482,8 @@ class serendipity_plugin_api {
|
||||
* @return string Returns the filename of a plugin to load
|
||||
*/
|
||||
/* Probes for the plugin filename */
|
||||
function probePlugin($instance_id, &$class_name, &$pluginPath) {
|
||||
function probePlugin($instance_id, &$class_name, &$pluginPath)
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
$filename = false;
|
||||
@ -516,7 +513,8 @@ class serendipity_plugin_api {
|
||||
|
||||
if (empty($filename)) {
|
||||
$serendipity['debug']['pluginload'][] = "No valid path/filename found. Aborting.";
|
||||
return false;
|
||||
$retval = false;
|
||||
return $retval;
|
||||
}
|
||||
}
|
||||
|
||||
@ -534,7 +532,8 @@ class serendipity_plugin_api {
|
||||
* @param string The filename of a plugin (can be autodetected)
|
||||
* @return
|
||||
*/
|
||||
function &load_plugin($instance_id, $authorid = null, $pluginPath = '', $pluginFile = null) {
|
||||
function &load_plugin($instance_id, $authorid = null, $pluginPath = '', $pluginFile = null)
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
if ($pluginFile === null) {
|
||||
@ -554,8 +553,7 @@ class serendipity_plugin_api {
|
||||
|
||||
if (!class_exists($class_name)) {
|
||||
$serendipity['debug']['pluginload'][] = "Classname $class_name still does not exist. Aborting.";
|
||||
$retval = false;
|
||||
return $retval;
|
||||
return false;
|
||||
}
|
||||
|
||||
// $serendipity['debug']['pluginload'][] = "Returning new $class_name($instance_id)";
|
||||
@ -582,7 +580,8 @@ class serendipity_plugin_api {
|
||||
* @param type The type of the plugin (local|spartacus|...)
|
||||
* @return array Information about the plugin
|
||||
*/
|
||||
function &getPluginInfo(&$pluginFile, &$class_data, $type) {
|
||||
function &getPluginInfo(&$pluginFile, &$class_data, $type)
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
static $pluginlist = null;
|
||||
@ -613,7 +612,6 @@ class serendipity_plugin_api {
|
||||
$data = $pluginlist[$pluginFile];
|
||||
if ((int) filemtime($pluginFile) == (int) $data['last_modified']) {
|
||||
$data['stackable'] = serendipity_db_bool($data['stackable']);
|
||||
|
||||
$plugin = $data;
|
||||
return $plugin;
|
||||
}
|
||||
@ -635,7 +633,8 @@ class serendipity_plugin_api {
|
||||
* @param string The location/type of a plugin (local|spartacus)
|
||||
* @return
|
||||
*/
|
||||
function &setPluginInfo(&$plugin, &$pluginFile, &$bag, &$class_data, $pluginlocation = 'local') {
|
||||
function &setPluginInfo(&$plugin, &$pluginFile, &$bag, &$class_data, $pluginlocation = 'local')
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
static $dbfields = array(
|
||||
@ -829,7 +828,7 @@ class serendipity_plugin_api {
|
||||
$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']);
|
||||
if (is_object($plugin)) {
|
||||
$class = get_class($plugin);
|
||||
@ -841,7 +840,7 @@ class serendipity_plugin_api {
|
||||
$content = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
if ($show_plugin !== FALSE) {
|
||||
if ($show_plugin !== false) {
|
||||
$pluginData[] = array('side' => $side,
|
||||
'class' => $class,
|
||||
'title' => $title,
|
||||
@ -881,8 +880,8 @@ class serendipity_plugin_api {
|
||||
// Preferred way of fetching a plugins title
|
||||
$title = &$plugin->title;
|
||||
} else {
|
||||
$ne = (isset($serendipity['no_events']) && $serendipity['no_events'] ? TRUE : FALSE);
|
||||
$serendipity['no_events'] = TRUE;
|
||||
$ne = (isset($serendipity['no_events']) && $serendipity['no_events'] ? true : false);
|
||||
$serendipity['no_events'] = true;
|
||||
ob_start();
|
||||
$plugin->generate_content($title);
|
||||
ob_end_clean();
|
||||
@ -909,7 +908,8 @@ class serendipity_plugin_api {
|
||||
* @param string Name of a plugin
|
||||
* @return boolean
|
||||
*/
|
||||
function is_event_plugin($name) {
|
||||
function is_event_plugin($name)
|
||||
{
|
||||
return (strstr($name, '_event_'));
|
||||
}
|
||||
|
||||
@ -921,7 +921,8 @@ class serendipity_plugin_api {
|
||||
* @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
|
||||
*/
|
||||
function &get_event_plugins($getInstance = false, $refresh = false) {
|
||||
function &get_event_plugins($getInstance = false, $refresh = false)
|
||||
{
|
||||
static $event_plugins;
|
||||
static $false = false;
|
||||
|
||||
@ -974,7 +975,8 @@ class serendipity_plugin_api {
|
||||
* @param mixed May contain any type of variables that are passed to an event plugin
|
||||
* @return true
|
||||
*/
|
||||
function hook_event($event_name, &$eventData, $addData = null) {
|
||||
function hook_event($event_name, &$eventData, $addData = null)
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
// Can be bypassed globally by setting $serendipity['no_events'] = TRUE;
|
||||
@ -1026,7 +1028,8 @@ class serendipity_plugin_api {
|
||||
* @param string A name (may contain wildcards) of a plugin class to check
|
||||
* @return boolean True if a plugin was found
|
||||
*/
|
||||
function exists($instance_id) {
|
||||
function exists($instance_id)
|
||||
{
|
||||
global $serendipity;
|
||||
|
||||
if (!strstr($instance_id, ':')) {
|
||||
@ -1051,7 +1054,8 @@ class serendipity_plugin_api {
|
||||
* @param boolean Indicates if the plugin is an event plugin
|
||||
* @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) {
|
||||
$side = 'event';
|
||||
} else {
|
||||
@ -1069,8 +1073,12 @@ 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
|
||||
* @var array property storage container.
|
||||
@ -1117,16 +1125,16 @@ class serendipity_property_bag {
|
||||
*/
|
||||
function is_set($name)
|
||||
{
|
||||
if (isset($this->properties[$name])) {
|
||||
return true;
|
||||
return isset($this->properties[$name]);
|
||||
}
|
||||
|
||||
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 $protected = false;
|
||||
var $wrap_class = 'serendipitySideBarItem';
|
||||
@ -1218,7 +1226,7 @@ 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;
|
||||
}
|
||||
@ -1257,7 +1265,8 @@ class serendipity_plugin {
|
||||
* @param value The value of a config item
|
||||
* @return
|
||||
*/
|
||||
function validate($config_item, &$cbag, &$value) {
|
||||
function validate($config_item, &$cbag, &$value)
|
||||
{
|
||||
static $pattern_mail = '([\.\-\+~@_0-9a-z]+?)';
|
||||
static $pattern_url = '([@!=~\?:&;0-9a-z#\.\-_\/]+?)';
|
||||
|
||||
@ -1363,7 +1372,7 @@ class serendipity_plugin {
|
||||
}
|
||||
|
||||
if (is_null($_res)) {
|
||||
$cbag = new serendipity_property_bag;
|
||||
$cbag = new serendipity_property_bag();
|
||||
$this->introspect_config_item($name, $cbag);
|
||||
$_res = $cbag->get('default');
|
||||
unset($cbag);
|
||||
@ -1467,10 +1476,12 @@ 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.
|
||||
*/
|
||||
class serendipity_event extends serendipity_plugin {
|
||||
class serendipity_event extends serendipity_plugin
|
||||
{
|
||||
|
||||
/**
|
||||
* The class constructor
|
||||
@ -1499,7 +1510,8 @@ class serendipity_event extends serendipity_plugin {
|
||||
* @param array The entry superarray to get the reference from
|
||||
* @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
|
||||
// $entries input data. This is a unifying function because
|
||||
// several plugins are using similar fields.
|
||||
@ -1547,7 +1559,8 @@ class serendipity_event extends serendipity_plugin {
|
||||
* @param mixed Any additional data from the hook_event call
|
||||
* @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.
|
||||
// Look at external plugins 'serendipity_event_mailer' or 'serendipity_event_weblogping' for usage.
|
||||
// Currently available events:
|
||||
@ -1557,6 +1570,7 @@ class serendipity_event extends serendipity_plugin {
|
||||
// frontend_comment [after displaying the "enter comment" dialog]
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!defined('S9Y_FRAMEWORK_PLUGIN_INTERNAL')) {
|
||||
|
34
index.php
34
index.php
@ -97,23 +97,23 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
|
||||
$_args = $serendipity['uriArguments'];
|
||||
|
||||
/* Attempt to locate hidden variables within the URI */
|
||||
foreach ($_args as $k => $v){
|
||||
foreach ($_args AS $k => $v){
|
||||
if ($v == PATH_ARCHIVES) {
|
||||
continue;
|
||||
}
|
||||
if ($v{0} == 'C') { /* category */
|
||||
if ($v[0] == 'C') { /* category */
|
||||
$cat = substr($v, 1);
|
||||
if (is_numeric($cat)) {
|
||||
$serendipity['GET']['category'] = $cat;
|
||||
unset($_args[$k]);
|
||||
}
|
||||
} elseif ($v{0} == 'A') { /* Author */
|
||||
} elseif ($v[0] == 'A') { /* Author */
|
||||
$url_author = substr($v, 1);
|
||||
if (is_numeric($url_author)) {
|
||||
$serendipity['GET']['viewAuthor'] = $_GET['viewAuthor'] = (int)$url_author;
|
||||
unset($_args[$k]);
|
||||
}
|
||||
} elseif ($v{0} == 'W') { /* Week */
|
||||
} elseif ($v[0] == 'W') { /* Week */
|
||||
$week = substr($v, 1);
|
||||
if (is_numeric($week)) {
|
||||
unset($_args[$k]);
|
||||
@ -121,7 +121,7 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
|
||||
} elseif ($v == 'summary') { /* Summary */
|
||||
$serendipity['short_archives'] = true;
|
||||
unset($_args[$k]);
|
||||
} elseif ($v{0} == 'P') { /* Page */
|
||||
} elseif ($v[0] == 'P') { /* Page */
|
||||
$page = substr($v, 1);
|
||||
if (is_numeric($page)) {
|
||||
$serendipity['GET']['page'] = $page;
|
||||
@ -358,18 +358,18 @@ if (preg_match(PAT_ARCHIVES, $uri, $matches) || isset($serendipity['GET']['range
|
||||
$serendipity['GET']['action'] = 'archives';
|
||||
$_args = $serendipity['uriArguments'];
|
||||
/* Attempt to locate hidden variables within the URI */
|
||||
foreach ($_args as $k => $v){
|
||||
foreach ($_args AS $k => $v){
|
||||
if ($v == PATH_ARCHIVE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($v{0} == 'C') { /* category */
|
||||
if ($v[0] == 'C') { /* category */
|
||||
$cat = substr($v, 1);
|
||||
if (is_numeric($cat)) {
|
||||
$serendipity['GET']['category'] = $cat;
|
||||
unset($_args[$k]);
|
||||
}
|
||||
} elseif ($v{0} == 'A') { /* Author */
|
||||
} elseif ($v[0] == 'A') { /* Author */
|
||||
$url_author = substr($v, 1);
|
||||
if (is_numeric($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'];
|
||||
|
||||
/* Attempt to locate hidden variables within the URI */
|
||||
foreach ($_args as $k => $v) {
|
||||
foreach ($_args AS $k => $v) {
|
||||
if ($v == PATH_CATEGORIES) {
|
||||
continue;
|
||||
}
|
||||
if ($v{0} == 'P') { /* Page */
|
||||
if ($v[0] == 'P') { /* Page */
|
||||
$page = substr($v, 1);
|
||||
if (is_numeric($page)) {
|
||||
$serendipity['GET']['page'] = $page;
|
||||
unset($_args[$k]);
|
||||
unset($serendipity['uriArguments'][$k]);
|
||||
}
|
||||
} elseif ($v{0} == 'A') { /* Author */
|
||||
} elseif ($v[0] == 'A') { /* Author */
|
||||
$url_author = substr($v, 1);
|
||||
if (is_numeric($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'];
|
||||
|
||||
/* Attempt to locate hidden variables within the URI */
|
||||
foreach ($_args as $k => $v){
|
||||
if ($v{0} == 'P') { /* Page */
|
||||
foreach ($_args AS $k => $v){
|
||||
if ($v[0] == 'P') { /* Page */
|
||||
$page = substr($v, 1);
|
||||
if (is_numeric($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 */
|
||||
$search = array();
|
||||
foreach ($_args as $k => $v){
|
||||
foreach ($_args AS $k => $v){
|
||||
if ($v == PATH_SEARCH) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($v{0} == 'P') { /* Page */
|
||||
if ($v[0] == 'P') { /* Page */
|
||||
$page = substr($v, 1);
|
||||
if (is_numeric($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 */
|
||||
$search = array();
|
||||
foreach ($_args as $k => $v){
|
||||
foreach ($_args AS $k => $v){
|
||||
if ($v == PATH_COMMENTS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($v{0} == 'P') { /* Page */
|
||||
if ($v[0] == 'P') { /* Page */
|
||||
$page = substr($v, 1);
|
||||
if (is_numeric($page)) {
|
||||
$serendipity['GET']['page'] = $page;
|
||||
|
@ -34,7 +34,7 @@ if (!$d) {
|
||||
$const = array();
|
||||
$const['checked'] = get_defined_constants();
|
||||
while(($file = readdir($d)) !== false) {
|
||||
if ($file{0} == '.') {
|
||||
if ($file[0] == '.') {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ if (!$d) {
|
||||
$const = array();
|
||||
$const['checked'] = get_defined_constants();
|
||||
while(($file = readdir($d)) !== false) {
|
||||
if ($file{0} == '.') {
|
||||
if ($file[0] == '.') {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -50,9 +50,9 @@ class serendipity_event_weblogping extends serendipity_event
|
||||
|
||||
$manual_services = explode(',', $this->get_config('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)) {
|
||||
$is_extended = ($ms_name{0} == '*' ? true : false);
|
||||
$is_extended = ($ms_name[0] == '*' ? true : false);
|
||||
$ms_name = trim($ms_name, '*');
|
||||
$ms_parts = explode('/', $ms_name);
|
||||
$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
|
||||
foreach ($this->services as $index => $service) {
|
||||
foreach ($this->services AS $index => $service) {
|
||||
if (!empty($service['supersedes']) && isset($serendipity['POST']['announce_entries_' . $service['name']])) {
|
||||
$supersedes = explode(', ', $service['supersedes']);
|
||||
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 (!defined('SERENDIPITY_IS_XMLRPC') || defined('SERENDIPITY_XMLRPC_VERBOSE')) {
|
||||
printf(PLUGIN_EVENT_WEBLOGPING_SENDINGPING . '...', $service['host']);
|
||||
|
Reference in New Issue
Block a user