Пример #1
0
/**
 * Just textile the text and return
 *
 * @param string $text Input text
 * @return string
 */
function do_textile($text)
{
    Env::useLibrary('textile');
    $textile = new Textile();
    $text = $textile->TextileRestricted($text, false, false);
    return add_links($text);
}
Пример #2
0
 public function handleOutput(FileInterface $scribbleFile, $output)
 {
     // https://github.com/netcarver/textile
     // Make sure this class is require'd and available
     $textile = new \Textile('html5');
     return $textile->TextileThis($output);
 }
Пример #3
0
 /**
  * beforeSave callback
  * 
  * Used to process the text in textile format.
  * 
  * @access public
  * @return Always true so it doesnt avoid saving
  */
 function beforeSave()
 {
     App::import('Vendor', 'Textile');
     $Textile = new Textile();
     $this->data[$this->alias]['processed_text'] = $Textile->textileThis($this->data[$this->alias]['text']);
     return true;
 }
function view_help($message = '')
{
    pagetop(gTxt('edit_plugins'), $message);
    $filename = gps('filename');
    $plugin = array();
    if (!empty($filename)) {
        $content = file($filename);
        $source_lines = count($content);
        $format = 'none';
        for ($i = 0; $i < $source_lines; $i++) {
            $content[$i] = rtrim($content[$i]);
        }
        $format = 'unknown';
        //	Check for ZEM plugin...
        $plugin['help'] = _zem_extract_section($content, 'HELP');
        if ('' != $plugin['help']) {
            $format = 'zem_help';
        } else {
            //	check for ied style help section...
            $plugin['help'] = _ied_extract_section($content, 'HELP');
            if ('' != $plugin['help']) {
                $format = 'ied_help';
            }
        }
        echo startTable('edit');
        switch ($format) {
            case 'zem_help':
                echo tr(tda('<p>Plugin is in zem template format.</p>', ' width="600"'));
                if (!isset($plugin['allow_html_help']) or 0 === $plugin['allow_html_help']) {
                    #	Textile...
                    $plugin['css'] = _zem_extract_section($content, 'CSS');
                    include_once txpath . '/lib/classTextile.php';
                    if (class_exists('Textile')) {
                        $textile = new Textile();
                        $plugin['help'] = $plugin['css'] . n . $textile->TextileThis($plugin['help']);
                        echo tr(tda('<p>Extracted and Textile processed help section follows&#8230;</p><hr>', ' width="600"'));
                    } else {
                        echo tr(tda('<p>Extracted help section follows, <strong>Textile Processing Failed</strong>&#8230;</p><hr>', ' width="600"'));
                    }
                } else {
                    # (x)html...
                    $plugin['css'] = _zem_extract_section($content, 'CSS');
                    $plugin['help'] = $plugin['css'] . n . $plugin['help_raw'];
                }
                echo tr(tda($plugin['help'], ' width="600"'));
                break;
            case 'ied_help':
                echo tr(tda('<p>Plugin is in ied template format.</p>', ' width="600"'));
                echo tr(tda('<p>Extracted raw help section follows&#8230;</p><hr>', ' width="600"'));
                echo tr(tda($plugin['help'], ' width="600"'));
                break;
            default:
                echo tr(tda('<p><strong>Unknown plugin file format or empty help section.</strong></p><hr>', ' width="600"'));
                break;
        }
        echo endTable();
    } else {
        echo 'Help not accessible from that file.';
    }
}
Пример #5
0
function do_textile($text)
{
    $textile = new Textile();
    $text = $textile->TextileRestricted($text, false, false);
    //return $text;
    return add_links($text);
}
Пример #6
0
 public function indexAction()
 {
     #vynulovani rozpadu stromu
     $_SESSION['katalog']['pars']['u1'] = 0;
     $_SESSION['katalog']['rozpad'] = 0;
     $this->view->strom = stromek(0, $this->_getAllParams());
     $pom_txt = zpracujTexty(readData('texty', array('jazyk' => $_SESSION['jazyk'], 'kody' => "'uvod_top'")));
     $vysl = readData('index', array());
     $this->view->kategorie = array();
     foreach ($vysl->k->row as $r) {
         $this->view->kategorie[(string) $r->idk] = (string) $r->kat;
     }
     //definice stylu pro kategorie
     $css = '';
     $index = 1;
     foreach ($this->view->kategorie as $id => $kat) {
         $css .= '#rozcestnik li#kat-' . trim($id) . ' a, #rozcestnik li#kat-' . trim($id) . ' a:visited {' . "\n";
         $css .= 'background: #162983 url("/grafika/kat_' . trim($id) . '.jpg");' . "\n";
         if ($index == $index) {
             $css .= "height: 41px;\n";
             $css .= "padding-top: 37px;\n";
         }
         $css .= "}\n";
         $css .= '#rozcestnik li#kat-' . trim($id) . ' a:hover, #rozcestnik li#kat-' . trim($id) . ' a:focus, #rozcestnik li#kat-' . trim($id) . ' a:active {' . "\n";
         $css .= 'background: #5da6dc url("/grafika/kat_' . trim($id) . '_ho.jpg");' . "\n";
         $css .= "}\n";
         if ($index >= 3) {
             $index = 0;
         }
         $index++;
     }
     //$this->view->css_defs = array(0 => $css);
     $textile = new Textile();
     $this->view->txt = array('uvod_top' => $textile->TextileThis($pom_txt['uvod_top']));
 }
