Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Parse error: syntax error, unexpected else (T ELSE), expecting function (T FUNCTION)

Frage Entwicklung PHP

Mitglied: Kepala

Kepala (Level 1) - Jetzt verbinden

31.10.2013 um 11:12 Uhr, 1318 Aufrufe, 7 Kommentare, 2 Danke

Hallo,

ich habe oben genannte Fehler, komme aber in PHP nicht sooo gut zurecht. Es waren noch einige andere Fehler drin, welche ich aber schon reparieren konnte. Ich habe mit PHPDesigner 8 mir betreffende Datei angeschau und bekomme diesen Code

01.
<?php 
02.
/** 
03.
 * @version		$Id: select.php 20640 2011-02-10 06:26:40Z infograf768 $ 
04.
 * @package		Joomla.Framework 
05.
 * @subpackage	HTML 
06.
 * @copyright	Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved. 
07.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt 
08.
 */ 
09.
 
10.
/** 
11.
 * Utility class for creating HTML select lists 
12.
13.
 * @static 
14.
 * @package		Joomla.Framework 
15.
 * @subpackage	HTML 
16.
 * @since		1.5 
17.
 */ 
18.
abstract class JHtmlSelect 
19.
20.
	/** 
21.
	 * Default values for options. Organized by option group. 
22.
23.
	 * @var array 
24.
	 */ 
25.
	static protected $_optionDefaults = array
26.
		'option' => array
27.
			'option.attr' => null, 
28.
			'option.disable' => 'disable', 
29.
			'option.id' => null, 
30.
			'option.key' => 'value', 
31.
			'option.key.toHtml' => true, 
32.
			'option.label' => null, 
33.
			'option.label.toHtml' => true, 
34.
			'option.text' => 'text', 
35.
			'option.text.toHtml' => true, 
36.
		), 
37.
	); 
38.
 
39.
	/** 
40.
	* Generates a yes/no radio list. 
41.
42.
	* @param string The value of the HTML name attribute 
43.
	* @param string Additional HTML attributes for the <select> tag 
44.
	* @param mixed The key that is selected 
45.
	* @return string HTML for the radio list 
46.
	*/ 
47.
	public static function booleanlist( 
48.
		$name, $attribs = null, $selected = null, $yes = 'JYES', $no = 'JNO', $id = false 
49.
	) { 
50.
		$arr = array
51.
			JHtml::_('select.option', '0', JText::_($no)), 
52.
			JHtml::_('select.option', '1', JText::_($yes)) 
53.
		); 
54.
		return JHtml::_('serray_merge($options, $optKey)') 
55.
		} else
56.
			// Get options from the parameters 
57.
			$options['option.key'] = $optKey
58.
			$options['option.text'] = $optText
59.
			$options['disable'] = $disable
60.
61.
		$obj = new JObject; 
62.
		$obj->$options['option.key'] = $value
63.
		$obj->$options['option.text'] = trim($text) ? $text : $value
64.
 
65.
		/* 
66.
		 * If a label is provided, save it. If no label is provided and there is 
67.
		 * a label name, initialise to an empty string. 
68.
		 */ 
69.
		$hasProperty = $options['option.label'] !== null; 
