[TASK] Remove jsmin from library list in EXT:about
[Packages/TYPO3.CMS.git] / typo3 / sysext / statictemplates / media / scripts / postit.inc
1 <?php
2 /***************************************************************
3  *  Copyright notice
4  *
5  *  (c) 1999-2009 Kasper Skårhøj (kasperYYYY@typo3.com)
6  *  All rights reserved
7  *
8  *  This script is part of the TYPO3 project. The TYPO3 project is
9  *  free software; you can redistribute it and/or modify
10  *  it under the terms of the GNU General Public License as published by
11  *  the Free Software Foundation; either version 2 of the License, or
12  *  (at your option) any later version.
13  *
14  *  The GNU General Public License can be found at
15  *  http://www.gnu.org/copyleft/gpl.html.
16  *  A copy is found in the textfile GPL.txt and important notices to the license
17  *  from the author is found in LICENSE.txt distributed with these scripts.
18  *
19  *
20  *  This script is distributed in the hope that it will be useful,
21  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
22  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23  *  GNU General Public License for more details.
24  *
25  *  This copyright notice MUST APPEAR in all copies of the script!
26  ***************************************************************/
27 /**
28  * postit.inc
29  *
30  * Creates graphical postit notes with text on them.
31  *
32  * Revised for TYPO3 3.6 June/2003 by Kasper Skårhøj
33  * XHTML compliant
34  *
35  * @author Kasper Skårhøj <kasperYYYY@typo3.com>
36  */
37 if (!is_object($this)) {
38         die('Error: No parent object present.');
39 }
40 /***************************************************************
41 TypoScript config:.data         [string / stdWrap]              The data for the notes. Every line is a new note. Each line is divided by "|" where the first part is the test, the second part is the type (1-) and the third part is the optional link (typolink-format)
42 .charsPerLine   [string]                        The max number of chars per line of text on the note.
43 .images.[x]             [image-contentObjects]   [x] is the type-number defined by the second parameter in each line of data.
44 .textBox {
45 chars                                           integer, the number of chars on each line
46 lineDist                                        integer, the number of pixels between each line
47 tmplObjNumber                           integer, pointer to the GIFBUILDER-OBJECT (of type TEXT!!) which serves as a TEMPLATE for the objects used to create the textlines
48 Valign                                          string. If set to "center", the tmplObjNumber-TEXT-object is expected to be centeret in the image and calculations will be done to spred the lines above and below in case of multiple lines. (based on .angle of the TEXT object also.)
49 maxLines
50 }Example:// Postit:
51 tt_content.splash.20 = PHP_SCRIPT
52 tt_content.splash.20 {
53 file = media/scripts/postit.inc
54 data.field = bodytext
55 cols = 3
56 textBox {
57 chars = 16
58 lineDist = 18
59 tmplObjNumber = 100
60 Valign = center
61 maxLines = 5
62 }
63 typolink {
64 parameter.current = 1
65 extTarget = {$styles.content.links.extTarget}
66 target = {$styles.content.links.target}
67 }
68 images.1 = IMAGE
69 images.1.file = GIFBUILDER
70 images.1.file {
71 XY = [5.w],[5.h]
72 5 = IMAGE
73 5.file = media/uploads/postit_1.gif
74 100 = TEXT
75 100.text = Testing
76 100.offset = -5,60
77 100.fontFile = fileadmin/fonts/arial_bold.ttf
78 100.fontSize = 15
79 100.align=center
80 }
81 images.2 < .images.1
82 images.2.file.5.file = media/uploads/postit_2.gif
83 images.2.file.100.angle = 11
84 images.2.file.100.offset = -2,79
85 images.3 < .images.1
86 images.3.file.5.file = media/uploads/postit_3.gif
87 images.3.file.100.angle = -13
88 images.3.file.100.offset = -7,81
89 }****************************************************************/
90 $data = $this->stdWrap($conf['data'], $conf['data.']);
91 $cols = intval($conf['cols']) ? intval($conf['cols']) : 3;
92 $lines = explode(chr(10), $data);
93 $imageArr = array();
94 foreach ($lines as $key => $content) {
95         $content = trim($content);
96         if ($content) {
97                 $parts = explode('|', $content);
98                 $text = trim($parts[0]);
99                 $type = t3lib_utility_Math::forceIntegerInRange($parts[1], 1, 3);
100                 $link = trim($parts[2]);
101                 if ($text) {
102                         $imgConf = $conf['images.'][$type . '.'];
103                         $imgConf['file.'] = $this->gifBuilderTextBox($imgConf['file.'], $conf['textBox.'], $text);
104                         $image = $this->IMAGE($imgConf);
105                         if ($image) {
106                                 $this->setCurrentVal($link);
107                                 $imageArr[] = $this->typolink($image, $conf['typolink.']);
108                         }
109                 }
110         }
111 }
112 if (is_array($imageArr)) {
113         reset($imageArr);
114         if ($cols) {
115                 $res = '';
116                 $rows = ceil(count($imageArr) / $cols);
117                 for ($a = 0; $a < $rows; $a++) {
118                         $res .= '<tr>';
119                         for ($b = 0; $b < $cols; $b++) {
120                                 $res .= ('<td>' . $imageArr[($a * $cols + $b)]) . '</td>';
121                         }
122                         $res .= '</tr>';
123                 }
124                 $content = ('<table border="0" cellspacing="0" cellpadding="0">' . $res) . '</table>';
125         } else {
126                 $content .= implode($imageArr, '');
127         }
128 }
129 ?>