<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.155.186.41</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=84.155.186.41"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/84.155.186.41"/>
	<updated>2026-05-06T16:11:02Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24727</id>
		<title>Homebrew Paketmanager für Mac OS X</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24727"/>
		<updated>2020-08-30T13:16:58Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Installieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der Homebrew Paketmanager ist recht praktisch wenn man viel mit Entwicklertools arbeiten möchte. [[NodeJS]] z.B.und anderes läßt sich damit schnell installieren und deinstallieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
 https://brew.sh/index_de.html&lt;br /&gt;
 [[Homebrew-Cask]]&lt;br /&gt;
 [[Mac - Apache MySql PHP Server mit Homebrew]]&lt;br /&gt;
&lt;br /&gt;
== Schnelleinstieg ==&lt;br /&gt;
 &lt;br /&gt;
==== Installieren ====&lt;br /&gt;
* XCode Installieren&lt;br /&gt;
* Terminal:&lt;br /&gt;
 /bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Basics ====&lt;br /&gt;
 brew doctor # Findet Probleme - ab und zu mal eingeben&lt;br /&gt;
 brew install [Paketname]&lt;br /&gt;
 brew info [Paketname] # z.B. brew info phpmyadmin gibt infos zur Installation und Gebrauch&lt;br /&gt;
&lt;br /&gt;
== Übersicht von brew.sh ==&lt;br /&gt;
https://brew.sh/index_de.html&lt;br /&gt;
&lt;br /&gt;
Homebrew installiert die Sachen, die Du brauchst und die bei Apple nicht dabei sind.&lt;br /&gt;
&lt;br /&gt;
 $ brew install wget&lt;br /&gt;
Homebrew installiert Pakete in ihrem eigenen Verzeichnis und erstellt dann Symlinks der Dateien in /usr/local.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ cd /usr/local&lt;br /&gt;
 $ find Cellar&lt;br /&gt;
 Cellar/wget/1.15&lt;br /&gt;
 Cellar/wget/1.15/bin/wget&lt;br /&gt;
 Cellar/wget/1.15/share/man/man1/wget.1&lt;br /&gt;
&lt;br /&gt;
 $ ls -l bin&lt;br /&gt;
 bin/wget -&amp;gt; ../Cellar/wget/1.15/bin/wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew installiert keine Dateien außerhalb seines Präfixes und Du kannst den Ort einer Homebrew-Installation frei wählen.&lt;br /&gt;
&lt;br /&gt;
Eigene Homebrew-Pakete zu erzeugen, ist kinderleicht.&lt;br /&gt;
&lt;br /&gt;
 $ brew create http://foo.com/bar-1.0.tgz&lt;br /&gt;
 Created /usr/local/Library/Formula/bar.rb&lt;br /&gt;
Unter der Haube werden git und ruby verwendet. Modifikationen sind also schnell rückgängig gemacht und Upstream-Änderungen lassen sich leicht mergen.&lt;br /&gt;
&lt;br /&gt;
 $ brew edit wget # opens in $EDITOR!&lt;br /&gt;
Homebrew-Formeln sind einfache Ruby-Skripte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require &amp;quot;formula&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Wget &amp;lt; Formula&lt;br /&gt;
  homepage &amp;quot;https://www.gnu.org/software/wget/&amp;quot;&lt;br /&gt;
  url &amp;quot;https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz&amp;quot;&lt;br /&gt;
  sha1 &amp;quot;f3c925f19dfe5ed386daae4f339175c108c50574&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  def install&lt;br /&gt;
    system &amp;quot;./configure&amp;quot;, &amp;quot;--prefix=#{prefix}&amp;quot;&lt;br /&gt;
    system &amp;quot;make&amp;quot;, &amp;quot;install&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew ergänzt OS X. Installiere Deine Gems mit gem und ihre Abhängigkeiten mit brew.&lt;br /&gt;
&lt;br /&gt;
Installiere Homebrew&lt;br /&gt;
 ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installationsnotizen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stephans-imac:~ stephan$ ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/usr/local/bin/brew&lt;br /&gt;
/usr/local/Library/...&lt;br /&gt;
/usr/local/share/man/man1/brew.1&lt;br /&gt;
==&amp;gt; The following directories will be made group writable:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
==&amp;gt; The following directories will have their group set to admin:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Warning: /usr/local/bin is not in your PATH.&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
==&amp;gt; Next steps&lt;br /&gt;
Run `brew doctor` before you install anything&lt;br /&gt;
Run `brew help` to get started&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== PHP und Apache mit Homebrew ==&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Mit Homebrew kann man PHP installieren&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
Nach der Installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To enable PHP in Apache add the following to httpd.conf and restart Apache:&lt;br /&gt;
    LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;FilesMatch \.php$&amp;gt;&lt;br /&gt;
        SetHandler application/x-httpd-php&lt;br /&gt;
    &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, check DirectoryIndex includes index.php&lt;br /&gt;
    DirectoryIndex index.php index.html&lt;br /&gt;
&lt;br /&gt;
The php.ini and php-fpm.ini file can be found in:&lt;br /&gt;
    /usr/local/etc/php/7.3/&lt;br /&gt;
&lt;br /&gt;
To have launchd start php now and restart at login:&lt;br /&gt;
  brew services start php&lt;br /&gt;
Or, if you don&amp;#039;t want/need a background service you can just run:&lt;br /&gt;
  php-fpm&lt;br /&gt;
==&amp;gt; Summary&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24726</id>
		<title>Homebrew Paketmanager für Mac OS X</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24726"/>
		<updated>2020-08-30T13:14:49Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Schnelleinstieg */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der Homebrew Paketmanager ist recht praktisch wenn man viel mit Entwicklertools arbeiten möchte. [[NodeJS]] z.B.und anderes läßt sich damit schnell installieren und deinstallieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
 https://brew.sh/index_de.html&lt;br /&gt;
 [[Homebrew-Cask]]&lt;br /&gt;
 [[Mac - Apache MySql PHP Server mit Homebrew]]&lt;br /&gt;
&lt;br /&gt;
== Schnelleinstieg ==&lt;br /&gt;
 &lt;br /&gt;
==== Installieren ====&lt;br /&gt;
 &lt;br /&gt;
==== Basics ====&lt;br /&gt;
 brew doctor # Findet Probleme - ab und zu mal eingeben&lt;br /&gt;
 brew install [Paketname]&lt;br /&gt;
 brew info [Paketname] # z.B. brew info phpmyadmin gibt infos zur Installation und Gebrauch&lt;br /&gt;
&lt;br /&gt;
== Übersicht von brew.sh ==&lt;br /&gt;
https://brew.sh/index_de.html&lt;br /&gt;
&lt;br /&gt;
Homebrew installiert die Sachen, die Du brauchst und die bei Apple nicht dabei sind.&lt;br /&gt;
&lt;br /&gt;
 $ brew install wget&lt;br /&gt;
Homebrew installiert Pakete in ihrem eigenen Verzeichnis und erstellt dann Symlinks der Dateien in /usr/local.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ cd /usr/local&lt;br /&gt;
 $ find Cellar&lt;br /&gt;
 Cellar/wget/1.15&lt;br /&gt;
 Cellar/wget/1.15/bin/wget&lt;br /&gt;
 Cellar/wget/1.15/share/man/man1/wget.1&lt;br /&gt;
&lt;br /&gt;
 $ ls -l bin&lt;br /&gt;
 bin/wget -&amp;gt; ../Cellar/wget/1.15/bin/wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew installiert keine Dateien außerhalb seines Präfixes und Du kannst den Ort einer Homebrew-Installation frei wählen.&lt;br /&gt;
&lt;br /&gt;
Eigene Homebrew-Pakete zu erzeugen, ist kinderleicht.&lt;br /&gt;
&lt;br /&gt;
 $ brew create http://foo.com/bar-1.0.tgz&lt;br /&gt;
 Created /usr/local/Library/Formula/bar.rb&lt;br /&gt;
Unter der Haube werden git und ruby verwendet. Modifikationen sind also schnell rückgängig gemacht und Upstream-Änderungen lassen sich leicht mergen.&lt;br /&gt;
&lt;br /&gt;
 $ brew edit wget # opens in $EDITOR!&lt;br /&gt;
Homebrew-Formeln sind einfache Ruby-Skripte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require &amp;quot;formula&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Wget &amp;lt; Formula&lt;br /&gt;
  homepage &amp;quot;https://www.gnu.org/software/wget/&amp;quot;&lt;br /&gt;
  url &amp;quot;https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz&amp;quot;&lt;br /&gt;
  sha1 &amp;quot;f3c925f19dfe5ed386daae4f339175c108c50574&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  def install&lt;br /&gt;
    system &amp;quot;./configure&amp;quot;, &amp;quot;--prefix=#{prefix}&amp;quot;&lt;br /&gt;
    system &amp;quot;make&amp;quot;, &amp;quot;install&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew ergänzt OS X. Installiere Deine Gems mit gem und ihre Abhängigkeiten mit brew.&lt;br /&gt;
&lt;br /&gt;
Installiere Homebrew&lt;br /&gt;
 ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installationsnotizen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stephans-imac:~ stephan$ ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/usr/local/bin/brew&lt;br /&gt;
/usr/local/Library/...&lt;br /&gt;
/usr/local/share/man/man1/brew.1&lt;br /&gt;
==&amp;gt; The following directories will be made group writable:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
==&amp;gt; The following directories will have their group set to admin:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Warning: /usr/local/bin is not in your PATH.&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
==&amp;gt; Next steps&lt;br /&gt;
Run `brew doctor` before you install anything&lt;br /&gt;
Run `brew help` to get started&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== PHP und Apache mit Homebrew ==&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Mit Homebrew kann man PHP installieren&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
Nach der Installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To enable PHP in Apache add the following to httpd.conf and restart Apache:&lt;br /&gt;
    LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;FilesMatch \.php$&amp;gt;&lt;br /&gt;
        SetHandler application/x-httpd-php&lt;br /&gt;
    &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, check DirectoryIndex includes index.php&lt;br /&gt;
    DirectoryIndex index.php index.html&lt;br /&gt;
&lt;br /&gt;
The php.ini and php-fpm.ini file can be found in:&lt;br /&gt;
    /usr/local/etc/php/7.3/&lt;br /&gt;
&lt;br /&gt;
To have launchd start php now and restart at login:&lt;br /&gt;
  brew services start php&lt;br /&gt;
Or, if you don&amp;#039;t want/need a background service you can just run:&lt;br /&gt;
  php-fpm&lt;br /&gt;
==&amp;gt; Summary&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24725</id>
		<title>Homebrew Paketmanager für Mac OS X</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24725"/>
		<updated>2020-08-30T13:13:53Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der Homebrew Paketmanager ist recht praktisch wenn man viel mit Entwicklertools arbeiten möchte. [[NodeJS]] z.B.und anderes läßt sich damit schnell installieren und deinstallieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
 https://brew.sh/index_de.html&lt;br /&gt;
 [[Homebrew-Cask]]&lt;br /&gt;
 [[Mac - Apache MySql PHP Server mit Homebrew]]&lt;br /&gt;
&lt;br /&gt;
== Schnelleinstieg ==&lt;br /&gt;
 brew doctor # Findet Probleme - ab und zu mal eingeben&lt;br /&gt;
 brew install [Paketname]&lt;br /&gt;
 brew info [Paketname] # z.B. brew info phpmyadmin gibt infos zur Installation und Gebrauch&lt;br /&gt;
&lt;br /&gt;
== Übersicht von brew.sh ==&lt;br /&gt;
https://brew.sh/index_de.html&lt;br /&gt;
&lt;br /&gt;
Homebrew installiert die Sachen, die Du brauchst und die bei Apple nicht dabei sind.&lt;br /&gt;
&lt;br /&gt;
 $ brew install wget&lt;br /&gt;
Homebrew installiert Pakete in ihrem eigenen Verzeichnis und erstellt dann Symlinks der Dateien in /usr/local.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ cd /usr/local&lt;br /&gt;
 $ find Cellar&lt;br /&gt;
 Cellar/wget/1.15&lt;br /&gt;
 Cellar/wget/1.15/bin/wget&lt;br /&gt;
 Cellar/wget/1.15/share/man/man1/wget.1&lt;br /&gt;
&lt;br /&gt;
 $ ls -l bin&lt;br /&gt;
 bin/wget -&amp;gt; ../Cellar/wget/1.15/bin/wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew installiert keine Dateien außerhalb seines Präfixes und Du kannst den Ort einer Homebrew-Installation frei wählen.&lt;br /&gt;
&lt;br /&gt;
Eigene Homebrew-Pakete zu erzeugen, ist kinderleicht.&lt;br /&gt;
&lt;br /&gt;
 $ brew create http://foo.com/bar-1.0.tgz&lt;br /&gt;
 Created /usr/local/Library/Formula/bar.rb&lt;br /&gt;
Unter der Haube werden git und ruby verwendet. Modifikationen sind also schnell rückgängig gemacht und Upstream-Änderungen lassen sich leicht mergen.&lt;br /&gt;
&lt;br /&gt;
 $ brew edit wget # opens in $EDITOR!&lt;br /&gt;
Homebrew-Formeln sind einfache Ruby-Skripte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require &amp;quot;formula&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Wget &amp;lt; Formula&lt;br /&gt;
  homepage &amp;quot;https://www.gnu.org/software/wget/&amp;quot;&lt;br /&gt;
  url &amp;quot;https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz&amp;quot;&lt;br /&gt;
  sha1 &amp;quot;f3c925f19dfe5ed386daae4f339175c108c50574&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  def install&lt;br /&gt;
    system &amp;quot;./configure&amp;quot;, &amp;quot;--prefix=#{prefix}&amp;quot;&lt;br /&gt;
    system &amp;quot;make&amp;quot;, &amp;quot;install&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew ergänzt OS X. Installiere Deine Gems mit gem und ihre Abhängigkeiten mit brew.&lt;br /&gt;
&lt;br /&gt;
Installiere Homebrew&lt;br /&gt;
 ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installationsnotizen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stephans-imac:~ stephan$ ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/usr/local/bin/brew&lt;br /&gt;
/usr/local/Library/...&lt;br /&gt;
/usr/local/share/man/man1/brew.1&lt;br /&gt;
==&amp;gt; The following directories will be made group writable:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
==&amp;gt; The following directories will have their group set to admin:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Warning: /usr/local/bin is not in your PATH.&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
==&amp;gt; Next steps&lt;br /&gt;
Run `brew doctor` before you install anything&lt;br /&gt;
Run `brew help` to get started&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== PHP und Apache mit Homebrew ==&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Mit Homebrew kann man PHP installieren&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
Nach der Installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To enable PHP in Apache add the following to httpd.conf and restart Apache:&lt;br /&gt;
    LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;FilesMatch \.php$&amp;gt;&lt;br /&gt;
        SetHandler application/x-httpd-php&lt;br /&gt;
    &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, check DirectoryIndex includes index.php&lt;br /&gt;
    DirectoryIndex index.php index.html&lt;br /&gt;
&lt;br /&gt;
The php.ini and php-fpm.ini file can be found in:&lt;br /&gt;
    /usr/local/etc/php/7.3/&lt;br /&gt;
&lt;br /&gt;
To have launchd start php now and restart at login:&lt;br /&gt;
  brew services start php&lt;br /&gt;
Or, if you don&amp;#039;t want/need a background service you can just run:&lt;br /&gt;
  php-fpm&lt;br /&gt;
==&amp;gt; Summary&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24724</id>
		<title>Homebrew Paketmanager für Mac OS X</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Homebrew_Paketmanager_f%C3%BCr_Mac_OS_X&amp;diff=24724"/>
		<updated>2020-08-30T13:11:51Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Der Homebrew Paketmanager ist recht praktisch wenn man viel mit Entwicklertools arbeiten möchte. [[NodeJS]] z.B.und anderes läßt sich damit schnell installieren und deinstallieren.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
 [[Homebrew-Cask]]&lt;br /&gt;
 [[Mac - Apache MySql PHP Server mit Homebrew]]&lt;br /&gt;
== Schnelleinstieg ==&lt;br /&gt;
 brew doctor # Findet Probleme - ab und zu mal eingeben&lt;br /&gt;
 brew install [Paketname]&lt;br /&gt;
 brew info [Paketname] # z.B. brew info phpmyadmin gibt infos zur Installation und Gebrauch&lt;br /&gt;
&lt;br /&gt;
== Übersicht von brew.sh ==&lt;br /&gt;
https://brew.sh/index_de.html&lt;br /&gt;
&lt;br /&gt;
Homebrew installiert die Sachen, die Du brauchst und die bei Apple nicht dabei sind.&lt;br /&gt;
&lt;br /&gt;
 $ brew install wget&lt;br /&gt;
Homebrew installiert Pakete in ihrem eigenen Verzeichnis und erstellt dann Symlinks der Dateien in /usr/local.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ cd /usr/local&lt;br /&gt;
 $ find Cellar&lt;br /&gt;
 Cellar/wget/1.15&lt;br /&gt;
 Cellar/wget/1.15/bin/wget&lt;br /&gt;
 Cellar/wget/1.15/share/man/man1/wget.1&lt;br /&gt;
&lt;br /&gt;
 $ ls -l bin&lt;br /&gt;
 bin/wget -&amp;gt; ../Cellar/wget/1.15/bin/wget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew installiert keine Dateien außerhalb seines Präfixes und Du kannst den Ort einer Homebrew-Installation frei wählen.&lt;br /&gt;
&lt;br /&gt;
Eigene Homebrew-Pakete zu erzeugen, ist kinderleicht.&lt;br /&gt;
&lt;br /&gt;
 $ brew create http://foo.com/bar-1.0.tgz&lt;br /&gt;
 Created /usr/local/Library/Formula/bar.rb&lt;br /&gt;
