<?php include_once '../doc-typo3-funcs.php'; $doxygen_vars = array( "title" => "TYPO3 4.0.1: typo3_src-4.0.1/typo3/show_item.php Source File", "datetime" => "Sat Dec 2 19:22:22 2006", "date" => "2 Dec 2006", "doxygenversion" => "1.4.6", "projectname" => "TYPO3 4.0.1", "projectnumber" => "4.0.1" ); get_header($doxygen_vars); ?> <!-- Generated by Doxygen 1.4.6 --> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="classes.html"><span>Classes</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li> <form action="search.php" method="get"> <table cellspacing="0" cellpadding="0" border="0"> <tr> <td><label> <u>S</u>earch for </label></td> <td><input type="text" name="query" value="" size="20" accesskey="s"/></td> </tr> </table> </form> </li> </ul></div> <div class="nav"> <a class="el" href="dir_c8daf1ad746050abf985cc546c89e248.html">typo3_src-4.0.1</a> » <a class="el" href="dir_18071ae4545d8b3e0364d30c0659c74a.html">typo3</a></div> <h1>show_item.php</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <?php <a name="l00002"></a>00002 <span class="comment">/***************************************************************</span> <a name="l00003"></a>00003 <span class="comment">* Copyright notice</span> <a name="l00004"></a>00004 <span class="comment">*</span> <a name="l00005"></a>00005 <span class="comment">* (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)</span> <a name="l00006"></a>00006 <span class="comment">* All rights reserved</span> <a name="l00007"></a>00007 <span class="comment">*</span> <a name="l00008"></a>00008 <span class="comment">* This script is part of the TYPO3 project. The TYPO3 project is</span> <a name="l00009"></a>00009 <span class="comment">* free software; you can redistribute it and/or modify</span> <a name="l00010"></a>00010 <span class="comment">* it under the terms of the GNU General Public License as published by</span> <a name="l00011"></a>00011 <span class="comment">* the Free Software Foundation; either version 2 of the License, or</span> <a name="l00012"></a>00012 <span class="comment">* (at your option) any later version.</span> <a name="l00013"></a>00013 <span class="comment">*</span> <a name="l00014"></a>00014 <span class="comment">* The GNU General Public License can be found at</span> <a name="l00015"></a>00015 <span class="comment">* http://www.gnu.org/copyleft/gpl.html.</span> <a name="l00016"></a>00016 <span class="comment">* A copy is found in the textfile GPL.txt and important notices to the license</span> <a name="l00017"></a>00017 <span class="comment">* from the author is found in LICENSE.txt distributed with these scripts.</span> <a name="l00018"></a>00018 <span class="comment">*</span> <a name="l00019"></a>00019 <span class="comment">*</span> <a name="l00020"></a>00020 <span class="comment">* This script is distributed in the hope that it will be useful,</span> <a name="l00021"></a>00021 <span class="comment">* but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00022"></a>00022 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> <a name="l00023"></a>00023 <span class="comment">* GNU General Public License for more details.</span> <a name="l00024"></a>00024 <span class="comment">*</span> <a name="l00025"></a>00025 <span class="comment">* This copyright notice MUST APPEAR in all copies of the script!</span> <a name="l00026"></a>00026 <span class="comment">***************************************************************/</span> <a name="l00059"></a>00059 $BACK_PATH = ''; <a name="l00060"></a>00060 require($BACK_PATH.'init.php'); <a name="l00061"></a>00061 require($BACK_PATH.'<span class="keyword">template</span>.php'); <a name="l00062"></a>00062 require_once(PATH_t3lib.'<span class="keyword">class</span>.t3lib_page.php'); <a name="l00063"></a>00063 require_once(PATH_t3lib.'<span class="keyword">class</span>.t3lib_loaddbgroup.php'); <a name="l00064"></a>00064 require_once(PATH_t3lib.'<span class="keyword">class</span>.t3lib_transferdata.php'); <a name="l00065"></a>00065 <a name="l00066"></a>00066 <a name="l00067"></a>00067 <a name="l00068"></a>00068 <a name="l00069"></a>00069 <a name="l00070"></a>00070 <a name="l00071"></a>00071 <a name="l00072"></a>00072 <a name="l00073"></a>00073 <a name="l00074"></a>00074 <a name="l00075"></a>00075 <a name="l00076"></a>00076 <a name="l00084"></a><a class="code" href="classtransferData.html">00084</a> <span class="keyword">class </span><a class="code" href="classtransferData.html">transferData</a> <span class="keyword">extends</span> <a class="code" href="classt3lib__transferData.html">t3lib_transferData</a> { <a name="l00085"></a>00085 <a name="l00086"></a><a class="code" href="classtransferData.html#e070cf4bc06b58b52e30509a7d703cd0">00086</a> var <a class="code" href="classtransferData.html#e070cf4bc06b58b52e30509a7d703cd0">$formname</a> = 'loadform'; <a name="l00087"></a><a class="code" href="classtransferData.html#f16e8f2cf690852f4c6a665455234346">00087</a> var <a class="code" href="classtransferData.html#f16e8f2cf690852f4c6a665455234346">$loading</a> = 1; <a name="l00088"></a>00088 <a name="l00089"></a>00089 <span class="comment">// Extra for show_item.php:</span> <a name="l00090"></a><a class="code" href="classtransferData.html#c3778fcb30dc3b21655544102db5d5d0">00090</a> var <a class="code" href="classtransferData.html#c3778fcb30dc3b21655544102db5d5d0">$theRecord</a> = Array(); <a name="l00091"></a>00091 <a name="l00101"></a><a class="code" href="classtransferData.html#38ac8a5f312c155f2ada82fc14a68cb6">00101</a> function <a class="code" href="classtransferData.html#38ac8a5f312c155f2ada82fc14a68cb6">regItem</a>($table, $id, $field, $content) { <a name="l00102"></a>00102 <a class="code" href="classt3lib__div.html#3a04dbb9a707317b8beccbe92559dcc8">t3lib_div::loadTCA</a>($table); <a name="l00103"></a>00103 $config = $GLOBALS['TCA'][$table]['columns'][$field]['config']; <a name="l00104"></a>00104 <span class="keywordflow">switch</span>($config['type']) { <a name="l00105"></a>00105 <span class="keywordflow">case</span> 'input': <a name="l00106"></a>00106 <span class="keywordflow">if</span> (isset($config['checkbox']) && $content==$config['checkbox']) {$content=''; <span class="keywordflow">break</span>;} <a name="l00107"></a>00107 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#d994a5608365c288d051d6022d4e9976">t3lib_div::inList</a>($config['eval'],'date')) {$content = Date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'],$content); } <a name="l00108"></a>00108 <span class="keywordflow">break</span>; <a name="l00109"></a>00109 <span class="keywordflow">case</span> 'group': <a name="l00110"></a>00110 <span class="keywordflow">break</span>; <a name="l00111"></a>00111 <span class="keywordflow">case</span> 'select': <a name="l00112"></a>00112 <span class="keywordflow">break</span>; <a name="l00113"></a>00113 } <a name="l00114"></a>00114 $this->theRecord[$field]=$content; <a name="l00115"></a>00115 } <a name="l00116"></a>00116 } <a name="l00117"></a>00117 <a name="l00118"></a>00118 <a name="l00119"></a>00119 <a name="l00120"></a>00120 <a name="l00121"></a>00121 <a name="l00122"></a>00122 <a name="l00123"></a>00123 <a name="l00124"></a>00124 <a name="l00125"></a>00125 <a name="l00126"></a>00126 <a name="l00127"></a>00127 <a name="l00135"></a><a class="code" href="classSC__show__item.html">00135</a> <span class="keyword">class </span><a class="code" href="classSC__show__item.html">SC_show_item</a> { <a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="comment">// GET vars:</span> <a name="l00138"></a><a class="code" href="classSC__show__item.html#8490cd3b3d96dcedaa1d12d5bf156277">00138</a> var <a class="code" href="classSC__show__item.html#8490cd3b3d96dcedaa1d12d5bf156277">$table</a>; <span class="comment">// Record table (or filename)</span> <a name="l00139"></a><a class="code" href="classSC__show__item.html#363f2ba0cfa0bbaa7fda77d954a61b31">00139</a> var <a class="code" href="classSC__show__item.html#363f2ba0cfa0bbaa7fda77d954a61b31">$uid</a>; <span class="comment">// Record uid (or '' when filename)</span> <a name="l00140"></a>00140 <a name="l00141"></a>00141 <span class="comment">// Internal, static:</span> <a name="l00142"></a><a class="code" href="classSC__show__item.html#677c2646ad51a5b704f2e60c5d8b7ac4">00142</a> var <a class="code" href="classSC__show__item.html#677c2646ad51a5b704f2e60c5d8b7ac4">$perms_clause</a>; <span class="comment">// Page select clause</span> <a name="l00143"></a><a class="code" href="classSC__show__item.html#0b33b7b9335b95ae6fbe087b43bf415d">00143</a> var <a class="code" href="classSC__show__item.html#0b33b7b9335b95ae6fbe087b43bf415d">$access</a>; <span class="comment">// If true, access to element is granted</span> <a name="l00144"></a><a class="code" href="classSC__show__item.html#72537a0838c5c7ec9fd152910459f5fa">00144</a> var <a class="code" href="classSC__show__item.html#72537a0838c5c7ec9fd152910459f5fa">$type</a>; <span class="comment">// Which type of element: "file" or "db"</span> <a name="l00145"></a><a class="code" href="classSC__show__item.html#0cea81cd1bf9b29118b728a98043f2e6">00145</a> var <a class="code" href="classSC__show__item.html#0cea81cd1bf9b29118b728a98043f2e6">$doc</a>; <span class="comment">// Document Template Object</span> <a name="l00146"></a>00146 <a name="l00147"></a>00147 <span class="comment">// Internal, dynamic:</span> <a name="l00148"></a><a class="code" href="classSC__show__item.html#d0be8784cf9119954549e990b2b8217e">00148</a> var <a class="code" href="classSC__show__item.html#d0be8784cf9119954549e990b2b8217e">$content</a>; <span class="comment">// Content Accumulation</span> <a name="l00149"></a><a class="code" href="classSC__show__item.html#96e9d2dc7d9f08327920b678efb59700">00149</a> var <a class="code" href="classSC__show__item.html#96e9d2dc7d9f08327920b678efb59700">$file</a>; <span class="comment">// For type "file": Filename</span> <a name="l00150"></a><a class="code" href="classSC__show__item.html#672e3ad963347b43a3cab953b280d96c">00150</a> var <a class="code" href="classSC__show__item.html#672e3ad963347b43a3cab953b280d96c">$pageinfo</a>; <span class="comment">// For type "db": Set to page record of the parent page of the item set (if type="db")</span> <a name="l00151"></a><a class="code" href="classSC__show__item.html#6efa2a158c09f4825d1cbbfdc5f1f087">00151</a> var <a class="code" href="classSC__show__item.html#6efa2a158c09f4825d1cbbfdc5f1f087">$row</a>; <span class="comment">// For type "db": The database record row.</span> <a name="l00152"></a>00152 <a name="l00153"></a>00153 <a name="l00160"></a><a class="code" href="classSC__show__item.html#3a6be211ec159aede780da3bd28996cd">00160</a> function <a class="code" href="classSC__show__item.html#3a6be211ec159aede780da3bd28996cd">init</a>() { <a name="l00161"></a>00161 global $BE_USER,$LANG,$BACK_PATH,$TCA; <a name="l00162"></a>00162 <a name="l00163"></a>00163 <span class="comment">// Setting input variables.</span> <a name="l00164"></a>00164 $this->table = <a class="code" href="classt3lib__div.html#df47c9f4e9980aa832b6516b774aeb33">t3lib_div::_GET</a>('table'); <a name="l00165"></a>00165 $this->uid = <a class="code" href="classt3lib__div.html#df47c9f4e9980aa832b6516b774aeb33">t3lib_div::_GET</a>('uid'); <a name="l00166"></a>00166 <a name="l00167"></a>00167 <span class="comment">// Initialize:</span> <a name="l00168"></a>00168 $this->perms_clause = $BE_USER->getPagePermsClause(1); <a name="l00169"></a>00169 $this->access = 0; <span class="comment">// Set to true if there is access to the record / file.</span> <a name="l00170"></a>00170 $this->type = ''; <span class="comment">// Sets the type, "db" or "file". If blank, nothing can be shown.</span> <a name="l00171"></a>00171 <a name="l00172"></a>00172 <span class="comment">// Checking if the $table value is really a table and if the user has access to it.</span> <a name="l00173"></a>00173 <span class="keywordflow">if</span> (isset($TCA[$this->table])) { <a name="l00174"></a>00174 <a class="code" href="classt3lib__div.html#3a04dbb9a707317b8beccbe92559dcc8">t3lib_div::loadTCA</a>($this->table); <a name="l00175"></a>00175 $this->type = 'db'; <a name="l00176"></a>00176 $this->uid = intval($this->uid); <a name="l00177"></a>00177 <a name="l00178"></a>00178 <span class="comment">// Check permissions and uid value:</span> <a name="l00179"></a>00179 <span class="keywordflow">if</span> ($this->uid && $BE_USER->check('tables_select',$this->table)) { <a name="l00180"></a>00180 <span class="keywordflow">if</span> ((string)$this->table=='pages') { <a name="l00181"></a>00181 $this->pageinfo = <a class="code" href="classt3lib__BEfunc.html#b99fd2c4e3d5bae861525165091fe5de">t3lib_BEfunc::readPageAccess</a>($this->uid,$this->perms_clause); <a name="l00182"></a>00182 $this->access = is_array($this->pageinfo) ? 1 : 0; <a name="l00183"></a>00183 $this->row = $this->pageinfo; <a name="l00184"></a>00184 } <span class="keywordflow">else</span> { <a name="l00185"></a>00185 $this->row = <a class="code" href="classt3lib__BEfunc.html#c0a110679ba0fac9af0d66f34026f378">t3lib_BEfunc::getRecord</a>($this->table,$this->uid); <a name="l00186"></a>00186 <span class="keywordflow">if</span> ($this->row) { <a name="l00187"></a>00187 $this->pageinfo = <a class="code" href="classt3lib__BEfunc.html#b99fd2c4e3d5bae861525165091fe5de">t3lib_BEfunc::readPageAccess</a>($this->row['pid'],$this->perms_clause); <a name="l00188"></a>00188 $this->access = is_array($this->pageinfo) ? 1 : 0; <a name="l00189"></a>00189 } <a name="l00190"></a>00190 } <a name="l00191"></a>00191 <a name="l00192"></a>00192 $treatData = <a class="code" href="classt3lib__div.html#b47f8a8e8be44b79a0b8064dcd427bc1">t3lib_div::makeInstance</a>('<a class="code" href="classt3lib__transferData.html">t3lib_transferData</a>'); <a name="l00193"></a>00193 $treatData->renderRecord($this->table, $this->uid, 0, $this->row); <a name="l00194"></a>00194 $cRow = $treatData->theRecord; <a name="l00195"></a>00195 } <a name="l00196"></a>00196 } <span class="keywordflow">else</span> { <a name="l00197"></a>00197 <span class="comment">// if the filereference $this->file is relative, we correct the path</span> <a name="l00198"></a>00198 <span class="keywordflow">if</span> (substr($this->table,0,3)=='../') { <a name="l00199"></a>00199 $this->file = PATH_site.ereg_replace('^\.\./<span class="charliteral">','</span>',$this->table); <a name="l00200"></a>00200 } <span class="keywordflow">else</span> { <a name="l00201"></a>00201 $this->file = $this->table; <a name="l00202"></a>00202 } <a name="l00203"></a>00203 <span class="keywordflow">if</span> (@is_file($this->file) && <a class="code" href="classt3lib__div.html#6832637b0bc8de6c74768bbcbc868832">t3lib_div::isAllowedAbsPath</a>($this->file)) { <a name="l00204"></a>00204 $this->type = 'file'; <a name="l00205"></a>00205 $this->access = 1; <a name="l00206"></a>00206 } <a name="l00207"></a>00207 } <a name="l00208"></a>00208 <a name="l00209"></a>00209 <span class="comment">// Initialize document template object:</span> <a name="l00210"></a>00210 $this->doc = <a class="code" href="classt3lib__div.html#b47f8a8e8be44b79a0b8064dcd427bc1">t3lib_div::makeInstance</a>('<a class="code" href="classsmallDoc.html">smallDoc</a>'); <a name="l00211"></a>00211 $this->doc->backPath = $BACK_PATH; <a name="l00212"></a>00212 $this->doc->docType = 'xhtml_trans'; <a name="l00213"></a>00213 <a name="l00214"></a>00214 <span class="comment">// Starting the page by creating page header stuff:</span> <a name="l00215"></a>00215 $this->content.=$this->doc->startPage($LANG->sL('LLL:EXT:lang/locallang_core.php:show_item.php.viewItem')); <a name="l00216"></a>00216 $this->content.=$this->doc->header($LANG->sL('LLL:EXT:lang/locallang_core.php:show_item.php.viewItem')); <a name="l00217"></a>00217 $this->content.=$this->doc->spacer(5); <a name="l00218"></a>00218 } <a name="l00219"></a>00219 <a name="l00225"></a><a class="code" href="classSC__show__item.html#8ad756d5cd755a3d6107344fe4ee7894">00225</a> function <a class="code" href="classSC__show__item.html#8ad756d5cd755a3d6107344fe4ee7894">main</a>() { <a name="l00226"></a>00226 global $LANG; <a name="l00227"></a>00227 <a name="l00228"></a>00228 <span class="keywordflow">if</span> ($this->access) { <a name="l00229"></a>00229 $returnLinkTag = <a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('returnUrl') ? '<a href=<span class="stringliteral">"'.t3lib_div::_GP('returnUrl').'"</span> <span class="keyword">class</span>=<span class="stringliteral">"typo3-goBack"</span>>' : '<a href=<span class="stringliteral">"#"</span> onclick=<span class="stringliteral">"window.close();"</span>>'; <a name="l00230"></a>00230 <a name="l00231"></a>00231 <span class="comment">// render type by user func</span> <a name="l00232"></a>00232 $typeRendered = <span class="keyword">false</span>; <a name="l00233"></a>00233 <span class="keywordflow">if</span> (is_array ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/show_item.php']['typeRendering'])) { <a name="l00234"></a>00234 foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/show_item.php']['typeRendering'] as $classRef) { <a name="l00235"></a>00235 $typeRenderObj = <a class="code" href="classt3lib__div.html#ebd81edfc92886dc4c625fc9fe53595f">t3lib_div::getUserObj</a>($classRef); <a name="l00236"></a>00236 <span class="keywordflow">if</span>(is_object($typeRenderObj) && method_exists($typeRenderObj, 'isValid') && method_exists($typeRenderObj, 'render')) { <a name="l00237"></a>00237 <span class="keywordflow">if</span> ($typeRenderObj->isValid($this->type, $this)) { <a name="l00238"></a>00238 $this->content .= $typeRenderObj->render($this->type, $this); <a name="l00239"></a>00239 $typeRendered = <span class="keyword">true</span>; <a name="l00240"></a>00240 <span class="keywordflow">break</span>; <a name="l00241"></a>00241 } <a name="l00242"></a>00242 } <a name="l00243"></a>00243 } <a name="l00244"></a>00244 } <a name="l00245"></a>00245 <a name="l00246"></a>00246 <span class="comment">// if type was not rendered use default rendering functions</span> <a name="l00247"></a>00247 <span class="keywordflow">if</span>(!$typeRendered) { <a name="l00248"></a>00248 <span class="comment">// Branch out based on type:</span> <a name="l00249"></a>00249 <span class="keywordflow">switch</span>($this->type) { <a name="l00250"></a>00250 <span class="keywordflow">case</span> 'db': <a name="l00251"></a>00251 $this-><a class="code" href="classSC__show__item.html#5791d9b4d7042b3ed2df4a067d04e57f">renderDBInfo</a>(); <a name="l00252"></a>00252 <span class="keywordflow">break</span>; <a name="l00253"></a>00253 <span class="keywordflow">case</span> 'file': <a name="l00254"></a>00254 $this-><a class="code" href="classSC__show__item.html#8cb0fba22d2a5f650d4ac677b58b05bb">renderFileInfo</a>($returnLinkTag); <a name="l00255"></a>00255 <span class="keywordflow">break</span>; <a name="l00256"></a>00256 } <a name="l00257"></a>00257 } <a name="l00258"></a>00258 <a name="l00259"></a>00259 <span class="comment">// If return Url is set, output link to go back:</span> <a name="l00260"></a>00260 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#016d2190758279b2dbb953826c690118">t3lib_div::_GP</a>('returnUrl')) { <a name="l00261"></a>00261 $this->content = $this->doc->section('',$returnLinkTag.'<strong>'.$LANG->sL('LLL:EXT:lang/locallang_core.xml:labels.goBack',1).'</strong></a><br /><br />').$this->content; <a name="l00262"></a>00262 <a name="l00263"></a>00263 $this->content .= $this->doc->section('<span class="charliteral">','</span><br />'.$returnLinkTag.'<strong>'.$LANG->sL('LLL:EXT:lang/locallang_core.xml:labels.goBack',1).'</strong></a>'); <a name="l00264"></a>00264 } <a name="l00265"></a>00265 } <a name="l00266"></a>00266 } <a name="l00267"></a>00267 <a name="l00273"></a><a class="code" href="classSC__show__item.html#5791d9b4d7042b3ed2df4a067d04e57f">00273</a> function <a class="code" href="classSC__show__item.html#5791d9b4d7042b3ed2df4a067d04e57f">renderDBInfo</a>() { <a name="l00274"></a>00274 global $LANG,$TCA; <a name="l00275"></a>00275 <a name="l00276"></a>00276 <span class="comment">// Print header, path etc:</span> <a name="l00277"></a>00277 $code = $this->doc->getHeader($this->table,$this->row,$this->pageinfo['_thePath'],1).'<br />'; <a name="l00278"></a>00278 $this->content.= $this->doc->section('',$code); <a name="l00279"></a>00279 <a name="l00280"></a>00280 <span class="comment">// Initialize variables:</span> <a name="l00281"></a>00281 $tableRows = Array(); <a name="l00282"></a>00282 $i = 0; <a name="l00283"></a>00283 <a name="l00284"></a>00284 <span class="comment">// Traverse the list of fields to display for the record:</span> <a name="l00285"></a>00285 $fieldList = <a class="code" href="classt3lib__div.html#cfb87d585b85e9b32841bde40beaa96c">t3lib_div::trimExplode</a>(<span class="charliteral">','</span>,$TCA[$this->table]['interface']['showRecordFieldList'],1); <a name="l00286"></a>00286 foreach($fieldList as $name) { <a name="l00287"></a>00287 $name = trim($name); <a name="l00288"></a>00288 <span class="keywordflow">if</span> ($TCA[$this->table]['columns'][$name]) { <a name="l00289"></a>00289 <span class="keywordflow">if</span> (!$TCA[$this->table]['columns'][$name]['exclude'] || $GLOBALS['BE_USER']->check('non_exclude_fields',$this->table.<span class="charliteral">':'</span>.$name)) { <a name="l00290"></a>00290 $i++; <a name="l00291"></a>00291 $tableRows[] = ' <a name="l00292"></a>00292 <tr> <a name="l00293"></a>00293 <td <span class="keyword">class</span>=<span class="stringliteral">"bgColor5"</span>>'.$LANG->sL(<a class="code" href="classt3lib__BEfunc.html#07be789ba38e4a0ae1b465a42bd3c90f">t3lib_BEfunc::getItemLabel</a>($this->table,$name),1).'</td> <a name="l00294"></a>00294 <td <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span>>'.htmlspecialchars(<a class="code" href="classt3lib__BEfunc.html#0005b06f417969ff2d0cc4cbc04258d0">t3lib_BEfunc::getProcessedValue</a>($this->table,$name,$this->row[$name])).'</td> <a name="l00295"></a>00295 </tr>'; <a name="l00296"></a>00296 } <a name="l00297"></a>00297 } <a name="l00298"></a>00298 } <a name="l00299"></a>00299 <a name="l00300"></a>00300 <span class="comment">// Create table from the information:</span> <a name="l00301"></a>00301 $tableCode = ' <a name="l00302"></a>00302 <table border=<span class="stringliteral">"0"</span> cellpadding=<span class="stringliteral">"1"</span> cellspacing=<span class="stringliteral">"1"</span> <span class="keywordtype">id</span>=<span class="stringliteral">"typo3-showitem"</span>> <a name="l00303"></a>00303 '.implode('',$tableRows).' <a name="l00304"></a>00304 </table>'; <a name="l00305"></a>00305 $this->content.=$this->doc->section('',$tableCode); <a name="l00306"></a>00306 $this->content.=$this->doc->divider(2); <a name="l00307"></a>00307 <a name="l00308"></a>00308 <span class="comment">// Add path and table information in the bottom:</span> <a name="l00309"></a>00309 $code = ''; <a name="l00310"></a>00310 $code.= $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.path').': '.t3lib_div::fixed_lgd_cs($this->pageinfo['_thePath'],-48).'<br />'; <a name="l00311"></a>00311 $code.= $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.table').': '.$LANG->sL($TCA[$this->table]['ctrl']['title']).' ('.$this->table.') - UID: '.$this->uid.'<br />'; <a name="l00312"></a>00312 $this->content.= $this->doc->section('', $code); <a name="l00313"></a>00313 <a name="l00314"></a>00314 <span class="comment">// References:</span> <a name="l00315"></a>00315 $this->content.= $this->doc->section('References to <span class="keyword">this</span> item:',$this-><a class="code" href="classSC__show__item.html#8a31dd27dc0296c10c18484959fdef96">makeRef</a>($this->table,$this->row['uid'])); <a name="l00316"></a>00316 <a name="l00317"></a>00317 <span class="comment">// References:</span> <a name="l00318"></a>00318 $this->content.= $this->doc->section('References from <span class="keyword">this</span> item:',$this-><a class="code" href="classSC__show__item.html#492b365bdd487916839f6471901e6068">makeRefFrom</a>($this->table,$this->row['uid'])); <a name="l00319"></a>00319 } <a name="l00320"></a>00320 <a name="l00327"></a><a class="code" href="classSC__show__item.html#8cb0fba22d2a5f650d4ac677b58b05bb">00327</a> function <a class="code" href="classSC__show__item.html#8cb0fba22d2a5f650d4ac677b58b05bb">renderFileInfo</a>($returnLinkTag) { <a name="l00328"></a>00328 global $LANG; <a name="l00329"></a>00329 <a name="l00330"></a>00330 <span class="comment">// Initialize object to work on the image:</span> <a name="l00331"></a>00331 require_once(PATH_t3lib.'<span class="keyword">class</span>.t3lib_stdgraphic.php'); <a name="l00332"></a>00332 $imgObj = <a class="code" href="classt3lib__div.html#b47f8a8e8be44b79a0b8064dcd427bc1">t3lib_div::makeInstance</a>('<a class="code" href="classt3lib__stdGraphic.html">t3lib_stdGraphic</a>'); <a name="l00333"></a>00333 $imgObj->init(); <a name="l00334"></a>00334 $imgObj->mayScaleUp = 0; <a name="l00335"></a>00335 $imgObj->absPrefix = PATH_site; <a name="l00336"></a>00336 <a name="l00337"></a>00337 <span class="comment">// Read Image Dimensions (returns false if file was not an image type, otherwise dimensions in an array)</span> <a name="l00338"></a>00338 $imgInfo = ''; <a name="l00339"></a>00339 $imgInfo = $imgObj->getImageDimensions($this->file); <a name="l00340"></a>00340 <a name="l00341"></a>00341 <span class="comment">// File information</span> <a name="l00342"></a>00342 $fI = <a class="code" href="classt3lib__div.html#5d3c3b52930921eaab22349829fb4e5b">t3lib_div::split_fileref</a>($this->file); <a name="l00343"></a>00343 $ext = $fI['fileext']; <a name="l00344"></a>00344 <a name="l00345"></a>00345 $code = ''; <a name="l00346"></a>00346 <a name="l00347"></a>00347 <span class="comment">// Setting header:</span> <a name="l00348"></a>00348 $icon = <a class="code" href="classt3lib__BEfunc.html#aeeac2794c465be431de1ecab56e1ce5">t3lib_BEfunc::getFileIcon</a>($ext); <a name="l00349"></a>00349 $url = 'gfx/fileicons/'.$icon; <a name="l00350"></a>00350 $fileName = '<img src=<span class="stringliteral">"'.$url.'"</span> width=<span class="stringliteral">"18"</span> height=<span class="stringliteral">"16"</span> align=<span class="stringliteral">"top"</span> alt=<span class="stringliteral">""</span> /><b>'.$LANG->sL('LLL:EXT:lang/locallang_core.php:show_item.php.file',1).':</b> '.$fI['file']; <a name="l00351"></a>00351 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#28d04de62f18c544013a1f75886d5c77">t3lib_div::isFirstPartOfStr</a>($this->file,PATH_site)) { <a name="l00352"></a>00352 $code.= '<a href=<span class="stringliteral">"../'.substr($this->file,strlen(PATH_site)).'"</span> target=<span class="stringliteral">"_blank"</span>>'.$fileName.'</a>'; <a name="l00353"></a>00353 } <span class="keywordflow">else</span> { <a name="l00354"></a>00354 $code.= $fileName; <a name="l00355"></a>00355 } <a name="l00356"></a>00356 $code.=' &nbsp;&nbsp;<b>'.$LANG->sL('LLL:EXT:lang/locallang_core.php:show_item.php.filesize').':</b> '.t3lib_div::formatSize(@filesize($this->file)).'<br /> <a name="l00357"></a>00357 '; <a name="l00358"></a>00358 <span class="keywordflow">if</span> (is_array($imgInfo)) { <a name="l00359"></a>00359 $code.= '<b>'.$LANG->sL('LLL:EXT:lang/locallang_core.php:show_item.php.dimensions').':</b> '.$imgInfo[0].<span class="charliteral">'x'</span>.$imgInfo[1].' pixels'; <a name="l00360"></a>00360 } <a name="l00361"></a>00361 $this->content.=$this->doc->section('',$code); <a name="l00362"></a>00362 $this->content.=$this->doc->divider(2); <a name="l00363"></a>00363 <a name="l00364"></a>00364 <span class="comment">// If the file was an image...:</span> <a name="l00365"></a>00365 <span class="keywordflow">if</span> (is_array($imgInfo)) { <a name="l00366"></a>00366 <a name="l00367"></a>00367 $imgInfo = $imgObj->imageMagickConvert($this->file,'web<span class="charliteral">','</span>346<span class="charliteral">','</span>200m<span class="charliteral">','</span><span class="charliteral">','</span><span class="charliteral">','</span>',1); <a name="l00368"></a>00368 $imgInfo[3] = '../'.substr($imgInfo[3],strlen(PATH_site)); <a name="l00369"></a>00369 $code = '<br /> <a name="l00370"></a>00370 <div align=<span class="stringliteral">"center"</span>>'.$returnLinkTag.$imgObj->imgTag($imgInfo).'</a></div>'; <a name="l00371"></a>00371 $this->content.= $this->doc->section('', $code); <a name="l00372"></a>00372 } <span class="keywordflow">else</span> { <a name="l00373"></a>00373 $this->content.= $this->doc->spacer(10); <a name="l00374"></a>00374 $lowerFilename = strtolower($this->file); <a name="l00375"></a>00375 <a name="l00376"></a>00376 <span class="comment">// Archive files:</span> <a name="l00377"></a>00377 <span class="keywordflow">if</span> (TYPO3_OS!='WIN' && !$GLOBALS['TYPO3_CONF_VARS']['BE']['disable_exec_function']) { <a name="l00378"></a>00378 <span class="keywordflow">if</span> ($ext=='zip') { <a name="l00379"></a>00379 $code = ''; <a name="l00380"></a>00380 $t = array(); <a name="l00381"></a>00381 exec('unzip -l '.$this->file, $t); <a name="l00382"></a>00382 <span class="keywordflow">if</span> (is_array($t)) { <a name="l00383"></a>00383 reset($t); <a name="l00384"></a>00384 next($t); <a name="l00385"></a>00385 next($t); <a name="l00386"></a>00386 next($t); <a name="l00387"></a>00387 <span class="keywordflow">while</span>(list(,$val)=each($t)) { <a name="l00388"></a>00388 $parts = explode(<span class="charliteral">' '</span>,trim($val),7); <a name="l00389"></a>00389 $code.= ' <a name="l00390"></a>00390 '.$parts[6].'<br />'; <a name="l00391"></a>00391 } <a name="l00392"></a>00392 $code = ' <a name="l00393"></a>00393 <span <span class="keyword">class</span>=<span class="stringliteral">"nobr"</span>>'.$code.' <a name="l00394"></a>00394 </span> <a name="l00395"></a>00395 <br /><br />'; <a name="l00396"></a>00396 } <a name="l00397"></a>00397 $this->content.= $this->doc->section('', $code); <a name="l00398"></a>00398 } elseif($ext=='tar' || $ext=='tgz' || substr($lowerFilename,-6)=='tar.gz' || substr($lowerFilename,-5)=='tar.z') { <a name="l00399"></a>00399 $code = ''; <a name="l00400"></a>00400 <span class="keywordflow">if</span> ($ext=='tar') { <a name="l00401"></a>00401 $compr = ''; <a name="l00402"></a>00402 } <span class="keywordflow">else</span> { <a name="l00403"></a>00403 $compr = <span class="charliteral">'z'</span>; <a name="l00404"></a>00404 } <a name="l00405"></a>00405 $t = array(); <a name="l00406"></a>00406 exec('tar t'.$compr.'f '.$this->file, $t); <a name="l00407"></a>00407 <span class="keywordflow">if</span> (is_array($t)) { <a name="l00408"></a>00408 foreach($t as $val) { <a name="l00409"></a>00409 $code.=' <a name="l00410"></a>00410 '.$val.'<br />'; <a name="l00411"></a>00411 } <a name="l00412"></a>00412 <a name="l00413"></a>00413 $code.=' <a name="l00414"></a>00414 -------<br/> <a name="l00415"></a>00415 '.count($t).' files'; <a name="l00416"></a>00416 <a name="l00417"></a>00417 $code = ' <a name="l00418"></a>00418 <span <span class="keyword">class</span>=<span class="stringliteral">"nobr"</span>>'.$code.' <a name="l00419"></a>00419 </span> <a name="l00420"></a>00420 <br /><br />'; <a name="l00421"></a>00421 } <a name="l00422"></a>00422 $this->content.= $this->doc->section('',$code); <a name="l00423"></a>00423 } <a name="l00424"></a>00424 } elseif ($GLOBALS['TYPO3_CONF_VARS']['BE']['disable_exec_function']) { <a name="l00425"></a>00425 $this->content.= $this->doc->section('<span class="charliteral">','</span>Sorry, TYPO3_CONF_VARS[BE][disable_exec_function] was set, so cannot display content of archive file.'); <a name="l00426"></a>00426 } <a name="l00427"></a>00427 <a name="l00428"></a>00428 <span class="comment">// Font files:</span> <a name="l00429"></a>00429 <span class="keywordflow">if</span> ($ext=='ttf') { <a name="l00430"></a>00430 $thumbScript = 'thumbs.php'; <a name="l00431"></a>00431 $params = '&file='.rawurlencode($this->file); <a name="l00432"></a>00432 $url = $thumbScript.'?&dummy='.$GLOBALS['EXEC_TIME'].$params; <a name="l00433"></a>00433 $thumb = '<br /> <a name="l00434"></a>00434 <div align=<span class="stringliteral">"center"</span>>'.$returnLinkTag.'<img src=<span class="stringliteral">"'.htmlspecialchars($url).'"</span> border=<span class="stringliteral">"0"</span> title=<span class="stringliteral">"'.htmlspecialchars(trim($this->file)).'"</span> alt=<span class="stringliteral">""</span> /></a></div>'; <a name="l00435"></a>00435 $this->content.= $this->doc->section('',$thumb); <a name="l00436"></a>00436 } <a name="l00437"></a>00437 } <a name="l00438"></a>00438 <a name="l00439"></a>00439 <a name="l00440"></a>00440 <span class="comment">// References:</span> <a name="l00441"></a>00441 $this->content.= $this->doc->section('References to <span class="keyword">this</span> item:',$this-><a class="code" href="classSC__show__item.html#8a31dd27dc0296c10c18484959fdef96">makeRef</a>('_FILE',$this->file)); <a name="l00442"></a>00442 } <a name="l00443"></a>00443 <a name="l00449"></a><a class="code" href="classSC__show__item.html#3febce2c59dbfaae80df50098450fcf0">00449</a> function <a class="code" href="classSC__show__item.html#3febce2c59dbfaae80df50098450fcf0">printContent</a>() { <a name="l00450"></a>00450 $this->content.= $this->doc->endPage(); <a name="l00451"></a>00451 $this->content = $this->doc->insertStylesAndJS($this->content); <a name="l00452"></a>00452 echo $this->content; <a name="l00453"></a>00453 } <a name="l00454"></a>00454 <a name="l00462"></a><a class="code" href="classSC__show__item.html#8a31dd27dc0296c10c18484959fdef96">00462</a> function <a class="code" href="classSC__show__item.html#8a31dd27dc0296c10c18484959fdef96">makeRef</a>(<a class="code" href="classSC__show__item.html#8490cd3b3d96dcedaa1d12d5bf156277">$table</a>,$ref) { <a name="l00463"></a>00463 <a name="l00464"></a>00464 <span class="keywordflow">if</span> (<a class="code" href="classSC__show__item.html#8490cd3b3d96dcedaa1d12d5bf156277">$table</a>==='_FILE') { <a name="l00465"></a>00465 <span class="comment">// First, fit path to match what is stored in the refindex:</span> <a name="l00466"></a>00466 $fullIdent = $ref; <a name="l00467"></a>00467 <a name="l00468"></a>00468 <span class="keywordflow">if</span> (<a class="code" href="classt3lib__div.html#28d04de62f18c544013a1f75886d5c77">t3lib_div::isFirstPartOfStr</a>($fullIdent,PATH_site)) { <a name="l00469"></a>00469 $fullIdent = substr($fullIdent,strlen(PATH_site)); <a name="l00470"></a>00470 } <a name="l00471"></a>00471 <a name="l00472"></a>00472 <span class="comment">// Look up the path:</span> <a name="l00473"></a>00473 $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( <a name="l00474"></a>00474 <span class="charliteral">'*'</span>, <a name="l00475"></a>00475 'sys_refindex', <a name="l00476"></a>00476 'ref_table='.$GLOBALS['TYPO3_DB']->fullQuoteStr('_FILE<span class="charliteral">','</span>sys_refindex'). <a name="l00477"></a>00477 ' AND ref_string='.$GLOBALS['TYPO3_DB']->fullQuoteStr($fullIdent,'sys_refindex'). <a name="l00478"></a>00478 ' AND deleted=0' <a name="l00479"></a>00479 ); <a name="l00480"></a>00480 } <span class="keywordflow">else</span> { <a name="l00481"></a>00481 <span class="comment">// Look up the path:</span> <a name="l00482"></a>00482 $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( <a name="l00483"></a>00483 <span class="charliteral">'*'</span>, <a name="l00484"></a>00484 'sys_refindex', <a name="l00485"></a>00485 'ref_table='.$GLOBALS['TYPO3_DB']->fullQuoteStr(<a class="code" href="classSC__show__item.html#8490cd3b3d96dcedaa1d12d5bf156277">$table</a>,'sys_refindex'). <a name="l00486"></a>00486 ' AND ref_uid='.intval($ref). <a name="l00487"></a>00487 ' AND deleted=0' <a name="l00488"></a>00488 ); <a name="l00489"></a>00489 } <a name="l00490"></a>00490 <a name="l00491"></a>00491 <span class="comment">// Compile information for title tag:</span> <a name="l00492"></a>00492 $infoData = array(); <a name="l00493"></a>00493 <span class="keywordflow">if</span> (count($rows)) { <a name="l00494"></a>00494 $infoData[] = '<tr <span class="keyword">class</span>=<span class="stringliteral">"bgColor5 tableheader"</span>>' . <a name="l00495"></a>00495 '<td>Table:</td>' . <a name="l00496"></a>00496 '<td>Uid:</td>' . <a name="l00497"></a>00497 '<td>Field:</td>'. <a name="l00498"></a>00498 '<td>Flexpointer:</td>'. <a name="l00499"></a>00499 '<td>Softref Key:</td>'. <a name="l00500"></a>00500 '<td>Sorting:</td>'. <a name="l00501"></a>00501 '</tr>'; <a name="l00502"></a>00502 } <a name="l00503"></a>00503 foreach($rows as <a class="code" href="classSC__show__item.html#6efa2a158c09f4825d1cbbfdc5f1f087">$row</a>) { <a name="l00504"></a>00504 $infoData[] = '<tr <span class="keyword">class</span>=<span class="stringliteral">"bgColor4"</span><span class="stringliteral">">' .</span> <a name="l00505"></a>00505 <span class="stringliteral"> '<td>'.$row['tablename'].'</td>' .</span> <a name="l00506"></a>00506 <span class="stringliteral"> '<td>'.$row['recuid'].'</td>' .</span> <a name="l00507"></a>00507 <span class="stringliteral"> '<td>'.$row['field'].'</td>'.</span> <a name="l00508"></a>00508 <span class="stringliteral"> '<td>'.$row['flexpointer'].'</td>'.</span> <a name="l00509"></a>00509 <span class="stringliteral"> '<td>'.$row['softref_key'].'</td>'.</span> <a name="l00510"></a>00510 <span class="stringliteral"> '<td>'.$row['sorting'].'</td>'.</span> <a name="l00511"></a>00511 <span class="stringliteral"> '</tr>';</span> <a name="l00512"></a>00512 <span class="stringliteral"> }</span> <a name="l00513"></a>00513 <span class="stringliteral"></span> <a name="l00514"></a>00514 <span class="stringliteral"> return count($infoData) ? '<table border="</span>0<span class="stringliteral">" cellpadding="</span>1<span class="stringliteral">" cellspacing="</span>1<span class="stringliteral">">'.implode('',$infoData).'</table>' : '';</span> <a name="l00515"></a>00515 <span class="stringliteral"> }</span> <a name="l00516"></a>00516 <span class="stringliteral"></span> <a name="l00524"></a><a class="code" href="classSC__show__item.html#492b365bdd487916839f6471901e6068">00524</a> <span class="stringliteral"> function makeRefFrom($table,$ref) {</span> <a name="l00525"></a>00525 <span class="stringliteral"></span> <a name="l00526"></a>00526 <span class="stringliteral"> // Look up the path:</span> <a name="l00527"></a>00527 <span class="stringliteral"> $rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(</span> <a name="l00528"></a>00528 <span class="stringliteral"> '*',</span> <a name="l00529"></a>00529 <span class="stringliteral"> 'sys_refindex',</span> <a name="l00530"></a>00530 <span class="stringliteral"> 'tablename='.$GLOBALS['TYPO3_DB']->fullQuoteStr($table,'sys_refindex').</span> <a name="l00531"></a>00531 <span class="stringliteral"> ' AND recuid='.intval($ref)</span> <a name="l00532"></a>00532 <span class="stringliteral"> );</span> <a name="l00533"></a>00533 <span class="stringliteral"></span> <a name="l00534"></a>00534 <span class="stringliteral"> // Compile information for title tag:</span> <a name="l00535"></a>00535 <span class="stringliteral"> $infoData = array();</span> <a name="l00536"></a>00536 <span class="stringliteral"> if (count($rows)) {</span> <a name="l00537"></a>00537 <span class="stringliteral"> $infoData[] = '<tr class="</span>bgColor5 tableheader<span class="stringliteral">">' .</span> <a name="l00538"></a>00538 <span class="stringliteral"> '<td>Field:</td>'.</span> <a name="l00539"></a>00539 <span class="stringliteral"> '<td>Flexpointer:</td>'.</span> <a name="l00540"></a>00540 <span class="stringliteral"> '<td>Softref Key:</td>'.</span> <a name="l00541"></a>00541 <span class="stringliteral"> '<td>Sorting:</td>'.</span> <a name="l00542"></a>00542 <span class="stringliteral"> '<td>Ref Table:</td>' .</span> <a name="l00543"></a>00543 <span class="stringliteral"> '<td>Ref Uid:</td>' .</span> <a name="l00544"></a>00544 <span class="stringliteral"> '<td>Ref String:</td>' .</span> <a name="l00545"></a>00545 <span class="stringliteral"> '</tr>';</span> <a name="l00546"></a>00546 <span class="stringliteral"> }</span> <a name="l00547"></a>00547 <span class="stringliteral"> foreach($rows as $row) {</span> <a name="l00548"></a>00548 <span class="stringliteral"> $infoData[] = '<tr class="</span>bgColor4<span class="stringliteral">""</span>>' . <a name="l00549"></a>00549 '<td>'.$row['field'].'</td>'. <a name="l00550"></a>00550 '<td>'.$row['flexpointer'].'</td>'. <a name="l00551"></a>00551 '<td>'.$row['softref_key'].'</td>'. <a name="l00552"></a>00552 '<td>'.$row['sorting'].'</td>'. <a name="l00553"></a>00553 '<td>'.$row['ref_table'].'</td>' . <a name="l00554"></a>00554 '<td>'.$row['ref_uid'].'</td>' . <a name="l00555"></a>00555 '<td>'.$row['ref_string'].'</td>' . <a name="l00556"></a>00556 '</tr>'; <a name="l00557"></a>00557 } <a name="l00558"></a>00558 <a name="l00559"></a>00559 <span class="keywordflow">return</span> count($infoData) ? '<table border=<span class="stringliteral">"0"</span> cellpadding=<span class="stringliteral">"1"</span> cellspacing=<span class="stringliteral">"1"</span>>'.implode('',$infoData).'</table>' : ''; <a name="l00560"></a>00560 } <a name="l00561"></a>00561 } <a name="l00562"></a>00562 <a name="l00563"></a>00563 <span class="comment">// Include extension?</span> <a name="l00564"></a>00564 <span class="keywordflow">if</span> (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/show_item.php']) { <a name="l00565"></a>00565 include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['typo3/show_item.php']); <a name="l00566"></a>00566 } <a name="l00567"></a>00567 <a name="l00568"></a>00568 <a name="l00569"></a>00569 <a name="l00570"></a>00570 <a name="l00571"></a>00571 <a name="l00572"></a>00572 <a name="l00573"></a>00573 <a name="l00574"></a>00574 <a name="l00575"></a>00575 <a name="l00576"></a>00576 <a name="l00577"></a>00577 <a name="l00578"></a>00578 <a name="l00579"></a>00579 <span class="comment">// Make instance:</span> <a name="l00580"></a>00580 $SOBE = <a class="code" href="classt3lib__div.html#b47f8a8e8be44b79a0b8064dcd427bc1">t3lib_div::makeInstance</a>('<a class="code" href="classSC__show__item.html">SC_show_item</a>'); <a name="l00581"></a>00581 $SOBE->init(); <a name="l00582"></a>00582 $SOBE->main(); <a name="l00583"></a>00583 $SOBE->printContent(); <a name="l00584"></a>00584 ?> </pre></div><?php include_once '../doc-typo3-funcs.php'; get_footer(); ?>