Пример #7
0
function section_save()
{
    global $txpcfg;
    $in = psa(array('name', 'title', 'page', 'css', 'is_default', 'on_frontpage', 'in_rss', 'searchable', 'old_name'));
    extract(doSlash($in));
    if (empty($title)) {
        $title = $name;
    }
    //Prevent non url chars on section names
    include_once $txpcfg['txpath'] . '/lib/classTextile.php';
    $textile = new Textile();
    $title = $textile->TextileThis($title, 1);
    $name = dumbDown($textile->TextileThis($name, 1));
    $name = preg_replace("/[^[:alnum:]\\-_]/", "", str_replace(" ", "-", $name));
    if ($name == 'default') {
        safe_update("txp_section", "page='{$page}',css='{$css}'", "name='default'");
    } else {
        if ($is_default) {
            // note this means 'selected by default' not 'default page'
            safe_update("txp_section", "is_default=0", "name!='{$old_name}'");
        }
        safe_update("txp_section", "name         = '{$name}',\n\t\t\t\ttitle        = '{$title}',\n\t\t\t\tpage         = '{$page}',\n\t\t\t\tcss          = '{$css}',\n\t\t\t\tis_default   = '{$is_default}',\n\t\t\t\ton_frontpage = '{$on_frontpage}',\n\t\t\t\tin_rss       = '{$in_rss}',\n\t\t\t\tsearchable   = '{$searchable}'", "name = '{$old_name}'");
        safe_update("textpattern", "Section='{$name}'", "Section='{$old_name}'");
    }
    sec_section_list(messenger('section', $name, 'updated'));
}
Пример #8
0
function make_content($row)
{
    global $tp;
    $contents = utf8_decode(stripslashes($tp->toHTML($row['page_content'], true, 'body')));
    include_once "Textile.php";
    $textile = new Textile();
    $contents = $textile->process($contents);
    return $contents . "<p><small>" . LAN_W_8 . " <a href='" . e_HTTP . "user.php?id." . $row['page_author'] . "'>" . get_username($row['page_author']) . "</a></small></p>";
}
Пример #9
0
 /**
  * Filter.
  *
  * @param string $thing
  * @param array  $options
  */
 public function filter($thing, $options)
 {
     parent::filter($thing, $options);
     if ($this->options['restricted']) {
         return $this->textile->textileRestricted($thing, $this->options['lite'], $this->options['noimage'], $this->options['rel']);
     } else {
         return $this->textile->textileThis($thing, $this->options['lite'], '', $this->options['noimage'], '', $this->options['rel']);
     }
 }