Unter der Haube werden git und ruby verwendet. Modifikationen sind also schnell rückgängig gemacht und Upstream-Änderungen lassen sich leicht mergen.&lt;br /&gt;
&lt;br /&gt;
 $ brew edit wget # opens in $EDITOR!&lt;br /&gt;
Homebrew-Formeln sind einfache Ruby-Skripte:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require &amp;quot;formula&amp;quot;&lt;br /&gt;
&lt;br /&gt;
class Wget &amp;lt; Formula&lt;br /&gt;
  homepage &amp;quot;https://www.gnu.org/software/wget/&amp;quot;&lt;br /&gt;
  url &amp;quot;https://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz&amp;quot;&lt;br /&gt;
  sha1 &amp;quot;f3c925f19dfe5ed386daae4f339175c108c50574&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  def install&lt;br /&gt;
    system &amp;quot;./configure&amp;quot;, &amp;quot;--prefix=#{prefix}&amp;quot;&lt;br /&gt;
    system &amp;quot;make&amp;quot;, &amp;quot;install&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Homebrew ergänzt OS X. Installiere Deine Gems mit gem und ihre Abhängigkeiten mit brew.&lt;br /&gt;
&lt;br /&gt;
Installiere Homebrew&lt;br /&gt;
 ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Installationsnotizen ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
stephans-imac:~ stephan$ ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&lt;br /&gt;
==&amp;gt; This script will install:&lt;br /&gt;
/usr/local/bin/brew&lt;br /&gt;
/usr/local/Library/...&lt;br /&gt;
/usr/local/share/man/man1/brew.1&lt;br /&gt;
==&amp;gt; The following directories will be made group writable:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
==&amp;gt; The following directories will have their group set to admin:&lt;br /&gt;
/usr/local/.&lt;br /&gt;
/usr/local/bin&lt;br /&gt;
/usr/local/share&lt;br /&gt;
/usr/local/share/man&lt;br /&gt;
/usr/local/share/man/man1&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Warning: /usr/local/bin is not in your PATH.&lt;br /&gt;
==&amp;gt; Installation successful!&lt;br /&gt;
==&amp;gt; Next steps&lt;br /&gt;
Run `brew doctor` before you install anything&lt;br /&gt;
Run `brew help` to get started&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== PHP und Apache mit Homebrew ==&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Mit Homebrew kann man PHP installieren&lt;br /&gt;
 brew install php&lt;br /&gt;
&lt;br /&gt;
Nach der Installation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
To enable PHP in Apache add the following to httpd.conf and restart Apache:&lt;br /&gt;
    LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;FilesMatch \.php$&amp;gt;&lt;br /&gt;
        SetHandler application/x-httpd-php&lt;br /&gt;
    &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, check DirectoryIndex includes index.php&lt;br /&gt;
    DirectoryIndex index.php index.html&lt;br /&gt;
&lt;br /&gt;
The php.ini and php-fpm.ini file can be found in:&lt;br /&gt;
    /usr/local/etc/php/7.3/&lt;br /&gt;
&lt;br /&gt;
To have launchd start php now and restart at login:&lt;br /&gt;
  brew services start php&lt;br /&gt;
Or, if you don&amp;#039;t want/need a background service you can just run:&lt;br /&gt;
  php-fpm&lt;br /&gt;
==&amp;gt; Summary&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Polyfill_(Web)&amp;diff=24723</id>
		<title>Polyfill (Web)</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Polyfill_(Web)&amp;diff=24723"/>
		<updated>2020-08-30T13:07:48Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „Polyfills sind meistens JavaScript Schnipsel, die bestimmte Features ersetzen, die vor allem ältere Browser nicht unterstützen.  Links   https://www.youtube.…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Polyfills sind meistens JavaScript Schnipsel, die bestimmte Features ersetzen, die vor allem ältere Browser nicht unterstützen.&lt;br /&gt;
&lt;br /&gt;
Links&lt;br /&gt;
&lt;br /&gt;
 https://www.youtube.com/watch?v=hpqRxf0lH8Q&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JQuery_or_Vanilla_JS&amp;diff=24722</id>
		<title>JQuery or Vanilla JS</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JQuery_or_Vanilla_JS&amp;diff=24722"/>
		<updated>2020-08-27T17:47:13Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2019 ist jQuery lange nicht mehr so verbreitet. Was soll man nutzen? jQuery oder lieber Plain JavaScript oder sogar ein Framework wie React, Angular oder Vue?&lt;br /&gt;
&lt;br /&gt;
 https://www.ma-no.org/en/programming/javascript/is-jquery-going-to-die-in-2019&lt;br /&gt;
 https://flaviocopes.com/jquery/&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JQuery_or_Vanilla_JS&amp;diff=24721</id>
		<title>JQuery or Vanilla JS</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JQuery_or_Vanilla_JS&amp;diff=24721"/>
		<updated>2020-08-27T17:46:40Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „2019 ist jQuery lange nicht mehr so verbreitet. Was soll man nutzen? jQuery oder lieber Plain JavaScript oder sogar ein Framework?   https://www.ma-no.org/en/p…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;2019 ist jQuery lange nicht mehr so verbreitet. Was soll man nutzen? jQuery oder lieber Plain JavaScript oder sogar ein Framework?&lt;br /&gt;
&lt;br /&gt;
 https://www.ma-no.org/en/programming/javascript/is-jquery-going-to-die-in-2019&lt;br /&gt;
 https://flaviocopes.com/jquery/&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JQuery&amp;diff=24720</id>
		<title>JQuery</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JQuery&amp;diff=24720"/>
		<updated>2020-08-27T17:44:30Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Quickstart==&lt;br /&gt;
&lt;br /&gt;
http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery&lt;br /&gt;
&lt;br /&gt;
Gut durchlesen, hier werden die meisten Basics angesprochen.&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
 [[jQuery or Vanilla JS]]&lt;br /&gt;