70.
		if (isset($options['label'])) { 
71.
			$labelProperty = $hasProperty ? $options['option.label'] : 'label'; 
72.
			$obj->$labelProperty = $options['label']; 
73.
		} elseif ($hasProperty) { 
74.
			$obj->$options['option.label'] = ''; 
75.
76.
 
77.
		// Set attributes only if there is a property and a value 
78.
		if ($options['attr'] !== null) { 
79.
			$obj->$options['option.attr'] = $options['attr']; 
80.
81.
 
82.
		// Set disable only if it has a property and a value 
83.
		if ($options['disable'] !== null) { 
84.
			$obj->$options['option.disable'] = $options['disable']; 
85.
86.
		return $obj
87.
88.
 
89.
	/** 
90.
	 * Generates the option tags for an HTML select list (with no select tag 
91.
	 * surrounding the options). 
92.
93.
	 * @param	array	An array of objects, arrays, or values. 
94.
	 * @param	mixed	If a string, this is the name of the object variable for 
95.
	 * the option value. If null, the index of the array of objects is used. If 
96.
	 * an array, this is a set of options, as key/value pairs. Valid options 
97.
	 * are: 
98.
	 * <ul><li>Format options, {@see JHtml::$formatOptions}. 
99.
	 * </li><li>groups: Boolean. If set, looks for keys with the value 
100.
	 * "&lt;optgroup>" and synthesizes groups from them. Deprecated. Defaults 
101.
	 * true for backwards compatibility. 
102.
	 * </li><li>list.select: either the value of one selected option or an array 
103.
	 * of selected options. Default: none. 
104.
	 * </li><li>list.translate: Boolean. If set, text and labels are translated via 
105.
	 * JText::_(). Default is false. 
106.
	 * </li><li>option.id: The property in each option array to use as the 
107.
	 * selection id attribute. Defaults to none. 
108.
	 * </li><li>option.key: The property in each option array to use as the 
109.
	 * selection value. Defaults to "value". If set to null, the index of the 
110.
	 * option array is used. 
111.
	 * </li><li>option.label: The property in each option array to use as the 
112.
	 * selection label attribute. Defaults to null (none). 
113.
	 * </li><li>option.text: The property in each option array to use as the 
114.
	 * displayed text. Defaults to "text". If set to null, the option array is 
115.
	 * assumed to be a list of displayable scalars. 
116.
	 * </li><li>option.attr: The property in each option array to use for 
117.
	 * additional selection attributes. Defaults to none. 
118.
	 * </li><li>option.disable: The property that will hold the disabled state. 
119.
	 * Defaults to "disable"
120.
	 * </li><li>option.key: The property that will hold the selection value. 
121.
	 * Defaults to "value"
122.
	 * </li><li>option.text: The property that will hold the the displayed text. 
123.
	 * Defaults to "text". If set to null, the option array is assumed to be a 
124.
	 * list of displayable scalars. 
125.
	 * </li></ul> 
126.
	 * @param	string  The name of the object variable for the option text. 
127.
	 * @param	mixed	The key that is selected (accepts an array or a string) 
128.
	 * @return  string  HTML for the select list 
129.
	 */ 
130.
	public static function options( 
131.
		$arr, $optKey = 'value', $optText = 'text', $selected = null, $translate = false 
132.
	) { 
133.
		$options = array_merge
134.
			JHtml::$formatOptions
135.
			self::$_optionDefaults['option'], 
136.
			array
137.
				'format.depth' => 0, 
138.
				'groups' => true, 
139.
				'list.select' => null, 
140.
				'list.translate' => false, 
141.
142.
		); 
143.
		if (is_array($optKey)) { 
144.
			// Set default options and overwrite with anything passed in 
145.
			$options = array_merge($options, $optKey); 
146.
		} else
147.
			// Get options from the parameters 
148.
			$options['option.key'] = $optKey
149.
			$options['option.text'] = $optText
150.
			$options['list.select'] = $selected
151.
			$options['list.translate'] = $translate
152.
153.
 
154.
		$html = ''; 
155.
		$baseIndent = str_repeat($options['format.indent'], $options['format.depth']); 
156.
 
157.
		foreach ($arr as $elementKey => &$element
158.
159.
			$attr = ''; 
160.
			$extra = ''; 
161.
			$label = ''; 
162.
			$id = ''; 
163.
			if (is_array($element)) 
164.
165.
				$key = $options['option.key'] === null 
166.
					? $elementKey : $element[$options['option.key']]; 
167.
				$text = $element[$options['option.text']]; 
168.
				if (isset($element[$options['option.attr']])) { 
169.
					$attr = $element[$options['option.attr']]; 
170.
171.
				if (isset($element[$options['option.id']])) { 
172.
					$id = $element[$options['option.id']]; 
173.
174.
				if (isset($element[$options['option.label']])) { 
175.
					$label = $element[$options['option.label']]; 
176.
177.
				if (isset($element[$options['option.disable']]) && $element[$options['option.disable']]) { 
178.
					$extra .= ' disabled="disabled"'; 
179.
180.
			} elseif (is_object($element)) { 
181.
				$key = $options['option.key'] === null 
182.
					? $elementKey : $element->$options['option.key']; 
183.
				$text = $element->$options['option.text']; 
184.
				if (isset($element->$options['option.attr'])) { 
185.
					$attr = $element->$options['option.attr']; 
186.
187.
				if (isset($element->$options['option.id'])) { 
188.
					$id = $element->$options['option.id']; 
189.
190.
				if (isset($element->$options['option.label'])) { 
191.
					$label = $element->$options['option.label']; 
192.
193.
				if (isset($element->$options['option.disable']) && $element->$options['option.disable']) { 
194.
					$extra .= ' disabled="disabled"'; 
195.
196.
			} else
197.
				// This is a simple associative array 
198.
				$key = $elementKey
199.
				$text = $element
200.
201.
 
202.
			/* 
203.
			 * The use of options that contain optgroup HTML elements was 
204.
			 * somewhat hacked for J1.5. J1.6 introduces the grouplist() method 
205.
			 * to handle this better. The old solution is retained through the 
206.
			 * "groups" option, which defaults true in J1.6, but should be 
207.
			 * deprecated at some point in the future. 
208.
			 */ 
209.
			$key = (string) $key
210.
			if ($options['groups'] && $key == '<OPTGROUP>') { 
211.
				$html .= $baseIndent . '<optgroup label="' 
212.
					. ($options['list.translate'] ? JText::_($text) : $text
213.
					. '">' . $options['format.eol']; 
214.
				$baseIndent = str_repeat($options['format.indent'], ++$options['format.depth']); 
215.
			} else if ($options['groups'] && $key == '</OPTGROUP>') { 
216.
				$baseIndent = str_repeat($options['format.indent'], --$options['format.depth']); 
217.
				$html .= $baseIndent . '</optgroup>' . $options['format.eol']; 
218.
			} else
219.
				// if no string after hypen - take hypen out 
220.
				$splitText = explode(' - ', $text, 2); 
221.
				$text = $splitText[0]; 
222.
				if (isset($splitText[1])) { 
223.
					$text .= ' - ' . $splitText[1]; 
224.
225.
 
226.
				if ($options['list.translate'] && !empty($label)) { 
227.
					$label = JText::_($label); 
228.
229.
				if ($options['option.label.toHtml']) { 
230.
					$label = htmlentities($label); 
231.
232.
				if (is_array($attr)) { 
233.
					$attr = JArrayHelper::toString($attr); 
234.
				} else
235.
					$attr = trim($attr); 
236.
237.
				$extra = ($id ? ' id="' . $id . '"' : '') 
238.
					. ($label ? ' label="' . $label . '"' : '') 
239.
					. ($attr ? ' ' . $attr : '') 
240.
					. $extra 
241.
242.
				if (is_array($options['list.select'])) 
243.
244.
					foreach ($options['list.select'] as $val
245.
246.
						$key2 = is_object($val) ? $val->$options['option.key'] : $val
247.
						if ($key == $key2) { 
248.
							$extra .= ' selected="selected"'; 
249.
							break
250.
251.
252.
				} elseif ((string)$key == (string)$options['list.select']) { 
253.
					$extra .= ' selected="selected"'; 
254.
255.
 
256.
				if ($options['list.translate']) { 
257.
					$text = JText::_($text); 
258.
259.
 
260.
				// Generate the option, encoding as required 
261.
				$html .= $baseIndent . '<option value="' 
262.
					. ($options['option.key.toHtml'] ? htmlspecialchars($key, ENT_COMPAT, 'UTF-8') : $key) . '"' 
263.
					. $extra . '>' 
264.
					. ($options['option.text.toHtml'] ? htmlentities(html_entity_decode($text), ENT_COMPAT, 'UTF-8') : $text
265.
					. '</option>' 
266.
					. $options['format.eol'] 
267.
268.
269.
270.
 
271.
		return $html
272.
273.
 
274.
	/** 
275.
	* Generates an HTML radio list. 
276.
277.
	* @param array An array of objects 
278.
	* @param string The value of the HTML name attribute 
279.
	* @param string Additional HTML attributes for the <select> tag 
280.
	* @param mixed The key that is selected 
281.
	* @param string The name of the object variable for the option value 
282.
	* @param string The name of the object variable for the option text 
283.
	* @return string HTML for the select list 
284.
	*/ 
285.
	public static function radiolist( 
286.
		$data, $name, $attribs = null, $optKey = 'value', $optText = 'text', 
287.
		$selected = null, $idtag = false, $translate = false 
288.
	) { 
289.
		reset($data); 
290.
		$html = ''; 
291.
 
292.
		if (is_array($attribs)) { 
293.
			$attribs = JArrayHelper::toString($attribs); 
294.
295.
 
296.
		$id_text = $idtag ? $idtag : $name
297.
 
298.
		foreach ($data as $ind => $obj
299.
300.
			$k  = $obj->$optKey
301.
			$t  = $translate ? JText::_($obj->$optText) : $obj->$optText
302.
			$id = (isset($obj->id) ? $obj->id : null); 
303.
 
304.
			$extra  = ''; 
305.
			$extra  .= $id ? ' id="' . $obj->id . '"' : ''; 
306.
			if (is_array($selected)) 
307.
308.
				foreach ($selected as $val
309.
310.
					$k2 = is_object($val) ? $val->$optKey : $val
311.
					if ($k == $k2
312.
313.
						$extra .= ' selected="selected"'; 
314.
						break
315.
316.
317.
			} else
318.
				$extra .= ((string)$k == (string)$selected ? ' checked="checked"' : ''); 
319.
320.
			$html .= "\n\t" .'<input type="radio" name="' . $name . '"
321.
				. ' id="' . $id_text . $k . '" value="' . $k .'"
322.
				. ' ' . $extra . ' ' . $attribs . '/>' 
323.
				. "\n\t" . '<label for="' . $id_text . $k . '"
324.
				. ' id="' . $id_text . $k . '-lbl" class="radiobtn">'.$t.'</label>'; 
325.
326.
		$html .= "\n"
327.
		return $html
328.
329.
 
330.
}
Betreffende Zeile ist hierbei die Zeile 55 mit dem Wort else. Ich komme nicht damit klar was hier noch falsch sein sollte. Kann mir dabei bitte jemand helfen?

LG Kepala
Mitglied: colinardo
31.10.2013, aktualisiert um 11:25 Uhr
Hallo Kepala,
ist ja klar, da fehlt der if (Bedingung) { Teil vor Zeile 55 und in Zeile 54 das abschließende Semikolon.
Was aber die Bedingung sein soll kann ich aus dem Code in der Schnelle nicht erschließen ...

Grüße Uwe
Bitte warten ..
Mitglied: Kepala
31.10.2013 um 11:25 Uhr
Und wie soll die Zeile dann aussehen?
Bitte warten ..
Mitglied: Bitboy
31.10.2013 um 11:29 Uhr
Hi,

ohne jetzt besonderer PHP Kenner zu sein würde ich sagen in Zeile 49 beginnt die Funktion und vor dem Else wird die mit der } schon wieder zugemacht.
Abgesehen davon fehlt dem Else auch ein If

Um das zu lösen müsste wohl zwischen Zeile 49 und 50 etwas wie If (irgendwas) { eingefügt werden.
Bitte warten ..
Mitglied: colinardo
31.10.2013 um 11:29 Uhr
Zitat von Kepala:
Und wie soll die Zeile dann aussehen?
Ich hab das Ding nicht geschrieben ! woher soll ich dann wissen welche Bedingung drin stehen soll:
Die hast du wahrscheinlich irgendwie rausgelöscht...hol dir die Original-Datei aus den Joomla-Repos fertig ....
01.
if (BEDINGUNG DIE ICH NICHT KENNE){ 
02.
      //MACH hier was  
03.
} else { 
04.
	// Get options from the parameters 
05.
	$options['option.key'] = $optKey; 
06.
	$options['option.text'] = $optText; 
07.
	$options['disable'] = $disable; 
08.
}
Grüße Uwe
Bitte warten ..
Mitglied: Kepala
31.10.2013 um 11:33 Uhr
Das seltsame ist dass ich den Code so aus meiner Sicherung habe, die ich direkt gemacht habe bevor ich was an der Seite verändern wollte. Dann ging die Seite nicht mehr und ich habe alles neu hochgeladen und danach gings auf einmal nicht mehr.
Bitte warten ..
Mitglied: Kepala
31.10.2013 um 11:42 Uhr
So ich danke Euch liebe Leute... Habs mit Eurer Hilfe lösen können... Juhuu... Ich hab soooo weit um die ecke gedacht, dass ich nicht drauf gekommen bin mir die richtige Joomla Version nochmal runterzuladen und nur die betreffende Datei neu einzuspielen... Es scheint wieder alles zu funktionieren...
Bitte warten ..
Mitglied: colinardo
31.10.2013 um 12:07 Uhr
Dann bitte noch den Beitrag auf gelöst setzen. Merci.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
Daten löschen - Windows Error Reporting (WER) (2)

Frage von Otto1699 zum Thema Windows Server ...

KVM
gelöst Proxmox KVM - Disk read error nach verschieben der disk (6)

Frage von ketanest112 zum Thema KVM ...

Windows Update
gelöst WSUS Server: Content: Error:Forbidden (403) (2)

Frage von EDV-Oellerking zum Thema Windows Update ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...