aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2010-12-20 19:38:34 -0800
committerFriendika <info@friendika.com>2010-12-20 19:38:34 -0800
commitddec422de6707809aceb541e1191073b43aec18a (patch)
treeda79ea09482cf8984c7d9e02076dd2e4f0e8e65e
parent1a9f8eacc4bc2b7a67894018b63fc7b0864d760a (diff)
downloadvolse-hubzilla-ddec422de6707809aceb541e1191073b43aec18a.tar.gz
volse-hubzilla-ddec422de6707809aceb541e1191073b43aec18a.tar.bz2
volse-hubzilla-ddec422de6707809aceb541e1191073b43aec18a.zip
begin plugin api
-rw-r--r--boot.php60
-rw-r--r--database.sql8
-rw-r--r--mod/parse_url.php5
-rw-r--r--update.php10
-rw-r--r--view/en/profile_edit.tpl2
5 files changed, 80 insertions, 5 deletions
diff --git a/boot.php b/boot.php
index 39bd34696..9cc4d0f34 100644
--- a/boot.php
+++ b/boot.php
@@ -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">&hearts;</span> (Marital) Status: </label>
$marital
</div>
<label id="profile-edit-with-label" for="profile-edit-with" > Who: (if applicable) </label>