summaryrefslogtreecommitdiff
path: root/lib/lib_text.php
blob: 9792e191e840b92293e40f9f51b784b3fb18809b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php

function bbDecode($string) {

	$find = array(
		"'\[b\](.*?)\[/b\]'is",
		"'\[u\](.*?)\[/u\]'is",
		"'\[i\](.*?)\[/i\]'is",
		"'\[s\](.*?)\[/s\]'is",
		"'\[code\](.*?)\[/code\]'is",
		"'\[quote\](.*?)\[/quote\]'is",
		"'\[quote=(.*?)\](.*?)\[/quote\]'is",
		"'\[span=(.*?)\](.*?)\[/span\]'i",
		"'\[div=(.*?)\](.*?)\[/div\]'is",
		"'\[h\](.*?)\[/h\]'i",
		"'\[url\](.*?)\[/url\]'i",
		"'\[url=(.*?)\](.*?)\[/url\]'i",
		"'\[video\](.*?)\[/video\]'i",
		"'\[video width=(.*?) height=(.*?)\](.*?)\[/video\]'i",
		"'\[img\](.*?)\[/img\]'i",
		"'\[img title=(.*?) rel=(.*?)\](.*?)\[/img\]'i",
		"'\[img title=(.*?)\](.*?)\[/img\]'i",
	);

	$replace = array(
		"<strong>\\1</strong>",
		"<u>\\1</u>",
		"<i>\\1</i>",
		"<del>\\1</del>",
		"<pre>\\1</pre>",
		"<q>\\1</q>",
		"<q><span class=\"cite\">\\1 a écrit</span><br />\\2</q>",
		"<span class=\"\\1\">\\2</span>",
		"<div class=\"\\1\">\\2</div>",
		"<b>\\1</b><br />",
		"<a href=\"\\1\">\\1</a>",
		"<a href=\"\\1\">\\2</a>",
		"<object width=\"480\" height=\"387\" class=\"center\"><param name=\"movie\" value=\"\\1\"></param><embed src=\"\\1\" type=\"application/x-shockwave-flash\" width=\"480\" height=\"387\"></embed></object>",
		"<object width=\"\\1\" height=\"\\2\" class=\"center\"><param name=\"movie\" value=\"\\3\"></param><embed src=\"\\3\" type=\"application/x-shockwave-flash\" width=\"\\1\" height=\"\\2\"></embed></object>",
		"<a href=\"\\1\" rel=\"prettyPhoto\"><img src=\"\\1\" alt=\"\" /></a>",
		"<img class=\"illustration\" src=\"\\3\" alt=\"\\1\" />",
		"<img src=\"\\2\" alt=\"\\1\" />",
	);

	$string = makeLinks(preg_replace ($find, $replace, $string));
	$string = nl2brPlus ($string);

	return $string;
}

// do nl2br except when in a <pre> tag
function nl2brPlus($string) {
	$string = str_replace("\n", "<br />", $string);
	if(preg_match_all('/\<pre\>(.*?)\<\/pre\>/', $string, $match)){
		foreach($match as $a){
			foreach($a as $b){
				$string = str_replace('<pre>'.$b.'</pre>', "<pre>".str_replace("<br />", "", $b)."</pre>", $string);
			}
		}
	}
	return $string;
}

# Transform URL and e-mails into links
function makeLinks($string) {
	$string = preg_replace_callback('/\s(http|https|ftp):(\/\/){0,1}([^\"\s]*)/i','splitUri',$string);
	return $string;
}

# Split links, require for makeLinks
function splitUri($matches) {
	$uri = $matches[1].':'.$matches[2].$matches[3];
	$t = parse_url($uri);
	$link = $matches[3];
				
	if (!empty($t['scheme'])) {
		return ' <a href="'.$uri.'">'.$link.'</a>';
	} else {
		return $uri;
	}
}

// parse la description pour ajouter les liens sur les tags
function parse_tags ($desc) {
	$desc_parse = preg_replace ('/#([\w\dÀÇÈÉÊËÎÏÔÙÚÛÜàáâçèéêëîïóùúûü]+)/i', '<a class="linktag" href="?addtag=\\1">\\1</a>', $desc);

	return $desc_parse;
}

function lazyimg($content) {
	return preg_replace(
		'/<img([^<]+)src=([\'"])([^"\']*)([\'"])([^<]*)>/i',
		'<img$1src="' . Url::display('/data/grey.gif') . '" data-original="$3"$5>',
		$content
	);
}