Пример #10
0
function execute_textile($data)
{
    static $textile;
    if (!$textile) {
        require IXG_PATH_PREFIX . "pipes/engines/textile/textile.php";
        $textile = new Textile();
    }
    return $textile->TextileThis($data);
}
Пример #11
0
function smarty_modifier_textile($string, $lite = false, $restricted = false)
{
    if (!isset($string) || $string === '') {
        return $string;
    } else {
        Globe::Load('Textile/library/Vendor/Textile', 'package');
        $textile = new Textile();
        return $restricted ? $textile->TextileRestricted($string, $lite) : $textile->TextileThis($string, $lite);
    }
}
Пример #12
0
function section_save()
{
    global $txpcfg, $app_mode;
    extract(doSlash(psa(array('page', 'css', 'old_name'))));
    extract(psa(array('name', 'title')));
    $prequel = '';
    $sequel = '';
    if (empty($title)) {
        $title = $name;
    }
    // Prevent non url chars on section names
    include_once txpath . '/lib/classTextile.php';
    $textile = new Textile();
    $title = doSlash($textile->TextileThis($title, 1));
    $name = doSlash(sanitizeForUrl($name));
    if ($old_name && strtolower($name) != strtolower($old_name)) {
        if (safe_field('name', 'txp_section', "name='{$name}'")) {
            $message = array(gTxt('section_name_already_exists', array('{name}' => $name)), E_ERROR);
            if ($app_mode == 'async') {
                // TODO: Better/themeable popup
                send_script_response('window.alert("' . escape_js(strip_tags(gTxt('section_name_already_exists', array('{name}' => $name)))) . '")');
            } else {
                sec_section_list($message);
                return;
            }
        }
    }
    if ($name == 'default') {
        safe_update('txp_section', "page = '{$page}', css = '{$css}'", "name = 'default'");
        update_lastmod();
    } else {
        extract(array_map('assert_int', psa(array('is_default', 'on_frontpage', 'in_rss', 'searchable'))));
        // note this means 'selected by default' not 'default page'
        if ($is_default) {
            safe_update("txp_section", "is_default = 0", "name != '{$old_name}'");
            // switch off $is_default for all sections in async app_mode
            if ($app_mode == 'async') {
                $prequel = '$("input[name=\\"is_default\\"][value=\\"1\\"]").attr("checked", false);' . '$("input[name=\\"is_default\\"][value=\\"0\\"]").attr("checked", true);';
            }
        }
        safe_update('txp_section', "\n\t\t\t\tname         = '{$name}',\n\t\t\t\ttitle        = '{$title}',\n\t\t\t\tpage         = '{$page}',\n\t\t\t\tcss          = '{$css}',\n\t\t\t\tis_default   = {$is_default},\n\t\t\t\ton_frontpage = {$on_frontpage},\n\t\t\t\tin_rss       = {$in_rss},\n\t\t\t\tsearchable   = {$searchable}\n\t\t\t", "name = '{$old_name}'");
        safe_update('textpattern', "Section = '{$name}'", "Section = '{$old_name}'");
        update_lastmod();
    }
    $message = gTxt('section_updated', array('{name}' => $name));
    if ($app_mode == 'async') {
        // Caveat: Use unslashed params for DTO
        $s = psa(array('name', 'title', 'page', 'css')) + compact('is_default', 'on_frontpage', 'in_rss', 'searchable');
        $s = section_detail_partial($s);
        send_script_response($prequel . '$("#section-form-' . $name . '").replaceWith("' . escape_js($s) . '");' . $sequel);
    } else {
        sec_section_list($message);
    }
}
Пример #13
0
function processPage($page)
{
    $textile = new Textile();
    $handle = @fopen($page, "r");
    if ($handle == False) {
        return __("<center><h1>Error:This item is not documented!</h1></center>");
    }
    $contents = fread($handle, filesize($page));
    fclose($handle);
    return "<div class = 'textile'>{$textile->TextileThis($contents)}</div>";
}
 function run($string)
 {
     if (!function_exists('typogrify')) {
         include_once EXTENSIONS . '/typogrify/lib/php-typogrify.php';
     }
     if (!class_exists('Textile')) {
         include_once EXTENSIONS . '/textile/lib/textile.php';
     }
     $textile = new Textile();
     return stripslashes(typogrify($textile->TextileThis($string)));
 }
