public function text_to_html($value)
 {
     switch (PERCH_APPS_EDITOR_MARKUP_LANGUAGE) {
         case 'textile':
             if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
                 // sneaky autoloading hack
             }
             if (PERCH_HTML5) {
                 $Textile = new \Netcarver\Textile\Parser('html5');
             } else {
                 $Textile = new \Netcarver\Textile\Parser();
             }
             if (PERCH_RWD) {
                 $value = $Textile->setDimensionlessImages(true)->textileThis($value);
             } else {
                 $value = $Textile->textileThis($value);
             }
             break;
         case 'markdown':
             $Markdown = new PerchParsedown();
             $value = $Markdown->text($value);
             break;
     }
     if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
         $value = str_replace(' />', '>', $value);
     }
     return $value;
 }
 public function text_to_html($value)
 {
     switch (PERCH_APPS_EDITOR_MARKUP_LANGUAGE) {
         case 'textile':
             if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
                 // sneaky autoloading hack
             }
             if (PERCH_HTML5) {
                 $Textile = new \Netcarver\Textile\Parser('html5');
             } else {
                 $Textile = new \Netcarver\Textile\Parser();
             }
             if (PERCH_RWD) {
                 $value = $Textile->setDimensionlessImages(true)->textileThis($value);
             } else {
                 $value = $Textile->textileThis($value);
             }
             break;
         case 'markdown':
             // Fix markdown blockquote syntax - > gets encoded.
             $value = preg_replace('/[\\n\\r]>\\s/', "\n> ", $value);
             // Fix autolink syntax
             $value = preg_replace('#&lt;(http[a-zA-Z0-9-\\.\\/:]*)&gt;#', "<\$1>", $value);
             $Markdown = new ParsedownExtra();
             $value = $Markdown->text($value);
             if (!class_exists('\\Michelf\\SmartyPants', false) && class_exists('SmartyPants', true)) {
                 // sneaky autoloading hack
             }
             $SmartyPants = new \Michelf\SmartyPants();
             $value = $SmartyPants->transform($value);
             if (PERCH_HTML_ENTITIES == false) {
                 $value = html_entity_decode($value, ENT_NOQUOTES, 'UTF-8');
             }
             break;
     }
     if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
         $value = str_replace(' />', '>', $value);
     }
     return $value;
 }
 public function receive_new_comment($SubmittedForm)
 {
     $input = $SubmittedForm->data;
     if ($input['parentID']) {
         $data = array();
         $data['parentID'] = $input['parentID'];
         $data['commentDateTime'] = date('Y-m-d H:i:s');
         foreach ($this->static_fields as $field) {
             if (!isset($data[$field])) {
                 if (isset($input[$field]) && $input[$field] != '') {
                     $data[$field] = trim($input[$field]);
                 }
             }
         }
         // dynamic fields
         $dynamic_fields = array();
         foreach ($input as $field => $val) {
             if (!isset($data[$field])) {
                 $dynamic_fields[$field] = trim($val);
             }
         }
         $data['commentDynamicFields'] = PerchUtil::json_safe_encode($dynamic_fields);
         // Anti-spam
         $Settings = $this->api->get('Settings');
         $akismetAPIKey = $Settings->get('perch_comments_akismet_key')->val();
         $spam = false;
         $antispam = $SubmittedForm->get_antispam_values();
         $environment = $_SERVER;
         $spam_data = array();
         $spam_data['fields'] = $antispam;
         $spam_data['environment'] = $environment;
         $data['commentSpamData'] = PerchUtil::json_safe_encode($spam_data);
         $data['commentIP'] = ip2long($_SERVER['REMOTE_ADDR']);
         $spam = $this->_check_for_spam($antispam, $environment, $akismetAPIKey);
         if ($spam) {
             $data['commentStatus'] = 'SPAM';
         } else {
             $Users = new PerchUsers();
             $CurrentUser = $Users->get_current_user();
             if (is_object($CurrentUser) && $CurrentUser->logged_in()) {
                 $data['commentStatus'] = 'LIVE';
             } else {
                 $data['commentStatus'] = 'PENDING';
             }
         }
         foreach ($data as $key => $val) {
             switch ($key) {
                 case 'commentHTML':
                     if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
                         // sneaky autoloading hack
                     }
                     if (PERCH_HTML5) {
                         $Textile = new \Netcarver\Textile\Parser('html5');
                     } else {
                         $Textile = new \Netcarver\Textile\Parser();
                     }
                     if (PERCH_RWD) {
                         $val = $Textile->setDimensionlessImages(true)->textileRestricted($val);
                     } else {
                         $val = $Textile->textileRestricted($val);
                     }
                     if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
                         $val = str_replace(' />', '>', $val);
                     }
                     break;
                 case 'commentURL':
                     if (!parse_url($val, PHP_URL_SCHEME)) {
                         $val = 'http://' . $val;
                     }
                     if (!parse_url($val, PHP_URL_SCHEME)) {
                         $val = '';
                     }
                     $val = strtolower($val);
                     break;
                 case 'commentEmail':
                     $val = strtolower($val);
                     break;
                 case 'parentTitle':
                     $val = html_entity_decode($val, ENT_QUOTES, 'UTF-8');
                     break;
             }
             $data[$key] = $val;
         }
         $r = $this->create($data);
         return $r;
     }
     PerchUtil::debug($SubmittedForm);
 }
