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('#<(http[a-zA-Z0-9-\\.\\/:]*)>#', "<\$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); }
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; }