Webinterface - wie wurde das programmiert?

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
t.u.b.e.
Einsteiger
Einsteiger
Beiträge: 293
Registriert: Mittwoch 9. Januar 2002, 11:04

Webinterface - wie wurde das programmiert?

Beitrag von t.u.b.e. »

Hallo zusammen,

mal eine neugierige generelle Frage über die ich mir gerade den Kopf zwerbreche: Wie funktioniert prinzipiell das?
Das nhhtpd gewisse Funktionen wie Lauter/Leiser/Messagebox per URL bereitstellt, weiß ich. Aber wie funktioniert das mit der WebGUI? Liegen da irgendwo Templates die per eigener Scriptsprache geparsed werden oder liegt alles HTML im Code oder werden Standards wie PHP genutzt? Wie ist da der logische Ablauf? Bzw. wie könntet Ihr Euch das vorstellen wenn es noch besser werden sollte?
Bye,
T.U.B.E.
The Ultimate Boygroup Enemy

Download ISDN-CAPI-WATCH @ http://www.dbox2.info
(Made as dbox2isdn by Tube and improved by ktw2001)

Porsche 968 for sale: http://www.kueper.info/968
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

share/tuxbox/neutrino/

Dort liegen in den meisten Images die 2 Alten Varianten des Webinterfaces und die neue YWeb
yjogol
Developer
Beiträge: 809
Registriert: Montag 4. Juli 2005, 18:45

Re: Webinterface - wie wurde das programmiert?

Beitrag von yjogol »

t.u.b.e. hat geschrieben:Hallo zusammen,

mal eine neugierige generelle Frage über die ich mir gerade den Kopf zwerbreche: Wie funktioniert prinzipiell das?
Das nhhtpd gewisse Funktionen wie Lauter/Leiser/Messagebox per URL bereitstellt, weiß ich. Aber wie funktioniert das mit der WebGUI? Liegen da irgendwo Templates die per eigener Scriptsprache geparsed werden oder liegt alles HTML im Code oder werden Standards wie PHP genutzt? Wie ist da der logische Ablauf? Bzw. wie könntet Ihr Euch das vorstellen wenn es noch besser werden sollte?
Hi, das ist ganz einfach. Früher wurden direkt im WebServer dynamische Funktionen codiert.
Ich habe für das yWeb eine Parsing-Engine mit einer Mini-Sprache entwickelt (Dateien haben die Endung .yhtm) . Für PHP und dergleichen Standards ist kein Platz in der Box.

Gruß
yjogol
t.u.b.e.
Einsteiger
Einsteiger
Beiträge: 293
Registriert: Mittwoch 9. Januar 2002, 11:04

Beitrag von t.u.b.e. »

Hmmm... und was umfasst die Miniscriptsprache so? Schleifen, Stringersetzung, oder wie kann ich mir das vorstellen?
Bye,
T.U.B.E.
The Ultimate Boygroup Enemy

Download ISDN-CAPI-WATCH @ http://www.dbox2.info
(Made as dbox2isdn by Tube and improved by ktw2001)

Porsche 968 for sale: http://www.kueper.info/968
yjogol
Developer
Beiträge: 809
Registriert: Montag 4. Juli 2005, 18:45

Beitrag von yjogol »

Hi,
am besten du schaust dir die .yhtm files mal an, da sind ja reichlich Beispiele.
Hier eine Beschreibung:

Code: Alles auswählen

/* ---------------------------------------------------------------------------------------
	Mini Web Parsing & Generation Engine
   ----------------------------------------------------------------------------------------
	The engine parses and replace ycgi-commands in the given html-file on the fly

	Commands are escaped like this: "{="<command>"=}" They can be nested like
	{=<command1>{=<command2=}=} for dynamic building commands :)
	If the output of a command has itselfs commands, they will be recursivly replaced.

	<command> can be:
		- <http - GET Variable>  
			get value of a http GET argument
			example: /y/cgi?a=hello -> replaces {=a=} with "hello"

		-"var-get:<varname>"
			get value of a ycgi variable (scope: one parsing session)
		
		-"var-set:<varname>=<value>"
			set value of a ycgi variable (scope: one parsing session)
		
		-"global-var-get:<varname>"
			get value of a ycgi variable (scope: nhttpd session)
		
		-"global-var-set:<varname>=<value>"
			set value of a ycgi variable (scope: nhttpd session)
		
		- "script:<shell-script-filename without .sh>
			get output of a shell-script
			example: replaces {=script:Y_Live url=} Output of shell-script-call
			with argument "Y_Live.sh url"

		-"ini-get:<ini/conf-filename>;<varname>[;<default>]"
			get value of a ini/conf file variable
			example: replaces {=ini-get:/var/tuxbox/config/nhttpd.conf;AuthPassword=}
				with the password for the WebInterface from the conf-file				 

		-"ini-set:<ini/conf-filename>;<varname>;<value>"
			set value for a ini/conf file variable with value
		
		-"inculde:<filename>"
			insert file
			example: {=include:/var/tuxbox/config/nhttpd.conf=} wile be replaced
				with the given file (the output will be parsed}

		-"shell:<shell commands>" // To Be Implemented
			execute shell command and replace with output
			example: {=shell:echo "hello" >\tmp\a \ncat /tmp/a=} 

		-"func:<func name>[ <arguments>]"
			execute secial functions
			example: {=func:mount-get-list=} generates html-Radio-Buttons 
				for a mount list
				
		-"if-empty:<value>~<then>~<else>"
		
		-"if-equal:<left_value>~<right_value>~<then>~<else>"
			 (left_value == right_value?)
		
		-"if-not-equal:<left_value>~<right_value>~<then>~<else>"
			 (left_value != right_value?)
		
		- "if-file-exists:<filename>~<them>~<else>"
		- "file-action:<filename>;<action>[;<content>]
			<action>::=none | write | append | delete
			<content> Content to write or append

		-"include-block:<filename>;<block-name>[;<default-text>]"
			insert text from file <filename> beeginning after "start-block+<blockname>"
			and ends before "end-block+<blockname>"
Programme sind mit "shell" als Shell-Scripts mögllich.
Was oft gebraucht wird, oder besonders schnell sein soll, wird in "func"-Funktionen hard codiert.

Schau mal hier:
http://cvs.tuxbox-cvs.sourceforge.net/c ... iew=markup


Gruß
yjogol