Пример #15
0
function compile_plugin($file='') {
	global $plugin;

	if (empty($file))
		$file = $_SERVER['SCRIPT_FILENAME'];
    
	if (!isset($plugin['name'])) {
		$plugin['name'] = basename($file, '.php');
	}

	# Read the contents of this file, and strip line ends
    $content = read_file($file);

    $plugin['help'] = trim(extract_section($content, 'HELP'));
    $plugin['code'] = extract_section($content, 'CODE');

    if (isset($plugin['help_file'])) {
        $plugin_content =  read_file($plugin['help_file']);
        $plugin['help'] = trim(extract_section($plugin_content, 'HELP'));
    }

    // textpattern will textile it, and encode html
    $plugin['help_raw'] = $plugin['help'];

	@include('classTextile.php');
	if (class_exists('Textile')) {
		$textile = new Textile();
		$plugin['help'] = $textile->TextileThis($plugin['help']);
	}

	$plugin['md5'] = md5( $plugin['code'] );

	// to produce a copy of the plugin for distribution, load this file in a browser. 

	header('Content-type: text/plain');
	$header = <<<EOF
# {$plugin['name']} v{$plugin['version']}
# {$plugin['description']}
# {$plugin['author']}
# {$plugin['author_uri']}

# ......................................................................
# This is a plugin for Textpattern - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# ......................................................................
EOF;

	return $header . "\n\n" . trim(chunk_split(base64_encode(serialize($plugin)), 72)). "\n";

}
Пример #16
0
function search_wiki($row)
{
    require_once e_PLUGIN . 'wiki/preferences.php';
    // Populate as many of the $res array keys as is sensible for the plugin
    $res['link'] = e_PLUGIN . "wiki/?page=" . urlencode($row['page_title']);
    $res['pre_title'] = "";
    $res['title'] = $row["page_title"] . "";
    $res['pre_summary'] = "";
    include_once e_PLUGIN . "wiki/Textile.php";
    $textile = new Textile();
    $res['summary'] = stripslashes($textile->process(stripslashes($row['page_content'])));
    $res['detail'] = "";
    return $res;
}
Пример #17
0
function import_mt_item($item, $section, $status, $invite)
{
    # Untested import code follows
    if (empty($item)) {
        return;
    }
    include_once txpath . '/lib/classTextile.php';
    $textile = new Textile();
    $title = $textile->TextileThis($item['TITLE'], 1);
    //nice non-english permlinks
    $url_title = stripSpace(dumbDown($title));
    $body = $item['BODY'][0]['content'] . (isset($item['EXTENDED_BODY']) ? "\n<!--more-->\n" . $item['EXTENDED_BODY'][0]['content'] : '');
    $body_html = $textile->textileThis($body);
    $excerpt = @$item['EXCERPT'][0]['content'];
    $excerpt_html = $textile->textileThis($excerpt);
    $date = strtotime($item['DATE']);
    $date = date('Y-m-d H:i:s', $date);
    if (isset($item['STATUS'])) {
        $post_status = $item['STATUS'] == 'Draft' ? 1 : 4;
    } else {
        $post_status = $status;
    }
    $category1 = @$item['PRIMARY CATEGORY'];
    if ($category1 and !safe_field("name", "txp_category", "name = '{$category1}'")) {
        safe_insert('txp_category', "name='" . doSlash($category1) . "', type='article', parent='root'");
    }
    $keywords = @$item['KEYWORDS'][0]['content'];
    $authorid = safe_field('user_id', 'txp_users', "name = '" . doSlash($item['AUTHOR']) . "'");
    if (!$authorid) {
        //		$authorid = safe_field('user_id', 'txp_users', 'order by user_id asc limit 1');
        //Add new authors
        safe_insert('txp_users', "name='" . doSlash($item['AUTHOR']) . "'");
    }
    if (!safe_field("ID", "textpattern", "Title = '" . doSlash($title) . "' AND Posted = '" . doSlash($date) . "'")) {
        safe_insert('textpattern', "Posted='" . doSlash($date) . "'," . "LastMod='" . doSlash($date) . "'," . "AuthorID='" . doSlash($item['AUTHOR']) . "'," . "LastModID='" . doSlash($item['AUTHOR']) . "'," . "Title='" . doSlash($title) . "'," . "Body='" . doSlash($body) . "'," . "Body_html='" . doSlash($body_html) . "'," . "Excerpt='" . doSlash($excerpt) . "'," . "Excerpt_html='" . doSlash($excerpt_html) . "'," . "Category1='" . doSlash($category1) . "'," . "AnnotateInvite='" . doSlash($invite) . "'," . "Status='" . doSlash($post_status) . "'," . "Section='" . doSlash($section) . "'," . "Keywords='" . doSlash($keywords) . "'," . "uid='" . md5(uniqid(rand(), true)) . "'," . "feed_time='" . substr($date, 0, 10) . "'," . "url_title='" . doSlash($url_title) . "'");
        $parentid = mysql_insert_id();
        if (!empty($item['COMMENT'])) {
            foreach ($item['COMMENT'] as $comment) {
                $comment_date = date('Y-m-d H:i:s', strtotime(@$comment['DATE']));
                $comment_content = $textile->TextileThis(nl2br(@$comment['content']), 1);
                if (!safe_field("discussid", "txp_discuss", "posted = '" . doSlash($comment_date) . "' AND message = '" . doSlash($comment_content) . "'")) {
                    safe_insert('txp_discuss', "parentid='" . doSlash($parentid) . "'," . "name='" . doSlash(@$comment['AUTHOR']) . "'," . "email='" . doSlash(@$comment['EMAIL']) . "'," . "web='" . doSlash(@$comment['URL']) . "'," . "ip='" . doSlash(@$comment['IP']) . "'," . "posted='" . doSlash($comment_date) . "'," . "message='" . doSlash($comment_content) . "'," . "visible='1'");
                }
            }
        }
        return $title;
    }
    return $title . ' already imported';
}
Пример #18
0
function FM_Textile_format($blogid, $id, $content, $keywords = array(), $useAbsolutePath = true, $bRssMode = false)
{
    global $service;
    $textile = new Textile();
    $path = __TEXTCUBE_ATTACH_DIR__ . "/{$blogid}";
    $url = "{$service['path']}/attach/{$blogid}";
    if (!function_exists('FM_TTML_bindAttachments')) {
        // To reduce the amount of loading code!
        require_once 'ttml.php';
    }
    $view = FM_TTML_bindAttachments($id, $path, $url, $content, $useAbsolutePath, $bRssMode);
    $view = $textile->TextileThis($view);
    $view = FM_TTML_bindTags($id, $view);
    return $view;
}
Пример #19
0
 public function process($content, $lite = '', $encode = '', $noimage = '', $strict = '', $rel = '')
 {
     // Convert the raw content to wiki content
     switch ($this->syntax) {
         case 'markdown':
             require_once PHPGW_API_INC . '/wiki2html/markdown/markdown.php';
             $html = Markdown($content);
             break;
         default:
             require_once PHPGW_API_INC . '/wiki2html/textile/Textile.php';
             $textile = new Textile();
             $html = $textile->TextileThis($content);
     }
     return $html;
 }
