Zip Datei aus Modul entpacken - aber wohin?

Hallo Leute,

irgendwo war das schon mal Thema, finde es aber nicht:
Ich habe in meinem Github eine Zip-Datei mit vielen kleinen Grafiken. Diese ist jetzt im Modulverzeichnis vom IPS. Ich möchte diese jetzt entpacken damit ich auf die Grafikdateien zugreifen kann. Aber wohin?
Meine Befürchtung: Wenn ich sie im Modul-Verzeichnis entpacke, bekomme ich doch bestimmt beim näcsten Update-Versuch eine Fehlermeldung, das das Modul manuell verändert wurde?
Warum überhaupt als zip: Weil es mehr als 100 Dateien sind und Github nicht mehr als diese in einem Verzeichnis zulässt…

Joachim

Sicher? Also im Astronomiemodulsind auch mehr als 100 Grafiken drinnen und das geht auch.

Ja, diverse Male probiert - bei der 101 Datei wird „gemeckert“…

Joachim

Hm scheint ja aber prinzipiell zu gehen s.o. Wie lädst Du die Daten denn hoch und von welchem Betriebssystem?

…ich würde gerne auf die Ausgangsfrage zurückkommen…[emoji6]
Wohin müssten die Dateien entpackt werden?

Joachim

…„früher“ hätten man das wohl dann in
…/var/lib/symcon/webfront/user kopiert

Wäre das so in Ordnung?

Joachim

Mich interessiert einfach nur warum bei Dir bei 100 Schluss ist. Wie gesagt es gehen auch mehr Dateien in einem Verzeichnis dann kannst Du Dir das packen sparen. Und wie Du schon geschrieben hattest hast Du dann ja die Überlegung wohin entpacken. Im Modulverzeichnis geht nicht da dann eine Änderung durchgeführt wurde und dann das Update scheitert. Insofern fände ich es schon hilfreich zu schauen warum er bei Dir bei 100 bockt. Dann kannst Du Dir den Kram mit dem Zip nämlich sparen hat ja auch kein Vorteil, die Dateien liegen dann einfach im Modul Verzeichnis. Das machst Du doch nur weil er Dir einen Fehler rausschmeist oder? Ansonsten würde ich die Dateien wenn es Bilder sind unter media entpacken ansonsten unter /webfront/user

Nein nicht ganz das wäre nur für Linux.


$webfrontpath = IPS_GetKernelDir()."webfront".DIRECTORY_SEPARATOR."user".DIRECTORY_SEPARATOR;

dann geht das auch unter anderen Systemen wie Windows.

…wäre ja auch mein Favorit gewesen. Aber egal wie ich es versuche, es kommt bei der hundersten Datei die Meldung:

Yowza, that’s a lot of files. Try again with fewer than 100 files. 

und dann ist Schluß…

Wenn der andere Weg funktioniert ist das doch auch okay.

Joachim

Ha und deswegen habe ich gefragt wenn Dir das lieber wäre scheint ja an der Art und Weise zu liegen wie Du die Dateien hoch lädst. An Github selber liegt es definitiv nicht da auch mehr als 100 Dateien pro Verzeichnis gehen. Ich nutze Windows zum Hochladen und den Github Windows
GitHub Desktop - Simple collaboration from your desktop
Damit habe ich überhaupt keine Probleme mehr Daten hochzuladen.

Ja sicher auch ok aber umständlicher. Ich würde erst mal probieren es anders hochzuladen. Wenn es dann immer noch nicht geht kannst Du ja Plan B nehmen.

…ich lade das gerade mal herunter und werde es mal probieren.

Joachim

So, habe es mal mit dem Tool probiert. Kann mir im Moment nicht vorstellen, dass ich davon mal ein Fan werde…:frowning:

Nach vielen hin und her waren 1000 Dateien auf dem Server - 301 wurden gelöscht. Ein weiteres Limit ist dann 1000.
Also bleibt dann nur „Plan B“…

Trotzdem vielen Dank!

Joachim

Hm sieht dann wohl so aus, so weit an die Grenze bin ich noch nicht gekommen. Aber was lädst Du denn so Unmengen in ein Verzeichnis nur so aus Interesse? Dann musst Du doch wohl Plan B nehmen oder aber auf mehrere Verzeichnisse aufteilen.

…die Picons für mein Enigma2-Modul.
Dann werden in den Listen statt der Sendernamen schön die Picons angezeigt!:smiley:

So, upload und entpacken hat schon mal automatisiert geklappt. Jetzt muss ich die Bildchen nur noch in die Tabellen bekommen - HTML ist auch neu für mich…:wink:

Joachim

Kannst du nicht die Bilder vom Enigma2 ziehen ?
Michael

Sach halt was kann ja keiner ahnen das Du da rumbastelst was brauchst Du denn vielleicht habe ich es ja fertig rumliegen?
Am besten mach doch einen eigenen Thread auf dann können wir dort alles zusammen schmeißen wenn Du noch ein extra Enigma Modul basteln willst. Baust Du auch ein Multi EPG?

…baue das sukzessive gerade auf. Hatte in meinem „normalen“ IPS eine ganze Funktionssammlung aufgebaut. EPG und ggf. auch Multi-EPG stehen noch auf der To-Do-Liste.

Das meiste ist allerdings nur noch „Fleißarbeit“ - bis auf einige „kleine“ Dinge:
Gerade hänge ich daran die Picons in die Tabelle zu bekommen.

