本文整理汇总了PHP中getSmileys函数的典型用法代码示例。如果您正苦于以下问题:PHP getSmileys函数的具体用法?PHP getSmileys怎么用?PHP getSmileys使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getSmileys函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: render
static function render($text, $type = null, $id = null, $instructions = null)
{
global $conf, $baseurl, $db;
// Unfortunately dokuwiki also uses $conf
$fs_conf = $conf;
$conf = array();
// Dokuwiki generates some notices
error_reporting(E_ALL ^ E_NOTICE);
if (!$instructions) {
include_once BASEDIR . '/plugins/dokuwiki/inc/parser/parser.php';
}
require_once BASEDIR . '/plugins/dokuwiki/inc/common.php';
require_once BASEDIR . '/plugins/dokuwiki/inc/parser/xhtml.php';
// Create a renderer
$Renderer = new Doku_Renderer_XHTML();
if (!is_string($instructions) || strlen($instructions) < 1) {
$modes = p_get_parsermodes();
$Parser = new Doku_Parser();
// Add the Handler
$Parser->Handler = new Doku_Handler();
// Add modes to parser
foreach ($modes as $mode) {
$Parser->addMode($mode['mode'], $mode['obj']);
}
$instructions = $Parser->parse($text);
// Cache the parsed text
if (!is_null($type) && !is_null($id)) {
$fields = array('content' => serialize($instructions), 'type' => $type, 'topic' => $id, 'last_updated' => time());
$keys = array('type', 'topic');
//autoquote is always true on db class
$db->Replace('{cache}', $fields, $keys);
}
} else {
$instructions = unserialize($instructions);
}
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = getAcronyms();
$Renderer->interwiki = getInterwiki();
$conf = $fs_conf;
$conf['cachedir'] = FS_CACHE_DIR;
// for dokuwiki
$conf['fperm'] = 0600;
$conf['dperm'] = 0700;
// Loop through the instructions
foreach ($instructions as $instruction) {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
$return = $Renderer->doc;
// Display the output
if (Get::val('histring')) {
$words = explode(' ', Get::val('histring'));
foreach ($words as $word) {
$return = html_hilight($return, $word);
}
}
return $return;
}
开发者ID:canneverbe,项目名称:flyspray,代码行数:59,代码来源:dokuwiki_formattext.inc.php
示例2: toolbar_JSdefines
/**
* Prepares and prints an JavaScript array with all toolbar buttons
*
* @emits TOOLBAR_DEFINE
* @param string $varname Name of the JS variable to fill
* @author Andreas Gohr <[email protected]>
*/
function toolbar_JSdefines($varname)
{
global $lang;
$menu = array();
$evt = new Doku_Event('TOOLBAR_DEFINE', $menu);
if ($evt->advise_before()) {
// build button array
$menu = array_merge($menu, array(array('type' => 'format', 'title' => $lang['qb_bold'], 'icon' => 'bold.png', 'key' => 'b', 'open' => '**', 'close' => '**', 'block' => false), array('type' => 'format', 'title' => $lang['qb_italic'], 'icon' => 'italic.png', 'key' => 'i', 'open' => '//', 'close' => '//', 'block' => false), array('type' => 'format', 'title' => $lang['qb_underl'], 'icon' => 'underline.png', 'key' => 'u', 'open' => '__', 'close' => '__', 'block' => false), array('type' => 'format', 'title' => $lang['qb_code'], 'icon' => 'mono.png', 'key' => 'c', 'open' => "''", 'close' => "''", 'block' => false), array('type' => 'format', 'title' => $lang['qb_strike'], 'icon' => 'strike.png', 'key' => 'd', 'open' => '<del>', 'close' => '</del>', 'block' => false), array('type' => 'autohead', 'title' => $lang['qb_hequal'], 'icon' => 'hequal.png', 'key' => '8', 'text' => $lang['qb_h'], 'mod' => 0, 'block' => true), array('type' => 'autohead', 'title' => $lang['qb_hminus'], 'icon' => 'hminus.png', 'key' => '9', 'text' => $lang['qb_h'], 'mod' => 1, 'block' => true), array('type' => 'autohead', 'title' => $lang['qb_hplus'], 'icon' => 'hplus.png', 'key' => '0', 'text' => $lang['qb_h'], 'mod' => -1, 'block' => true), array('type' => 'picker', 'title' => $lang['qb_hs'], 'icon' => 'h.png', 'class' => 'pk_hl', 'list' => array(array('type' => 'format', 'title' => $lang['qb_h1'], 'icon' => 'h1.png', 'key' => '1', 'open' => '====== ', 'close' => ' ======\\n'), array('type' => 'format', 'title' => $lang['qb_h2'], 'icon' => 'h2.png', 'key' => '2', 'open' => '===== ', 'close' => ' =====\\n'), array('type' => 'format', 'title' => $lang['qb_h3'], 'icon' => 'h3.png', 'key' => '3', 'open' => '==== ', 'close' => ' ====\\n'), array('type' => 'format', 'title' => $lang['qb_h4'], 'icon' => 'h4.png', 'key' => '4', 'open' => '=== ', 'close' => ' ===\\n'), array('type' => 'format', 'title' => $lang['qb_h5'], 'icon' => 'h5.png', 'key' => '5', 'open' => '== ', 'close' => ' ==\\n')), 'block' => true), array('type' => 'linkwiz', 'title' => $lang['qb_link'], 'icon' => 'link.png', 'key' => 'l', 'open' => '[[', 'close' => ']]', 'block' => false), array('type' => 'format', 'title' => $lang['qb_extlink'], 'icon' => 'linkextern.png', 'open' => '[[', 'close' => ']]', 'sample' => 'http://example.com|' . $lang['qb_extlink'], 'block' => false), array('type' => 'formatln', 'title' => $lang['qb_ol'], 'icon' => 'ol.png', 'open' => ' - ', 'close' => '', 'key' => '-', 'block' => true), array('type' => 'formatln', 'title' => $lang['qb_ul'], 'icon' => 'ul.png', 'open' => ' * ', 'close' => '', 'key' => '.', 'block' => true), array('type' => 'insert', 'title' => $lang['qb_hr'], 'icon' => 'hr.png', 'insert' => '\\n----\\n', 'block' => true), array('type' => 'mediapopup', 'title' => $lang['qb_media'], 'icon' => 'image.png', 'url' => 'lib/exe/mediamanager.php?ns=', 'name' => 'mediaselect', 'options' => 'width=750,height=500,left=20,top=20,scrollbars=yes,resizable=yes', 'block' => false), array('type' => 'picker', 'title' => $lang['qb_smileys'], 'icon' => 'smiley.png', 'list' => getSmileys(), 'icobase' => 'smileys', 'block' => false), array('type' => 'picker', 'title' => $lang['qb_chars'], 'icon' => 'chars.png', 'list' => explode(' ', 'À à Á á  â à ã Ä ä Ǎ ǎ Ă ă Å å Ā ā Ą ą Æ æ Ć ć Ç ç Č č Ĉ ĉ Ċ ċ Ð đ ð Ď ď È è É é Ê ê Ë ë Ě ě Ē ē Ė ė Ę ę Ģ ģ Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ì ì Í í Î î Ï ï Ǐ ǐ Ī ī İ ı Į į Ĵ ĵ Ķ ķ Ĺ ĺ Ļ ļ Ľ ľ Ł ł Ŀ ŀ Ń ń Ñ ñ Ņ ņ Ň ň Ò ò Ó ó Ô ô Õ õ Ö ö Ǒ ǒ Ō ō Ő ő Œ œ Ø ø Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ş ş Š š Ŝ ŝ Ţ ţ Ť ť Ù ù Ú ú Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ů ů ǖ ǘ ǚ ǜ Ų ų Ű ű Ŵ ŵ Ý ý Ÿ ÿ Ŷ ŷ Ź ź Ž ž Ż ż Þ þ ß Ħ ħ ¿ ¡ ¢ £ ¤ ¥ € ¦ § ª ¬ ¯ ° ± ÷ ‰ ¼ ½ ¾ ¹ ² ³ µ ¶ † ‡ · • º ∀ ∂ ∃ Ə ə ∅ ∇ ∈ ∉ ∋ ∏ ∑ ‾ − ∗ √ ∝ ∞ ∠ ∧ ∨ ∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ⊂ ⊃ ⊄ ⊆ ⊇ ⊕ ⊗ ⊥ ⋅ ◊ ℘ ℑ ℜ ℵ ♠ ♣ ♥ ♦ α β Γ γ Δ δ ε ζ η Θ θ ι κ Λ λ μ Ξ ξ Π π ρ Σ σ Τ τ υ Φ φ χ Ψ ψ Ω ω ★ ☆ ☎ ☚ ☛ ☜ ☝ ☞ ☟ ☹ ☺ ✔ ✘ × „ “ ” ‚ ‘ ’ « » ‹ › — – … ← ↑ → ↓ ↔ ⇐ ⇑ ⇒ ⇓ ⇔ © ™ ® ′ ″ [ ] { } ~ ( ) % § $ # | @'), 'block' => false), array('type' => 'signature', 'title' => $lang['qb_sig'], 'icon' => 'sig.png', 'key' => 'y', 'block' => false)));
}
// end event TOOLBAR_DEFINE default action
$evt->advise_after();
unset($evt);
// use JSON to build the JavaScript array
$json = new JSON();
print "var {$varname} = " . $json->encode($menu) . ";\n";
}
开发者ID:stretchyboy,项目名称:dokuwiki,代码行数:23,代码来源:toolbar.php
示例3: p_render
function p_render($mode, $instructions, &$info)
{
if (is_null($instructions)) {
return '';
}
// msg("Memory Usage p_render start: ". memory_get_usage(), -1);
// require_once DOKU_INC."inc/parser/$mode.php";
$rclass = "Doku_Renderer_{$mode}";
if (!class_exists($rclass)) {
trigger_error("Unable to resolve render class {$rclass}", E_USER_ERROR);
}
$Renderer =& new $rclass();
#FIXME any way to check for class existance?
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->latexentities = $this->_texit_conf['latexentities'];
$Renderer->acronyms = getAcronyms();
$Renderer->interwiki = getInterwiki();
$Renderer->info = $info;
// Loop through the instructions
foreach ($instructions as $instruction) {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
//set info array
$info = $Renderer->info;
// msg("Memory Usage p_render end: ". memory_get_usage(), -1);
// Return the output
return $Renderer->doc;
}
开发者ID:omusico,项目名称:isle-web-framework,代码行数:30,代码来源:texitrender.php
示例4: p_render
/**
* Renders a list of instruction to the specified output mode
*
* In the $info array is information from the renderer returned
*
* @author Harry Fuecks <[email protected]>
* @author Andreas Gohr <[email protected]>
*/
function p_render($mode, $instructions, &$info)
{
if (is_null($instructions)) {
return '';
}
$Renderer =& p_get_renderer($mode);
if (is_null($Renderer)) {
return null;
}
$Renderer->reset();
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = getAcronyms();
$Renderer->interwiki = getInterwiki();
// Loop through the instructions
foreach ($instructions as $instruction) {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
//set info array
$info = $Renderer->info;
// Post process and return the output
$data = array($mode, &$Renderer->doc);
trigger_event('RENDERER_CONTENT_POSTPROCESS', $data);
return $Renderer->doc;
}
开发者ID:nextghost,项目名称:dokuwiki,代码行数:34,代码来源:parserutils.php
示例5: p_render
/**
* Renders a list of instruction to the specified output mode
*
* In the $info array are informations from the renderer returned
*
* @author Harry Fuecks <[email protected]>
* @author Andreas Gohr <[email protected]>
*/
function p_render($mode, $instructions, &$info)
{
if (is_null($instructions)) {
return '';
}
if ($mode == 'wiki') {
msg("Renderer for {$mode} not valid", -1);
return null;
}
//FIXME!! remove this line when inc/parser/wiki.php works.
// Create the renderer
if (!@file_exists(DOKU_INC . "inc/parser/{$mode}.php")) {
msg("No renderer for {$mode} found", -1);
return null;
}
require_once DOKU_INC . "inc/parser/{$mode}.php";
$rclass = "Doku_Renderer_{$mode}";
if (!class_exists($rclass)) {
trigger_error("Unable to resolve render class {$rclass}", E_USER_WARNING);
msg("Renderer for {$mode} not valid", -1);
return null;
}
$Renderer = new $rclass();
#FIXME any way to check for class existance?
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = getAcronyms();
$Renderer->interwiki = getInterwiki();
#$Renderer->badwords = getBadWords();
// Loop through the instructions
foreach ($instructions as $instruction) {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
//set info array
$info = $Renderer->info;
// Post process and return the output
$data = array($mode, &$Renderer->doc);
trigger_event('RENDERER_CONTENT_POSTPROCESS', $data);
return $Renderer->doc;
}
开发者ID:canneverbe,项目名称:flyspray,代码行数:49,代码来源:parserutils.php
示例6: smiley
function smiley($smiley)
{
static $smileys;
if (!$smileys) {
$smileys = getSmileys();
}
if (array_key_exists($smiley, $this->smileys)) {
$spath = DOKU_INC . 'lib/images/smileys/' . $smileys[$smiley];
$name = $this->copy_media($spath, true);
$this->doc .= $this->_media($name);
}
}
开发者ID:omusico,项目名称:isle-web-framework,代码行数:12,代码来源:renderer.php
示例7: get_all_data
/**
*
*
* @global string $db_url
* @global dom $dom
* @param boolean $parse_smileys Defaults to TRUE
* @param boolean $filter_words Defaults to FALSE
* @param boolean $processUsername Defaults to FALSE
* @param boolean $processTime Defaults to FALSE
* @param boolean $apply_filter Defaults to TRUE
* @return array
*/
function get_all_data($parse_smileys = true, $filter_words = false, $processUsername = false, $processTime = false, $apply_filter = true)
{
global $db_url;
global $dom;
$db = YDB::factory($db_url);
$data = array();
$data = $db->queryAll(parse_tbprefix("SELECT p.pid AS id, p.ip AS ip , p.uid AS uid ,p.uname AS uname,p.content AS post_content,p.post_time AS time,r.content AS reply_content,r.r_time AS reply_time ,u.username AS b_username FROM <post> AS p LEFT JOIN <reply> AS r ON p.pid=r.pid LEFT JOIN <sysuser> AS u ON p.uid=u.uid ORDER BY p.post_time DESC"));
foreach ($data as &$_data) {
if ($apply_filter && ZFramework::app()->filter_type == ConfigController::FILTER_TRIPTAGS) {
if (strstr(ZFramework::app()->allowed_tags, 'code')) {
$_data['post_content'] = preg_replace_callback('|<code>(.*)</code>|sU', create_function('$matches', 'return "<pre class=\'prettyprint\'>".str_replace(">",">",str_replace("<","<",$matches[1]))."</pre>";'), $_data['post_content']);
$_data['reply_content'] = preg_replace_callback('|<code>(.*)</code>|sU', create_function('$matches', 'return "<pre class=\'prettyprint\'>".str_replace(">",">",str_replace("<","<",$matches[1]))."</pre>";'), $_data['reply_content']);
if (!strstr(ZFramework::app()->allowed_tags, 'pre')) {
ZFramework::app()->allowed_tags .= "<pre>";
}
}
$_data['post_content'] = strip_tags($_data['post_content'], ZFramework::app()->allowed_tags);
$_data['reply_content'] = strip_tags($_data['reply_content'], ZFramework::app()->allowed_tags);
} else {
$_data['post_content'] = htmlentities($_data['post_content'], ENT_COMPAT, 'UTF-8');
$_data['reply_content'] = htmlentities($_data['reply_content'], ENT_COMPAT, 'UTF-8');
}
if ($parse_smileys) {
$dom->loadHTML($_data['post_content']);
$_data['post_content'] = html_entity_decode(parse_smileys($_data['post_content'], SMILEYDIR, getSmileys()));
if ($_data['reply_content']) {
$dom->loadHTML($_data['reply_content']);
$_data['reply_content'] = html_entity_decode(parse_smileys($_data['reply_content'], SMILEYDIR, getSmileys()));
}
}
if ($filter_words) {
$_data['post_content'] = filter_words($_data['post_content']);
}
if ($processUsername) {
$_data['user'] = $_data['uname'] == ZFramework::app()->admin ? "<font color='red'>{$_data['uname']}</font>" : $_data['uname'];
}
if ($processTime) {
$_data['time'] = date('m-d H:i', $_data['time'] + ZFramework::app()->timezone * 60 * 60);
$_data['reply_time'] = date('m-d H:i', $_data['reply_time'] + ZFramework::app()->timezone * 60 * 60);
}
}
return $data;
}
开发者ID:yunsite,项目名称:yuan-pad,代码行数:55,代码来源:functions.php
示例8: action_smileyorder
/**
* Reorders the smileys from a drag/drop event
* Will move them from post to popup location and visa-versa
* Will move them to new rows
*/
public function action_smileyorder()
{
global $context, $txt;
// Start off with an empty response
$context['xml_data'] = array();
$errors = array();
$order = array();
// Chances are I wear a silly ;D
loadLanguage('Errors');
loadLanguage('ManageSmileys');
require_once SUBSDIR . '/Smileys.subs.php';
// You have to be allowed to do this
$validation_token = validateToken('admin-sort', 'post', true, false);
$validation_session = validateSession();
if (empty($validation_session) && $validation_token === true) {
// Valid posting
if (isset($_POST['order']) && $_POST['order'] == 'reorder') {
// Get the details on the moved smile
list(, $smile_moved) = explode('_', $_POST['moved']);
$smile_moved = (int) $smile_moved;
$smile_moved_details = getSmiley($smile_moved);
// Check if we moved rows or locations
$smile_received_location = null;
$smile_received_row = null;
if (!empty($_POST['received'])) {
$displayTypes = array('postform' => 0, 'popup' => 2);
list($smile_received_location, $smile_received_row) = explode('|', $_POST['received']);
$smile_received_location = $displayTypes[substr($smile_received_location, 7)];
}
// If these are not set, we are kind of lost :P
if (isset($smile_received_location, $smile_received_row)) {
// Read the new ordering, remember where the moved smiley is in the stack
$list_order = 0;
$moved_key = 0;
$smiley_tree = array();
foreach ($_POST['smile'] as $smile_id) {
$smiley_tree[] = $smile_id;
// Keep track of where the moved smiley is in the sort stack
if ($smile_id == $smile_moved) {
$moved_key = $list_order;
}
$list_order++;
}
// Now get the updated row, location, order
$smiley = array();
$smiley['row'] = !isset($smile_received_row) ? $smile_moved_details['row'] : $smile_received_row;
$smiley['location'] = !isset($smile_received_location) ? $smile_moved_details['location'] : $smile_received_location;
$smiley['order'] = -1;
// If the node after the drop zone is in the same row/container, we use its position
if (isset($smiley_tree[$moved_key + 1])) {
$possible_after = getSmiley($smiley_tree[$moved_key - 1]);
if ($possible_after['row'] == $smiley['row'] && $possible_after['location'] == $smiley['location']) {
$smiley = getSmileyPosition($smiley['location'], $smiley_tree[$moved_key - 1]);
}
}
// Empty means getSmileyPosition failed and so do we
if (!empty($smiley)) {
moveSmileyPosition($smiley, $smile_moved);
// Done with the move, now we clean up across the containers/rows
$smileys = getSmileys();
foreach (array_keys($smileys) as $location) {
foreach ($smileys[$location]['rows'] as $id => $smiley_row) {
// Fix empty rows if any.
if ($id != $smiley_row[0]['row']) {
updateSmileyRow($id, $smiley_row[0]['row'], $location);
// Only change the first row value of the first smiley.
$smileys[$location]['rows'][$id][0]['row'] = $id;
}
// Make sure the smiley order is always sequential.
foreach ($smiley_row as $order_id => $smiley) {
if ($order_id != $smiley['order']) {
updateSmileyOrder($smiley['id'], $order_id);
}
}
}
}
// Clear the cache, its stale now
cache_put_data('parsing_smileys', null, 480);
cache_put_data('posting_smileys', null, 480);
$order[] = array('value' => $txt['smileys_moved_done']);
}
}
} else {
$errors[] = array('value' => $txt['smileys_moved_fail']);
}
} else {
if (!empty($validation_session)) {
$errors[] = array('value' => $txt[$validation_session]);
}
if (empty($validation_token)) {
$errors[] = array('value' => $txt['token_verify_fail']);
}
}
// New generic token for use
createToken('admin-sort', 'post');
//.........这里部分代码省略.........
开发者ID:KeiroD,项目名称:Elkarte,代码行数:101,代码来源:Xml.controller.php
示例9: create
function create($id, $user_title = false)
{
ob_start();
$id = ltrim($id, ':');
$id = ":{$id}";
$namespace = getNS($id);
epub_save_namespace($namespace);
$mode = 'epub';
$Renderer =& plugin_load('renderer', $mode);
$Renderer->set_oebps();
$Renderer->set_current_page(epub_clean_name(str_replace(':', '_', $id)) . '.html');
$this->_renderer = $Renderer;
if (is_null($Renderer)) {
msg("No renderer for {$mode} found", -1);
exit;
}
global $ID;
$oldID = $ID;
$ID = cleanID($id);
$wiki_file = wikiFN($id);
if (!file_exists($wiki_file)) {
epub_push_spine(array("", ""));
echo "{$id} not found\n";
return false;
}
epub_update_progress("reading {$id}");
$instructions = p_cached_instructions($wiki_file, false, $id);
if (is_null($instructions)) {
return '';
}
$Renderer->notoc();
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = array();
$Renderer->interwiki = getInterwiki();
epub_update_progress("rendering {$id}, this could take some time");
// Loop through the instructions
foreach ($instructions as $instruction) {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
$result = "";
$result .= '<html xmlns="http://www.w3.org/1999/xhtml">' . "\n";
$result .= "\n<head>\n";
$result .= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>' . "\n";
$result .= '<link rel="stylesheet" type="text/css" href="../Styles/style.css"/>';
epub_check_for_mathjax($result);
$result .= "\n<title>";
$result .= "</title>\n</head><body>\n";
$result .= "<div class='dokuwiki'>\n";
$info = $Renderer->info;
$data = array($mode, &$Renderer->doc);
trigger_event('RENDERER_CONTENT_POSTPROCESS', $data);
$xhtml = $Renderer->doc;
$result .= $xhtml;
$result .= "\n</div></body></html>\n";
$result = preg_replace_callback("/&(\\w+);/m", "epbub_entity_replace", $result);
$result = preg_replace("/(^[\r\n]*|[\r\n]+)[\\s\t]*[\r\n]+/m", "\n", $result);
$result = preg_replace("/^\\s+/m", "", $result);
$result = preg_replace_callback('|<p>([\\s\\n]*)(.*?<div.*?/div>.*?)([\\s\\n])*<\\/p>|im', create_function('$matches', '$result = $matches[1] . $matches[2] . $matches[3];
//echo "$result\\n";
return $result;'), $result);
ob_end_flush();
if ($user_title) {
$id = 'title.html';
} else {
$id = epub_clean_name(str_replace(':', '_', $id)) . '.html';
}
io_saveFile(epub_get_oebps() . "Text/{$id}", $result);
if ($user_title) {
epub_write_zip('Text/title.html');
$ID = $oldID;
return true;
}
$item_num = epub_write_item("Text/{$id}", "application/xhtml+xml");
epub_push_spine(array("Text/{$id}", $item_num));
epub_save_namespace();
$ID = $oldID;
return true;
}
开发者ID:omusico,项目名称:isle-web-framework,代码行数:80,代码来源:ebook.php
示例10: _render_xhtml
/**
* Renders a list of instruction to minimal xhtml
*@author Myron Turner <[email protected]>
*/
function _render_xhtml($text)
{
$mode = 'ckgedit';
global $skip_styling;
$skip_styling = $this->getConf('nofont_styling');
if (!$skip_styling && $_POST['styling'] == 'no_styles') {
$skip_styling = true;
}
if (strpos($text, '~~NO_STYLING~~') !== false) {
$skip_styling = true;
}
$text = preg_replace_callback('/(\\[\\[\\w+>)(.*?)([\\]\\|])/ms', create_function('$matches', ' //if(preg_match("/^\\w+$/",$matches[2])) return $matches[0];
return $matches[1] . "oIWIKIo" . $matches[2] ."cIWIKIc" . $matches[3] ;'), $text);
global $Smilies;
$smiley_as_text = @$this->getConf('smiley_as_text');
if ($smiley_as_text) {
$Smilies = array('8-)' => 'aSMILEY_1', '8-O' => 'aSMILEY_2', ':-(' => 'aSMILEY_3', ':-)' => 'aSMILEY_4', '=)' => 'aSMILEY_5', ':-/' => 'aSMILEY_6', ':-\\' => 'aSMILEY_7', ':-?' => 'aSMILEY_8', ':-D' => 'aSMILEY_9', ':-P' => 'bSMILEY_10', ':-O' => 'bSMILEY_11', ':-X' => 'bSMILEY_12', ':-|' => 'bSMILEY_13', ';-)' => 'bSMILEY_14', '^_^' => 'bSMILEY_15', ':?:' => 'bSMILEY_16', ':!:' => 'bSMILEY_17', 'LOL' => 'bSMILEY_18', 'FIXME' => 'bSMILEY_19', 'DELETEME' => 'bSMILEY_20');
$s_values = array_values($Smilies);
$s_values_regex = implode('|', $s_values);
$s_keys = array_keys($Smilies);
$s_keys = array_map(create_function('$k', 'return "(" . preg_quote($k,"/") . ")";'), $s_keys);
$s_keys_regex = implode('|', $s_keys);
global $haveDokuSmilies;
$haveDokuSmilies = false;
$text = preg_replace_callback('/(' . $s_keys_regex . ')/ms', create_function('$matches', 'global $Smilies;
global $haveDokuSmilies;
$haveDokuSmilies = true;
return $Smilies[$matches[1]];'), $text);
}
// try default renderer first:
$file = DOKU_INC . "inc/parser/{$mode}.php";
if (@file_exists($file)) {
require_once $file;
$rclass = "Doku_Renderer_{$mode}";
if (!class_exists($rclass)) {
trigger_error("Unable to resolve render class {$rclass}", E_USER_WARNING);
msg("Renderer for {$mode} not valid", -1);
return null;
}
$Renderer = new $rclass();
} else {
// Maybe a plugin is available?
$Renderer = plugin_load('renderer', $mode);
if (is_null($Renderer)) {
msg("No renderer for {$mode} found", -1);
return null;
}
}
// aimed at wrap plugin which allows multiple newlines in a cell
$text = preg_replace_callback('#(\\|.*?)\\|.?[\\n\\r]#ms', function ($matches) {
$matches[0] = preg_replace("#\\\\\\\\\\s*[\r\n]#ms", " \\\\\\\\ ", $matches[0]);
return $matches[0];
}, $text);
// prevents utf8 conversions of quotation marks
$text = str_replace('"', "_ckgedit_QUOT_", $text);
$text = preg_replace_callback('/(<code.*?>)([^<]+)(<\\/code>)/ms', create_function('$matches', '$quot = str_replace("_ckgedit_QUOT_",\'"\',$matches[2]);
$quot = str_replace("\\\\ ","_ckgedit_NL",$quot);
$quot .= "_ckgedit_NL";
return $matches[1] . $quot . $matches[3];'), $text);
$text = preg_replace_callback('/(<file.*?>)([^<]+)(<\\/file>)/ms', create_function('$matches', '$quot = str_replace("_ckgedit_QUOT_",\'"\',$matches[2]);
$quot = str_replace("\\\\ ","_ckgedit_NL",$quot);
$quot .= "_ckgedit_NL";
return $matches[1] . $quot . $matches[3];'), $text);
$text = preg_replace_callback('/(<code>|<file>)([^<]+)(<\\/code>|<\\/file>)/ms', create_function('$matches', '$matches[2] = str_replace("<font","ckgeditFONTOpen",$matches[2]);
$matches[2] = str_replace("font>","ckgeditFONTClose",$matches[2]);
return $matches[1] .$matches[2] . $matches[3]; '), $text);
$instructions = p_get_instructions("=== header ===");
// loads DOKU_PLUGINS array --M.T. Dec 22 2009
$instructions = p_get_instructions($text);
if (is_null($instructions)) {
return '';
}
$Renderer->notoc();
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = array();
$Renderer->interwiki = getInterwiki();
// Loop through the instructions
/*
By-passing plugin processing was sugested and first implemented
by Matti Lattu<[email protected]>
It is a significant contribution to the functionality of ckgEdit
*/
foreach ($instructions as $instruction) {
if ($instruction[0] == 'plugin') {
$Renderer->doc .= $instruction[1][3];
} else {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
}
//set info array
$info = $Renderer->info;
// Post process and return the output
$data = array($mode, &$Renderer->doc);
trigger_event('RENDERER_CONTENT_POSTPROCESS', $data);
//.........这里部分代码省略.........
开发者ID:a-gundy,项目名称:ckgedit,代码行数:101,代码来源:edit.php
示例11: render
function render($mode, &$renderer, $data)
{
list($ns, $num, $flags, $refine) = $data;
$first = $_REQUEST['first'];
if (!is_numeric($first)) {
$first = 0;
}
// get the blog entries for our namespace
if ($my =& plugin_load('helper', 'blog')) {
$entries = $my->getBlog($ns);
}
// use tag refinements?
if ($refine) {
if (plugin_isdisabled('tag') || !($tag =& plugin_load('helper', 'tag'))) {
msg($this->getLang('missing_tagplugin'), -1);
} else {
$entries = $tag->tagRefine($entries, $refine);
}
}
// any create form overrides?
$formpos = $this->getConf('formposition');
if (in_array('topform', $flags)) {
$formpos = 'top';
} elseif (in_array('bottomform', $flags)) {
$formpos = 'bottom';
} elseif (in_array('noform', $flags)) {
$formpos = 'none';
}
if (!$entries) {
if (auth_quickaclcheck($ns . ':*') >= AUTH_CREATE && $mode == 'xhtml') {
$renderer->info['cache'] = false;
if ($formpos != 'none') {
$renderer->doc .= $this->_newEntryForm($ns);
}
}
return true;
// nothing to display
}
// slice the needed chunk of pages
$more = count($entries) > $first + $num ? true : false;
$entries = array_slice($entries, $first, $num);
// load the include helper plugin
if (plugin_isdisabled('include') || !($include =& plugin_load('helper', 'include'))) {
msg($this->getLang('missing_includeplugin'), -1);
return false;
}
if ($mode == 'xhtml') {
// prevent caching to ensure the included pages are always fresh
$renderer->info['cache'] = false;
// show new entry form
$perm_create = auth_quickaclcheck($ns . ':*') >= AUTH_CREATE;
if ($perm_create && $formpos == 'top') {
$renderer->doc .= $this->_newEntryForm($ns);
}
// current section level
$clevel = 0;
preg_match_all('|<div class="level(\\d)">|i', $renderer->doc, $matches, PREG_SET_ORDER);
$n = count($matches) - 1;
if ($n > -1) {
$clevel = $matches[$n][1];
}
// close current section
if ($clevel) {
$renderer->doc .= '</div>' . DOKU_LF;
}
$renderer->doc .= '<div class="hfeed">' . DOKU_LF;
}
// we need our own renderer
$include_renderer =& p_get_renderer('xhtml');
$include_renderer->smileys = getSmileys();
$include_renderer->entities = getEntities();
$include_renderer->acronyms = getAcronyms();
$include_renderer->interwiki = getInterwiki();
// now include the blog entries
foreach ($entries as $entry) {
if ($mode == 'xhtml') {
if (auth_quickaclcheck($entry['id']) >= AUTH_READ) {
$renderer->doc .= $this->render_XHTML($include, $include_renderer, $entry['id'], $clevel, $flags);
}
} elseif ($mode == 'metadata') {
$renderer->meta['relation']['haspart'][$entry['id']] = true;
}
}
if ($mode == 'xhtml') {
// resume the section
$renderer->doc .= '</div>' . DOKU_LF;
if ($clevel) {
$renderer->doc .= '<div class="level' . $clevel . '">' . DOKU_LF;
}
// BEGIN MODIFIED by harukasan
if (!in_array('nofollowlink', $flags)) {
// show older / newer entries links
$renderer->doc .= $this->_browseEntriesLinks($more, $first, $num);
}
// END MODIFIED
// show new entry form
if ($perm_create && $formpos == 'bottom') {
$renderer->doc .= $this->_newEntryForm($ns);
}
}
//.........这里部分代码省略.........
开发者ID:kosenconf,项目名称:kcweb,代码行数:101,代码来源:blog.php
示例12: initSmileys
/**
* init Smileys
* load smileys and set smily_rule and smiley_repl
*/
function initSmileys()
{
$this->smileys = getSmileys();
$tmp = array_keys($this->smileys);
$tmp = array_map('_preg_escape', $tmp);
$rule = implode('|', $tmp);
$this->smiley_rule = '/(?<=\\s|^|>)(' . $rule . ')(?=\\s|<|$)/';
}
开发者ID:sedrion,项目名称:moniwiki,代码行数:12,代码来源:wiki.php
示例13: _render_xhtml
/**
* Renders a list of instruction to minimal xhtml
*@author Myron Turner <[email protected]>
*/
function _render_xhtml($text)
{
$mode = 'fckg';
global $Smilies;
$smiley_as_text = @$this->getConf('smiley_as_text');
if ($smiley_as_text) {
$Smilies = array('8-)' => 'aSMILEY_1', '8-O' => 'aSMILEY_2', ':-(' => 'aSMILEY_3', ':-)' => 'aSMILEY_4', '=)' => 'aSMILEY_5', ':-/' => 'aSMILEY_6', ':-\\' => 'aSMILEY_7', ':-?' => 'aSMILEY_8', ':-D' => 'aSMILEY_9', ':-P' => 'bSMILEY_10', ':-O' => 'bSMILEY_11', ':-X' => 'bSMILEY_12', ':-|' => 'bSMILEY_13', ';-)' => 'bSMILEY_14', '^_^' => 'bSMILEY_15', ':?:' => 'bSMILEY_16', ':!:' => 'bSMILEY_17', 'LOL' => 'bSMILEY_18', 'FIXME' => 'bSMILEY_19', 'DELETEME' => 'bSMILEY_20');
$s_values = array_values($Smilies);
$s_values_regex = implode('|', $s_values);
$s_keys = array_keys($Smilies);
$s_keys = array_map(create_function('$k', 'return "(" . preg_quote($k,"/") . ")";'), $s_keys);
$s_keys_regex = implode('|', $s_keys);
global $haveDokuSmilies;
$haveDokuSmilies = false;
$text = preg_replace_callback('/(' . $s_keys_regex . ')/ms', create_function('$matches', 'global $Smilies;
global $haveDokuSmilies;
$haveDokuSmilies = true;
return $Smilies[$matches[1]];'), $text);
}
// try default renderer first:
$file = DOKU_INC . "inc/parser/{$mode}.php";
if (@file_exists($file)) {
require_once $file;
$rclass = "Doku_Renderer_{$mode}";
if (!class_exists($rclass)) {
trigger_error("Unable to resolve render class {$rclass}", E_USER_WARNING);
msg("Renderer for {$mode} not valid", -1);
return null;
}
$Renderer = new $rclass();
} else {
// Maybe a plugin is available?
$Renderer = plugin_load('renderer', $mode);
if (is_null($Renderer)) {
msg("No renderer for {$mode} found", -1);
return null;
}
}
// prevents utf8 conversions of quotation marks
$text = str_replace('"', "_fckg_QUOT_", $text);
$text = preg_replace_callback('/(<code|file.*?>)(.*?)(<\\/code>)/ms', create_function('$matches', '$quot = str_replace("_fckg_QUOT_",\'"\',$matches[2]);
$quot = str_replace("\\\\ ","_fckg_NL",$quot);
return $matches[1] . $quot . $matches[3];'), $text);
global $fckgLPluginPatterns;
$fckgLPluginPatterns = array();
$instructions = p_get_instructions("=== header ===");
// loads DOKU_PLUGINS array --M.T. Dec 22 2009
$installed_plugins = $this->get_plugins();
$regexes = $installed_plugins['plugins'];
$text = preg_replace_callback('/(' . $regexes . ')/', create_function('$matches', 'global $fckgLPluginPatterns;
$retv = preg_replace("/([\\{\\}\\@\\:&~\\?\\!<>])/", "$1 ", $matches[0]);
$fckgLPluginPatterns[] = array($retv, $matches[0]);
return $retv;'), $text);
global $fckLImmutables;
$fckglImmutables = array();
foreach ($installed_plugins['xcl'] as $xcl) {
$text = preg_replace_callback('/' . $xcl . '/', create_function('$matches', 'global $fckLImmutables;
if(preg_match("#//<//font#",$matches[0])) {
return str_replace("//<//", "<", $matches[0]);
}
$index = count($fckLImmutables);
$fckLImmutables[] = $matches[0];
return "<span id=\'imm_" . "$index\' title=\'imm_" . "$index\' >" . str_replace("//<//", "<", $matches[0]) . "</span>" ;'), $text);
}
global $multi_block;
if (preg_match('/(?=MULTI_PLUGIN_OPEN)(.*?)(?<=MULTI_PLUGIN_CLOSE)/ms', $text, $matches)) {
//file_put_contents('multi_text-2.txt',$matches[1]);
$multi_block = $matches[1];
}
$instructions = p_get_instructions($text);
if (is_null($instructions)) {
return '';
}
$Renderer->notoc();
$Renderer->smileys = getSmileys();
$Renderer->entities = getEntities();
$Renderer->acronyms = array();
$Renderer->interwiki = getInterwiki();
// Loop through the instructions
foreach ($instructions as $instruction) {
// Execute the callback against the Renderer
call_user_func_array(array(&$Renderer, $instruction[0]), $instruction[1]);
}
//set info array
$info = $Renderer->info;
// Post process and return the output
$data = array($mode, &$Renderer->doc);
trigger_event('RENDERER_CONTENT_POSTPROCESS', $data);
$xhtml = $Renderer->doc;
$pos = strpos($xhtml, 'MULTI_PLUGIN_OPEN');
if ($pos !== false) {
$xhtml = preg_replace('/MULTI_PLUGIN_OPEN.*?MULTI_PLUGIN_CLOSE/ms', $multi_block, $xhtml);
$xhtml = preg_replace_callback('|MULTI_PLUGIN_OPEN.*?MULTI_PLUGIN_CLOSE|ms', create_function('$matches', '$matches[0] = str_replace("//<//", "< ",$matches[0]);
return preg_replace("/\\n/ms","<br />",$matches[0]);'), $xhtml);
$xhtml = preg_replace('/~\\s*~\\s*MULTI_PLUGIN_OPEN~\\s*~/', "~ ~ MULTI_PLUGIN_OPEN~ ~\n\n<span class='multi_p_open'>\n\n</span>", $xhtml);
$xhtml = preg_replace('/~\\s*~\\s*MULTI_PLUGIN_CLOSE~\\s*~/', "<span class='multi_p_close'>\n\n</span>\n\n~ ~ MULTI_PLUGIN_CLOSE~ ~\n", $xhtml);
//.........这里部分代码省略.........
开发者ID:omusico,项目名称:isle-web-framework,代码行数:101,代码来源:edit.php
示例14: action_setorder
/**
* Allows to edit smileys order.
*/
public function action_setorder()
{
global $context, $txt;
require_once SUBSDIR . '/Smileys.subs.php';
$context['sub_template'] = 'setorder';
// Move smileys to another position.
if (isset($_REQUEST['reorder'])) {
checkSession('get');
$_GET['location'] = empty($_GET['location']) || $_GET['location'] != 'popup' ? 0 : 2;
$_GET['source'] = empty($_GET['source']) ? 0 : (int) $_GET['source'];
if (empty($_GET['source'])) {
fatal_lang_error('smiley_not_found');
}
$smiley = array();
if (!empty($_GET['after'])) {
$_GET['after'] = (int) $_GET['after'];
$smiley = getSmileyPosition($_GET['location'], $_GET['after']);
if (empty($smiley)) {
fatal_lang_error('smiley_not_found');
}
} else {
$smiley['row'] = (int) $_GET['row'];
$smiley['order'] = -1;
$smiley['location'] = (int) $_GET['location'];
}
moveSmileyPosition($smiley, $_GET['source']);
}
$context['smileys'] = getSmileys();
$context['move_smiley'] = empty($_REQUEST['move']) ? 0 : (int) $_REQUEST['move'];
// Make sure all rows are sequential.
foreach (array_keys($context['smileys']) as $location) {
$context['smileys'][$location] = array('id' => $location, 'title' => $location == 'postform' ? $txt['smileys_location_form'] : $txt['smileys_location_popup'], 'description' => $location == 'postform' ? $txt['smileys_location_form_description'] : $txt['smileys_location_popup_description'], 'last_row' => count($context['smileys'][$location]['rows']), 'rows' => array_values($context['smileys'][$location]['rows']));
}
// Check & fix smileys that are not ordered properly in the database.
foreach (array_keys($context['smileys']) as $location) {
foreach ($context['smileys'][$location]['rows'] as $id => $smiley_row) {
// Fix empty rows if any.
if ($id != $smiley_row[0]['row']) {
updateSmileyRow($id, $smiley_row[0]['row'], $location);
// Only change the first row value of the first smiley (we don't need the others :P).
$context['smileys'][$location]['rows'][$id][0]['row'] = $id;
}
// Make sure the smiley order is always sequential.
foreach ($smiley_row as $order_id => $smiley) {
if ($order_id != $smiley['order']) {
updateSmileyOrder($smiley['id'], $order_id);
}
}
}
}
cache_put_data('parsing_smileys', null, 480);
cache_put_data('posting_smileys', null, 480);
createToken('admin-sort');
}
开发者ID:KeiroD,项目名称:Elkarte,代码行数:57,代码来源:ManageSmileys.controller.php
示 |
请发表评论