Пример #20
0
function getComments($num)
{
    $comments = glob("data/{$num}/comment*");
    natsort($comments);
    $comments = array_values($comments);
    $body = "<p> <strong>Comments:</strong> </p>";
    $textile = new Textile();
    foreach ($comments as $com) {
        $comarr = file($com);
        preg_match('/^.*[^0-9](\\d+)$/', $com, $matches);
        $text = join("\n", array_slice($comarr, 1));
        $body .= " <p class='comment'>#{$matches['1']} From: {$comarr['0']} <br />\n\t\t" . $textile->TextileRestricted($text) . "</p>\n\t\t<hr />";
    }
    return $body;
}
Пример #21
0
 public static function get_rendered_text($text)
 {
     $style = Kohana::config('filebrowser.text_rendering');
     if ($style == "textile") {
         $textile = new Textile();
         //return $textile->TextileThis(text::auto_link_urls($text, '_blank'));
         return $textile->TextileThis($text);
     } else {
         if ($style == "markdown") {
             //return Markdown(text::auto_link_urls($text, '_blank'));
             return Markdown($text);
         } else {
             return $text;
         }
     }
 }
Пример #22
0
 protected function rss2Array()
 {
     // vereinfachen, shorten
     $textile = new Textile();
     foreach ($this->rss->channel->item as $item) {
         // do nothing with picturegalleries right now.. first just articles
         if ($item['type'] == "picturegalleries") {
             $galleries = $item;
             break;
         }
         $lead = $item->lead ? $item->lead : $item->description;
         $shortlead = strlen($lead) < 105 ? $lead : substr($lead, 0, 105) . "…";
         $itm = array();
         foreach ($item as $k => $v) {
             if ($k == "recent_stories") {
                 $ar = array();
                 foreach ($v->item as $_k => $_v) {
                     array_push($ar, array("id" => trim((string) $_v->id), "title" => trim((string) $_v->title)));
                 }
                 $itm[$k] = $ar;
             } else {
                 if ($k == "context_stories") {
                     $ar = array();
                     foreach ($v->context as $_k => $_v) {
                         array_push($ar, array("context_id" => trim((string) $_v->context_id), "context_title" => trim((string) $_v->context_title), "context_url" => trim((string) $_v->context_url)));
                     }
                     $itm[$k] = $ar;
                 } else {
                     if ($k == 'text') {
                         $text = str_replace('<br>', "\n", str_replace('<b>', '<h2>', str_replace('</b>', '</h2>', $v)));
                         $itm[$k] = $textile->TextileThis($text);
                     } else {
                         $itm[$k] = trim((string) $v);
                     }
                 }
             }
         }
         $itm['lead'] = (string) $lead;
         $itm['shortlead'] = $shortlead;
         $shorttitle = trim($item->title);
         $max = 45;
         if (strlen($shorttitle) > $max) {
             $shorttitle = substr($shorttitle, 0, $max - 3) . "…";
         }
         $itm['shorttitle'] = $shorttitle;
         if (!isset($itm['id'])) {
             $itm['id'] = basename($itm['link']);
         }
         $itm['image'] = $item->image_big_ipad;
         if (!$itm['image']) {
             @($itm['image'] = (string) $item->enclosure->attributes()->url);
         }
         array_push($this->items, $itm);
     }
     if (isset($galleries)) {
         foreach ($galleries->item as $k => $v) {
             array_push($this->galleries, array("id" => trim((string) $v->id), "title" => trim((string) $v->title), "subtitle" => trim((string) $v->subtitle), "link" => trim((string) $v->link), "views" => trim((string) $v->views), "pubDate" => trim((string) $v->pubDate), "image_thumbnail" => trim((string) $v->image_thumbnail), "image_thumbnail_ipad" => trim((string) $v->image_thumbnail_ipad)));
         }
     }
 }
