]> git.mxchange.org Git - friendica.git/blobdiff - mod/item.php
Merge pull request #562 from fermionic/20121225-smarty-includes-like-friendicas
[friendica.git] / mod / item.php
index 52ea9d58c90c253c1b969ac593316592c3edb8f8..2ed1b812a48cb22cc51ed31dfcb40e58e906dede 100644 (file)
@@ -18,7 +18,7 @@
 require_once('include/crypto.php');
 require_once('include/enotify.php');
 require_once('include/email.php');
-require_once('Text/LanguageDetect.php');
+require_once('library/langdet/Text/LanguageDetect.php');
 
 function item_post(&$a) {
 
@@ -46,6 +46,19 @@ function item_post(&$a) {
        $return_path = ((x($_REQUEST,'return')) ? $_REQUEST['return'] : '');
        $preview = ((x($_REQUEST,'preview')) ? intval($_REQUEST['preview']) : 0);
 
+
+       // Check for doubly-submitted posts, and reject duplicates
+       // Note that we have to ignore previews, otherwise nothing will post
+       // after it's been previewed
+       if(!$preview && x($_REQUEST['post_id_random'])) {
+               if(x($_SESSION['post-random']) && $_SESSION['post-random'] == $_REQUEST['post_id_random']) {
+                       logger("item post: duplicate post", LOGGER_DEBUG);
+                       item_post_return($a->get_baseurl(), $api_source, $return_path);
+               }
+               else
+                       $_SESSION['post-random'] = $_REQUEST['post_id_random'];
+       }
+
        /**
         * Is this a reply to something?
         */
@@ -98,7 +111,7 @@ function item_post(&$a) {
 
                // multi-level threading - preserve the info but re-parent to our single level threading
                //if(($parid) && ($parid != $parent))
-                       $thr_parent = $parent_uri;
+               $thr_parent = $parent_uri;
 
                if($parent_item['contact-id'] && $uid) {
                        $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
@@ -296,7 +309,11 @@ function item_post(&$a) {
        // First figure out if it's a status post that would've been
        // created using tinymce. Otherwise leave it alone. 
 
-       $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) : 0);
+/*     $plaintext = (local_user() ? intval(get_pconfig(local_user(),'system','plaintext')) || !feature_enabled($profile_uid,'richtext') : 0);
+       if((! $parent) && (! $api_source) && (! $plaintext)) {
+               $body = fix_mce_lf($body);
+       }*/
+       $plaintext = (local_user() ? !feature_enabled($profile_uid,'richtext') : 0);
        if((! $parent) && (! $api_source) && (! $plaintext)) {
                $body = fix_mce_lf($body);
        }
@@ -373,8 +390,8 @@ function item_post(&$a) {
 
        $match = null;
 
-       if((! $preview) && preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
-               $images = $match[1];
+       if((! $preview) && preg_match_all("/\[img([\=0-9x]*?)\](.*?)\[\/img\]/",$body,$match)) {
+               $images = $match[2];
                if(count($images)) {
                        foreach($images as $image) {
                                if(! stristr($image,$a->get_baseurl() . '/photo/'))
@@ -873,30 +890,32 @@ function item_post(&$a) {
 
        logger('post_complete');
 
+       item_post_return($a->get_baseurl(), $api_source, $return_path);
+       // NOTREACHED
+}
+
+function item_post_return($baseurl, $api_source, $return_path) {
        // figure out how to return, depending on from whence we came
 
        if($api_source)
                return;
 
        if($return_path) {
-               goaway($a->get_baseurl() . "/" . $return_path);
+               goaway($baseurl . "/" . $return_path);
        }
 
        $json = array('success' => 1);
        if(x($_REQUEST,'jsreload') && strlen($_REQUEST['jsreload']))
-               $json['reload'] = $a->get_baseurl() . '/' . $_REQUEST['jsreload'];
+               $json['reload'] = $baseurl . '/' . $_REQUEST['jsreload'];
 
        logger('post_json: ' . print_r($json,true), LOGGER_DEBUG);
 
        echo json_encode($json);
        killme();
-       // NOTREACHED
 }
 
 
 
-
-
 function item_content(&$a) {
 
        if((! local_user()) && (! remote_user()))
@@ -994,7 +1013,26 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
                                                intval($tagcid),
                                                intval($profile_uid)
                                );
-                       } elseif(strstr($name,'_') || strstr($name,' ')) { //no id
+                       }
+                       else {
+                               $newname = str_replace('_',' ',$name);
+
+                               //select someone from this user's contacts by name
+                               $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
+                                               dbesc($newname),
+                                               intval($profile_uid)
+                               );
+
+                               if(! $r) {
+                                       //select someone by attag or nick and the name passed in
+                                       $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
+                                                       dbesc($name),
+                                                       dbesc($name),
+                                                       intval($profile_uid)
+                                       );
+                               }
+                       }
+/*                     } elseif(strstr($name,'_') || strstr($name,' ')) { //no id
                                //get the real name
                                $newname = str_replace('_',' ',$name);
                                //select someone from this user's contacts by name
@@ -1009,7 +1047,7 @@ function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
                                                dbesc($name),
                                                intval($profile_uid)
                                );
-                       }
+                       }*/
                        //$r is set, if someone could be selected
                        if(count($r)) {
                                $profile = $r[0]['url'];