Elemente auswählen: http://docs.jquery.com/DOM/Traversing/Selectors&lt;br /&gt;
&lt;br /&gt;
Ereignisse: http://docs.jquery.com/Events&lt;br /&gt;
&lt;br /&gt;
Gute Tools out of the Box:&lt;br /&gt;
Erste Wahl mit allem was man so braucht sind die jQuery Tools:&lt;br /&gt;
&lt;br /&gt;
http://flowplayer.org/tools/index.html &lt;br /&gt;
&lt;br /&gt;
Oder in Kurzform hier: [[JQuery Tools (flowplayer.org)]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
[[JQuery - Events]]&lt;br /&gt;
&lt;br /&gt;
Validierung mit jQuery: [[Validate (jQuery Plugin)]]&lt;br /&gt;
&lt;br /&gt;
==Einbinden==&lt;br /&gt;
Es gibt die Core Datei und einige nützliche Erweiterungen die man sich passend zusammestellen kann um die Download Größe klein zu halten. Außerdem gibt es gepackte Versionen.&lt;br /&gt;
&lt;br /&gt;
===Über Google===&lt;br /&gt;
&lt;br /&gt;
Hinweis: Google gibt an man solle zuerst den API Code übergeben damit es funktioniert (Obsolet). Der direkte Zugriff funktioniert aber auch ohne. Vielleicht geht es nicht wenn man die google. load Funktion nutzt (hier nicht weiter behandelt) .&lt;br /&gt;
&lt;br /&gt;
Beispiel API Code Übergabe:&lt;br /&gt;
 &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;https://www.google.com/jsapi?key=INSERT-YOUR-KEY&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Beispiel:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ui steht für User Interface (Plugins)&lt;br /&gt;
&lt;br /&gt;
=== Über jQuery Server ===&lt;br /&gt;
Beispiel:&lt;br /&gt;
 &amp;lt;script src=&amp;quot;http://code.jquery.com/jquery-latest.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Libary auf eigenem Server ===&lt;br /&gt;
==== Geo-bit webmynet ====&lt;br /&gt;
ToDo -&amp;gt; Idee ist verschiedene libs auf tools.webmynet.de vorzuhalten ähnlich wie sie auf dem Google Server liegen.&lt;br /&gt;
Zweck: einfache Einbindung, Statistik, Testing&lt;br /&gt;
&lt;br /&gt;
=== Typo3 ===&lt;br /&gt;
siehe JavaScript Frameworks nutzen&lt;br /&gt;
&lt;br /&gt;
== Der Beginn ==&lt;br /&gt;
In der Regel soll es losgehen, sobald das Dokument geladen ist (weil dies für manche Manipulationen notwendig ist) Deshalb beginnt man i.d.R. mit einem Onload Event:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $(document).ready(function() {&lt;br /&gt;
   // do stuff when DOM is ready&lt;br /&gt;
 });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Oder Abgekürzt&lt;br /&gt;
&lt;br /&gt;
 $(function() {&lt;br /&gt;
   // do stuff when DOM is ready&lt;br /&gt;
 });&lt;br /&gt;
&lt;br /&gt;
=== Document ready oder window ready ? ===&lt;br /&gt;
$(document).ready... wartet bis alle Elemente im HTML soweit geladen sind und startet mit der Ausführung der Skripte. Bilder etc. werden im Laufe der Zeit nachgeladen. Soll die Ausführung auf die Bilder warten geht das anders:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  // wait til DOM is ready and do s.th.&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(window).on(&amp;quot;load&amp;quot;, function() {&lt;br /&gt;
    // wait till everything (inkl. Images) is loaded and do s.th.&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Reagieren auf Klick ==&lt;br /&gt;
Siehe auch:&lt;br /&gt;
&lt;br /&gt;
[[JQuery - Events]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $(document).ready(function() {&lt;br /&gt;
   $(&amp;quot;a&amp;quot;).click(function() {&lt;br /&gt;
     alert(&amp;quot;Hello world!&amp;quot;);&lt;br /&gt;
   });&lt;br /&gt;
 });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  $(&amp;quot;a&amp;quot;)&lt;br /&gt;
bedeutet Das was jetzt kommt gilt für alle Links &lt;br /&gt;
 .click()&lt;br /&gt;
es soll bei Klick etwas passieren&lt;br /&gt;
&lt;br /&gt;
Früher hat man das so gelöst:&lt;br /&gt;
  &amp;lt;a href=&amp;quot;&amp;quot; onclick=&amp;quot;alert(&amp;#039;Hello world&amp;#039;)&amp;quot;&amp;gt;Link&amp;lt;/a&amp;gt;&lt;br /&gt;
Das funktioniert, allerdings muß man hier bei jedem Link den Schnipsel einfügen.&lt;br /&gt;
&lt;br /&gt;
== Zugriff auf Elemente ==&lt;br /&gt;
Old School:&lt;br /&gt;
 document.getElementById(&amp;quot;orderedlist&amp;quot;)&lt;br /&gt;
Mit JQuery analog zu obigem Beispiel&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $(document).ready(function() {&lt;br /&gt;
   $(&amp;quot;#orderedlist&amp;quot;).addClass(&amp;quot;red&amp;quot;);&lt;br /&gt;
 });&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hier wird noch eine Klasse eingebaut&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Weitere Beispiele:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
  $(&amp;quot;#orderedlist &amp;gt; li&amp;quot;)&lt;br /&gt;
Alle Listenelemente unterhalb #orderedlist&lt;br /&gt;
 #orderedlist li:last&lt;br /&gt;
Hier ist nur das letzte Listenelement gemeint.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $(document).ready(function() {&lt;br /&gt;
   $(&amp;quot;#orderedlist li:last&amp;quot;).hover(function() {&lt;br /&gt;
     $(this).addClass(&amp;quot;green&amp;quot;);&lt;br /&gt;
   },function(){&lt;br /&gt;
     $(this).removeClass(&amp;quot;green&amp;quot;);&lt;br /&gt;
   });&lt;br /&gt;
 });&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Hoverfunktion kann zwei Funktionen als Parameter aufnehmen.&lt;br /&gt;
&lt;br /&gt;
== Elemente manipulieren, hinzufügen, entfernen ==&lt;br /&gt;
=== jQuery - Animation ===&lt;br /&gt;
[[jQuery - Animation]]&lt;br /&gt;
&lt;br /&gt;
== Weitere Funktionen ==&lt;br /&gt;
 find()&lt;br /&gt;
 addClass()&lt;br /&gt;
 removeClass()&lt;br /&gt;
 hover()&lt;br /&gt;
 each()&lt;br /&gt;
 append()&lt;br /&gt;
&lt;br /&gt;
== Ereignisse ==&lt;br /&gt;
[[jQuery - Events]]&lt;br /&gt;
&lt;br /&gt;
== AJAX ==&lt;br /&gt;
[[jQuery - AJAX]]&lt;br /&gt;
&lt;br /&gt;
== Funktionen in jQuery definieren (5 Wege) ==&lt;br /&gt;
[[Funktionen in jQuery]]&lt;br /&gt;
&lt;br /&gt;
== Weitere Beispiele ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   // Find some li s and append Text&lt;br /&gt;
   $(&amp;quot;#orderedlist&amp;quot;).find(&amp;quot;li&amp;quot;).each(function(i) {&lt;br /&gt;
     $(this).append( &amp;quot; BAM! &amp;quot; + i );&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   $(&amp;quot;a[href*=/content/gallery]&amp;quot;).click(function() {&lt;br /&gt;
     // do something with all links that point somewhere to /content/gallery&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   // use this to reset a single form&lt;br /&gt;
   $(&amp;quot;#reset&amp;quot;).click(function() {&lt;br /&gt;
     $(&amp;quot;form&amp;quot;)[0].reset();&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   // use this to reset several forms at once&lt;br /&gt;
   $(&amp;quot;#reset&amp;quot;).click(function() {&lt;br /&gt;
     $(&amp;quot;form&amp;quot;).each(function() {&lt;br /&gt;
       this.reset();&lt;br /&gt;
     });&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Find li elements that does NOT have a parent ul&lt;br /&gt;
   $(document).ready(function() {&lt;br /&gt;
     $(&amp;quot;li&amp;quot;).not(&amp;quot;:has(ul)&amp;quot;).css(&amp;quot;border&amp;quot;, &amp;quot;1px solid black&amp;quot;); &lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
   // Find elements with a name attribute&lt;br /&gt;
    $(document).ready(function() {&lt;br /&gt;
      $(&amp;quot;a[name]&amp;quot;).css(&amp;quot;background&amp;quot;, &amp;quot;#eee&amp;quot; );&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
   // Grab the parent&lt;br /&gt;
   $(&amp;quot;a&amp;quot;).hover(function(){&lt;br /&gt;
     $(this).parents(&amp;quot;p&amp;quot;).addClass(&amp;quot;highlight&amp;quot;);&lt;br /&gt;
   },function(){&lt;br /&gt;
     $(this).parents(&amp;quot;p&amp;quot;).removeClass(&amp;quot;highlight&amp;quot;);&lt;br /&gt;
   });&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testen ob jQuery geladen ist ===&lt;br /&gt;
Testen ob geladen, wenn nicht von google holen, wenn nicht verfügbar lokale Version nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
jQuerySrc = &amp;#039;fileadmin/js/jquery-min.js&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// only load jQuery if not present&lt;br /&gt;
if (typeof jQuery == &amp;#039;undefined&amp;#039;)  {&lt;br /&gt;
    document.write(&amp;quot;&amp;lt;script type=\&amp;quot;text/javascript\&amp;quot; src=\&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\&amp;quot;&amp;gt;&amp;lt;/&amp;quot;+&amp;quot;script&amp;gt;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// if Google is down&lt;br /&gt;
if (typeof jQuery == &amp;#039;undefined&amp;#039;) {&lt;br /&gt;
    document.write(&amp;quot;&amp;lt;script type=\&amp;quot;text/javascript\&amp;quot; src=\&amp;quot;&amp;quot; + jQuerySrc + &amp;quot;\&amp;quot;&amp;gt;&amp;lt;/&amp;quot;+&amp;quot;script&amp;gt;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting - Probleme Lösen ==&lt;br /&gt;
[[jQuery - Probleme lösen (Troubleshooting)]]&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Social_Media_-_Tipps_und_Tricks&amp;diff=24719</id>
		<title>Social Media - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Social_Media_-_Tipps_und_Tricks&amp;diff=24719"/>
		<updated>2020-08-27T08:30:42Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* OpenGraph */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Todo&lt;br /&gt;
* Bildgrößen&lt;br /&gt;
* Allgemeine Tipps und Tools...&lt;br /&gt;
&lt;br /&gt;
== OpenGraph ==&lt;br /&gt;
Wird beim Teilen in Sozialen Medien ausgewertet und bietet dadurch die Möglichkeit in bestimmtem Maß zu kontrollieren, was beim Teilen einer Webseite angezeigt wird. Ursprünglich von Facebook eingeführt, wird aber auch von anderen ausgewertet. Steht in Konkurrenz zu z.B. Twitter Cards.&lt;br /&gt;
 https://ogp.me/&lt;br /&gt;
Basic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:title“ content=“Seitentitel“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:description“ content=“Kleine Inhaltsbeschreibung“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:url“ content=“https://meineSeite.de/offiziellerLink“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image“ content=“https://meineSeite.de/linkt/zum/bild.jpg“ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bild Precaching (dann wird das Bild noch vor dem ersten Laden angezeigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image:width“ content=“1557″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image:height“ content=“876″ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Mehrere Bilder ===&lt;br /&gt;
Facebook kann mehrere Bilder als Carousel anzeigen. Passt aber das Format an (quadratisch)&lt;br /&gt;
=== Art des Inhalts ===&lt;br /&gt;
 OG:Type&lt;br /&gt;
Mit diesem Tag könnt ihr Facebook mitteilen, um was für einen Inhalt es sich handelt. &lt;br /&gt;
 website, article, book, music, video, place, …&lt;br /&gt;
Wenn ihr diesen OG Tag nicht angebt, werdet ihr automatisch als „Webseite“ markiert, für redaktionelle Beiträge bietet sich z.B. auch article an. &lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man Angaben zur Veröffentlichungszeit, Autor und mehr machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:publisher“ content=„https://www.facebook.com/marketing.de“&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:site_name“ content=“allfacebook.de“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:published_time“ content=“2016-03-10T09:21:19+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:modified_time“ content=“2016-03-10T21:19:04+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:updated_time“ content=“2016-03-10T21:19:04+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Änderung von Titel und Content wird nur eingeschränkt aktualisiert (ca. 50 Änderungen in bestimmtem Zeitraum)&lt;br /&gt;
* Debug Tool: https://developers.facebook.com/tools/debug/?_fb_noscript=1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Social_Media_-_Tipps_und_Tricks&amp;diff=24718</id>
		<title>Social Media - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Social_Media_-_Tipps_und_Tricks&amp;diff=24718"/>
		<updated>2020-08-27T08:29:28Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Todo&lt;br /&gt;
* Bildgrößen&lt;br /&gt;
* Allgemeine Tipps und Tools...&lt;br /&gt;
&lt;br /&gt;
== OpenGraph ==&lt;br /&gt;
Wird beim Teilen in Sozialen Medien ausgewertet. Ursprünglich von Facebook eingeführt, wird aber auch von anderen ausgewertet. Steht in Konkurrenz zu z.B. Twitter Cards.&lt;br /&gt;
 https://ogp.me/&lt;br /&gt;
Basic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:title“ content=“Seitentitel“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:description“ content=“Kleine Inhaltsbeschreibung“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:url“ content=“https://meineSeite.de/offiziellerLink“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image“ content=“https://meineSeite.de/linkt/zum/bild.jpg“ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bild Precaching (dann wird das Bild noch vor dem ersten Laden angezeigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image:width“ content=“1557″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image:height“ content=“876″ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Mehrere Bilder ===&lt;br /&gt;
Facebook kann mehrere Bilder als Carousel anzeigen. Passt aber das Format an (quadratisch)&lt;br /&gt;
=== Art des Inhalts ===&lt;br /&gt;
 OG:Type&lt;br /&gt;
Mit diesem Tag könnt ihr Facebook mitteilen, um was für einen Inhalt es sich handelt. &lt;br /&gt;
 website, article, book, music, video, place, …&lt;br /&gt;
Wenn ihr diesen OG Tag nicht angebt, werdet ihr automatisch als „Webseite“ markiert, für redaktionelle Beiträge bietet sich z.B. auch article an. &lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man Angaben zur Veröffentlichungszeit, Autor und mehr machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:publisher“ content=„https://www.facebook.com/marketing.de“&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:site_name“ content=“allfacebook.de“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:published_time“ content=“2016-03-10T09:21:19+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:modified_time“ content=“2016-03-10T21:19:04+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:updated_time“ content=“2016-03-10T21:19:04+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hinweise ===&lt;br /&gt;
* Änderung von Titel und Content wird nur eingeschränkt aktualisiert (ca. 50 Änderungen in bestimmtem Zeitraum)&lt;br /&gt;
* Debug Tool: https://developers.facebook.com/tools/debug/?_fb_noscript=1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Social_Media_-_Tipps_und_Tricks&amp;diff=24717</id>
		<title>Social Media - Tipps und Tricks</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Social_Media_-_Tipps_und_Tricks&amp;diff=24717"/>
		<updated>2020-08-27T08:26:23Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „Todo * Bildgrößen * Allgemeine Tipps und Tools...  == OpenGraph == Wird beim Teilen in Sozialen Medien ausgewertet.  https://ogp.me/ Basic: &amp;lt;syntaxhighlight…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Todo&lt;br /&gt;
* Bildgrößen&lt;br /&gt;
* Allgemeine Tipps und Tools...&lt;br /&gt;
&lt;br /&gt;
== OpenGraph ==&lt;br /&gt;
Wird beim Teilen in Sozialen Medien ausgewertet.&lt;br /&gt;
 https://ogp.me/&lt;br /&gt;
Basic:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:title“ content=“Seitentitel“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:description“ content=“Kleine Inhaltsbeschreibung“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:url“ content=“https://meineSeite.de/offiziellerLink“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image“ content=“https://meineSeite.de/linkt/zum/bild.jpg“ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Bild Precaching (dann wird das Bild noch vor dem ersten Laden angezeigt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image:width“ content=“1557″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:image:height“ content=“876″ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Mehrere Bilder ===&lt;br /&gt;
Facebook kann mehrere Bilder als Carousel anzeigen. Passt aber das Format an (quadratisch)&lt;br /&gt;
=== Art des Inhalts ===&lt;br /&gt;
 OG:Type&lt;br /&gt;
Mit diesem Tag könnt ihr Facebook mitteilen, um was für einen Inhalt es sich handelt. &lt;br /&gt;
 website, article, book, music, video, place, …&lt;br /&gt;
Wenn ihr diesen OG Tag nicht angebt, werdet ihr automatisch als „Webseite“ markiert, für redaktionelle Beiträge bietet sich z.B. auch article an. &lt;br /&gt;
&lt;br /&gt;
Zusätzlich kann man Angaben zur Veröffentlichungszeit, Autor und mehr machen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:publisher“ content=„https://www.facebook.com/marketing.de“&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:site_name“ content=“allfacebook.de“ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:published_time“ content=“2016-03-10T09:21:19+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“article:modified_time“ content=“2016-03-10T21:19:04+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;meta property=“og:updated_time“ content=“2016-03-10T21:19:04+00:00″ /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24710</id>
		<title>Mac - Wartung und Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24710"/>
		<updated>2020-08-17T05:33:58Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Service an- oder ausschalten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
 https://t3n.de/news/tipps-mac-schnell-605179/&lt;br /&gt;
&lt;br /&gt;
== Performance Killer ==&lt;br /&gt;
=== Spindump ===&lt;br /&gt;
Im Activity Monitor könnt ihr auch das Tool spindump nutzen. Dieses dient eigentlich dem Erstellen und Speichern von Reports im Falle eines Programmabsturzes. Erfahrene Nutzer und Administratoren können dem Tool allerdings auf Kommando einen detaillierten Systemreport entlocken, der ihnen tiefere Einblicke in die Wirren des Mac bietet. Unerfahrene Nutzer werden aus dem Report allerdings kaum Nutzen ziehen.&lt;br /&gt;
&lt;br /&gt;
So praktisch spindump für erfahrene Nutzer sein kann, hat es gleichzeitig das Potenzial, ein großer Bremsklotz für euer System zu werden. Spindump ist bekannt dafür, unbemerkt sowohl die Festplatte als auch den Arbeitsspeicher des Mac mit im Grunde nutzlosen Reports zu füllen. Um diesem Problem Herr zu werden, könnt ihr das Tool einfach deaktivieren. Führt dazu das folgende Kommando im Terminal (sucht in Spotlight einfach nach Terminal) aus:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
Sollten danach Probleme auftreten oder euer System nicht mehr stabil laufen, könnt ihr die Funktion über das folgende Kommando wieder reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
&lt;br /&gt;
=== Anmeldeobjekte ===&lt;br /&gt;
Automatisch beim Anmelden gestartete Prozesse. Sollten nicht zu viele sein.&lt;br /&gt;
 Benutzer und Gruppen &amp;gt; Anmeldeobjekte&lt;br /&gt;
&lt;br /&gt;
=== Schreibtisch ===&lt;br /&gt;
Zu viele Objekte auf dem Schreibtisch sind ebenfalls Performance Koller.&lt;br /&gt;
&lt;br /&gt;
=== User Cache löschen mit pure ===&lt;br /&gt;
&lt;br /&gt;
Den Cache löschen mit &lt;br /&gt;
 purge&lt;br /&gt;
Verwendet das Kommando &lt;br /&gt;
 SUDO purge&lt;br /&gt;
 um „purge“ als Superuser auszuführen.&lt;br /&gt;
Nicht wundern:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein paar Dinge, die ihr zum Löschen des Cache wissen solltet. Wird beispielsweise der System-Cache gelöscht, kann der nächste Neustart eures Rechners länger dauern, als ihr es gewohnt seid. Das liegt daran, dass der System-Cache neu angelegt werden muss und ist somit vollkommen normal.&lt;br /&gt;
&lt;br /&gt;
Nach dem Löschen des User-Cache kann es passieren, dass einzelne Applikationen erstmal langsamer laufen, da sie alle Nutzungsdaten ebenfalls erst neu anlegen müssen. Außerdem werdet ihr feststellen, dass die seit OS X Tiger üblichen Quarantäne-Einstellungen für jede Applikation neu festgelegt werden müssen – diese werden nämlich im User-Cache gespeichert.&lt;br /&gt;
&lt;br /&gt;
Das Leeren des Cache greift, im Vergleich zu den anderen aufgeführten Tipps, etwas tiefer in euer System ein. Wer sich hier unsicher fühlt, sollte diesen Schritt nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
Mac OS speichert Daten im User-Cache, die eigentlich die Arbeitsgeschwindigkeit von Applikationen erhöhen sollen. Einstellungen und Nutzungsdaten, könne so beim nächsten Start der Anwendung schneller aufgerufen werden. Mit der Zeit wird der Cache allerdings immer voller, da er auch Daten von Anwendungen vorhält, die ihr vielleicht gar nicht mehr oder nur sehr selten nutzt. Das mindert die Systemleistung. Durch das Löschen des Cache könnt ihr euerem System einen Geschwindigkeitsschub spendieren und bekommt ganz nebenbei auch noch wertvollen Platz im Speicher zurück.&lt;br /&gt;
&lt;br /&gt;
Um den User-Cache zu leeren, müsst ihr die Ordner „System/Library/Caches“ und „Library/Caches“ löschen. Die schnellste Möglichkeit die Ordner aufzuspüren, ist die Ordnersuche. Drückt dazu Cmd+Shift+G um das Suchfenster aufzurufen. Gebt dort den Pfad ein und ihr bekommt den Ordner angezeigt und könnt ihn in den Papierkorb verschieben. Danach macht ihr das gleiche mit dem anderen Ordner. Anschließend startet ihr euren Rechner neu.&lt;br /&gt;
&lt;br /&gt;
Mac bietet euch zudem die Möglichkeit, den System-Cache zu leeren. Dadurch erzielt ihr keine großen Performance-Gewinne, könnt aber die Auslastung eures Arbeitspeichers anschließend im Activity Monitor genauer analysieren. Ihr könnt den Systemcache leeren, indem ihr das Terminal aufruft und dort das Kommando „purge“ ausführt. Solltet ihr die Meldung „Unable to purge disk buffers: Operation not permitted“ erhalten, nutzt ihr anstelle von „purge“  das Kommando „SUDO purge“ .&lt;br /&gt;
&lt;br /&gt;
=== Notification Center ===&lt;br /&gt;
Bringt meiner Meinung nach wenig man kann aber den Service Abschalten:&lt;br /&gt;
 launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist&lt;br /&gt;
Mit Enter bestätigt, deaktiviert das Kommando das Notification-Center und es verschwindet aus der Symbolleiste. Solltet ihr das Notification-Center später doch wieder benötigen, weil ihr die Update-Nachrichten vermisst, könnt ihr es über folgende Terminal-Anweisung reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 launchctl load -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mac Systeminfos und Services ==&lt;br /&gt;
=== Service an- oder ausschalten ===&lt;br /&gt;
Siehe oben Notification Center als Beispiel.&lt;br /&gt;
=== Liste von Systemprozessen / Services ===&lt;br /&gt;
 https://m.heise.de/mac-and-i/artikel/Die-Systemprozesse-von-macOS-Sierra-3715619.html?seite=all&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24709</id>
		<title>Mac - Wartung und Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24709"/>
		<updated>2020-08-17T05:29:22Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Service An oder ausschalten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
 https://t3n.de/news/tipps-mac-schnell-605179/&lt;br /&gt;
&lt;br /&gt;
== Performance Killer ==&lt;br /&gt;
=== Spindump ===&lt;br /&gt;
Im Activity Monitor könnt ihr auch das Tool spindump nutzen. Dieses dient eigentlich dem Erstellen und Speichern von Reports im Falle eines Programmabsturzes. Erfahrene Nutzer und Administratoren können dem Tool allerdings auf Kommando einen detaillierten Systemreport entlocken, der ihnen tiefere Einblicke in die Wirren des Mac bietet. Unerfahrene Nutzer werden aus dem Report allerdings kaum Nutzen ziehen.&lt;br /&gt;
&lt;br /&gt;
So praktisch spindump für erfahrene Nutzer sein kann, hat es gleichzeitig das Potenzial, ein großer Bremsklotz für euer System zu werden. Spindump ist bekannt dafür, unbemerkt sowohl die Festplatte als auch den Arbeitsspeicher des Mac mit im Grunde nutzlosen Reports zu füllen. Um diesem Problem Herr zu werden, könnt ihr das Tool einfach deaktivieren. Führt dazu das folgende Kommando im Terminal (sucht in Spotlight einfach nach Terminal) aus:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
Sollten danach Probleme auftreten oder euer System nicht mehr stabil laufen, könnt ihr die Funktion über das folgende Kommando wieder reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
&lt;br /&gt;
=== Anmeldeobjekte ===&lt;br /&gt;
Automatisch beim Anmelden gestartete Prozesse. Sollten nicht zu viele sein.&lt;br /&gt;
 Benutzer und Gruppen &amp;gt; Anmeldeobjekte&lt;br /&gt;
&lt;br /&gt;
=== Schreibtisch ===&lt;br /&gt;
Zu viele Objekte auf dem Schreibtisch sind ebenfalls Performance Koller.&lt;br /&gt;
&lt;br /&gt;
=== User Cache löschen mit pure ===&lt;br /&gt;
&lt;br /&gt;
Den Cache löschen mit &lt;br /&gt;
 purge&lt;br /&gt;
Verwendet das Kommando &lt;br /&gt;
 SUDO purge&lt;br /&gt;
 um „purge“ als Superuser auszuführen.&lt;br /&gt;
Nicht wundern:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein paar Dinge, die ihr zum Löschen des Cache wissen solltet. Wird beispielsweise der System-Cache gelöscht, kann der nächste Neustart eures Rechners länger dauern, als ihr es gewohnt seid. Das liegt daran, dass der System-Cache neu angelegt werden muss und ist somit vollkommen normal.&lt;br /&gt;
&lt;br /&gt;
Nach dem Löschen des User-Cache kann es passieren, dass einzelne Applikationen erstmal langsamer laufen, da sie alle Nutzungsdaten ebenfalls erst neu anlegen müssen. Außerdem werdet ihr feststellen, dass die seit OS X Tiger üblichen Quarantäne-Einstellungen für jede Applikation neu festgelegt werden müssen – diese werden nämlich im User-Cache gespeichert.&lt;br /&gt;
&lt;br /&gt;
Das Leeren des Cache greift, im Vergleich zu den anderen aufgeführten Tipps, etwas tiefer in euer System ein. Wer sich hier unsicher fühlt, sollte diesen Schritt nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
Mac OS speichert Daten im User-Cache, die eigentlich die Arbeitsgeschwindigkeit von Applikationen erhöhen sollen. Einstellungen und Nutzungsdaten, könne so beim nächsten Start der Anwendung schneller aufgerufen werden. Mit der Zeit wird der Cache allerdings immer voller, da er auch Daten von Anwendungen vorhält, die ihr vielleicht gar nicht mehr oder nur sehr selten nutzt. Das mindert die Systemleistung. Durch das Löschen des Cache könnt ihr euerem System einen Geschwindigkeitsschub spendieren und bekommt ganz nebenbei auch noch wertvollen Platz im Speicher zurück.&lt;br /&gt;
&lt;br /&gt;
Um den User-Cache zu leeren, müsst ihr die Ordner „System/Library/Caches“ und „Library/Caches“ löschen. Die schnellste Möglichkeit die Ordner aufzuspüren, ist die Ordnersuche. Drückt dazu Cmd+Shift+G um das Suchfenster aufzurufen. Gebt dort den Pfad ein und ihr bekommt den Ordner angezeigt und könnt ihn in den Papierkorb verschieben. Danach macht ihr das gleiche mit dem anderen Ordner. Anschließend startet ihr euren Rechner neu.&lt;br /&gt;
&lt;br /&gt;
Mac bietet euch zudem die Möglichkeit, den System-Cache zu leeren. Dadurch erzielt ihr keine großen Performance-Gewinne, könnt aber die Auslastung eures Arbeitspeichers anschließend im Activity Monitor genauer analysieren. Ihr könnt den Systemcache leeren, indem ihr das Terminal aufruft und dort das Kommando „purge“ ausführt. Solltet ihr die Meldung „Unable to purge disk buffers: Operation not permitted“ erhalten, nutzt ihr anstelle von „purge“  das Kommando „SUDO purge“ .&lt;br /&gt;
&lt;br /&gt;
=== Notification Center ===&lt;br /&gt;
Bringt meiner Meinung nach wenig man kann aber den Service Abschalten:&lt;br /&gt;
 launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist&lt;br /&gt;
Mit Enter bestätigt, deaktiviert das Kommando das Notification-Center und es verschwindet aus der Symbolleiste. Solltet ihr das Notification-Center später doch wieder benötigen, weil ihr die Update-Nachrichten vermisst, könnt ihr es über folgende Terminal-Anweisung reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 launchctl load -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Service an- oder ausschalten ==&lt;br /&gt;
Siehe oben Notification Center als Beispiel.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24708</id>
		<title>Mac - Wartung und Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24708"/>
		<updated>2020-08-17T05:29:00Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
 https://t3n.de/news/tipps-mac-schnell-605179/&lt;br /&gt;
&lt;br /&gt;
== Performance Killer ==&lt;br /&gt;
=== Spindump ===&lt;br /&gt;
Im Activity Monitor könnt ihr auch das Tool spindump nutzen. Dieses dient eigentlich dem Erstellen und Speichern von Reports im Falle eines Programmabsturzes. Erfahrene Nutzer und Administratoren können dem Tool allerdings auf Kommando einen detaillierten Systemreport entlocken, der ihnen tiefere Einblicke in die Wirren des Mac bietet. Unerfahrene Nutzer werden aus dem Report allerdings kaum Nutzen ziehen.&lt;br /&gt;
&lt;br /&gt;
So praktisch spindump für erfahrene Nutzer sein kann, hat es gleichzeitig das Potenzial, ein großer Bremsklotz für euer System zu werden. Spindump ist bekannt dafür, unbemerkt sowohl die Festplatte als auch den Arbeitsspeicher des Mac mit im Grunde nutzlosen Reports zu füllen. Um diesem Problem Herr zu werden, könnt ihr das Tool einfach deaktivieren. Führt dazu das folgende Kommando im Terminal (sucht in Spotlight einfach nach Terminal) aus:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
Sollten danach Probleme auftreten oder euer System nicht mehr stabil laufen, könnt ihr die Funktion über das folgende Kommando wieder reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
&lt;br /&gt;
=== Anmeldeobjekte ===&lt;br /&gt;
Automatisch beim Anmelden gestartete Prozesse. Sollten nicht zu viele sein.&lt;br /&gt;
 Benutzer und Gruppen &amp;gt; Anmeldeobjekte&lt;br /&gt;
&lt;br /&gt;
=== Schreibtisch ===&lt;br /&gt;
Zu viele Objekte auf dem Schreibtisch sind ebenfalls Performance Koller.&lt;br /&gt;
&lt;br /&gt;
=== User Cache löschen mit pure ===&lt;br /&gt;
&lt;br /&gt;
Den Cache löschen mit &lt;br /&gt;
 purge&lt;br /&gt;
Verwendet das Kommando &lt;br /&gt;
 SUDO purge&lt;br /&gt;
 um „purge“ als Superuser auszuführen.&lt;br /&gt;
Nicht wundern:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein paar Dinge, die ihr zum Löschen des Cache wissen solltet. Wird beispielsweise der System-Cache gelöscht, kann der nächste Neustart eures Rechners länger dauern, als ihr es gewohnt seid. Das liegt daran, dass der System-Cache neu angelegt werden muss und ist somit vollkommen normal.&lt;br /&gt;
&lt;br /&gt;
Nach dem Löschen des User-Cache kann es passieren, dass einzelne Applikationen erstmal langsamer laufen, da sie alle Nutzungsdaten ebenfalls erst neu anlegen müssen. Außerdem werdet ihr feststellen, dass die seit OS X Tiger üblichen Quarantäne-Einstellungen für jede Applikation neu festgelegt werden müssen – diese werden nämlich im User-Cache gespeichert.&lt;br /&gt;
&lt;br /&gt;
Das Leeren des Cache greift, im Vergleich zu den anderen aufgeführten Tipps, etwas tiefer in euer System ein. Wer sich hier unsicher fühlt, sollte diesen Schritt nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
Mac OS speichert Daten im User-Cache, die eigentlich die Arbeitsgeschwindigkeit von Applikationen erhöhen sollen. Einstellungen und Nutzungsdaten, könne so beim nächsten Start der Anwendung schneller aufgerufen werden. Mit der Zeit wird der Cache allerdings immer voller, da er auch Daten von Anwendungen vorhält, die ihr vielleicht gar nicht mehr oder nur sehr selten nutzt. Das mindert die Systemleistung. Durch das Löschen des Cache könnt ihr euerem System einen Geschwindigkeitsschub spendieren und bekommt ganz nebenbei auch noch wertvollen Platz im Speicher zurück.&lt;br /&gt;
&lt;br /&gt;
Um den User-Cache zu leeren, müsst ihr die Ordner „System/Library/Caches“ und „Library/Caches“ löschen. Die schnellste Möglichkeit die Ordner aufzuspüren, ist die Ordnersuche. Drückt dazu Cmd+Shift+G um das Suchfenster aufzurufen. Gebt dort den Pfad ein und ihr bekommt den Ordner angezeigt und könnt ihn in den Papierkorb verschieben. Danach macht ihr das gleiche mit dem anderen Ordner. Anschließend startet ihr euren Rechner neu.&lt;br /&gt;
&lt;br /&gt;
Mac bietet euch zudem die Möglichkeit, den System-Cache zu leeren. Dadurch erzielt ihr keine großen Performance-Gewinne, könnt aber die Auslastung eures Arbeitspeichers anschließend im Activity Monitor genauer analysieren. Ihr könnt den Systemcache leeren, indem ihr das Terminal aufruft und dort das Kommando „purge“ ausführt. Solltet ihr die Meldung „Unable to purge disk buffers: Operation not permitted“ erhalten, nutzt ihr anstelle von „purge“  das Kommando „SUDO purge“ .&lt;br /&gt;
&lt;br /&gt;
=== Notification Center ===&lt;br /&gt;
Bringt meiner Meinung nach wenig man kann aber den Service Abschalten:&lt;br /&gt;
 launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist&lt;br /&gt;
Mit Enter bestätigt, deaktiviert das Kommando das Notification-Center und es verschwindet aus der Symbolleiste. Solltet ihr das Notification-Center später doch wieder benötigen, weil ihr die Update-Nachrichten vermisst, könnt ihr es über folgende Terminal-Anweisung reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 launchctl load -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Service An oder ausschalten ==&lt;br /&gt;
Siehe oben Notification Center als Beispiel.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24707</id>
		<title>Mac - Wartung und Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mac_-_Wartung_und_Tools&amp;diff=24707"/>
		<updated>2020-08-17T05:25:03Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „== Links ==  https://t3n.de/news/tipps-mac-schnell-605179/  == Performance Killer == === Spindump === Im Activity Monitor könnt ihr auch das Tool spindump nut…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
 https://t3n.de/news/tipps-mac-schnell-605179/&lt;br /&gt;
&lt;br /&gt;
== Performance Killer ==&lt;br /&gt;
=== Spindump ===&lt;br /&gt;
Im Activity Monitor könnt ihr auch das Tool spindump nutzen. Dieses dient eigentlich dem Erstellen und Speichern von Reports im Falle eines Programmabsturzes. Erfahrene Nutzer und Administratoren können dem Tool allerdings auf Kommando einen detaillierten Systemreport entlocken, der ihnen tiefere Einblicke in die Wirren des Mac bietet. Unerfahrene Nutzer werden aus dem Report allerdings kaum Nutzen ziehen.&lt;br /&gt;
&lt;br /&gt;
So praktisch spindump für erfahrene Nutzer sein kann, hat es gleichzeitig das Potenzial, ein großer Bremsklotz für euer System zu werden. Spindump ist bekannt dafür, unbemerkt sowohl die Festplatte als auch den Arbeitsspeicher des Mac mit im Grunde nutzlosen Reports zu füllen. Um diesem Problem Herr zu werden, könnt ihr das Tool einfach deaktivieren. Führt dazu das folgende Kommando im Terminal (sucht in Spotlight einfach nach Terminal) aus:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
Sollten danach Probleme auftreten oder euer System nicht mehr stabil laufen, könnt ihr die Funktion über das folgende Kommando wieder reaktivieren:&lt;br /&gt;
&lt;br /&gt;
 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.spindump.plist&lt;br /&gt;
&lt;br /&gt;
=== Anmeldeobjekte ===&lt;br /&gt;
Automatisch beim Anmelden gestartete Prozesse. Sollten nicht zu viele sein.&lt;br /&gt;
 Benutzer und Gruppen &amp;gt; Anmeldeobjekte&lt;br /&gt;
&lt;br /&gt;
=== Schreibtisch ===&lt;br /&gt;
Zu viele Objekte auf dem Schreibtisch sind ebenfalls Performance Koller.&lt;br /&gt;
&lt;br /&gt;
=== User Cache löschen mit pure ===&lt;br /&gt;
&lt;br /&gt;
Den Cache löschen mit &lt;br /&gt;
 purge&lt;br /&gt;
Verwendet das Kommando &lt;br /&gt;
 SUDO purge&lt;br /&gt;
 um „purge“ als Superuser auszuführen.&lt;br /&gt;
Nicht wundern:&lt;br /&gt;
&lt;br /&gt;
Es gibt ein paar Dinge, die ihr zum Löschen des Cache wissen solltet. Wird beispielsweise der System-Cache gelöscht, kann der nächste Neustart eures Rechners länger dauern, als ihr es gewohnt seid. Das liegt daran, dass der System-Cache neu angelegt werden muss und ist somit vollkommen normal.&lt;br /&gt;
&lt;br /&gt;
Nach dem Löschen des User-Cache kann es passieren, dass einzelne Applikationen erstmal langsamer laufen, da sie alle Nutzungsdaten ebenfalls erst neu anlegen müssen. Außerdem werdet ihr feststellen, dass die seit OS X Tiger üblichen Quarantäne-Einstellungen für jede Applikation neu festgelegt werden müssen – diese werden nämlich im User-Cache gespeichert.&lt;br /&gt;
&lt;br /&gt;
Das Leeren des Cache greift, im Vergleich zu den anderen aufgeführten Tipps, etwas tiefer in euer System ein. Wer sich hier unsicher fühlt, sollte diesen Schritt nicht durchführen.&lt;br /&gt;
&lt;br /&gt;
Mac OS speichert Daten im User-Cache, die eigentlich die Arbeitsgeschwindigkeit von Applikationen erhöhen sollen. Einstellungen und Nutzungsdaten, könne so beim nächsten Start der Anwendung schneller aufgerufen werden. Mit der Zeit wird der Cache allerdings immer voller, da er auch Daten von Anwendungen vorhält, die ihr vielleicht gar nicht mehr oder nur sehr selten nutzt. Das mindert die Systemleistung. Durch das Löschen des Cache könnt ihr euerem System einen Geschwindigkeitsschub spendieren und bekommt ganz nebenbei auch noch wertvollen Platz im Speicher zurück.&lt;br /&gt;
&lt;br /&gt;
Um den User-Cache zu leeren, müsst ihr die Ordner „System/Library/Caches“ und „Library/Caches“ löschen. Die schnellste Möglichkeit die Ordner aufzuspüren, ist die Ordnersuche. Drückt dazu Cmd+Shift+G um das Suchfenster aufzurufen. Gebt dort den Pfad ein und ihr bekommt den Ordner angezeigt und könnt ihn in den Papierkorb verschieben. Danach macht ihr das gleiche mit dem anderen Ordner. Anschließend startet ihr euren Rechner neu.&lt;br /&gt;
&lt;br /&gt;
Mac bietet euch zudem die Möglichkeit, den System-Cache zu leeren. Dadurch erzielt ihr keine großen Performance-Gewinne, könnt aber die Auslastung eures Arbeitspeichers anschließend im Activity Monitor genauer analysieren. Ihr könnt den Systemcache leeren, indem ihr das Terminal aufruft und dort das Kommando „purge“ ausführt. Solltet ihr die Meldung „Unable to purge disk buffers: Operation not permitted“ erhalten, nutzt ihr anstelle von „purge“  das Kommando „SUDO purge“ .&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Mac&amp;diff=24706</id>
		<title>Mac</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Mac&amp;diff=24706"/>
		<updated>2020-08-17T05:18:09Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Mac Probleme lösen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier finden sich einige nützliche Infos zum Apple Mac&lt;br /&gt;
== Weitere Links ==&lt;br /&gt;
http://www.apfelwiki.de/&lt;br /&gt;
&lt;br /&gt;
[[Terminal und Konsole auf dem Mac]] Einige Hinweise für LINUX Leute die auf dem Mac unterwegs sind&lt;br /&gt;
&lt;br /&gt;
http://www.macports.org/index.php Einfaches Kompilieren und Installieren von Konsolen X11 und Aqua OpenSource Programmen What is MacPorts?&lt;br /&gt;
&lt;br /&gt;
MacPorts provides an infrastructure for building, installing, and packaging open source software. It is designed to match the functionality of the FreeBSD Ports system and to be extensible for future enhancements.&lt;br /&gt;
&lt;br /&gt;
[[MacPorts]]&lt;br /&gt;
&lt;br /&gt;
[[Networksniffer - Netzwerkverkehr kontrollieren mit Wireshark]]&lt;br /&gt;
&lt;br /&gt;
[[Mac als Proxy Server]]&lt;br /&gt;
&lt;br /&gt;
== Mac OS Tipps und Tricks ==&lt;br /&gt;
[[Mac - Tipps und Tricks]]&lt;br /&gt;
&lt;br /&gt;
== Mac, Apache, PHP, MySQL (MAMPP) ==&lt;br /&gt;
Hinweis: auch XAMPP gibts jetzt für Mac. Ist eigentlich einfacher: In den Applications Ordner packen fertig. &lt;br /&gt;
&lt;br /&gt;
Weiterführender schon etwas älterer aber ordentlicher Artikel: http://oreilly.com/pub/ct/49&lt;br /&gt;
&lt;br /&gt;
Artikel über die Aktivierung von mySQL, PHP, fehlende PHP Module etc.: http://www.viames.it/mac-os-x.html&lt;br /&gt;
&lt;br /&gt;
=== Lösung 1 : MAMPP-Paket installieren ===&lt;br /&gt;
Oder alternativ die Sachen einzeln draufspielen...&lt;br /&gt;
&lt;br /&gt;
Standardmäßig erreichbar unter &lt;br /&gt;
&lt;br /&gt;
http://localhost:8888/&lt;br /&gt;
&lt;br /&gt;
=== Apache ===&lt;br /&gt;
Ist beim Mac schon dabei und kann unter Systemeinstellungen &amp;gt; Sharing &amp;gt; Personal Web Sharing aktiviert werden&lt;br /&gt;
Die Seiten sind dann unter&lt;br /&gt;
localhost (Root Benutzer)&lt;br /&gt;
oder&lt;br /&gt;
localhost/~benutzername&lt;br /&gt;
erreichbar außerdem kann man auch benutzer.local eingeben dann wird ein Apple-Interner Dienst benutzt um die Adressen umzuwandeln.&lt;br /&gt;
&lt;br /&gt;
Ansonsten gelten weitgehend die gleichen Regeln für die Konfiguration wie unter Linux.&lt;br /&gt;
&lt;br /&gt;
=== Wichtige Daten für den Mac als Webserver ===&lt;br /&gt;
Stand April 2009&lt;br /&gt;
Apache Config:  /etc/apache2/httpd.conf&lt;br /&gt;
PHP als Modul aktivieren (muß installiert und kompiliert sein): &lt;br /&gt;
in Apache Config:&lt;br /&gt;
 LoadModule php5_module libexec/apache2/libphp5.so&lt;br /&gt;
Der Ordner für php Extension ist hier angegeben:&lt;br /&gt;
 /etc/php.ini&lt;br /&gt;
z.B.:&lt;br /&gt;
 ; Directory in which the loadable extensions (modules) reside.&lt;br /&gt;
 extension_dir = &amp;quot;/usr/lib/php/extensions/no-debug-non-zts-20060613&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== PHP ===&lt;br /&gt;
Hinweis: Bei Apache2 hat sich einiges geändert.&lt;br /&gt;
Konfiguration des Apache ist in&lt;br /&gt;
 etc/apache2&lt;br /&gt;
Ist auch schon dabei muß aber noch aktiviert werden und bei der Gelegenheit auch gleich die Ausführung von CGI Skripten:&lt;br /&gt;
Zuerst mal ins Terminal wechseln (suche einfach mit Spotlite nach terminal)&lt;br /&gt;
Dann Sysadmin werden:&lt;br /&gt;
&lt;br /&gt;
 sudo -s&lt;br /&gt;
&lt;br /&gt;
mit&lt;br /&gt;
&lt;br /&gt;
 cd /etc/httpd&lt;br /&gt;
&lt;br /&gt;
wechselt man ins Apache Konfigurationsverzeichnis. Jetzt legen wir eine sicherheitskopie der Konfigdatei an:&lt;br /&gt;
&lt;br /&gt;
 sudo cp httpd.conf httpd.BAK  &lt;br /&gt;
&lt;br /&gt;
Nun verwenden wir den Editor vi um die entsprechenden Zeilen in der httpd.conf auszukommentieren. Mittels &amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039; wird in &amp;#039;&amp;#039;&amp;#039;vi&amp;#039;&amp;#039;&amp;#039; ein Zeichen gelöscht, mittels &amp;#039;&amp;#039;&amp;#039;:wp&amp;#039;&amp;#039;&amp;#039; werden die Änderungen geschrieben und vi beendet. In unserem Falle wird jeweils das # vor der entsprechenden Zeile entfernt.&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/httpd/httpd.conf&lt;br /&gt;
&lt;br /&gt;
Ein alternativer Editor unter Mac/Linux ist Pico. In Pico speichert man mit CTRL+o (write out) und kann Suchen mit CTRL+w (where is)&lt;br /&gt;
&lt;br /&gt;
 sudo pico httpd.conf&lt;br /&gt;
&lt;br /&gt;
Für die Bedienung von Vim und Pico, gibt es eine Hilfefunktion mit F1 &lt;br /&gt;
&lt;br /&gt;
Nun nach unten Scrollen, die folgenden Variablen suchen und das # löschen.&lt;br /&gt;
&lt;br /&gt;
 #AddHandler cgi-script .cgi&lt;br /&gt;
 #LoadModule php4_module&lt;br /&gt;
 #AddModule mod_php4.c&lt;br /&gt;
&lt;br /&gt;
Nun speichern und Apache neu starten:&lt;br /&gt;
&lt;br /&gt;
 :wq (mit vim)&lt;br /&gt;
 ctrl+o (pico)&lt;br /&gt;
 sudo apachectl graceful&lt;br /&gt;
&lt;br /&gt;
Zum Testen ob php funktioniert schreiben wir ein kleines php-Programm, daß uns die aktuelle php-konfiguration ausgibt und speichern es unter&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;info.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  &amp;lt;?php&lt;br /&gt;
    phpinfo();&lt;br /&gt;
  ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Browser geben wir ein:&lt;br /&gt;
 http://localhost/~benutzername/phpinfo.php&lt;br /&gt;
&lt;br /&gt;
Und wenn alles klappt sehen wir eine Lange Liste mit allen möglichen php und Servereinstellungen.&lt;br /&gt;
&lt;br /&gt;
===MySQL installieren===&lt;br /&gt;
==== Neues Tutorial ====&lt;br /&gt;
MySQL DBMS isn’t installed by default on Mac OS X Leopard. If you need it, it’s quietly easy to install on Leopard: download MySQL 5.1 for Mac OS X 10.5 (x86_64), launch its setup wizard and edit php.ini to connect through the right mysql socket:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 [MySQL]&lt;br /&gt;
 ; Default socket name for local MySQL connects.  If empty, uses the built-in&lt;br /&gt;
 ; MySQL defaults.&lt;br /&gt;
 mysql.default_socket = /tmp/mysql.sock&lt;br /&gt;
 &lt;br /&gt;
 [MySQLi]&lt;br /&gt;
 ; Default socket name for local MySQL connects.  If empty, uses the built-in&lt;br /&gt;
 ; MySQL defaults.&lt;br /&gt;
 mysqli.default_socket = /tmp/mysql.sock&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
A web-server restart is required in order to apply any httpd.conf or php.ini changes. All extension files need to be executable by apache&amp;#039;s user.&lt;br /&gt;
&lt;br /&gt;
==== Alte Version ====&lt;br /&gt;
Herunterladen der Datenbank 4 oder neuer unter&lt;br /&gt;
http://dev.mysql.com/downloads/mysql/4.1.html &lt;br /&gt;
Doppelklick mounted das disk image. Dann Doppelklick auf das Package File und Die Datenbank wird installiert. Wenn eine alte Version läuft dann vorher abschalten (das ReadMe File gibt Tipps)&lt;br /&gt;
&lt;br /&gt;
Die Datenbank wird hier installiert:&lt;br /&gt;
 /usr/local/mysql-VERSION&lt;br /&gt;
&lt;br /&gt;
Als nächstes speichern wir den Pfad zu MySQL in den Umgebungsvariablen der Shell, auf diese Weise muß man nicht jedesmal den Pfad eingeben oder in das Verzeichnis wechseln.&lt;br /&gt;
Das Terminalfenster muss nach Eingabe des Codes neu gestartet werden, damit die Änderung aktiv wird.&lt;br /&gt;
  &amp;#039;setenv PATH /usr/local/mysql/bin:$PATH&amp;#039; &amp;gt;&amp;gt; ~/.tcshrc&lt;br /&gt;
Für tcsh (Mac OS X 10.2)&lt;br /&gt;
&lt;br /&gt;
  echo &amp;#039;export PATH=/usr/local/mysql/bin:$PATH&amp;#039; &amp;gt;&amp;gt; ~/.bash_profile  &lt;br /&gt;
Für bash (Mac OS X 10.3, 10.4)&lt;br /&gt;
&lt;br /&gt;
Jetzt wechseln wir in das MySQL Verzeichnis und ändern die Rechte für das Verzeichnis data (dort sind die Datenbanken gespeichert)&lt;br /&gt;
 cd /usr/local/mysql&lt;br /&gt;
 sudo chown -R mysql data/&lt;br /&gt;
&lt;br /&gt;
Nun testen wir ob die Datenbank erreichbar ist&lt;br /&gt;
 sudo echo&lt;br /&gt;
 sudo ./bin/mysqld_safe &amp;amp;&lt;br /&gt;
 /usr/local/mysql/bin/mysql test&lt;br /&gt;
&lt;br /&gt;
Nicht vergessen das Root Passwort zu setzen:&lt;br /&gt;
/usr/local/mysql/bin/mysqladmin -u root password new_password_here&lt;br /&gt;
&lt;br /&gt;
==== Tabellen und Datenbanken ====&lt;br /&gt;
Jetzt wird es Zeit eine neue Datenbank anzulegen. Dazu loggen wir uns in den mySQL Server ein legen eine neue Datenbank an und erlauben vollen Zugriff für Herrn benutzername. benutzername wir durch den eigenen MacOsX Benutzernamen ersetzt.&lt;br /&gt;
 mysql -u root -p&lt;br /&gt;
 create database mein_DB_Name;&lt;br /&gt;
 grant all on mein_DB_Name.* to benutzername@localhost identified by &amp;quot;passwort&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Hinweis: in der ersten Zeile haben wir uns den langen Pfad erspart weil wir ja in der bash einen neue Pfad-Variable gesetzt haben.&lt;br /&gt;
&lt;br /&gt;
=== ImageMagick ===&lt;br /&gt;
Ist in den Macport Tools enthalten. Macports installieren falls nicht vorhanden (siehe Macports), danach sind die Tools in /opt/local/bin/ enthalten. Dies ist auch der Pfad der in der TYPO3 Installation angegeben werden muß.&lt;br /&gt;
&lt;br /&gt;
==== Vorkompilierte Datei (bei Benutzung von Macports nicht notwendig)====&lt;br /&gt;
http://www2.entropy.ch/download/imagemagick-6.1.7.pkg.tar.gz&lt;br /&gt;
1) Mit boomArchivHelper aus dem System auspacken (Rechte Maustaste &amp;quot;Öffnen mit&amp;quot; / nicht stuffit-expander, da sonst eine Fehlermeldung, daß das Archiv kaputt ist)&lt;br /&gt;
2) Mit dem Installer installieren&lt;br /&gt;
3) typo3 localconf.php updaten&lt;br /&gt;
&lt;br /&gt;
== Software Grundausstattung ==&lt;br /&gt;
=== Developer Tools ===&lt;br /&gt;
[[Homebrew Paketmanager für Mac OS X]] oder [[MacPorts]]&lt;br /&gt;
&lt;br /&gt;
=== Freeware ===&lt;br /&gt;
Tools&lt;br /&gt;
* Filezilla (FTP)&lt;br /&gt;
&lt;br /&gt;
Editor:&lt;br /&gt;
* NetBeans IDE von Sun (wenns etwas größer Sein darf)&lt;br /&gt;
* Alternativ Eclipse (Geschmacksache)&lt;br /&gt;
* Textwrangler (Freeware kann nicht besonders viel)&lt;br /&gt;
&lt;br /&gt;
Thumbnail Viewer:&lt;br /&gt;
&lt;br /&gt;
Office&lt;br /&gt;
&lt;br /&gt;
* OpenOffice &amp;gt; Version 3.1&lt;br /&gt;
* Freemind OpenSource Mindmapper (einfach und effektiv)&lt;br /&gt;
* Baralga (OpenSource Tool zur Zeiterfassung in Java geschrieben)&lt;br /&gt;
&lt;br /&gt;
Projektverwaltung&lt;br /&gt;
&lt;br /&gt;
=== Kostenpflichtig ===&lt;br /&gt;
TextMate Editor&lt;br /&gt;
&lt;br /&gt;
== Windows auf dem Mac ==&lt;br /&gt;
Auf den Intel Macs ist es möglich Windows zu installieren.&lt;br /&gt;
&lt;br /&gt;
1. Lösung BootCamp von Apple&lt;br /&gt;
&lt;br /&gt;
Vorteil - pure Windowsinstallation mit allen Features, kostenlos&lt;br /&gt;
&lt;br /&gt;
Nachteil - Der Rechner muß zum Wechsel runtergefahren werden&lt;br /&gt;
&lt;br /&gt;
2. Lösung Parallels&lt;br /&gt;
&lt;br /&gt;
Vorteil - Wird im Fenster Parallel zu MacOS ausgeführt, auch andere OS verfügbar&lt;br /&gt;
&lt;br /&gt;
Nachteil - im Moment kein DirectX, kostenpflichtig (ca. 80 Euro)&lt;br /&gt;
&lt;br /&gt;
[[Tutorial: Windows auf dem Mac]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen und Spezialtasten auf dem Mac ==&lt;br /&gt;
Tilde ~  :  ALT + n&lt;br /&gt;
&lt;br /&gt;
Pipe | : ALT + 7&lt;br /&gt;
&lt;br /&gt;
Backslash \ : ALT + SHIFT + 7&lt;br /&gt;
&lt;br /&gt;
Funktionstasten sind oft mit Systemfuktionen (Dashboard etc. vorbelegt) ESC + Zahl gehts aber (nacheinander drücken). Andere Möglichkeite ist Apfel + Funktionstaste (hier gleichzeitig) damit wird der Tastendruck an die Anwendung durchgereicht.&lt;br /&gt;
&lt;br /&gt;
Laptops, Powerbooks, etc. haben oft keine Entf Taste. Mit fn+ Backspace geht&amp;#039;s&lt;br /&gt;
&lt;br /&gt;
Apfel + Backspace löscht Dateien direkt&lt;br /&gt;
&lt;br /&gt;
== JAVA ==&lt;br /&gt;
Ist auf dem Mac schon installiert. Schwierig wird es wenn die Version zu alt ist. Dann ist man nämlich auf Apples Update Politik angewiesen und wenn das iPhone gerade wichtiger ist... kann es dauern.&lt;br /&gt;
&lt;br /&gt;
=== JAVA Einstellungen ===&lt;br /&gt;
In den Dienstprogrammen kann man z.B. die Default Version einstellen. Getrennt für Web Applets und Java Anwendungen (Programme/Dienstprogramme/Java). Wenn beim Starten von Java Applications ein Fehler auftritt hilft es manchmal hier die Default Java Version zu verändern. Einfach in der Liste die gewünschte Version nach oben ziehen.&lt;br /&gt;
&lt;br /&gt;
== Mac Ärgernisse ==&lt;br /&gt;
Trotz aller schönen Dinge bietet der Mac doch einige Ärgernisse. Interessanterweise zeigt der geneigte, sonst so kritische Mac User sich diesen gegenüber erstaunlich resistent. Zumindest wenn man den Forenbeiträgen glauben schenkt. Der Gerechtigkeit wegen hier einige der kleinen Haken im Mac-Leben.&lt;br /&gt;
&lt;br /&gt;
Fehlermeldung: Auf das drahtlose &amp;#039;&amp;#039;&amp;#039;netzwerk&amp;#039;&amp;#039;&amp;#039; wurde möglicherweise unerlaubt zugegriffen... daraufhin wird das Netzwerk für kurze Zeit zurückgesetzt.&lt;br /&gt;
&lt;br /&gt;
Der Fehler tritt scheinbar auf wenn andere Rechner im Drahtlosen Netzwerk aktiv sind. Abhilfe bringt wenn das Netzwerk auf WPA2 AES upgedatet wird.&lt;br /&gt;
&lt;br /&gt;
Fehlermeldung: Sinngemäß: Nix geht mehr schalten Sie den Rechner aus...&lt;br /&gt;
Kommt zum Beispiel bei vielen offenen Flash-Filmen im Browser vor.&lt;br /&gt;
&lt;br /&gt;
Fenster auf allen Seiten vergrößern&lt;br /&gt;
&lt;br /&gt;
Schriften werden auf einmal in verschiedenen Programmen nicht mehr richtig dargestellt.&lt;br /&gt;
Lösung: Font Cache löschen: http://adminday.de/tutorials-und-tipps/fontcache-unter-mac-os-x-10-6-loschen/&lt;br /&gt;
&lt;br /&gt;
Time Machine geht nicht über Netzlaufwerke (zumindest nicht ohne weiteres&lt;br /&gt;
&lt;br /&gt;
=== Video und Audio-Dateien auf dem Mac ===&lt;br /&gt;
Oft gibt es das Problem, daß man Audio und Video Dateien auf dem Mac nicht abspielen kann. Es gibt einige Tools die Helfen können.&lt;br /&gt;
&lt;br /&gt;
Zum Thema Video gibt es hier einige Infos: [[Video]]&lt;br /&gt;
&lt;br /&gt;
== Benutzerordner auf andere Festplatte verschieben ==&lt;br /&gt;
Wenn man als Startvolume z.B. eine SSD hat, kann es sein, daß man die Benutzerordner lieber auf eine andere HDD nutzen möchte um die SSD nicht vollzumüllen.&lt;br /&gt;
&lt;br /&gt;
So geht es:&lt;br /&gt;
* Benutzerordner an neuer Stelle anlegen (z.b. Benutzer)&lt;br /&gt;
* 2. Finderfenster &amp;gt; Gehe zu &amp;gt; /&lt;br /&gt;
* Benutzerordner kopieren&lt;br /&gt;
* Um den Ordner zu ändern braucht es einen zweiten Benutzer, da der eigene Benutzerordner ja in Gebrauch ist. Also 2. Admin und in diesen wechseln.&lt;br /&gt;
* Mit dem zweiten Benutzer die alten Daten löschen (oder erstmal auf Backupfestplatte)&lt;br /&gt;
* Unter Benutzer bei dem betreffenden Benutzer Rechtsklick und Erweitert kann man den neuen Ordner wählen. Die Rechte werden automatisch angepasst.&lt;br /&gt;
&lt;br /&gt;
== Time Machine über Netzlaufwerke nutzen ==&lt;br /&gt;
Hinweis - scheint inzwischen (2016) einfacher zu funktionieren. &lt;br /&gt;
&lt;br /&gt;
=== Lösung 1 ===&lt;br /&gt;
&lt;br /&gt;
Link: http://www.ratschlag24.com/index.php/mac-os-x-time-machine-auch-mit-netzlaufwerken-nas-laufwerken-und-wlan-festp/&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rechnername des Mac-Rechners rausfinden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Terminal&lt;br /&gt;
 scutil --get ComputerName&lt;br /&gt;
 &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MAC Adresse der Netzwerkkarte rausfinden&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 ifconfig en0 | grep ether &lt;br /&gt;
(Pipe Zeichen mit ALT+7)&lt;br /&gt;
&lt;br /&gt;
Die MAC-Adresse besteht aus zwölf Zahlen-/Buchstaben-Paaren. Merken Sie sich auch diese Adresse.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sparsbundle Diskimage mit ausreichender Größe erzeugen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
3. Timemachine speichert seine Daten in einem sog. Sparsebundle. Im nächsten Schritt müssen Sie ein Disk-Image nach einem ganz bestimmten Namensmuster anlegen. Hierzu geben Sie in das Terminalfenster einen Befehl nach folgendem Muster ein:&lt;br /&gt;
&lt;br /&gt;
 hdiutil create -size 100g -fs HFS+J -volname TM-Backup &amp;quot;&amp;lt;Computename&amp;gt;_&amp;lt;MAC-Adresse&amp;gt;.sparsebundle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Computername&amp;gt; s.o. &amp;lt;MAC Adresse&amp;gt; s.o. ohne Doppelpunkte eingeben&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&lt;br /&gt;
 hdiutil create -size 100g -fs HFS+J -volname TM-Backup &amp;quot;Mirko Müllers MacBook_001ff3d0b9c8.sparsebundle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Damit wird eine Backupdatei mit einer Maximalgröße von 100 GB angelegt. Sie finden die so erzeugte Datei in Ihrem Dokument-Verzeichnis.&lt;br /&gt;
&lt;br /&gt;
Schalter “100g” entsprechend anpassen, etwa “200g” für eine maximal 200 GigaByte große Time-Machine-Datei. Die Datei wird nicht sofort 100 GB, sondern nur knapp 80 MB groß. Erst durch die Sicherheitskopien wächst die Datei später auf die Maximalgröße.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Datei auf die Netzwerkfestplatte kopieren&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Danach die Lokale Datei löschen.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Konfigurationsänderung&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Mit einer Konfigurationsänderung akzeptiert Time Machine auch Netzwerkordner als Backupmedien.&lt;br /&gt;
&lt;br /&gt;
 defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1&lt;br /&gt;
&lt;br /&gt;
Das war’s. Wenn Sie jetzt die Systemeinstellung “Time Machine” öffnen, können Sie über die Schaltfläche “Volume wechseln” auch das Netzlaufwerk auswählen. Ganz wichtig: Wählen Sie den Netzwerkordner, in den Sie in Schritt 4 die “sparsebundle&amp;quot;-Datei kopiert haben.&lt;br /&gt;
&lt;br /&gt;
[Update]: Einige Leser berichten von Problemen bei der Anmeldung in der TimeMachine. Mitunter tritt zum Beispiel der FEhler “OSStatus-Fehler -6602” auf. Die Lösung: Richten Sie auf dem Netzlaufwerk einen neuen Ordner “backup” ein, und legen Sie dort die sparsebundle-Datei ab. Dann klappt’s auch ohne Fehlermeldung. &lt;br /&gt;
&lt;br /&gt;
Quelle s.o. Verfasst 2008 Zugriff 06/2011&lt;br /&gt;
&lt;br /&gt;
Problem unter 10.6 hdiutils der Vorgang wird nicht unterstützt&lt;br /&gt;
&lt;br /&gt;
=== Time Maschine Backups auf NAS übers Netzwerk wiederherstellen ===&lt;br /&gt;
&lt;br /&gt;
Genauso wichtig wie das Erstellen von Backups ist natürlich das Wiederherstellen der Sicherungen. Da NAS-Server nicht offiziell unterstütze Laufwerke sind, muss man sich hier auch einiger „Handgriffe“ bedienen. Dazu geht man wie folgt vor:&lt;br /&gt;
&lt;br /&gt;
* Den Mac mit einer Leopard-Installations-DVD und angeschlossenem Netzwerkkabel booten.&lt;br /&gt;
* Nach dem Booten unter Dienstprogramme das Terminal starten.&lt;br /&gt;
* Über einen &amp;quot;PING&amp;quot; testen, ob das NAS über Netzwerk erreichbar ist. Dazu den Befehl ping 192.168.1.10 ins Terminal eingeben, wobei die IP abhängig vom Netzwerk zu wählen ist.&lt;br /&gt;
* Einen Mount-Point für das NAS erstellen, indem man ein Verzeichnis mit nachfolgenden Befehl im Terminal erzeugt: &lt;br /&gt;
&lt;br /&gt;
 mkdir /Volumes/backup&lt;br /&gt;
&lt;br /&gt;
* Jetzt muss das Verzeichnis in dem das Time Maschine Backup liegt als Volume gemountet werden. Dazu gibt man im Terminal ein: &lt;br /&gt;
 mount_afp afp://$USERNAME:$PASSWORT@$NAS_IP_ADDRESSE/$VERZEICHNIS /Volumes/backup&lt;br /&gt;
Als $NAS_IP_ADDRESSE steht bei mir die 192.168.1.10 und bei $VERZEICHNIS das von mir erstelle Verzeichnis andreas&lt;br /&gt;
Mit dem Befehl &lt;br /&gt;
 ls /Volumes/backup &lt;br /&gt;
kann überprüft werden, ob sich das Sparseimage im Verzeichnis befindet&lt;br /&gt;
Jetzt kann im Menü Dienstprogramme &amp;gt; Systemwiederherstellung auf das Time Maschine Backup auf dem NAS zugegriffen werden.&lt;br /&gt;
&lt;br /&gt;
== Mac Terminal Tipps ==&lt;br /&gt;
[[Mac Terminal Tipps]]&lt;br /&gt;
&lt;br /&gt;
== Mac Probleme lösen ==&lt;br /&gt;
[[Mac - Probleme beheben]]&lt;br /&gt;
&lt;br /&gt;
== Mac - Wartung und Tools ==&lt;br /&gt;
[[Mac - Wartung und Tools]]&lt;br /&gt;
&lt;br /&gt;
== Mac - Innereien ==&lt;br /&gt;
=== Mac - Zugriffsrechte ===&lt;br /&gt;
In Mac OS werden diese fünf Benutzergruppen unterschieden:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;staff&amp;#039;&amp;#039;&amp;#039;: Dieser Gruppe gehören alle lokalen Benutzer des Mac OS an. Auf älteren Mac OS-Systemen wird diese Gruppe als users angezeigt&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;everyone&amp;#039;&amp;#039;&amp;#039;: Dieser Gruppe gehören alle an, die einen Account auf dem Mac haben.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;wheel&amp;#039;&amp;#039;&amp;#039;: Diese Gruppe ist eine private Gruppe des Benutzers root (root: aus dem Englischen Wurzel, bezeichnet den Superuser, der alles machen kann und darf).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;admin&amp;#039;&amp;#039;&amp;#039;: Dieser Gruppe gehören alle Benutzer an, die Administratorrechte haben.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;nobody&amp;#039;&amp;#039;&amp;#039;: Dieser Gruppe gehören alle restlichen Benutzer an, die kein eigenes Benutzerkonto auf dem Mac haben. Damit ist nobody gewissermaßen die Differenz der Gruppen staff und everyone.&lt;br /&gt;
=== Mac - Zugriffsrechte reparieren ===&lt;br /&gt;
Auf Sierra hat sich einiges geändert. Eigentlich soll sich das System selbst reparieren. Das klappt aber nicht immer. Anleitung von Apple:&lt;br /&gt;
https://support.apple.com/de-de/HT203538&lt;br /&gt;
&lt;br /&gt;
https://www.ionas.com/wissen/zugriffsrechte-auf-dem-mac-aendern-oder-reparieren/ (2016-12)&lt;br /&gt;
In Mac OS lassen sich Zugriffsrechte auf 4 verschiedene Arten ändern:&lt;br /&gt;
&lt;br /&gt;
*Über das Fenster Informationen (cmd+i).&lt;br /&gt;
*Über das Terminal (chmod und chown wie bei UNIX/LINUX üblich).&lt;br /&gt;
*Über das Festplattendienstprogramm (Erste Hilfe).&lt;br /&gt;
*Recovery Modus über Passwörter zurücksetzen.&lt;br /&gt;
==== Rechte über Recoverymodus zurücksetzen ====&lt;br /&gt;
* Starten Sie Ihren Mac mit „CMD + R“ in den Recovery Mode. &lt;br /&gt;
* Nachdem der Mac im Recovery Mode gestartet ist, wählen Sie als erstes Ihre Sprache aus und klicken Sie auf den kleinen Pfeil. Klicken Sie anschließend in der Menüleiste ‚Dienstprogramme‘ an und wählen Sie ‚Terminal‘. &lt;br /&gt;
* Nachdem das Terminal-Fenster geöffnet ist geben Sie ein:&lt;br /&gt;
 resetpassword&lt;br /&gt;
* Danach öffnet sich das Fenster für ‚Passwörter zurücksetzen‘. Wählen Sie nun Ihre Festplatte und den Benutzeraccount aus. Im unteren Bereich wird die Option für ‚Zugriffsrechte und Zugriffsteuerungslisten für den Benutzerordner zurücksetzen‘ aktiv. Mit einem Klick auf ‚Zurücksetzen‘ werden eventuelle Probleme mit den Zugriffsrechten in Ihrem Benutzerordner zurückgesetzt.&lt;br /&gt;
&lt;br /&gt;
===Mac - System Management Controller (SMC)===&lt;br /&gt;
Muß man sehr selten zurücksetzen. Manchmal gibt es seltsame Probleme z.B. mit Hardware (Tastatur etc.) dann kann das zurücksetzen des SMC manchmal helfen.&lt;br /&gt;
&lt;br /&gt;
[[Mac - System Management Controller (SMC)]]&lt;br /&gt;
===PR-RAM / NVRAM===&lt;br /&gt;
[[Mac - PR-RAM / NVRAM]]&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Scroll-Snap&amp;diff=24696</id>
		<title>Scroll-Snap</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Scroll-Snap&amp;diff=24696"/>
		<updated>2020-07-21T11:10:52Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Scroll-Snap im Container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scroll_Snap/Basic_concepts&lt;br /&gt;
 https://css-tricks.com/practical-css-scroll-snapping/&lt;br /&gt;
 https://stackoverflow.com/questions/53981699/pure-css-scroll-snap-only-works-with-the-body-as-the-container &lt;br /&gt;
&lt;br /&gt;
== Scroll Snap Basics ==&lt;br /&gt;
Die wichtigsten Eigenschaften sind&lt;br /&gt;
 scroll-snap-type (Containerelement)&lt;br /&gt;
 scroll-snap-align (Kindelement)&lt;br /&gt;
Die Eigenschaft scoll-snap-type wird auf das Elternelement angewendet und scroll-snap-align auf das Kindelement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Keyword values */&lt;br /&gt;
scroll-snap-type: none;&lt;br /&gt;
scroll-snap-type: x;&lt;br /&gt;
scroll-snap-type: y;&lt;br /&gt;
scroll-snap-type: block;&lt;br /&gt;
scroll-snap-type: inline;&lt;br /&gt;
scroll-snap-type: both;&lt;br /&gt;
&lt;br /&gt;
/* Optional mandatory | proximity*/&lt;br /&gt;
scroll-snap-type: x mandatory;&lt;br /&gt;
scroll-snap-type: y proximity;&lt;br /&gt;
scroll-snap-type: both mandatory;&lt;br /&gt;
&lt;br /&gt;
/* etc */&lt;br /&gt;
&lt;br /&gt;
/* Global values */&lt;br /&gt;
scroll-snap-type: inherit;&lt;br /&gt;
scroll-snap-type: initial;&lt;br /&gt;
scroll-snap-type: unset;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;article class=&amp;quot;scroller&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section one&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section two&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section three&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/article&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;SCROLL ME&amp;lt;/h2&amp;gt;&amp;lt;p&amp;gt;horizontal&amp;lt;/p&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;SNAPPED&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;GO ON&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;THIS IS THE END&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
* {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
body,html{&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  min-height: 100%;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  color: white;&lt;br /&gt;
  font-family: sans-serif;&lt;br /&gt;
}&lt;br /&gt;
html {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  scroll-snap-type: x mandatory;  &lt;br /&gt;
}&lt;br /&gt;
body{&lt;br /&gt;
  /*&lt;br /&gt;
  NOT working&lt;br /&gt;
  scroll-snap-type: y mandatory;&lt;br /&gt;
  */&lt;br /&gt;
  display:flex;&lt;br /&gt;
}&lt;br /&gt;
h2{&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
section {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  height: 100vh;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  flex-shrink: 0;&lt;br /&gt;
  scroll-snap-align: start; /* Stop at the left */&lt;br /&gt;
  &lt;br /&gt;
  background: #146585;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
section:nth-of-type(even) {&lt;br /&gt;
  background: #2b8664;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== scroll-padding und scroll-margin ==&lt;br /&gt;
scroll-padding&lt;br /&gt;
&lt;br /&gt;
Scroll-Padding setzt man im Container. Damit kann man erreichen, dass ein Element nicht direkt an den Rand schnappt, sondern kurz davor stoppt. Das ist z.B. bei einem fixed Header nützlich, der ansonsten den Inhalt überlappen würde.&lt;br /&gt;
&lt;br /&gt;
scroll-margin&lt;br /&gt;
&lt;br /&gt;
Ähnlicher Effekt wie bei Padding. Da man den scroll-margin im Kindelement setzt, kann man für jedes Element unterschiedliche Werte setzen.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Scroll-Snap im Container ===&lt;br /&gt;
 https://stackoverflow.com/questions/53981699/pure-css-scroll-snap-only-works-with-the-body-as-the-container&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid aspernatur eius est fuga inventore&lt;br /&gt;
           officia possimus quibusdam recusandae sunt. Adipisci blanditiis corporis cupiditate dolorem ducimus&lt;br /&gt;
           excepturi laboriosam officia quae vero.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Accusamus amet dicta dolorum fugiat id itaque iure minus molestiae nesciunt non omnis quibusdam, veniam!&lt;br /&gt;
           Animi, aspernatur consectetur doloremque ducimus illum perferendis quam ut? Aspernatur deserunt doloremque&lt;br /&gt;
           error magnam minima.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;div class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;p&amp;gt;Ab accusantium aut corporis, cumque dolor ducimus ea est, excepturi facere, fuga id labore magni minima nemo&lt;br /&gt;
           odio officia officiis quaerat quibusdam quo sit tempora tenetur unde veritatis! Doloremque, nam.&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
.section {&lt;br /&gt;
    height: calc(100vh - 14em);&lt;br /&gt;
    font-size: 1em;&lt;br /&gt;
    color: white;&lt;br /&gt;
    padding: 7em;&lt;br /&gt;
    margin: 0;&lt;br /&gt;
    scroll-snap-align: start;&lt;br /&gt;
}&lt;br /&gt;
.section:nth-of-type(1) {&lt;br /&gt;
    background-color: hsl(0, 100%, 30%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.section:nth-of-type(2) {&lt;br /&gt;
    background-color: hsl(40, 100%, 30%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.section:nth-of-type(3) {&lt;br /&gt;
    background-color: hsl(50, 100%, 30%);&lt;br /&gt;
}&lt;br /&gt;
.container {&lt;br /&gt;
  scroll-snap-type: y mandatory;&lt;br /&gt;
  overflow-y: scroll;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  height: 100vh;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You&amp;#039;re almost there. By default, the &amp;lt;body&amp;gt; element has a fixed height of 100vh. You just need to add the same to your container class.&lt;br /&gt;
&lt;br /&gt;
That gives the scroll something to snap to. Otherwise, the &amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt; will have a height equal to that of all the child elements combined, which doesn&amp;#039;t give the scroll a fixed window to snap to.&lt;br /&gt;
&lt;br /&gt;
Likewise, if you were doing horizontal scrolling, you&amp;#039;d need to provide your container with a fixed width.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Scroll-Snap&amp;diff=24695</id>
		<title>Scroll-Snap</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Scroll-Snap&amp;diff=24695"/>
		<updated>2020-07-21T11:07:40Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scroll_Snap/Basic_concepts&lt;br /&gt;
 https://css-tricks.com/practical-css-scroll-snapping/&lt;br /&gt;
 https://stackoverflow.com/questions/53981699/pure-css-scroll-snap-only-works-with-the-body-as-the-container &lt;br /&gt;
&lt;br /&gt;
== Scroll Snap Basics ==&lt;br /&gt;
Die wichtigsten Eigenschaften sind&lt;br /&gt;
 scroll-snap-type (Containerelement)&lt;br /&gt;
 scroll-snap-align (Kindelement)&lt;br /&gt;
Die Eigenschaft scoll-snap-type wird auf das Elternelement angewendet und scroll-snap-align auf das Kindelement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Keyword values */&lt;br /&gt;
scroll-snap-type: none;&lt;br /&gt;
scroll-snap-type: x;&lt;br /&gt;
scroll-snap-type: y;&lt;br /&gt;
scroll-snap-type: block;&lt;br /&gt;
scroll-snap-type: inline;&lt;br /&gt;
scroll-snap-type: both;&lt;br /&gt;
&lt;br /&gt;
/* Optional mandatory | proximity*/&lt;br /&gt;
scroll-snap-type: x mandatory;&lt;br /&gt;
scroll-snap-type: y proximity;&lt;br /&gt;
scroll-snap-type: both mandatory;&lt;br /&gt;
&lt;br /&gt;
/* etc */&lt;br /&gt;
&lt;br /&gt;
/* Global values */&lt;br /&gt;
scroll-snap-type: inherit;&lt;br /&gt;
scroll-snap-type: initial;&lt;br /&gt;
scroll-snap-type: unset;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;article class=&amp;quot;scroller&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section one&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section two&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section three&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/article&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;SCROLL ME&amp;lt;/h2&amp;gt;&amp;lt;p&amp;gt;horizontal&amp;lt;/p&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;SNAPPED&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;GO ON&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;THIS IS THE END&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
* {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
body,html{&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  min-height: 100%;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  color: white;&lt;br /&gt;
  font-family: sans-serif;&lt;br /&gt;
}&lt;br /&gt;
html {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  scroll-snap-type: x mandatory;  &lt;br /&gt;
}&lt;br /&gt;
body{&lt;br /&gt;
  /*&lt;br /&gt;
  NOT working&lt;br /&gt;
  scroll-snap-type: y mandatory;&lt;br /&gt;
  */&lt;br /&gt;
  display:flex;&lt;br /&gt;
}&lt;br /&gt;
h2{&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
section {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  height: 100vh;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  flex-shrink: 0;&lt;br /&gt;
  scroll-snap-align: start; /* Stop at the left */&lt;br /&gt;
  &lt;br /&gt;
  background: #146585;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
section:nth-of-type(even) {&lt;br /&gt;
  background: #2b8664;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== scroll-padding und scroll-margin ==&lt;br /&gt;
scroll-padding&lt;br /&gt;
&lt;br /&gt;
Scroll-Padding setzt man im Container. Damit kann man erreichen, dass ein Element nicht direkt an den Rand schnappt, sondern kurz davor stoppt. Das ist z.B. bei einem fixed Header nützlich, der ansonsten den Inhalt überlappen würde.&lt;br /&gt;
&lt;br /&gt;
scroll-margin&lt;br /&gt;
&lt;br /&gt;
Ähnlicher Effekt wie bei Padding. Da man den scroll-margin im Kindelement setzt, kann man für jedes Element unterschiedliche Werte setzen.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Scroll-Snap im Container ===&lt;br /&gt;
 https://stackoverflow.com/questions/53981699/pure-css-scroll-snap-only-works-with-the-body-as-the-container&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Scroll-Snap&amp;diff=24694</id>
		<title>Scroll-Snap</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Scroll-Snap&amp;diff=24694"/>
		<updated>2020-07-21T11:06:58Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scroll_Snap/Basic_concepts&lt;br /&gt;
 https://css-tricks.com/practical-css-scroll-snapping/&lt;br /&gt;
https://stackoverflow.com/questions/53981699/pure-css-scroll-snap-only-works-with-the-body-as-the-container &lt;br /&gt;
&lt;br /&gt;
== Scroll Snap Basics ==&lt;br /&gt;
Die wichtigsten Eigenschaften sind&lt;br /&gt;
 scroll-snap-type (Containerelement)&lt;br /&gt;
 scroll-snap-align (Kindelement)&lt;br /&gt;
Die Eigenschaft scoll-snap-type wird auf das Elternelement angewendet und scroll-snap-align auf das Kindelement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Keyword values */&lt;br /&gt;
scroll-snap-type: none;&lt;br /&gt;
scroll-snap-type: x;&lt;br /&gt;
scroll-snap-type: y;&lt;br /&gt;
scroll-snap-type: block;&lt;br /&gt;
scroll-snap-type: inline;&lt;br /&gt;
scroll-snap-type: both;&lt;br /&gt;
&lt;br /&gt;
/* Optional mandatory | proximity*/&lt;br /&gt;
scroll-snap-type: x mandatory;&lt;br /&gt;
scroll-snap-type: y proximity;&lt;br /&gt;
scroll-snap-type: both mandatory;&lt;br /&gt;
&lt;br /&gt;
/* etc */&lt;br /&gt;
&lt;br /&gt;
/* Global values */&lt;br /&gt;
scroll-snap-type: inherit;&lt;br /&gt;
scroll-snap-type: initial;&lt;br /&gt;
scroll-snap-type: unset;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel 2&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;article class=&amp;quot;scroller&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section one&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section two&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
    &amp;lt;section&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;Section three&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/article&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;SCROLL ME&amp;lt;/h2&amp;gt;&amp;lt;p&amp;gt;horizontal&amp;lt;/p&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;SNAPPED&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;GO ON&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&amp;lt;h2&amp;gt;THIS IS THE END&amp;lt;/h2&amp;gt;&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
* {&lt;br /&gt;
  box-sizing: border-box;&lt;br /&gt;
}&lt;br /&gt;
body,html{&lt;br /&gt;
  text-align: center;&lt;br /&gt;
  min-height: 100%;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  color: white;&lt;br /&gt;
  font-family: sans-serif;&lt;br /&gt;
}&lt;br /&gt;
html {&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  scroll-snap-type: x mandatory;  &lt;br /&gt;
}&lt;br /&gt;
body{&lt;br /&gt;
  /*&lt;br /&gt;
  NOT working&lt;br /&gt;
  scroll-snap-type: y mandatory;&lt;br /&gt;
  */&lt;br /&gt;
  display:flex;&lt;br /&gt;
}&lt;br /&gt;
h2{&lt;br /&gt;
  text-align: center;&lt;br /&gt;
}&lt;br /&gt;
section {&lt;br /&gt;
  display: flex;&lt;br /&gt;
  flex-direction: column;&lt;br /&gt;
  justify-content: center;&lt;br /&gt;
  height: 100vh;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  flex-shrink: 0;&lt;br /&gt;
  scroll-snap-align: start; /* Stop at the left */&lt;br /&gt;
  &lt;br /&gt;
  background: #146585;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
section:nth-of-type(even) {&lt;br /&gt;
  background: #2b8664;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== scroll-padding und scroll-margin ==&lt;br /&gt;
scroll-padding&lt;br /&gt;
&lt;br /&gt;
Scroll-Padding setzt man im Container. Damit kann man erreichen, dass ein Element nicht direkt an den Rand schnappt, sondern kurz davor stoppt. Das ist z.B. bei einem fixed Header nützlich, der ansonsten den Inhalt überlappen würde.&lt;br /&gt;
&lt;br /&gt;
scroll-margin&lt;br /&gt;
&lt;br /&gt;
Ähnlicher Effekt wie bei Padding. Da man den scroll-margin im Kindelement setzt, kann man für jedes Element unterschiedliche Werte setzen.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24693</id>
		<title>ProcessWire - Front Page Editing</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24693"/>
		<updated>2020-07-20T19:37:57Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://processwire.com/docs/front-end/front-end-editing/&lt;br /&gt;
&lt;br /&gt;
* Mehrere Optionen (im Backend auswählen)&lt;br /&gt;
* Option A -&amp;gt; Automatisch&lt;br /&gt;
** Kann verwendet werden wenn ein Feld nur einmal auf einer Seite verwendet wird.&lt;br /&gt;
* Option B -&amp;gt; API Method Call&lt;br /&gt;
** Geeignet für text fields, number fields, dates...&lt;br /&gt;
** Nicht geeignet für Files/Images, PageTables, Repeaters or andere Felder über die man iteriert&lt;br /&gt;
** Statt get einfach edit nehmen&lt;br /&gt;
 &amp;lt;?php echo $page-&amp;gt;edit(&amp;#039;body&amp;#039;); ?&amp;gt;&lt;br /&gt;
* Option C -&amp;gt; HTML Edit Tags&lt;br /&gt;
** Anhand &amp;#039;&amp;#039;&amp;lt;edit [feldname]&amp;gt;...&amp;lt;/edit&amp;gt;&amp;#039;&amp;#039;  findet PW die Felder&lt;br /&gt;
** Für Repeater geeignet&lt;br /&gt;
** Unterstüzt Inline Editor, wenn das Feld es unterstützt&lt;br /&gt;
&lt;br /&gt;
* Option D -&amp;gt; HTML Edit Attributes&lt;br /&gt;
** Gleiche Funktionalität wie Tags&lt;br /&gt;
** edit Attribut für div, span, ... statt eigenständiges Tag&lt;br /&gt;
** always uses the dialog editor and does not use the inline editor.&lt;br /&gt;
 &amp;lt;div edit=&amp;quot;events&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
* PageFrontEdit Modul installieren (Core)&lt;br /&gt;
* Für Option A Checkboxen anhaken&lt;br /&gt;
* Für Option B-C Templates berarbeiten.&lt;br /&gt;
== Options in Detail ==&lt;br /&gt;
=== Option A ===&lt;br /&gt;
Einfach im Backend anhaken&lt;br /&gt;
&lt;br /&gt;
=== Option B ===&lt;br /&gt;
Statt&lt;br /&gt;
 $page-&amp;gt;get(&amp;#039;field_name&amp;#039;);&lt;br /&gt;
 $page-&amp;gt;edit(&amp;#039;field_name&amp;#039;);&lt;br /&gt;
Beispiel &lt;br /&gt;
 &amp;lt;?php echo $page-&amp;gt;edit(&amp;#039;body&amp;#039;); ?&amp;gt;&lt;br /&gt;
=== Option C ===&lt;br /&gt;
&lt;br /&gt;
Beispiel Image Feld &amp;#039;photo&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edit photo&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;&amp;lt;?=$page-&amp;gt;image-&amp;gt;url?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel Repeater, PageTable oder Table Field&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edit events&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach($page-&amp;gt;events as $event): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;event&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&amp;lt;?=$event-&amp;gt;title?&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;date&amp;quot;&amp;gt;&amp;lt;?=$event-&amp;gt;date?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&amp;lt;?=$event-&amp;gt;summary?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beschreibung von Ryan:&lt;br /&gt;
&lt;br /&gt;
By the way, you can also use some more verbose but alternate syntax for the &amp;lt;edit&amp;gt; tags if you prefer. If your editor does syntax highlighting with your HTML, it may be more consistent (the &amp;quot;quotes&amp;quot; are optional of course):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If your editable region contains multiple fields you want to be edited together, you can specify more than one:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;intro,image,events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If your field happens to be on some other page other than the one being rendered, you can also specify what page you want to be edited:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;events&amp;quot; page=&amp;quot;1001&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
The 1001 can be any page ID or path. The above can also be shortened to this if you prefer:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;1001.events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
Or this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit 1001.events&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If you are using &amp;lt;edit&amp;gt; tags with a field that supports inline editing (like a text or CKEditor field), the inline editor will be used. Otherwise it will open a dialog to the editor.&lt;br /&gt;
&lt;br /&gt;
=== Option D ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;events&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- code to output events --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or to specify a field from some other page (1001):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;1001.events&amp;quot;&amp;gt; ... &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or to specify multiple fields:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;intro,image,events&amp;quot;&amp;gt; ... &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The &amp;quot;edit&amp;quot; attributes are stripped from the markup that gets output, so the only place you will see them is where you place them in your template file(s).&lt;br /&gt;
&lt;br /&gt;
Worth noting about option D is that it always uses the dialog editor and does not use the inline editor.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24692</id>
		<title>ProcessWire - Front Page Editing</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24692"/>
		<updated>2020-07-20T19:36:32Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://processwire.com/docs/front-end/front-end-editing/&lt;br /&gt;
&lt;br /&gt;
* Mehrere Optionen (im Backend auswählen)&lt;br /&gt;
* Option A -&amp;gt; Automatisch&lt;br /&gt;
** Kann verwendet werden wenn ein Feld nur einmal auf einer Seite verwendet wird.&lt;br /&gt;
* Option B -&amp;gt; API Method Call&lt;br /&gt;
** Geeignet für text fields, number fields, dates...&lt;br /&gt;
** Nicht geeignet für Files/Images, PageTables, Repeaters or andere Felder über die man iteriert&lt;br /&gt;
** Statt get einfach edit nehmen&lt;br /&gt;
 &amp;lt;?php echo $page-&amp;gt;edit(&amp;#039;body&amp;#039;); ?&amp;gt;&lt;br /&gt;
* Option C -&amp;gt; HTML Edit Tags&lt;br /&gt;
** Anhand &amp;#039;&amp;#039;&amp;lt;edit [feldname]&amp;gt;...&amp;lt;/edit&amp;gt;&amp;#039;&amp;#039;  findet PW die Felder&lt;br /&gt;
** Für Repeater geeignet&lt;br /&gt;
&lt;br /&gt;
* Option D -&amp;gt; HTML Edit Attributes&lt;br /&gt;
** Gleiche Funktionalität wie Tags&lt;br /&gt;
** edit Attribut für div, span, ... statt eigenständiges Tag&lt;br /&gt;
 &amp;lt;div edit=&amp;quot;events&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
* PageFrontEdit Modul installieren (Core)&lt;br /&gt;
* Für Option A Checkboxen anhaken&lt;br /&gt;
* Für Option B-C Templates berarbeiten.&lt;br /&gt;
== Options in Detail ==&lt;br /&gt;
=== Option A ===&lt;br /&gt;
Einfach im Backend anhaken&lt;br /&gt;
&lt;br /&gt;
=== Option B ===&lt;br /&gt;
Statt&lt;br /&gt;
 $page-&amp;gt;get(&amp;#039;field_name&amp;#039;);&lt;br /&gt;
 $page-&amp;gt;edit(&amp;#039;field_name&amp;#039;);&lt;br /&gt;
Beispiel &lt;br /&gt;
 &amp;lt;?php echo $page-&amp;gt;edit(&amp;#039;body&amp;#039;); ?&amp;gt;&lt;br /&gt;
=== Option C ===&lt;br /&gt;
&lt;br /&gt;
Beispiel Image Feld &amp;#039;photo&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edit photo&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;&amp;lt;?=$page-&amp;gt;image-&amp;gt;url?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel Repeater, PageTable oder Table Field&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edit events&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach($page-&amp;gt;events as $event): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;event&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&amp;lt;?=$event-&amp;gt;title?&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;date&amp;quot;&amp;gt;&amp;lt;?=$event-&amp;gt;date?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&amp;lt;?=$event-&amp;gt;summary?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beschreibung von Ryan:&lt;br /&gt;
&lt;br /&gt;
By the way, you can also use some more verbose but alternate syntax for the &amp;lt;edit&amp;gt; tags if you prefer. If your editor does syntax highlighting with your HTML, it may be more consistent (the &amp;quot;quotes&amp;quot; are optional of course):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If your editable region contains multiple fields you want to be edited together, you can specify more than one:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;intro,image,events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If your field happens to be on some other page other than the one being rendered, you can also specify what page you want to be edited:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;events&amp;quot; page=&amp;quot;1001&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
The 1001 can be any page ID or path. The above can also be shortened to this if you prefer:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;1001.events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
Or this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit 1001.events&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If you are using &amp;lt;edit&amp;gt; tags with a field that supports inline editing (like a text or CKEditor field), the inline editor will be used. Otherwise it will open a dialog to the editor.&lt;br /&gt;
&lt;br /&gt;
=== Option D ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;events&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- code to output events --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or to specify a field from some other page (1001):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;1001.events&amp;quot;&amp;gt; ... &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or to specify multiple fields:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;intro,image,events&amp;quot;&amp;gt; ... &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The &amp;quot;edit&amp;quot; attributes are stripped from the markup that gets output, so the only place you will see them is where you place them in your template file(s).&lt;br /&gt;
&lt;br /&gt;
Worth noting about option D is that it always uses the dialog editor and does not use the inline editor.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24691</id>
		<title>ProcessWire - Front Page Editing</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24691"/>
		<updated>2020-07-20T19:29:39Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://processwire.com/docs/front-end/front-end-editing/&lt;br /&gt;
&lt;br /&gt;
* Mehrere Optionen (im Backend auswählen)&lt;br /&gt;
* Option A -&amp;gt; Automatisch&lt;br /&gt;
** Kann verwendet werden wenn ein Feld nur einmal auf einer Seite verwendet wird.&lt;br /&gt;
* Option B -&amp;gt; API Method Call&lt;br /&gt;
** Geeignet für text fields, number fields, dates...&lt;br /&gt;
** Nicht geeignet für Files/Images, PageTables, Repeaters or andere Felder über die man iteriert&lt;br /&gt;
** Statt get einfach edit nehmen&lt;br /&gt;
 &amp;lt;?php echo $page-&amp;gt;edit(&amp;#039;body&amp;#039;); ?&amp;gt;&lt;br /&gt;
* Option C -&amp;gt; HTML Edit Tags&lt;br /&gt;
** Anhand &amp;#039;&amp;#039;&amp;lt;edit [feldname]&amp;gt;...&amp;lt;/edit&amp;gt;&amp;#039;&amp;#039;  findet PW die Felder&lt;br /&gt;
** Für Repeater geeignet&lt;br /&gt;
&lt;br /&gt;
* Option D -&amp;gt; HTML Edit Attributes&lt;br /&gt;
** Gleiche Funktionalität wie Tags&lt;br /&gt;
** edit Attribut für div, span, ... statt eigenständiges Tag&lt;br /&gt;
 &amp;lt;div edit=&amp;quot;events&amp;quot;&amp;gt;...&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Options in Detail ==&lt;br /&gt;
=== Option A ===&lt;br /&gt;
Einfach im Backend anhaken&lt;br /&gt;
&lt;br /&gt;
=== Option B ===&lt;br /&gt;
&lt;br /&gt;
=== Option C ===&lt;br /&gt;
&lt;br /&gt;
Beispiel Image Feld &amp;#039;photo&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edit photo&amp;gt;&lt;br /&gt;
  &amp;lt;img src=&amp;quot;&amp;lt;?=$page-&amp;gt;image-&amp;gt;url?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel Repeater, PageTable oder Table Field&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;edit events&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach($page-&amp;gt;events as $event): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;event&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&amp;lt;?=$event-&amp;gt;title?&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;p class=&amp;quot;date&amp;quot;&amp;gt;&amp;lt;?=$event-&amp;gt;date?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;p&amp;gt;&amp;lt;?=$event-&amp;gt;summary?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/edit&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beschreibung von Ryan:&lt;br /&gt;
&lt;br /&gt;
By the way, you can also use some more verbose but alternate syntax for the &amp;lt;edit&amp;gt; tags if you prefer. If your editor does syntax highlighting with your HTML, it may be more consistent (the &amp;quot;quotes&amp;quot; are optional of course):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If your editable region contains multiple fields you want to be edited together, you can specify more than one:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;intro,image,events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If your field happens to be on some other page other than the one being rendered, you can also specify what page you want to be edited:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;events&amp;quot; page=&amp;quot;1001&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
The 1001 can be any page ID or path. The above can also be shortened to this if you prefer:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit field=&amp;quot;1001.events&amp;quot;&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
Or this:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;edit 1001.events&amp;gt; ... &amp;lt;/edit&amp;gt;&lt;br /&gt;
If you are using &amp;lt;edit&amp;gt; tags with a field that supports inline editing (like a text or CKEditor field), the inline editor will be used. Otherwise it will open a dialog to the editor.&lt;br /&gt;
&lt;br /&gt;
=== Option D ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;events&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;!-- code to output events --&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or to specify a field from some other page (1001):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;1001.events&amp;quot;&amp;gt; ... &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Or to specify multiple fields:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div edit=&amp;quot;intro,image,events&amp;quot;&amp;gt; ... &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The &amp;quot;edit&amp;quot; attributes are stripped from the markup that gets output, so the only place you will see them is where you place them in your template file(s).&lt;br /&gt;
&lt;br /&gt;
Worth noting about option D is that it always uses the dialog editor and does not use the inline editor.&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24690</id>
		<title>ProcessWire - Front Page Editing</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_Front_Page_Editing&amp;diff=24690"/>
		<updated>2020-07-20T17:57:20Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „ https://processwire.com/docs/front-end/front-end-editing/  * Mehrere Optionen * Option A -&amp;gt; Automatisch ** Kann verwendet werden wenn ein Feld nur einmal auf…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; https://processwire.com/docs/front-end/front-end-editing/&lt;br /&gt;
&lt;br /&gt;
* Mehrere Optionen&lt;br /&gt;
* Option A -&amp;gt; Automatisch&lt;br /&gt;
** Kann verwendet werden wenn ein Feld nur einmal auf einer Seite verwendet wird.&lt;br /&gt;
* Option B -&amp;gt; API Method Call&lt;br /&gt;
** Geeignet für text fields, number fields, dates...&lt;br /&gt;
** Nicht geeignet für Files/Images, PageTables, Repeaters or andere Felder über die man iteriert&lt;br /&gt;
* Option C -&amp;gt; HTML Edit Tags&lt;br /&gt;
* Option D -&amp;gt; HTML Edit Attributes&lt;br /&gt;
&lt;br /&gt;
Option A&lt;br /&gt;
Einfach im Backend anhaken&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_One_Page_Website&amp;diff=24689</id>
		<title>ProcessWire - One Page Website</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_One_Page_Website&amp;diff=24689"/>
		<updated>2020-07-20T10:14:28Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: /* Beispiel für Repeater Matrix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
 &lt;br /&gt;
 https://processwire.com/talk/topic/7297-one-page-websites/&lt;br /&gt;
&lt;br /&gt;
== Strategien ==&lt;br /&gt;
&lt;br /&gt;
* Kindseiten um Sections zu erstellen&lt;br /&gt;
* Repatermatrix o.ä. können zu Sections werden&lt;br /&gt;
&lt;br /&gt;
== Navigation erstellen ==&lt;br /&gt;
* Smooth Scroll nutzen (sieht einfach besser aus und hilft bei der Orientierung.&lt;br /&gt;
* Klasse in CSS Editor wenn nicht alle Links Smooth Scroll Links werden sollen&lt;br /&gt;
* Klasse in Navigation&lt;br /&gt;
&lt;br /&gt;
=== Beispiel für Repeater Matrix ===&lt;br /&gt;
Wir nutzen ein Feld &amp;#039;&amp;#039;nav_title&amp;#039;&amp;#039; für jedes Repeater Matrix Item. Ist dieses ausgefüllt erstellen wir einen Navigationspunkt.&lt;br /&gt;
Als ID / Name für jede Section nutzen wir einfach die ID des RepeaterMatrix Items mit dem Buchstaben p als Prefix.&lt;br /&gt;
&lt;br /&gt;
Die Navi in dieser Form erstellt für die aktive Seite ein Untermenü, das alle Sections (mit nav_title) enthält. Die Submenüs der anderen (nicht aktiven) Seiten erstellen wir hier nicht. &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;nav_hashNav.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php namespace ProcessWire;&lt;br /&gt;
$mainMenuMarkup = &amp;#039;&amp;#039;;&lt;br /&gt;
$activeClass=&amp;#039;&amp;#039;;&lt;br /&gt;
$homePage = $pages-&amp;gt;get(&amp;quot;/&amp;quot;);&lt;br /&gt;
$navItems = $homePage-&amp;gt;and($homePage-&amp;gt;children(&amp;#039;menu.id=1&amp;#039;));&lt;br /&gt;
$mainMenuMarkup .= &amp;#039;&amp;lt;ul class=&amp;quot;nav&amp;quot;&amp;gt;&amp;#039;;&lt;br /&gt;
foreach ($navItems as $navItem){&lt;br /&gt;
    $itemMarkup=&amp;#039;&amp;#039;;&lt;br /&gt;
    $hashNav=&amp;#039;&amp;#039;;&lt;br /&gt;
    // Current Page ?&lt;br /&gt;
    if($navItem-&amp;gt;id == $page-&amp;gt;id){&lt;br /&gt;
        $activeClass = ($navItem-&amp;gt;id == $page-&amp;gt;id) ? &amp;quot; active&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
        $hashNavItems = getHashNavItems($navItem);&lt;br /&gt;
        $hashNav = renderHashNav($hashNavItems);&lt;br /&gt;
    }&lt;br /&gt;
    $itemMarkup = &amp;#039;&lt;br /&gt;
    &amp;lt;li class=&amp;quot;nav-item&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;a class=&amp;quot;nav-link &amp;#039;.$activeClass.&amp;#039;&amp;quot; href=&amp;quot;&amp;#039;.$navItem-&amp;gt;url.&amp;#039;&amp;quot;&amp;gt; &amp;#039;. $navItem-&amp;gt;title.&amp;#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
        &amp;#039;.$hashNav.&amp;#039;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;#039;;&lt;br /&gt;
    $mainMenuMarkup .= $itemMarkup;&lt;br /&gt;
} &lt;br /&gt;
$mainMenuMarkup .= &amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// HASH NAVI FUNCTIONS&lt;br /&gt;
// If Hash-Links on actual page use them as subnav&lt;br /&gt;
// Hashes are created when field nav_title in layout_blocks is filled&lt;br /&gt;
// caching (i.e proCache) is recommended&lt;br /&gt;
&lt;br /&gt;
function getHashNavItems($p){&lt;br /&gt;
	$navItems = array(); // pid=&amp;gt;title &lt;br /&gt;
	foreach($p-&amp;gt;layout_blocks as $lb){&lt;br /&gt;
		if($navTitle = $lb-&amp;gt;nav_title) $navItems[] = array(&amp;#039;pid&amp;#039;=&amp;gt;$lb-&amp;gt;id, &amp;#039;title&amp;#039; =&amp;gt; $lb-&amp;gt;nav_title);&lt;br /&gt;
	}&lt;br /&gt;
	if( !empty($navItems) ){&lt;br /&gt;
		return $navItems;&lt;br /&gt;
	}else return false;&lt;br /&gt;
}&lt;br /&gt;
function renderHashNav($subnavItems){&lt;br /&gt;
	$out=&amp;#039;&amp;#039;;&lt;br /&gt;
	if(!empty($subnavItems)){&lt;br /&gt;
		$out .= &amp;#039;&amp;lt;ul class=&amp;quot;nav nav-v npl nml&amp;quot;&amp;gt;&amp;#039;;&lt;br /&gt;
		foreach($subnavItems as $item){&lt;br /&gt;
			$out .= &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a class=&amp;quot;scroll&amp;quot; href=&amp;quot;#p&amp;#039;.$item[&amp;#039;pid&amp;#039;].&amp;#039;&amp;quot;&amp;gt;&amp;#039;.$item[&amp;#039;title&amp;#039;].&amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		$out .= &amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
	return $out;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SmoothScroll JS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).on(&amp;#039;click&amp;#039;, &amp;#039;a.scroll&amp;#039;, function (event) {&lt;br /&gt;
		event.preventDefault();&lt;br /&gt;
		$(&amp;#039;html, body&amp;#039;).animate({&lt;br /&gt;
			scrollTop: $($.attr(this, &amp;#039;href&amp;#039;)).offset().top&lt;br /&gt;
		}, 100);&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Smooth Scroll wird mittlerweile auch von vielen Browsern direkt unterstützt. Mit der scroll-behaviour Eigenschaft kann man es aktivieren.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SmoothScroll (CSS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
html,body{&lt;br /&gt;
    min-height: 100%;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
}&lt;br /&gt;
html{&lt;br /&gt;
	scroll-behavior: smooth;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_One_Page_Website&amp;diff=24688</id>
		<title>ProcessWire - One Page Website</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=ProcessWire_-_One_Page_Website&amp;diff=24688"/>
		<updated>2020-07-20T10:12:59Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „== Links ==    https://processwire.com/talk/topic/7297-one-page-websites/  == Strategien ==  * Kindseiten um Sections zu erstellen * Repatermatrix o.ä. könne…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
 &lt;br /&gt;
 https://processwire.com/talk/topic/7297-one-page-websites/&lt;br /&gt;
&lt;br /&gt;
== Strategien ==&lt;br /&gt;
&lt;br /&gt;
* Kindseiten um Sections zu erstellen&lt;br /&gt;
* Repatermatrix o.ä. können zu Sections werden&lt;br /&gt;
&lt;br /&gt;
== Navigation erstellen ==&lt;br /&gt;
* Smooth Scroll nutzen (sieht einfach besser aus und hilft bei der Orientierung.&lt;br /&gt;
* Klasse in CSS Editor wenn nicht alle Links Smooth Scroll Links werden sollen&lt;br /&gt;
* Klasse in Navigation&lt;br /&gt;
&lt;br /&gt;
=== Beispiel für Repeater Matrix ===&lt;br /&gt;
Wir nutzen ein Feld &amp;#039;&amp;#039;nav_title&amp;#039;&amp;#039; für jedes Repeater Matrix Item. Ist dieses ausgefüllt erstellen wir einen Navigationspunkt.&lt;br /&gt;
Als ID / Name für jede Section nutzen wir einfach die ID des RepeaterMatrix Items mit dem Buchstaben p als Prefix.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;nav_hashNav.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php namespace ProcessWire;&lt;br /&gt;
$mainMenuMarkup = &amp;#039;&amp;#039;;&lt;br /&gt;
$activeClass=&amp;#039;&amp;#039;;&lt;br /&gt;
$homePage = $pages-&amp;gt;get(&amp;quot;/&amp;quot;);&lt;br /&gt;
$navItems = $homePage-&amp;gt;and($homePage-&amp;gt;children(&amp;#039;menu.id=1&amp;#039;));&lt;br /&gt;
$mainMenuMarkup .= &amp;#039;&amp;lt;ul class=&amp;quot;nav&amp;quot;&amp;gt;&amp;#039;;&lt;br /&gt;
foreach ($navItems as $navItem){&lt;br /&gt;
    $itemMarkup=&amp;#039;&amp;#039;;&lt;br /&gt;
    $hashNav=&amp;#039;&amp;#039;;&lt;br /&gt;
    // Current Page ?&lt;br /&gt;
    if($navItem-&amp;gt;id == $page-&amp;gt;id){&lt;br /&gt;
        $activeClass = ($navItem-&amp;gt;id == $page-&amp;gt;id) ? &amp;quot; active&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
        $hashNavItems = getHashNavItems($navItem);&lt;br /&gt;
        $hashNav = renderHashNav($hashNavItems);&lt;br /&gt;
    }&lt;br /&gt;
    $itemMarkup = &amp;#039;&lt;br /&gt;
    &amp;lt;li class=&amp;quot;nav-item&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;a class=&amp;quot;nav-link &amp;#039;.$activeClass.&amp;#039;&amp;quot; href=&amp;quot;&amp;#039;.$navItem-&amp;gt;url.&amp;#039;&amp;quot;&amp;gt; &amp;#039;. $navItem-&amp;gt;title.&amp;#039;&amp;lt;/a&amp;gt;&lt;br /&gt;
        &amp;#039;.$hashNav.&amp;#039;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;#039;;&lt;br /&gt;
    $mainMenuMarkup .= $itemMarkup;&lt;br /&gt;
} &lt;br /&gt;
$mainMenuMarkup .= &amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// HASH NAVI FUNCTIONS&lt;br /&gt;
// If Hash-Links on actual page use them as subnav&lt;br /&gt;
// Hashes are created when field nav_title in layout_blocks is filled&lt;br /&gt;
// caching (i.e proCache) is recommended&lt;br /&gt;
&lt;br /&gt;
function getHashNavItems($p){&lt;br /&gt;
	$navItems = array(); // pid=&amp;gt;title &lt;br /&gt;
	foreach($p-&amp;gt;layout_blocks as $lb){&lt;br /&gt;
		if($navTitle = $lb-&amp;gt;nav_title) $navItems[] = array(&amp;#039;pid&amp;#039;=&amp;gt;$lb-&amp;gt;id, &amp;#039;title&amp;#039; =&amp;gt; $lb-&amp;gt;nav_title);&lt;br /&gt;
	}&lt;br /&gt;
	if( !empty($navItems) ){&lt;br /&gt;
		return $navItems;&lt;br /&gt;
	}else return false;&lt;br /&gt;
}&lt;br /&gt;
function renderHashNav($subnavItems){&lt;br /&gt;
	$out=&amp;#039;&amp;#039;;&lt;br /&gt;
	if(!empty($subnavItems)){&lt;br /&gt;
		$out .= &amp;#039;&amp;lt;ul class=&amp;quot;nav nav-v npl nml&amp;quot;&amp;gt;&amp;#039;;&lt;br /&gt;
		foreach($subnavItems as $item){&lt;br /&gt;
			$out .= &amp;#039;&amp;lt;li&amp;gt;&amp;lt;a class=&amp;quot;scroll&amp;quot; href=&amp;quot;#p&amp;#039;.$item[&amp;#039;pid&amp;#039;].&amp;#039;&amp;quot;&amp;gt;&amp;#039;.$item[&amp;#039;title&amp;#039;].&amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		$out .= &amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
	return $out;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SmoothScroll JS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).on(&amp;#039;click&amp;#039;, &amp;#039;a.scroll&amp;#039;, function (event) {&lt;br /&gt;
		event.preventDefault();&lt;br /&gt;
		$(&amp;#039;html, body&amp;#039;).animate({&lt;br /&gt;
			scrollTop: $($.attr(this, &amp;#039;href&amp;#039;)).offset().top&lt;br /&gt;
		}, 100);&lt;br /&gt;
	});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Smooth Scroll wird mittlerweile auch von vielen Browsern direkt unterstützt. Mit der scroll-behaviour Eigenschaft kann man es aktivieren.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;SmoothScroll (CSS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
html,body{&lt;br /&gt;
    min-height: 100%;&lt;br /&gt;
    height: 100%;&lt;br /&gt;
}&lt;br /&gt;
html{&lt;br /&gt;
	scroll-behavior: smooth;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24687</id>
		<title>Google - API</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24687"/>
		<updated>2020-07-20T07:26:30Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Google API bietet mittlerweile eine Menge Tools die man nutzen kannn. Natürlich immer mit den üblichen Bedenken zur Datekrake Google. Man sieht allerdings auch immer mehr Services die die Google API als Teil ihrer Infrastruktur nutzen. So erzeugt Shopify hinter den Kulissen pdfs z.B. für Lieferscheine mittels Google API und zeigt sie dann direkt als Google Doc an.&lt;br /&gt;
== API Bereiche ==&lt;br /&gt;
=== Google Maps ===&lt;br /&gt;
 [[Google Maps API - Programmieren für Google Maps]]&lt;br /&gt;
&lt;br /&gt;
=== Google Drive / Google Docs===&lt;br /&gt;
html2pdf mit Google Drive&lt;br /&gt;
Ein pdf aus einer Seite kann man über die API erzeugen indem man eine HTML Datei als Google Doc in Google Drive importiert und dort über die Drive API konvertiert.&lt;br /&gt;
&lt;br /&gt;
 https://developers.google.com/drive/v2/reference/files/insert https://developers.google.com/drive/v2/reference/files/get&lt;br /&gt;
Beispiel Code&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ByteArrayContent mediaContent = new ByteArrayContent(&amp;quot;text/html&amp;quot;, &amp;quot;HTML PAGE HERE&amp;quot;.getBytes());&lt;br /&gt;
&lt;br /&gt;
File body = new File();&lt;br /&gt;
body.setTitle(&amp;quot;test.html&amp;quot;);&lt;br /&gt;
body.setMimeType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Insert request = null;&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
   request = service.files().insert(body, mediaContent);&lt;br /&gt;
   request.setConvert(true);&lt;br /&gt;
   File file = request.execute();&lt;br /&gt;
&lt;br /&gt;
   HttpResponse resp = service.getRequestFactory().buildGetRequest(new    GenericUrl(file.getExportLinks().get(&amp;quot;application/pdf&amp;quot;))).execute();&lt;br /&gt;
&lt;br /&gt;
   OutputStream out = new FileOutputStream(getExternalFilesDir(null).getAbsolutePath() + &amp;quot;/test.pdf&amp;quot;);&lt;br /&gt;
   byte[] buf = new byte[1024];&lt;br /&gt;
   int len;&lt;br /&gt;
   while ((len = resp.getContent().read(buf)) &amp;gt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        out.write(buf, 0, len);&lt;br /&gt;
    }&lt;br /&gt;
    out.close();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
catch (IOException e)&lt;br /&gt;
{&lt;br /&gt;
    e.printStackTrace();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24686</id>
		<title>Google - API</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24686"/>
		<updated>2020-07-20T07:25:22Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Google API bietet mittlerweile eine Menge Tools die man nutzen kannn. Natürlich immer mit den üblichen Bedenken zur Datekrake Google. Man sieht allerdings auch immer mehr Services die die Google API als Teil ihrer Infrastruktur nutzen. So erzeugt Shopify hinter den Kulissen pdfs z.B. für Lieferscheine mittels Google API und zeigt sie dann direkt als Google Doc an.&lt;br /&gt;
== API Bereiche ==&lt;br /&gt;
=== Google Maps ===&lt;br /&gt;
 [[Google Maps API - Programmieren für Google Maps]]&lt;br /&gt;
&lt;br /&gt;
=== Google Drive / Google Docs===&lt;br /&gt;
html2pdf mit Google Drive&lt;br /&gt;
Ein pdf aus einer Seite kann man über die API erzeugen indem man eine HTML Datei als Google Doc in Google Drive importiert und dort über die Drive API konvertiert.&lt;br /&gt;
&lt;br /&gt;
 https://developers.google.com/drive/v2/reference/files/insert https://developers.google.com/drive/v2/reference/files/get&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24685</id>
		<title>Google - API</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24685"/>
		<updated>2020-07-20T07:24:36Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Google API bietet mittlerweile eine Menge Tools die man nutzen kannn. Natürlich immer mit den üblichen Bedenken zur Datekrake Google. Man sieht allerdings auch immer mehr Services die die Google API als Teil ihrer Infrastruktur nutzen. So erzeugt Shopify hinter den Kulissen pdfs z.B. für Lieferscheine mittels Google API und zeigt sie dann direkt als Google Doc an.&lt;br /&gt;
&lt;br /&gt;
 [[Google Maps API - Programmieren für Google Maps]]&lt;br /&gt;
&lt;br /&gt;
html2pdf mit Google Drive&lt;br /&gt;
Ein pdf aus einer Seite kann man über die API erzeugen indem man eine HTML Datei als Google Doc in Google Drive importiert und dort über die Drive API konvertiert.&lt;br /&gt;
&lt;br /&gt;
 https://developers.google.com/drive/v2/reference/files/insert https://developers.google.com/drive/v2/reference/files/get&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24684</id>
		<title>Google - API</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Google_-_API&amp;diff=24684"/>
		<updated>2020-07-20T07:24:22Z</updated>

		<summary type="html">&lt;p&gt;84.155.186.41: Die Seite wurde neu angelegt: „Die Google API bietet mittlerweile eine Menge Tools die man nutzen kannn. Natürlich immer mit den üblichen Bedenken zur Datekrake Google. Man sieht allerding…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Die Google API bietet mittlerweile eine Menge Tools die man nutzen kannn. Natürlich immer mit den üblichen Bedenken zur Datekrake Google. Man sieht allerdings auch immer mehr Services die die Google API als Teil ihrer Infrastruktur nutzen. So erzeugt Shopify hinter den Kulissen pdfs z.B. für Lieferscheine mittels Google API und zeigt sie dann direkt als Google Doc an.&lt;br /&gt;
&lt;br /&gt;
Google Maps API - Programmieren für Google Maps&lt;br /&gt;
&lt;br /&gt;
html2pdf mit Google Drive&lt;br /&gt;
Ein pdf aus einer Seite kann man über die API erzeugen indem man eine HTML Datei als Google Doc in Google Drive importiert und dort über die Drive API konvertiert.&lt;br /&gt;
&lt;br /&gt;
 https://developers.google.com/drive/v2/reference/files/insert https://developers.google.com/drive/v2/reference/files/get&lt;/div&gt;</summary>
		<author><name>84.155.186.41</name></author>
	</entry>
</feed>