Пример #23
0
function tc_post_process($text, $do_text = '', $do_char = '')
{
    if ($do_text == 'textile2') {
        require_once 'text-control/textile2.php';
        $t = new Textile();
        $text = $t->process($text);
    } else {
        if ($do_text == 'textile1') {
            require_once 'text-control/textile1.php';
            $text = textile($text);
        } else {
            if ($do_text == 'markdown') {
                require_once 'text-control/markdown.php';
                $text = Markdown($text);
            } else {
                if ($do_text == 'wpautop') {
                    $text = wpautop($text);
                } else {
                    if ($do_text == 'nl2br') {
                        $text = nl2br($text);
                    } else {
                        if ($do_text == 'none') {
                            $text = $text;
                        } else {
                            $text = wpautop($text);
                        }
                    }
                }
            }
        }
    }
    if ($do_char == 'smartypants') {
        require_once 'text-control/smartypants.php';
        $text = SmartyPants($text);
    } else {
        if ($do_char == 'wptexturize') {
            $text = wptexturize($text);
        } else {
            if ($do_char == 'none') {
                $text = $text;
            } else {
                $text = wptexturize($text);
            }
        }
    }
    return $text;
}
Пример #24
0
function import_blogger_item($item, $section, $status, $invite)
{
    # Untested import code follows
    if (empty($item)) {
        return;
    }
    include_once txpath . '/lib/classTextile.php';
    $textile = new Textile();
    $title = $textile->TextileThis($item['TITLE'], 1);
    $url_title = stripSpace(dumbDown($title));
    $body = $item['BODY'][0]['content'];
    $body_html = $textile->textileThis($body, 1);
    $date = strtotime($item['DATE']);
    $date = date('Y-m-d H:i:s', $date);
    if (isset($item['STATUS'])) {
        $post_status = $item['STATUS'] == 'Draft' ? 1 : 4;
    } else {
        $post_status = $status;
    }
    //Bogger can use special chars on author names. Strip them and check for realname
    $authorid = safe_field('user_id', 'txp_users', "RealName = '" . doSlash($item['AUTHOR']) . "'");
    if (!$authorid) {
        //		$authorid = safe_field('user_id', 'txp_users', 'order by user_id asc limit 1');
        //Add new authors
        safe_insert('txp_users', "name='" . doSlash(stripSpace(dumbDown($textile->TextileThis($item['AUTHOR'], 1)))) . "', RealName='" . doSlash($item['AUTHOR']) . "'");
    }
    if (!safe_field("ID", "textpattern", "Title = '" . doSlash($title) . "' AND Posted = '" . doSlash($date) . "'")) {
        safe_insert('textpattern', "Posted='" . doSlash($date) . "'," . "LastMod='" . doSlash($date) . "'," . "AuthorID='" . doSlash($item['AUTHOR']) . "'," . "LastModID='" . doSlash($item['AUTHOR']) . "'," . "Title='" . doSlash($title) . "'," . "Body='" . doSlash($body) . "'," . "Body_html='" . doSlash($body_html) . "'," . "AnnotateInvite='" . doSlash($invite) . "'," . "Status='" . doSlash($post_status) . "'," . "Section='" . doSlash($section) . "'," . "uid='" . md5(uniqid(rand(), true)) . "'," . "feed_time='" . substr($date, 0, 10) . "'," . "url_title='" . doSlash($url_title) . "'");
        $parentid = mysql_insert_id();
        if (!empty($item['COMMENT'])) {
            foreach ($item['COMMENT'] as $comment) {
                $comment_date = date('Y-m-d H:i:s', strtotime(@$comment['DATE']));
                $comment_content = $textile->TextileThis(nl2br(@$comment['content']), 1);
                //Check for Comments authors
                if (preg_match('/<a href="(.*)">(.*)<\\/a>/', @$comment['AUTHOR'], $match)) {
                    @($comment['URL'] = $match[1]);
                    @($comment['AUTHOR'] = $match[2]);
                }
                if (!safe_field("discussid", "txp_discuss", "posted = '" . doSlash($comment_date) . "' AND message = '" . doSlash($comment_content) . "'")) {
                    safe_insert('txp_discuss', "parentid='" . doSlash($parentid) . "'," . "name='" . doSlash(strip_tags(@$comment['AUTHOR'])) . "'," . "web='" . doSlash(@$comment['URL']) . "'," . "posted='" . doSlash($comment_date) . "'," . "message='" . doSlash($comment_content) . "'," . "visible='1'");
                }
            }
        }
        return $title;
    }
    return $title . ' already imported';
}
Пример #25
0
function FM_Textile_format($blogid, $id, $content, $keywords = array(), $useAbsolutePath = true, $bRssMode = false)
{
    $context = Model_Context::getInstance();
    $textile = new Textile();
    $path = __TEXTCUBE_ATTACH_DIR__ . "/{$blogid}";
    $url = $context->getProperty("service.path") . "/attach/{$blogid}";
    if (!function_exists('FM_TTML_bindAttachments')) {
        // To reduce the amount of loading code!
        require_once 'ttml.php';
    }
    $view = FM_TTML_bindAttachments($id, $path, $url, $content, $useAbsolutePath, $bRssMode);
    $view = FM_TTML_preserve_TTML_type_tags($view);
    $view = $textile->TextileThis($view);
    $view = FM_TTML_restore_TTML_type_tags($view);
    $view = FM_TTML_bindTags($id, $view);
    return $view;
}
Пример #26
0
function uds_billboard_description($atts, $content = null)
{
    global $uds_description_mode, $uds_billboard_text_evaluation;
    extract(shortcode_atts(array('top' => '20px', 'left' => '20px', 'width' => '200px', 'height' => '80%', 'skin' => ''), $atts));
    if (isset($uds_description_mode) && $uds_description_mode == 'editor') {
        $out = "<div class='editable-box' data-skin='{$skin}' style='top:{$top};left:{$left};width:{$width};height:{$height};'><textarea>{$content}</textarea></div>";
    } else {
        if ($uds_billboard_text_evaluation == 'textile') {
            $textile = new Textile();
            $content = $textile->TextileRestricted($content, '');
        }
        if (!empty($skin)) {
            $skin = 'uds-' . $skin;
        }
        $out = "<div class='uds-bb-description {$skin}' style='top:{$top};left:{$left};width:{$width};height:{$height};'><div class='uds-bb-description-inside'>{$content}</div></div>";
    }
    return $out;
}
Пример #27
0
 function htmlFormatted($text, $media = false, $model = null, $media_link_attributes = null)
 {
     $text = $this->sanitiseText($text, false);
     if (!preg_match('/{\\[markdown\\]}/', $text)) {
         $txtl = new Textile();
         $text = SmartyPants($txtl->TextileThis($text), 1);
         $text = $txtl->TextileThis($text);
     } else {
         $text = str_replace('{[markdown]}', '', $text);
         $text = SmartyPants(Markdown($text), 1);
     }
     if ($media && count($media)) {
         $text = $this->_formatTextFragments($text, $media, $model, $media_link_attributes);
     } else {
         $text = $this->_stripTextFragments($text);
     }
     return $text;
 }
 public function parse_string($template, $data = array(), $return = FALSE, $options = array())
 {
     if (!is_array($options)) {
         $options = array();
     }
     $options = array_merge($this->config, $options);
     $ci = $this->ci;
     $is_mx = false;
     if (!$return) {
         list($ci, $is_mx) = $this->detect_mx();
     }
     $parser = new Textile($options['doctype']);
     if ($options['restricted_mode']) {
         $template = $parser->textileRestricted($template);
     } else {
         $template = $parser->textileThis($template);
     }
     return $this->output($template, $return, $ci, $is_mx);
 }