Esempio n. 4
0
 public function receive_new_listing($SubmittedForm)
 {
     $API = new PerchAPI(1.0, 'perch_members');
     $Session = PerchMembers_Session::fetch();
     $input = $SubmittedForm->data;
     $data = array();
     $data['listingDateTime'] = date('Y-m-d H:i:s');
     $data['memberID'] = $Session->get('memberID');
     $data['listingType'] = $input['listingType'];
     $data['listingTitle'] = $input['listingTitle'];
     $data['listingSlug'] = PerchUtil::urlify($input['listingTitle']);
     foreach ($this->static_fields as $field) {
         if (!isset($data[$field])) {
             if (isset($input[$field]) && $input[$field] != '') {
                 $data[$field] = trim($input[$field]);
             }
         }
     }
     // dynamic fields
     $dynamic_fields = array();
     foreach ($input as $field => $val) {
         if (!isset($data[$field])) {
             $dynamic_fields[$field] = trim($val);
         }
     }
     $data['listingDynamicFields'] = PerchUtil::json_safe_encode($dynamic_fields);
     foreach ($data as $key => $val) {
         switch ($key) {
             case 'listingHTML':
                 if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
                     // sneaky autoloading hack
                 }
                 if (PERCH_HTML5) {
                     $Textile = new \Netcarver\Textile\Parser('html5');
                 } else {
                     $Textile = new \Netcarver\Textile\Parser();
                 }
                 if (PERCH_RWD) {
                     $val = $Textile->setDimensionlessImages(true)->textileRestricted($val);
                 } else {
                     $val = $Textile->textileRestricted($val);
                 }
                 if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
                     $val = str_replace(' />', '>', $val);
                 }
                 break;
         }
         $data[$key] = $val;
     }
     // print_r($data);
     // die();
     if (isset($data['listingID'])) {
         if ($this->check_title_exists($data['listingTitle'], $data['listingID'])) {
             $Listings = new Listings($API);
             $Listing = $Listings->find($data['listingID']);
             // Don't allow people to change their URL
             unset($data['listingSlug']);
             $r = $Listing->update($data);
         } else {
             $SubmittedForm->throw_error('duplicate', 'listingTitle');
             return false;
         }
     } else {
         if ($this->check_title_exists($data['listingTitle'])) {
             $r = $this->create($data);
         } else {
             $SubmittedForm->throw_error('duplicate', 'listingTitle');
             return false;
         }
     }
     return $r;
     PerchUtil::debug('this' . $SubmittedForm);
 }
 /**
  * Legacy Textile function. Do not use.
  * @param  [type]  $string     [description]
  * @param  boolean $strip_tags [description]
  * @return [type]              [description]
  */
 public static function text_to_html($string, $strip_tags = true)
 {
     PerchUtil::debug('Converting to Textile using deprecated PerchUtil::text_to_html', 'notice');
     if ($strip_tags) {
         $string = strip_tags($string);
     }
     if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
         // sneaky autoloading hack
     }
     if (PERCH_HTML5) {
         $Textile = new \Netcarver\Textile\Parser('html5');
     } else {
         $Textile = new \Netcarver\Textile\Parser();
     }
     if (PERCH_RWD) {
         $string = $Textile->setDimensionlessImages(true)->textileThis($string);
     } else {
         $string = $Textile->textileThis($string);
     }
     if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
         $string = str_replace(' />', '>', $string);
     }
     return $string;
 }
 public function get_raw($post = false, $Item = false)
 {
     if ($post === false) {
         $post = $_POST;
     }
     $id = $this->Tag->id();
     if (isset($post[$id])) {
         $raw = trim($post[$id]);
         $raw = PerchUtil::safe_stripslashes($raw);
         $value = $raw;
         $flang = 'plain';
         if ($this->Tag->html()) {
             $flang = 'html';
         }
         $formatting_language_used = false;
         // Strip HTML by default
         if (!is_array($value) && PerchUtil::bool_val($this->Tag->html()) == false) {
             $value = PerchUtil::html($value);
             $value = strip_tags($value);
         }
         // Textile
         if (!$formatting_language_used && PerchUtil::bool_val($this->Tag->textile()) == true) {
             if (!class_exists('\\Netcarver\\Textile\\Parser', false) && class_exists('Textile', true)) {
                 // sneaky autoloading hack
             }
             if (PERCH_HTML5) {
                 $Textile = new \Netcarver\Textile\Parser('html5');
             } else {
                 $Textile = new \Netcarver\Textile\Parser();
             }
             if (PERCH_RWD) {
                 $value = $Textile->setDimensionlessImages(true)->textileThis($value);
             } else {
                 $value = $Textile->textileThis($value);
             }
             if (defined('PERCH_XHTML_MARKUP') && PERCH_XHTML_MARKUP == false) {
                 $value = str_replace(' />', '>', $value);
             }
             $formatting_language_used = true;
             $flang = 'textile';
         }
         // Markdown
         if (!$formatting_language_used && PerchUtil::bool_val($this->Tag->markdown()) == true) {
             $Markdown = new PerchParsedown();
             $value = $Markdown->text($value);
             $formatting_language_used = true;
             $flang = 'markdown';
         } else {
             // Smartypants without Markdown (MD gets it by default)
             if (PerchUtil::bool_val($this->Tag->smartypants()) == true) {
                 $Markdown = new PerchParsedown();
                 $value = $Markdown->smartypants($value);
                 $flang = 'smartypants';
             }
         }
         $store = array('_flang' => $flang, 'raw' => $raw, 'processed' => $value);
         $this->raw_item = $store;
         return $this->raw_item;
     }
     return null;
 }