Das Beispiel ist jetzt gerade nicht ganz passend aber hier mal eine kleine Testtabelle:

$table = '<style type="text/css">';
$table .= '<link rel="stylesheet" href="./.../webfront.css">';
$table .= "</style>";
$table .= '<table class="tg">';
$table .= "<tr>";
$table .= '<th class="tg-kv4b">Name</th>';
$table .= '<th class="tg-kv4b">Typ<br></th>';
$table .= '<th class="tg-kv4b">Picon<br></th>';
$table .= '</tr>';
for ($i = 0; $i <= count($xmlResult->e2about->e2tunerinfo->e2nim) - 1; $i++) {
	$table .= '<tr>';
	$table .= '<td class="tg-611x">'.$xmlResult->e2about->e2tunerinfo->e2nim[0]->name.'</td>';
	$table .= '<td class="tg-611x">'.$xmlResult->e2about->e2tunerinfo->e2nim[0]->type.'</td>';
	$table .= 'HIER SOLL DAS BILD $PICONPATH REIN';
	$table .= '</tr>';
}
$table .= '</table>';

Den Pfad zur Datei habe ich zusammengesetzt und die Frage

file_exists($piconpath)

wird bejaht…

Warum wird das png nicht in der Tabelle angezeigt, sondern nur der alternative Text?
Wie muss die Einbindung korrekt geschehen?

Joachim

Hallo Michael,

das hatte ich auch überlegt, habe das aber vorerst verworfen, weil ich nicht genau weiß welche Art von Picons da verwendet werden. Vielleicht kann man das ja als Alternative Methode anbieten…

Bei den Enigma2-Images gibt es so viele Möglichkeiten…aber immer Step-by-Step…:wink:

Joachim

Sieht bei mir so aus:


$HTMLData = HTMLHead();
	$i = 0;
	foreach($epgnow as $now)
		{
				$i = $i+1;
				if ($i % 2 != 0)
				 	{	
						$HTMLData .= "<table class=\"row_0\"><tr><td rowspan=\"2\" width=\"120\" valign=\"top\" align=\"left\"><figure class=\"picon\"><div onclick=window.xhrRPC('/api/','SetValue',[11848 /*[Geräte\Heimkino\Video\Dreambox\Zap\Dreambox 8000 Wohnzimmer Zap\Sender auf SREF umschalten]*/,'".$now['sref']."']);><img src=\"user/neo/images/picon/".$now['pref'].".png\" alt=\"logo\"></div><figcaption>".$now['name']."</figcaption></figure></td>".PHP_EOL;
						$HTMLData .= "<td class=\"titel\">".$now['title']."</td></tr>".PHP_EOL;
						$HTMLData .= "<tr><td align=\"left\" valign=\"top\" class=\"description\">".$now['desc']."</td></tr></table>".PHP_EOL;
					}
				else
				 	{
						$HTMLData .= "<table class=\"row_1\"><tr><td rowspan=\"2\" width=\"120\" valign=\"top\" align=\"left\"><figure class=\"picon\"><div onclick=window.xhrRPC('/api/','SetValue',[11848 /*[Geräte\Heimkino\Video\Dreambox\Zap\Dreambox 8000 Wohnzimmer Zap\Sender auf SREF umschalten]*/,'".$now['sref']."']);><img src=\"user/neo/images/picon/".$now['pref'].".png\" alt=\"logo\"></div><figcaption>".$now['name']."</figcaption></figure></td>".PHP_EOL;
						$HTMLData .= "<td class=\"titel\">".$now['title']."</td></tr>".PHP_EOL;
						$HTMLData .= "<tr><td align=\"left\" valign=\"top\" class=\"description\">".$now['desc']."</td></tr></table>".PHP_EOL;
					}
		}
	$HTMLData .= HTMLBottom();
	//var_dump($HTMLData);
	SetValueString(22326 /*[Geräte\Heimkino\Video\Dreambox\Dreambox Weitere Anzeige\Kanalliste funktioniert nicht externe Seite notwendig]*/  , $HTMLData);
	}
	
	function HTMLHead()
	{
		$HTMLData = '<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Kanalliste</title>
<script type="text/javascript" src="user/neo/js/jquery.js"></script>
<script type="text/javascript" src="user/neo/js/jquery.mobile-1.4.5.min.js"></script>
<!--The following script tag downloads a font from the Adobe Edge Web Fonts server for use within the web page. We recommend that you do not modify it.-->
<script>var __adobewebfontsappname__="dreamweaver"</script>
<script src="http://use.edgefonts.net/source-sans-pro:n6:default;bilbo:n4:default;acme:n4:default.js" type="text/javascript"></script>

<link href="user/neo/css/jquery.mobile-1.4.5.iframe.css" rel="stylesheet" type="text/css">
<link href="user/neo/css/dreambox.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="wrapper">';
		return $HTMLData;
	}
	
	function HTMLBottom()
	{
		$HTMLData = '</div>
</body>
</html>';

		return $HTMLData;
	}


Wenn Du jquery nutzten solltest musst Du das aber ins User Verzeichnis packen in einer HTMLBox zerschießt Dir sonst die jquery css das Webfront.

…vielleicht habe ich den Fehler…(kann es aber im Moment nicht ausprobieren)

Wie muss der Pfad in „src“ zu den Grafikdateien angegeben werden? Vom „Anfang“? Also beginnend mit IPS_GetKernelDir…webfront/user… oder beginnend mit user/…?

Joachim