diff options
author | Friendika <info@friendika.com> | 2010-12-20 19:38:34 -0800 |
---|---|---|
committer | Friendika <info@friendika.com> | 2010-12-20 19:38:34 -0800 |
commit | ddec422de6707809aceb541e1191073b43aec18a (patch) | |
tree | da79ea09482cf8984c7d9e02076dd2e4f0e8e65e | |
parent | 1a9f8eacc4bc2b7a67894018b63fc7b0864d760a (diff) | |
download | volse-hubzilla-ddec422de6707809aceb541e1191073b43aec18a.tar.gz volse-hubzilla-ddec422de6707809aceb541e1191073b43aec18a.tar.bz2 volse-hubzilla-ddec422de6707809aceb541e1191073b43aec18a.zip |
begin plugin api
-rw-r--r-- | boot.php | 60 | ||||
-rw-r--r-- | database.sql | 8 | ||||
-rw-r--r-- | mod/parse_url.php | 5 | ||||
-rw-r--r-- | update.php | 10 | ||||
-rw-r--r-- | view/en/profile_edit.tpl | 2 |
5 files changed, 80 insertions, 5 deletions
@@ -2,7 +2,7 @@ set_time_limit(0); -define ( 'BUILD_ID', 1026 ); +define ( 'BUILD_ID', 1027 ); define ( 'DFRN_PROTOCOL_VERSION', '2.0' ); define ( 'EOL', "<br />\r\n" ); @@ -174,8 +174,10 @@ class App { public $pager; public $strings; public $path; + public $hooks; public $interactive = true; + private $scheme; private $hostname; private $baseurl; @@ -1945,4 +1947,58 @@ function profile_sidebar($profile) { )); return $o; -}}
\ No newline at end of file +}} + + +if(! function_exists('register_hook')) { +function register_hook($hook,$file,$function) { + + $r = q("INSERT INTO `hook` (`hook`, `file`, `function`) VALUES ( '%s', '%s', '%s' ) ", + dbesc($hook), + dbesc($file), + dbesc($function) + ); + return $r; +}} + +if(! function_exists('unregister_hook')) { +function unregister_hook($hook,$file,$function) { + + $r = q("DELETE FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `function` = '%s' LIMIT 1", + dbesc($hook), + dbesc($file), + dbesc($function) + ); + return $r; +}} + + +if(! function_exists('load_hooks')) { +function load_hooks() { + $a = get_app(); + $r = q("SELECT * FROM `hook` WHERE 1"); + if(count($r)) { + foreach($r as $rr) { + $a->hooks[] = array($rr['hook'], $rr['file'], $rr['function']); + } + } +}} + + +if(! function_exists('call_hooks')) { +function call_hooks($name, $data = null) { + $a = get_app(); + + if(count($a->hooks)) { + foreach($a->hooks as $hook) { + if($hook[0] === $name) { + @require_once($hook[1]); + if(function_exists($hook[2])) { + $func = $hook[2]; + $func($a,$data); + } + } + } + } +}} + diff --git a/database.sql b/database.sql index 10bb417ac..08902d893 100644 --- a/database.sql +++ b/database.sql @@ -433,3 +433,11 @@ CREATE TABLE IF NOT EXISTS `pconfig` ( ) ENGINE = MYISAM DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `hook` ( +`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , +`hook` CHAR( 255 ) NOT NULL , +`file` CHAR( 255 ) NOT NULL , +`function` CHAR( 255 ) NOT NULL +) ENGINE = MYISAM DEFAULT CHARSET=utf8; + + diff --git a/mod/parse_url.php b/mod/parse_url.php index acfe624cb..1561eb8a3 100644 --- a/mod/parse_url.php +++ b/mod/parse_url.php @@ -2,6 +2,7 @@ require_once('library/HTML5/Parser.php'); + function parse_url_content(&$a) { $url = trim($_GET['url']); @@ -16,13 +17,13 @@ function parse_url_content(&$a) { echo ''; killme(); } - + if(! $s) { echo sprintf($template,$url,$url,''); killme(); } - $dom = HTML5_Parser::parse($s); + $dom = @HTML5_Parser::parse($s); if(! $dom) return $ret; diff --git a/update.php b/update.php index 5b4d99603..81c5f0aea 100644 --- a/update.php +++ b/update.php @@ -251,3 +251,13 @@ function update_1025() { q("ALTER TABLE `user` ADD `maxreq` int(11) NOT NULL DEFAULT '10' AFTER `pwdreset` "); } +function update_1026() { + q("CREATE TABLE IF NOT EXISTS `hook` ( + `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , + `hook` CHAR( 255 ) NOT NULL , + `file` CHAR( 255 ) NOT NULL , + `function` CHAR( 255 ) NOT NULL + ) ENGINE = MYISAM DEFAULT CHARSET=utf8 "); +} + + diff --git a/view/en/profile_edit.tpl b/view/en/profile_edit.tpl index ec6cf260a..50227b7f3 100644 --- a/view/en/profile_edit.tpl +++ b/view/en/profile_edit.tpl @@ -94,7 +94,7 @@ $hide_friends <div class="profile-edit-submit-end"></div> <div id="profile-edit-marital-wrapper" > -<label id="profile-edit-marital-label" for="profile-edit-marital" >Marital Status: </label> +<label id="profile-edit-marital-label" for="profile-edit-marital" ><span class="heart">♥</span> (Marital) Status: </label> $marital </div> <label id="profile-edit-with-label" for="profile-edit-with" > Who: (if applicable) </label> |