ja, das habe ich auchgelesen ... ich bin aber an der Händlersuche interssiert, wenn man sich meinen titel durchliest ... *g* ... und in dem zusammenhang nicht am code, sondern an einem JA oder NEIN interssiert ...
Gruss
Daniel
ja, das habe ich auchgelesen ... ich bin aber an der Händlersuche interssiert, wenn man sich meinen titel durchliest ... *g* ... und in dem zusammenhang nicht am code, sondern an einem JA oder NEIN interssiert ...
Gruss
Daniel
@Stani
Erwischt. Hab´ Deinen "Titel" wirklich übersehen.
Schau Dir mal "t3consultancies" (www.typo3.org - Extensions) an. Vielleicht hilft Dir die ja schon weiter
Gerade die Umkreissuche würde mich auch interessieren. Wie habt Ihr das gemacht? Geht Ihr mit Längen-/Breitengraden an die Sache ran oder ist es eher ein PLZ Suche?
Gruss
Andreas
ist doch nicht schlimm ... *g*
danke für den tipp ... werd mal schaun, wenn ich wieder zu haus bin ... also für mich wäre das mit plz oder regionen sinnvoll ... mit breitengraden ... hmmm, sind das nicht zu viel daten
gruss
daniel
@clicks,
könntest mir einfach mal den code schicken???
wegen mir muss er auch nicht sonderlich hübsch sein, bin aber daran sehr interessiert,...
greetz
Dreadhead
das menü sieht richtig klasse aus. ich bin mal gespannt wie der code dazu aussieht
@ clicks
wenn ich das im typo 3 in ein menue mit drei ebenen einbauen möchte.... wie muß ich das machen? der opera-bug juckt mich eigentlich nicht, da ich das ganze eh in einem nt-käfig rennen lasse... ;o)
wäre echt dankbar für deine hilfe....
winke
sangria
Hallo,
das finde ich ja klasse dass du den zum reinschnuppern geben moechtest 😃 Ist er denn schon huebsch genug :-) Bin schon tierisch gespannt drauf und kanns kaum noch erwarten :-)
Bye und gruss
Herby
Ich hätte auch interesse an dem Quellcoode.
Bin mal sehr gespannt darauf. Bin noch Anfänger in Typo 3 und habe bis .... gestern nur in HTML zu Fuß programmiert.
Gruß
redseasix
Hallo,
vielen Dank für euer Lob und eure Geduld. Ich musste mir ersteinmal 2 Wochen Urlaub gönnen 🙂.
Zur Händlersuche: Ja die Sache läuft über Längen- und Breitengrade. Eine entsprechende Extension werde ich bei Gelegenheit auch fertigstellen. Momentan ist die Ext noch zu "spezifisch". Falls es wichtig ist -> PN.
So habe den Code für das Menu mal etwas überarbeitet. Das ganz funtkioniert nach folgendem Prinzip:
Das Menu ist ein normales HMENU mit einem GMENU und mehreren TMENUs. Diese schicken über die IProcFunc Function ihre Information an ein eigenes PHP Skript, welches die Informationen umwandelt und den nötigen JS Code erzeugt. Die Tiefe ist dabei beliebig erweiterbar.
// Achtung!
Das gesamte Skript ist genau an die Bedürfnisse der Meade Seite angepasst und nicht sehr flexibel. Es klappt momentan also "nur" mit einem horizontalen GMENU und mehreren TMENUs. Das soll sich zwar noch ändern, aber im aktuellen Stadium wird es wahrscheinlich nicht klappen (untested). Für Verbesserungsvorschläge bin ich immer offen 😉
Zuerst zum TS:
# include ypMenu script
page.includeLibs.ypMenu = fileadmin/.../ypMenu.php
...
lib.mainMenu >
lib.mainMenu = HMENU
lib.mainMenu.1 = GMENU
lib.mainMenu.1 {
IProcFunc = user_menu->firstLevel
expAll = 1
wrap = |
IFSUB = 1
IFSUB {
wrap = |
XY = [50.w]+20, 25
backColor = #cccccc
50 = TEXT
50 {
text.field = title
fontSize = 12
fontFile = fileadmin/xyz.ttf
fontColor = #222222
offset = 10,17
niceText = 1
}
100 = || IMAGE
100.file = fileadmin/spacer.gif
}
NO {
wrap = |
XY = [50.w]+20, 25
backColor = #cccccc
50 = TEXT
50 {
text.field = title
fontSize = 12
fontFile = xyz.ttf
fontColor = #222222
offset = 10,17
niceText = 1
}
100 = || IMAGE
100.file = fileadmin/spacer.gif
}
RO < lib.mainMenu.1.NO
RO = 1
RO {
backColor = #ffca51
}
IFSUBRO < lib.mainMenu.1.NO
IFSUBRO = 1
IFSUBRO {
backColor = #ffca51
}
}
lib.mainMenu.2 = TMENU
lib.mainMenu.2 {
IProcFunc = user_menu->secondLevel
expAll = 1
NO.linkWrap = <li>|</li>
}
lib.mainMenu.3 = TMENU
lib.mainMenu.3 {
IProcFunc = user_menu->thirdLevel
expAll = 1
NO.linkWrap = <li>|</li>
}
lib.mainMenu.4 = TMENU
lib.mainMenu.4 {
IProcFunc = user_menu->fourthLevel
expAll = 1
NO.linkWrap = <li>|</li>
}
...
# append Menu JS to page
page.11 = USER
page.11.userFunc = user_menu->menuEnd
Dann wird das ganze durch die ypMenu Datei gejagt:
<?php
/***************************************************************
* Copyright notice
*
* (c) 2003 Andreas Tschirpke (tschirpke@at-mediendesign.de)
* All rights reserved
*
* This script is part of the Typo3 project. The Typo3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* User class to build Javascript Menu (www.meade.de)
*
* @author Andreas Tschirpke <tschirpke@at-mediendesign.de>
*/
class user_menu {
var $offsetY = 70; // inital offset values for the first level elements
var $offsetX = 65;
var $sublevelWidth = 140; // width and height values for sublevel items
var $sublevelHeight = 26;
var $padding = 5;
var $fontSize = 11;
var $breakpoint = 14; // recalculate width of text after x characters
var $secPadding = 16;
var $fontFile = 'fileadmin/../verdana.ttf'; // font file needed to calculate linebreaks
var $transBg = 'fileadmin/../menu_bg.png'; // transparent PNG file - needed to fix a transparency bug in Mac IE 5
/**
* Dummy function to pass values to buildIndex
*
* @param array Menu array including all needed menu items (created by TMENU)
* @param array Configuration array
* @return array returns modified $I array
* @access private
*/
function firstLevel($I,$conf) {
return $this->buildIndex($I, $conf, 1);
}
/**
* Dummy function to pass values to buildIndex
*
* @param array Menu array including all needed menu items (created by TMENU)
* @param array Configuration array
* @return array returns modified $I array
* @access private
*/
function secondLevel($I,$conf) {
return $this->buildIndex($I, $conf, 2);
}
/**
* Dummy function to pass values to buildIndex
*
* @param array Menu array including all needed menu items (created by TMENU)
* @param array Configuration array
* @return array returns modified $I array
* @access private
*/
function thirdLevel($I,$conf) {
return $this->buildIndex($I, $conf, 3);
}
/**
* Dummy function to pass values to buildIndex
*
* @param array Menu array including all needed menu items (created by TMENU)
* @param array Configuration array
* @return array returns modified $I array
* @access private
*/
function fourthLevel($I, $conf) {
return $this->buildIndex($I, $conf, 4);
}
/**
* Returns true if there is a submenu with items for the page id, $uid
* Used by the item states "IFSUB" and "ACTIFSUB" to check if there is a submenu
*
* @param integer Page uid for which to search for a submenu
* @return boolean Returns true if there was a submenu with items found
* @access private
*/
// copy from tslib_menu
function isSubMenu($uid) {
// Looking for a mount-pid for this UID since if that exists we should look for a subpages THERE and not in the input $uid;
$mount_info = $GLOBALS['TSFE']->sys_page->getMountPointInfo($uid);
if (is_array($mount_info)) {
$uid = $mount_info['mount_pid'];
}
$recs = $GLOBALS['TSFE']->sys_page->getMenu($uid,'uid,pid,doktype,mount_pid,mount_pid_ol');
foreach($recs as $theRec) {
if (!t3lib_div::inList('5,6',$theRec['doktype']) && !$theRec['nav_hide']) { // If a menu item seems to be another type than 'Not in menu', then return true (there were items!)
return TRUE;
}
}
}
/**
* Breaks textarea text into lines of specified width in order to feed Gifbuilder (see function makeTextImage)
*
* @param string $text: input text
* @param integer $size: specified font size
* @param string $font: absolute path to specified font file
* @param integer $width: specified width of the image box
* @return array array of lines of text
*/
// copy from sr_sendcard
// thanks and credits go to Peter Bowyer <peter@sendcard.org>
function text_to_lines($text, $size, $font, $width) {
$words = t3lib_div::trimExplode(' ', str_replace("
", ' <br> ', str_replace("
", ' <br> ', str_replace("|", ' <br> ', $text))), 0);
$p = 0;
$lines = array();
$lines[0] = '';
for($i = 0; $i < count($words); $i++) {
($lines[$p] ) ? $test = $lines[$p].' '.$words[$i] : $test = $words[$i];
$bbox = imagettfbbox($size, 0, $font, $test);
if ($words[$i] == '<br>') {
$p++;
$lines[$p] = '';
} elseif (($bbox[4] - $bbox[6]) > $width ) {
$p++;
$lines[$p] = $words[$i];
} else {
$lines[$p] = $test;
}
}
return count($lines);
}
/**
* Collects all needed information (width, height, x, y, level etc.) and structural information for the ypMenu.
* Information are stored in $GLOBALS['TSFE']->applicationData['ypMenus']
*
* @param array $I: Array created by TMENU including all menu elements for the current level
* @param integer $conf: Configuration array
* @param integer $level: hierarchical depth
* @return array $I: modified $I array
*/
function buildIndex($I, $conf, $level) {
// fix IE 5.0 on windows
$clientAdjust = 0;
$clientinfo = t3lib_div::clientInfo();
if($clientinfo['SYSTEM'] == 'win' AND $clientinfo['BROWSER'] == 'msie' AND $clientinfo['VERSION'] < 5.5) {
$clientAdjust = 2;
}
switch($level) {
case "1":
// only wrap in ypSlide Action if submenu is present
if($this->isSubMenu($I['uid'])) {
// JS actions
$onmouseover = "ypSlideOutMenu.showMenu('menu" .$I['uid']. "'); over('" .$I['theName']. "');";
$onmouseout = "ypSlideOutMenu.hideMenu('menu" .$I['uid']. "');";// out('" .$I['theName']. "');";
// collect data for correct positions
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['level'] = $level;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['uid'] = $I['uid'];
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['imgwidth'] = $I['val']['output_w'];
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['imgheight'] = $I['val']['output_h'];
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['width'] = $this->sublevelWidth;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['height'] = $this->sublevelHeight;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['dir'] = 'down';
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['top'] = $this->offsetY;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['left'] = $GLOBALS['TSFE']->applicationData['ypTemp']['x'] + $this->offsetX;
// build ypMenu JS
$GLOBALS['TSFE']->applicationData['ypTemp']['js'] .= "
menu". $I['uid'] .".onactivate = new Function("document.images['" .$I['theName']. "'].src = " .$I['theName']. "_h.src");
menu". $I['uid'] .".ondeactivate = new Function("document.images['" .$I['theName']. "'].src = " .$I['theName']. "_n.src");
";
} else { // no ypMenu needed
$onmouseover = "over('" .$I['theName']. "');";
$onmouseout = "out('" .$I['theName']. "'); ";
}
// move right
$GLOBALS['TSFE']->applicationData['ypTemp']['x'] += $I['val']['output_w'];
$I['parts']['ATag_begin'] = '<a href="' .$I['linkHREF']['HREF']. '" onfocus="' . $I['linkHREF']['onFocus']. '" onmouseover="'. $onmouseover .'" onmouseout="'. $onmouseout .'" id="act'. $I['uid'] .'">';
$I['parts']['ATag_end'] = '</a>';
break;
default: // every other level (TMENU)
$title = $I['title'];
// count lines if more than $this->breakpoint chars
if(strlen($title) > $this->breakpoint) {
$lines = $this->text_to_lines($I['title'], t3lib_div::freetypeDpiComp($this->fontSize), $this->fontFile, ($this->sublevelWidth - 2*$this->padding));
} else {
$lines = 1;
}
// if another submenu is present wrap link with JS actions an collect data
if($this->isSubMenu($I['uid'])) {
$href = $I['linkHREF']['HREF'];
$onmouseover = "ypSlideOutMenu.showMenu('menu" .$I['uid']. "');";
$onmouseout = "ypSlideOutMenu.hideMenu('menu" .$I['uid']. "');";
$link = sprintf('<a href="%s" onmouseover="%s" onmouseout="%s" class="submenu">%s</a>',$href, $onmouseover, $onmouseout, $title);
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['level'] = $level;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['uid'] = $I['uid'];
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['width'] = $this->sublevelWidth;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['height'] = $this->sublevelHeight;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['dir'] = 'right';
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['top'] = intval($GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['top']) + (($I['key']) * $this->sublevelHeight);
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['left'] = intval($GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['left']) + intval($GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['width']);
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['uid']]['parentId'] = $I['pid'];
} else { // nothing to be done here :)
$link = $I['parts']['ATag_begin']. $title .$I['parts']['ATag_end'];
}
// move down
if($I['key'] == 0) {
$GLOBALS['TSFE']->applicationData['ypTemp'][$I['pid']]['y'] = intval($GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['top']);
} else {
$GLOBALS['TSFE']->applicationData['ypTemp'][$I['pid']]['y'] += $this->sublevelHeight + ($this->secPadding * ($lines-1)) + $clientAdjust;
}
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['items'][$I['uid']]['link'] = $link;
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['items'][$I['uid']]['height'] = $this->sublevelHeight + ($this->secPadding * ($lines-1));
$GLOBALS['TSFE']->applicationData['ypMenus'][$I['pid']]['items'][$I['uid']]['top'] = $GLOBALS['TSFE']->applicationData['ypTemp'][$I['pid']]['y'] - ($this->secPadding * ($lines-1));
// save link in output array
$I['parts']['ATag_begin'] = '
<a href="' .$I['linkHREF']['HREF']. '"
onfocus="' . $I['linkHREF']['onFocus']. '"
onMouseOver="ypSlideOutMenu.showMenu('menu'.$I['uid'].'');"
onMouseOut="ypSlideOutMenu.hideMenu('menu'.$I['uid'].'');"
id="level1id'.$I['uid'].'">';
//$GLOBALS['TSFE']->applicationData['ypMenu'][$level][$I['pid']]['parts']['items'][] = implode('', $I['parts']);
$I['parts'] = array();
break;
}
return $I;
}
/**
* Builds all HTML/JS Code to initialize all ypMenu layers. Must be writen at the end of the document
*
* @return string html/js code
*/
function menuEnd() {
// all relevant data stored in applicationData['ypMenus'];
if(is_array($GLOBALS["TSFE"]->applicationData['ypMenus'])) {
// fix differnet browser bugs to get a transparency effect
$clientinfo = t3lib_div::clientInfo();
$pngimg = false;
$pngbg = false;
$filter = false;
$appendix = '';
$bg = false;
// ie >= 5.5 on win and mozilla can render transparency by css
if(($clientinfo['SYSTEM'] == 'win' AND $clientinfo['BROWSER'] == 'msie' AND $clientinfo['VERSION'] >= 5.5) OR ($clientinfo['SYSTEM'] == 'win' AND $clientinfo['BROWSER'] == 'net')) {
$filter = true;
$style = 'style="-moz-opacity:.8; filter:alpha(opacity=80); background-color: #d3d3d3"';
// Mr. IE on Mac needs a special treatment - a transparent png in a img tag in the background
} elseif($clientinfo['SYSTEM'] == 'mac' AND ($clientinfo['BROWSER'] == 'msie')) {
$pngimg = true;
$style = 'style="background-color: transparent"';
// Opera and Mozilla on Mac can handle transparent pngs
} elseif(($clientinfo['SYSTEM'] == 'mac' AND $clientinfo['BROWSER'] == 'net') OR ($clientinfo['BROWSER'] == 'opera')){
$pngbg = true;
$style = 'style="background-image: url(''. $this->transBg .'');"';
// no transparency for the rest - go get firefox!
} else {
$bg = true;
$style = 'style="background-color: transparent"';
$appendix = 'b';
}
// loop through all collected data (buildIndex) and render js
foreach($GLOBALS["TSFE"]->applicationData['ypMenus'] as $menu) {
$uid = $menu['uid'];
$level = $menu['level'];
$dir = $menu['dir'];
$parentId = ($menu['parentId']) ? '"menu'.$menu['parentId'].'"' : 'null';
$x = $menu['left'];
$y = ($menu['parentId']) ? $GLOBALS['TSFE']->applicationData['ypMenus'][$menu['parentId']]['items'][$uid]['top'] : $this->offsetY;
$width = $menu['width'];
$items = '';
$wholeHeight = 0;
if(is_array($menu['items'])) {
$itemcount = count($menu['items']);
foreach($menu['items'] as $item) {
$items .= '<li>'. $item['link'] ."</li>
";
$wholeHeight = $wholeHeight + $item['height'];
}
}
if($clientinfo['SYSTEM'] == 'win' AND $clientinfo['BROWSER'] == 'msie' AND $clientinfo['VERSION'] < 5.5) {
$wholeHeight = $wholeHeight + 2 * $itemcount;
}
$height = ($menu['height']) * count($menu['items']);
$output[] = sprintf('<div id="menu%dContainer" class="mmContainer"><div id="menu%dContent" class="mmContent%s" %s>', $uid, $uid, $appendix, $style); // L%d / $level
$output[] = sprintf('<ul class="mmLevel%d">%s</ul>', $level, $items);
// trick Mac IE to display our transparent PNG
if($pngimg) {
$output[] = '<img src="' . $this->transBg .'" width="'. $width .'" height="'. $wholeHeight .'" class="menuBackground">';
}
$output[] = '</div></div>';
$menus[] = sprintf('menu%d = new ypSlideOutMenu("menu%d", "%s", %d, %d, %d, %d, %s)', $uid, $uid, $dir, $x, $y, $width, $wholeHeight, $parentId);
}
}
if(is_array($output) && is_array($menus)) {
$output = implode("
", $output);
d $output .= "
<script type="text/javascript">
"
. implode("
", $menus) ."
ypSlideOutMenu.writeCSS();
". $GLOBALS['TSFE']->applicationData['ypTemp']['js'] ."
</script>
";
return $output;
}
}
}
?>
So, dazu kommen natürlich noch die benötigten Javascript Dateien von youngpup.net und CSS Formatierungen. Das kann ich jetzt hier leider nicht alles wiedergeben, kann man sich jedoch zusammensuchen 🙂
Falls Fragen sind wagt es ja nicht mir eine PN zu schreiben 😉
Fatal error: Call to undefined function: getmountpointinfo() in F:apachehtdocsquickstartfileadminMEADE-MenueypMenu.php on line 101
Und nun ??
jenses
ich bekomme ganz andere fehler. unteranderem diesen hier Warning: Could not find/open font in /var/www/tabularasa/fileadmin/template/men/ypMenu.php on line 135 aber den kann man sicherlich mehr oder wenige leicht beheben.
mich würde mal interessieren wie man das menü hinbekommt ohne fehler zu erzeugen.
Wie gesagt, Beta Software 🙂
@jenses
Das ist eine Typo3 eigene Funktion die im syspage Modul liegt. Bei mir läuft es ab Version 3.6. Auf 3.5 habe ich es nicht getestet. Welche Version hast du?
@frescha
Da ist wahrscheinlich der Pfad zu deiner Schrift nicht korrekt bzw. die Rechte nicht richtig gesetzt.
Hallo clicks !
Vielen Dank für deine schnelle Antwort !
Ich habe lokal auf dem Testserver 3.6.0RC1 zu laufen unter WinXP.
Vielleicht liegt der Fehler auch daran, daß ich aus deinem Code nicht ganz schlau werde.
Ich werde mal erklären, wie ich vorgegangen bin.
1. eine ganz simple HTML-Vorlage :
<html>
<head>
<title></title>
</head>
<body>
<!-- ###DOKUMENT### begin -->
###KOPFZEILE###
<br>
###MENU_MAIN###
<br>
###INHALT###
<!-- ###DOKUMENT### end -->
</body>
</html>
2. php-datei erstellt, es gab eine Fehlermeldung,
angemeckert wurde wurde in der dritten Zeile
des Code-Ausschnittes das "d" am Anfang :
if(is_array($output) && is_array($menus)) {
$output = implode("
", $output);
d $output .= "
<script type="text/javascript">
"
. implode("
", $menus) ."
ypSlideOutMenu.writeCSS();
". $GLOBALS['TSFE']->applicationData['ypTemp']['js'] ."
</script>
";
return $output;
}
}
}
?>
Also habe ich das "d" entfernt. FALSCH ???
3. Template Setup erstellt
Mit deinem "lib.mainMenu" konnte ich nicht so richtig was anfangen,
habe es durch "marks.MENU_MAIN" ersetzt.
(MENU_MAIN ist Platzhalter in der HTML-Vorlage) --> FALSCH ???
seite = PAGE
seite.typeNum = 0
seite.stylesheet = fileadmin/MEADE-Menue/style.css
# Benoetigte Libaries einfuegen
seite.includeLibs.ypMenu = fileadmin/MEADE-Menue/ypMenu.php
seite.headerData.10 = TEXT
seite.headerData.10.value = <script type="text/javascript" src="fileadmin/MEADE-Menue/ypSlideOutMenus.js" language="JavaScript"></script><script type="text/javascript" src="fileadmin/MEADE-Menue/jslib.js" language="JavaScript"></script>
seite.10 = TEMPLATE
seite.10 {
template = FILE
template.file = fileadmin/MEADE-Menue/template.html
workOnSubpart = DOKUMENT
marks.INHALT = CONTENT
marks.INHALT < styles.content.get
marks.MENU_MAIN >
marks.MENU_MAIN = HMENU
marks.MENU_MAIN.1 = GMENU
marks.MENU_MAIN.1 {
# IProcFunc = user_menu->firstLevel
expAll = 1
wrap = |
IFSUB = 1
IFSUB {
wrap = |
XY = [50.w]+20, 25
backColor = #cccccc
50 = TEXT
50 {
text.field = title
fontSize = 12
fontFile = fileadmin/fonts/verdana.ttf
fontColor = #222222
offset = 10,17
niceText = 1
}
100 = || IMAGE
100.file = fileadmin/MEADE-Menue/spacer.gif
}
NO {
wrap = |
XY = [50.w]+20, 25
backColor = #cccccc
50 = TEXT
50 {
text.field = title
fontSize = 12
fontFile = fileadmin/fonts/verdana.ttf
fontColor = #222222
offset = 10,17
niceText = 1
}
100 = || IMAGE
100.file = fileadmin/MEADE-Menue/spacer.gif
}
RO < marks.MENU_MAIN.1.NO
RO = 1
RO {
backColor = #ffca51
}
IFSUBRO < marks.MENU_MAIN.1.NO
IFSUBRO = 1
IFSUBRO {
backColor = #ffca51
}
}
marks.MENU_MAIN.2 = TMENU
marks.MENU_MAIN.2 {
IProcFunc = user_menu->secondLevel
expAll = 1
NO.linkWrap = <li>|</li>
}
marks.MENU_MAIN.3 = TMENU
marks.MENU_MAIN.3 {
IProcFunc = user_menu->thirdLevel
expAll = 1
NO.linkWrap = <li>|</li>
}
marks.MENU_MAIN.4 = TMENU
marks.MENU_MAIN.4 {
IProcFunc = user_menu->fourthLevel
expAll = 1
NO.linkWrap = <li>|</li>
}
}
# append Menu JS to page
seite.11 = USER
seite.11.userFunc = user_menu->menuEnd
4. Dann ins Frontend gewechselt, die Maschine rattert los,
es öffnen und schließen sich DOS-Boxen (Gifbuilder in Aktion ?)
und es kommt besagte Fehlermeldung
Fatal error: Call to undefined function: getmountpointinfo() in F:apachehtdocsquickstartfileadminMEADE-MenueypMenu.php on line 101
Wo liegt das syspage Modul ??
Vielen Dank im Voraus für deine Mühen !
jenses
WindowsXP? Hab ich nie getestet, es lief immer auf einer Linux Box.
1. Kann man so machen - ich selbst nutze seit der Templavoilá Extension nur noch diese.
2. Das mit dem entfernen des d ist schon korrekt, das gehört da nicht hin.
3. Sollte auch richtig sein.
Warum hast du die erste IProcFunc auskommentiert?
4. Es öffnen und schliessen sich DOS Boxen? Witzig! Kann ich nicht nachvollziehen, da ich es halt unter Linux einsetze.
Habe grade mal nachgeschaut, in der V3.5 gab es die Funktion getMountPointInfo() noch nicht. In der final 3.6 ist es aber enthalten - wie es sich mit den Release Candidates verhält, kann ich dir nicht sagen. Du solltest aber in jedem Fall updaten.
Die Funktion ist in der Datei class.t3lib_page.php enthalten.
Hallo clicks !
Es war die fehlende Funktion getMountPointInfo() in 3.6.0 RC1.
Habe mir die 3.6.2 installiert und jetzt funzt es.
Viele Dank für den Tip !
jenses
@ alle
wenn man in der ypMenu.php in Zeile 174
$onmouseout = "ypSlideOutMenu.hideMenu('menu" .$I['uid']. "');";// out('" .$I['theName']. "');";
gegen
$onmouseout = "ypSlideOutMenu.hideMenu('menu" .$I['uid']. "'); out('" .$I['theName']. "');";
austauscht, funktionieren auch die IFSUB-Zustände vernünftig.
jenses
Mir gefällt die SlideOut-Lösung total gut. Ich würde sie gerne in einem zentrierten Layout verwenden, habe also links einen variablen Abstand bis zum Menü.
Ich bin nicht ganz durchgestiegen, wie ich dem Skript den Bezug zu meinem "beweglichen Nullpunkt" geben könnte.
Hat irgendjemand einen Plan, wie ich das tun könnte?
Herzlichen Dank schon!
Du mußt das ypSlideOutMenusC.js ( C = centered ) ins Script einbinden,
dann wohl noch ein bißchen anpassen.
Wenn du es fertig hast, bitte hier posten. 😉
viele Grüße
jenses
Okay, dann wollen wir mal. Ich habe das Layout mit einer Tabelle aufgebaut, die mittels CSS im Fenster eingemittet wird. Ich benutze den Autoparser, um die TD's und DIV's in Subparts zu verwandeln.
Das Problem, dass das Menü nicht auf meine eingemittete Tabelle ausgerichtet wurde, war, dass die mittels PHP erzeugten DIVs vom Menü nicht in den richtigen Container zu liegen kamen und deshalb die linke obere Fenster-Ecke als Bezugspunkt hatten.
Hier mal ein Schnippel meines HTML-Templates:
<table id="lay_main" cellspacing="0" cellpadding="0" border="0">
<tr>
<td id="lay_links"><img src="media/clear.gif" width="20"></td>
<td id="lay_mitte">
<div id="menu1_container">Hier wird das Menu eingefuegt</div>
###menuskript###
</td>
<td id="lay_rechts"><img src="media/clear.gif" width="20"></td>
</tr>
</table>
Der Marker ###menuskript### ist es nun, wo mein Skript hinkommen soll. Mit folgenden Zeilen im Setup passiert genau das:
# append Menu JS to page
temp.user_menu_inside = USER
temp.user_menu_inside.userFunc = user_menu->menuEnd
und folglich:
#das Menüskript einbinden:
marks.menuskript < temp.user_menu_inside
Das funktioniert so mit den "normalen" Skripten, also nicht jenem für eingemittete Menüs.
Ich hoffe, dass ich helfen konnte. Ist vielleicht etwas "freestyle", aber es funktioniert!
So bald ich den ersten Entwurf der Seite auf meinen Server hochgeladen habe, poste ich gerne den Link.
Liebergruss Pascal
Ich bekomme leider immernoch die Font Fehlermeldung, obwohl der font erreichbar ist.
Folgendes steht im apache error-log:
(32)Broken pipe: client stopped connection before rwrite completed
Irgendjemand eine Idee?