lilalo
annotate l3pre.php @ 153:0414adc06059
Создана программа l3prompt.c (аналог l3prompt, написанного на Perl).
Занимается тем, что разбивает строку на блоки
и вставляет между ними строки-разделители.
По сути это нужно, чтобы сделать приглашение невидимым.
Сишная версия работает в 2-3 раза быстрее чем перловая.
По умолчанию не инсталлируется.
Для использования нужно откомпилировать
и положить вместо l3prompt
gcc -o l3prompt l3prompt.c
mv l3prompt ~/.lilalo/
Занимается тем, что разбивает строку на блоки
и вставляет между ними строки-разделители.
По сути это нужно, чтобы сделать приглашение невидимым.
Сишная версия работает в 2-3 раза быстрее чем перловая.
По умолчанию не инсталлируется.
Для использования нужно откомпилировать
и положить вместо l3prompt
gcc -o l3prompt l3prompt.c
mv l3prompt ~/.lilalo/
author | igor@book.xt.vpn |
---|---|
date | Thu Dec 03 12:23:22 2009 +0200 (2009-12-03) |
parents | 51a232faeb27 |
children |
rev | line source |
---|---|
igor@142 | 1 <? |
igor@150 | 2 $wgHooks['ParserAfterTidy'][] = 'wfLiLaLoParserAfterTidy'; |
igor@142 | 3 $wgExtensionFunctions[] = "wfLiLaLoExtension"; |
igor@142 | 4 |
igor@150 | 5 /* |
igor@150 | 6 |
igor@150 | 7 More on this technic: |
igor@150 | 8 http://www.mediawiki.org/wiki/Manual:Tag_extensions#How_can_I_avoid_modification_of_my_extension.27s_HTML_output.3F |
igor@150 | 9 |
igor@150 | 10 |
igor@150 | 11 HTML tooltips from: |
igor@150 | 12 http://www.walterzorn.com/tooltip/tooltip_e.htm#download |
igor@150 | 13 |
igor@150 | 14 Also: |
igor@150 | 15 http://sixrevisions.com/tutorials/javascript_tutorial/create_lightweight_javascript_tooltip/ |
igor@150 | 16 |
igor@150 | 17 */ |
igor@150 | 18 |
igor@142 | 19 function wfLiLaLoExtension() { |
igor@142 | 20 global $wgParser; |
igor@142 | 21 $wgParser->setHook( "lilalo", "renderLiLaLoPRE" ); |
igor@150 | 22 global $wgOut; |
igor@150 | 23 $wgOut->addHTML('<script src="/js/wz_tooltip.js"></script>'); |
igor@142 | 24 } |
igor@142 | 25 |
igor@150 | 26 $markerList = array(); |
igor@150 | 27 |
igor@142 | 28 function renderLiLaLoPRE( $input ) { |
igor@150 | 29 global $markerList; |
igor@143 | 30 preg_match('/[^\n]*l3: local_session_id=([0-9-]*)[^\n]*[\n]/', $input, $matches); |
igor@143 | 31 $session_id=$matches[1]; |
igor@150 | 32 if ($session_id) { |
igor@143 | 33 preg_match('/([0-9]*)-([0-9]*)/', $session_id, $matches); |
igor@143 | 34 $session_start_time = intval($matches[2]); |
igor@143 | 35 $hour=intval(date('G', $session_start_time)); |
igor@143 | 36 $min=intval(date('i', $session_start_time)); |
igor@143 | 37 $sec=intval(date('s', $session_start_time)); |
igor@143 | 38 $input = preg_replace('/[^\n]*l3: local_session_id=([0-9-]*)[^\n]*[\n]/', '', $input); |
igor@143 | 39 $input = preg_replace('/((..):(..):(...)(#[^\n]*))/e', |
igor@143 | 40 '\'$2:$3:$4<b><a href="http://xgu.ru/l3?page='.$session_id.'&id=' |
igor@143 | 41 .'\'.strval($session_start_time+3600*(intval("$2")-$hour)+60*(intval("$3")-$min)+1*(intval("$4")-$sec)).\'' |
igor@143 | 42 .'">$5</a></b>\'', |
igor@143 | 43 $input); |
igor@143 | 44 # .strval($session_start_time+3600*(intval($2)-$hour)+60*(intval($3)-$min)+(intval($4)-$sec)) |
igor@150 | 45 $time_prefix="$hour:$min:$sec "; |
igor@150 | 46 } |
igor@150 | 47 else |
igor@150 | 48 { |
igor@150 | 49 $tip_text='<table><tr><td>-n</td><td>show numerical addresses instead of trying to determine symbolic host names.<br/> This is useful if you are trying to determine why the route to your nameserver has vanished.</td></tr></table>'; |
igor@150 | 50 #$tip_text='<dv>1</dv>'; |
igor@150 | 51 $tip=" onmouseover=\"Tip('".$tip_text."')\" onmouseout=\"UnTip()\""; |
igor@150 | 52 $input = preg_replace('/(%#.*)/', '<span style="font-weight:bold"'.$tip.'>$1</span>', $input); |
igor@150 | 53 } |
igor@150 | 54 $output = "<pre>$time_prefix$input</pre>"; |
igor@150 | 55 $markercount = count($markerList); |
igor@150 | 56 $marker = "xx-lilalo-marker".$markercount."-xx"; |
igor@150 | 57 $markerList[$markercount] = $output; |
igor@150 | 58 return $marker; |
igor@150 | 59 |
igor@142 | 60 } |
igor@142 | 61 |
igor@150 | 62 function wfLiLaLoParserAfterTidy(&$parser, &$text) { |
igor@150 | 63 // find markers in $text |
igor@150 | 64 // replace markers with actual output |
igor@150 | 65 global $markerList; |
igor@150 | 66 $keys = array(); |
igor@150 | 67 $marker_count = count($markerList); |
igor@150 | 68 |
igor@150 | 69 for ($i = 0; $i < $marker_count; $i++) { |
igor@150 | 70 $keys[$i] = 'xx-lilalo-marker' . $i . '-xx'; |
igor@150 | 71 } |
igor@150 | 72 |
igor@150 | 73 $text = str_replace($keys, $markerList, $text); |
igor@150 | 74 #$text = $marker_count; |
igor@150 | 75 return true; |
igor@150 | 76 } |
igor@142 | 77 ?> |