]> git.mxchange.org Git - friendica.git/blobdiff - include/bbcode.php
Doxygen structure added
[friendica.git] / include / bbcode.php
index 6a44e19ec446e87bcef9b83f53cab95d4af85299..8545b2ff8253c9b29c9b71d87b8003a383623e3b 100644 (file)
@@ -311,6 +311,9 @@ function tryoembed($match){
 
        $o = oembed_fetch_url($url);
 
+       if (!is_object($o))
+               return $match[0];
+
        if (isset($match[2]))
                $o->title = $match[2];
 
@@ -858,6 +861,8 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
        $Text = preg_replace_callback("/\[nobb\](.*?)\[\/nobb\]/ism", 'bb_spacefy',$Text);
        $Text = preg_replace_callback("/\[pre\](.*?)\[\/pre\]/ism", 'bb_spacefy',$Text);
 
+       // Remove the abstract element. It is a non visible element.
+       $Text = remove_abstract($Text);
 
        // Move all spaces out of the tags
        $Text = preg_replace("/\[(\w*)\](\s*)/ism", '$2[$1]', $Text);
@@ -1300,4 +1305,43 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
 
        return trim($Text);
 }
+
+/**
+ * @brief Removes the "abstract" element from the text
+ *
+ * @param string $text The text with BBCode
+ * @return string The same text - but without "abstract" element
+ */
+function remove_abstract($text) {
+       $text = preg_replace("/[\s|\n]*\[abstract\].*?\[\/abstract\][\s|\n]*/ism", '', $text);
+       $text = preg_replace("/[\s|\n]*\[abstract=.*?\].*?\[\/abstract][\s|\n]*/ism", '', $text);
+
+       return $text;
+}
+
+/**
+ * @brief Returns the value of the "abstract" element
+ *
+ * @param string $text The text that maybe contains the element
+ * @param string $addon The addon for which the abstract is meant for
+ * @return string The abstract
+ */
+function fetch_abstract($text, $addon = "") {
+       $abstract = "";
+       $abstracts = array();
+       $addon = strtolower($addon);
+
+       if (preg_match_all("/\[abstract=(.*?)\](.*?)\[\/abstract\]/ism",$text, $results, PREG_SET_ORDER))
+               foreach ($results AS $result)
+                       $abstracts[strtolower($result[1])] = $result[2];
+
+       if (isset($abstracts[$addon]))
+               $abstract = $abstracts[$addon];
+
+       if ($abstract == "")
+               if (preg_match("/\[abstract\](.*?)\[\/abstract\]/ism",$text, $result))
+                       $abstract = $result[1];
+
+       return $abstract;
+}
 ?>