Пример #29
0
 /**
  * Parses content in a restricted mode.
  *
  * @param  string|null $text    The input document in textile format
  * @param  bool|null   $lite    Optional flag to switch the parser into lite mode
  * @param  bool|null   $noimage Optional flag controlling the conversion of images into HTML img tags
  * @param  string|null $rel     Relationship to apply to all generated links
  * @return string      The text from the input document
  */
 public function textileRestricted($text, $lite = null, $noimage = null, $rel = null)
 {
     if ($lite === null) {
         $lite = get_pref('comments_use_fat_textile', 1);
     }
     if ($noimage === null) {
         $noimage = get_pref('comments_disallow_images', 1);
     }
     if ($rel === null && get_pref('comment_nofollow', 1)) {
         $rel = 'nofollow';
     }
     return parent::textileRestricted($text, $lite, $noimage, $rel);
 }
Пример #30
0
 /**
  * Render content via a given $content_type
  *
  * @param string  $content  Content to render
  * @param mixed  $content_type  Content type to use (overrides configured content_type)
  * @return string
  */
 public static function transform($content, $content_type = NULL)
 {
     $content_type = Helper::pick($content_type, Config::getContentType());
     // render HTML from the given $content_type
     switch (strtolower($content_type)) {
         case "markdown":
         case "md":
             $content = Markdown($content);
             break;
         case "text":
         case "txt":
             $content = nl2br(strip_tags($content));
             break;
         case "textile":
             $textile = new Textile();
             $content = $textile->TextileThis($content);
     }
     if (Config::get('_enable_smartypants', TRUE) == TRUE) {
         $content = SmartyPants($content, 2);
     }
     return trim($content);
 }