http://www.jensgram.dk/

Nyheder på sitet

- Her vises 2011


Periode: (seneste 10 nyheder)

 jfmamjjasond
'01  5610  4911106
'021025693 52545
'0386453523 233
'0431  11225324
'051422211  111
'06  13 11221 1
'073 3  11 1 12
'08 11   1 1   
'092 1   1     
'10         122
'111           

Nyhedsoversigten på www.jensgram.dk informerer efterhånden lige så meget om mig selv som om nye tiltag på sitet. For overskuelighedens skyld er navigationen opdelt i perioder, og de enkelte nyheder kan kommenteres.

Til højre kan du vælge mellem de seneste 10 indlæg, et helt årstal eller en enkelt måned. Tallene angiver, hvor mange nyheder der er i hver periode.

Søgning i TYPO3's Element Browser 18:51:33 @ 04-01-2011
Det har i lang tid irriteret mig, at man i TYPO3 — når man vil indsætte et billede i et indholdselement, e.g., "Text w/image" — ikke har mulighed for at søge efter filer i /fileadmin! Jeg har uden held ledt efter diverse extensions1, ligesom jeg længe håbede, at denne — synes jeg — essentielle funktionalitet endelig ville være tilgængelig i TYPO v. 4.4.x. Det viste sig imidlertid ikke at være tilfældet.

Problemet illustreres herunder, hvor jeg ønsker at indsætte ét eller flere billeder via "TYPO Element Browser". Efter et klik på "Browse for files" tilbyder TYPO3 (ihvertfald t.o.m. v. 4.4.4) blot en Element Browser med et directory tree og filer i den valgte mappe.
Indholdslement "Text w/image" i TYPO3 v. 4.4.4

Løsningen er at redigere en smule i typo3_src-4.x.x/typo3/class.browse_links.php. Det er ikke kønt og performer sikkert elendigt … men det virker!
Tilføjelse af filsøgning i TYPO Element Browser
Resultat af søgningen "arkitektur" i TYPO Element Browser

For at tilføje søgefunktionaliteten skal du i class.browse_links.php finde funktionen fileList(). Den er defineret laaangt nede i filen; se funktionsindekset øverst i filen for den eksakte placering. Mellem linierne if (is_array($files)) { og // Create headline (showing number of files): (funktionens øverste linier) indsættes følgende klump:
/**
 * Jens Gram: Adding search field
 * Nothing touched above this line!
 */
$jgSearch = array();
$jgFolderName = $folderName;
if (isset($_GET['search']) && strlen(trim($_GET['search'])) > 0) {
        // Replace multiple spaces, then trim
	$jgSearch = explode(' ', trim(preg_replace('/ +/', ' ', $_GET['search'])));
	
	$jgFiles = array();
	$jgRecFiles = array();
	$jgPArr = explode('|',$this->bparams);
	t3lib_div::getAllFilesAndFoldersInPath(&$jgRecFiles, $folderName, $jgPArr[3]);
	foreach ($jgRecFiles as $filepath) {
		$match = true;
		foreach ($jgSearch as $needle) {
                        // Require all needles to be found
			$match = $match && stristr($filepath, $needle);
		}
		if ($match) {
			$jgFiles[] = $filepath;
		}
	}
	$files = $jgFiles;
	$folderName = null; // Unset to prevent icon + folder name
}
$out .= $this->barheader(sprintf('Search in "%s" and subfolders:',
         htmlspecialchars(t3lib_div::fixed_lgd_cs(basename($jgFolderName),$titleLen))));
$out .= sprintf('<form style="padding: 3px 0 8px;" method="get" action="%s">
         <input type="hidden" name="act" value="%s" />
         <input type="hidden" name="mode" value="%s" />
         <input type="hidden" name="expandFolder" value="%s" />
         <input type="hidden" name="bparams" value="%s" />
         <input type="text" name="search" value="%s" />
         <input type="submit" value="Search" /></form>',
         $this->thisScript, $this->act, $this->mode, $this->expandFolder, $this->bparams,
         htmlspecialchars(implode(' ', $jgSearch)));
/**
 * Nothing touched below this line!
 */

Kompatibilitet
Løsningen er testet i TYPO3 v. 4.2.8 og 4.4.4. At dømme efter kildekoden er der dog ikke grund til at tro, at ovenstående hack ikke også skulle fungere i tidligere versioner. Jeg har endnu ikke haft v. 4.5.x installeret og tør således ikke udtale mig om denne.


1) Det har sidenhen vist sig, at kildekoden, der er ansvarlig for TYPO3 Element Browser ikke tilbyder "hooks", hvor en eventuel extension ville kunne byde ind med søgefunktionalitet. Retrospektivt er det således åbenlyst, at jeg aldrig ville have fundet en extension, der udvider det indbyggede Element Browser.


© 2001–12 Jens Gram - www.jensgram.dk • Tlf.: 30 22 88 20 • CVR: 31 66 04 32 • 9,0 ms