Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jo42:freiburg.social

Hauptmenü

Neueste Beiträge

#71
CMS / Snippet fromJSON
Letzter Beitrag von Jo - 2015-06-06 | 15:11:23
Dieses Snippet benutze ich um ein json output aus einer MIGXdb Tabelle zu lesen.
In diesem Beispiel eine URL:

<?php
# e.g.: [[fromJSON? &input=`[[+extended]]` &field=`url`]]

$input $modx->fromJSON($input);
if (!empty(
$input)) {
    if (
is_array($input)){
     
$output $input[$field];
   }
   return 
$output;
}


Das funktioniert auch mit einem Output-Filter:

[[fromJSON:isnot=`--`:then=`tu das`:else=`sonst das`? &input=`[[+extended]]` &field=`url`]]


wenn eine URL angegeben ist, dann den Title als Link, sonst nur als Text:

[[fromJSON:isnot=`--`:then=`<a href="[[fromJSON? &input=`[[+extended]]` &field=`url`]]" target="_blank"><p class="smallfont">[[+idx]]. [[+title]]</p></a>`:else=`<p class="smallfont">[[+idx]]. [[+title]]</p>`? &input=`[[+extended]]` &field=`url`]]

#72
LINUX / Antw:Raspberry Pi
Letzter Beitrag von Jo - 2015-02-27 | 19:47:03
Update OpenELEC/XBMC 4.x auf 5.0.4
Stand 2015-02-27

Ladet euch den aktuellen OpenELEC 5.0.4 (arm) herunter und entpackt die Datei "OpenELEC-RPi.arm-5.0.4.tar".

Im Ordner "target" findet ihr die 4 Dateien: KERNEL, KERNEL.md5, SYSTEM und SYSTEM.md5

Per Dateibrowser öffnet man die Adresse von OpenELEC (smb://openelec oder IP smb:⁄⁄192.168.xxx.xxx) und kopiert diese 4 Dateien in den Ordner "Update". Dann startet ihr OpenELEC neu und das Update wird ausgeführt.

Fertig  :cool:
#73
CMS / Error wenn ZIP per php extrahi...
Letzter Beitrag von Jo - 2015-02-01 | 13:16:58
"Error : PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature"

ZIP-Archive entpacke ich gerne einfach am Server - das geht schneller als hunderte von Dateien per ftp hoch zu laden.

Leider gibt es im KDE Packprogramm ARK V 2.19 einen BUG, der nur im Zusammenhang mit PHP auftritt!
Quelle: bugs.launchpad.net/ark/+bug/1387924

Dieser Packer verursacht den o.g. Fehler wenn PHP ein ZIP-Archiv, welches mit ARK erstellt wurde entpackt  :confused:

#74
CMS / pdoTools
Letzter Beitrag von Jo - 2015-01-10 | 21:05:45
pdoTools kann folgende Extras für MODX REVOLUTION ersetzen:

  • pdoResources - schneller Ersatz für getResources
  • pdoCrumbs - schneller Ersatz für Breadcrumb(s)
  • pdoField - schneller Ersatz für getResourceField und UltimateParent
  • pdoPage - schneller Ersatz für getPage
  • pdoMenu - schneller Ersatz für Wayfinder
siehe auch docs-pdoTools (englisch)


pdoToos hat mehr Funktionen und ist eine schnellere Alternative zu den anderen Snippets. Daher ist die Syntax nicht immer gleich.

Ein Grund für die Geschwindigkeit ist z.B. dass der Parameter "includeTVs" in pdoResources kein einfacher Schalter (boolean) ist um die TV-Abfrage zu aktivieren. Hier gebt ihr die gewünschten TVs an, z.B.: "includeTVs=`tvClass,tvPfad,tvDatum`" - es werden also nur geziehlt TVs abgefragt!

Hier ein paar Anwendungsbeispiele:

Brotkrümel

[[!pdoCrumbs?
  &context=`web5`
  &depth=`2`
  &showHome=`1`
  &showAtHome=`0`
  &showContainer=`1`
  &tplWrapper=`@INLINE <ul class="breadcrumb">[[+output]]</ul>`
  &tplCurrent=`@INLINE <li>[[+menutitle]]</li>`
  &tpl=`@INLINE <li><a href="[[+link]]">[[+menutitle]]</a></li>`
  &outputSeparator=``
]]


Navigationsmenü

[[!pdoMenu?
  &context=`web5`
  &parents=`0`
  &level=`2`
  &tpl=`tplBS3.WF.row`
  &tplOuter=`@INLINE [[+wf.wrapper]]`
  &tplParentRow=`tplBS3.WF.row.parent`
  &tplInnerRow=`tplBS3.WF.row.inner`
]]


Navigationsmenü mit der Anzahl der Kinder

[[pdoMenu?
    &context=`web5`
    &parents=`0`
    &level=`2`
    &countChildren=`1`
    &tplInner=`@INLINE [[+wrapper]]`
    &tplParentRow=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a> ([[+children]])</li>[[+wrapper]]`
]]


Inhalte aus den Kindressourcen

[[!pdoResources?
   &context=`web3`
   &parents=`[[*id]]`
   &tpl=`tplBS3-2Column`
   &limit=`0`
   &idx=`0`
   &includeContent=`1`
   &showUnpublished=`0`
   &includeTVs=`tvGaleriePfad`
   &sortby=`menuindex`
   &sortdir=`asc`
]]


Info zur Eigenschaft &idx=`0`:
Bei pdoTools 1.9.7-pl scheint das Festlegen einer Start-IDX nicht zu funktionieren. Bei mir startet diese immer mit einer 1 (bei getResources funktioniert es). Scheint ein Bug zu sein? Habe das derzeit im entsprechenden Template mit einem Output Filter so gelöst:
[[+idx:add=`-1`]]




Wayfinder mit UltimateParent

[[!Wayfinder?
  &contexts=`web2`
  &startId=`[[UltimateParent? &topLevel=`1`]]`
  &level=`1`
  &rowTpl=`tplBS.WF.row`
  &outerTpl=`tplBS.WF.outer`
  &parentRowTpl=`tplBS.WF.row.parent`
  &innerRowTpl=`tplBS.WF.row.inner`
]]


dasselbe mit pdoMenu und pdoField

[[!pdoMenu?
  &context=`web2`
  &parents=`[[*id:pdoField=`{"topLevel":1,"field":"id"}`]]`
  &level=`1`
  &tpl=`tplBS.WF.row`
  &tplOuter=`tplBS.WF.outer`
  &tplParentRow=`tplBS.WF.row.parent`
  &tplInnerRow=`tplBS.WF.row.inner`
]]


oder

[[!Wayfinder? &contexts=`web` &level=`1` &startId=`[[UltimateParent]]` &rowTpl=`wfRow` &hereTpl=`wfHere` &rowIdPrefix=`menu`]]

mit dem pdoMenu
[[!pdoMenu? &context=`web` &parents=`[[*id:pdoField=`{"topLevel":1,"field":"id"}`]]` &level=`1` &tpl=`wfRow` &tplHere=`wfHere` &rowIdPrefix=`menu`]]





getResources Bootstrap3 - Spaltentext aus den Childs parsen

[[*id:is=`42`:then=`
[[!getResources:default=``?
   &context=`web2`
   &parents=`[[*id]]`
   &tpl=`web2tplGrid`
   &limit=`0`
   &depth=`0`
   &includeContent=`1`
   &showHidden=`1`
   &showUnpublished=`0`
   &showHidden=`1`
   &sortby=`menuindex`
   &sortdir=`asc`
]]`:else=``]]


dasselbe mit pdoResources

[[*id:is=`42`:then=`
[[!pdoResources:default=``?
   &context=`web2`
   &parents=`[[*id]]`
   &tpl=`web2tplGrid`
   &limit=`0`
   &depth=`0`
   &includeContent=`1`
   &showHidden=`1`
   &showUnpublished=`0`
   &sortby=`menuindex`
   &sortdir=`asc`
]]`:else=``]]

(showHidden ist bei pdoResources 1 vorgegeben)

web2tplGrid (Beispiel)

<div class="grid-item col-md-6">
[[+tv.Seitentitel:is=`ja`:then=`<h4>[[+longtitle:default=`[[+pagetitle]]`]]</h4>`:else=``]]
[[+introtext:notempty=`<span class="pull-right [[+introtext]]"></span>`]]
[[+content]]
</div>


getResources für aktuelle Events (mit tvFilters nach Datum Filtern)

[[!getResources:default=`Keine Events vorhanden`?
    &context=`web`
    &parents=`62`
    &tpl=`tplEvents`
    &limit=`20`
    &sortbyTV=`tvEventDateEnd`
    &sortdirTV=`asc`
    &sortby=``
    &includeContent=`1`
    &tvFilters=`tvEventDateEnd>=[[!getStrftime? &format=`%Y-%m-%d %H:%M`]]`
]]


dasselbe mit pdoResources

[[!pdoResources:default=`Keine Events vorhanden`?
    &context=`web`
    &parents=`62`
    &depth=`0`
    &tpl=`tplEvents`
    &limit=`20`
    &includeContent=`1`
    &showUnpublished=`0`
    &includeTVs=`tvEventDateEnd`
    &sortby=`tvEventDateEnd`
    &sortdir=`asc`
    &tvFilters=`tvEventDateEnd>=[[!getStrftime? &format=`%Y-%m-%d %H:%M`]]`
]]


getResources für eine One-Page Seite (alle Parent Ressourcen auf einer Seite zeigen)

[[getResources?
  &context=`web6`
  &parents=`0`
  &limit=`0`
  &depth=`0`
  &sortby=`menuindex`
  &sortdir=`asc`
  &includeTVs=`1`
  &processTVs=`1`
  &includeContent=`1`
  &tpl=`web6tplContent`]]


dasselbe mit pdoResources für eine One-Page Seite

[[pdoResources?
    &context=`web6`
    &parents=`0`
    &resources=`[[pdoMenu:striptags? &context=`web6` &parents=`0` &level=`0` &tpl=`@INLINE [[+id]]`]]`
    &depth=`0`
    &limit=`0`
    &tpl=`web6tplContent`
    &includeContent=`1`
    &showUnpublished=`0`
    &includeTVs=`tvClass,tvClassCol,tvGaleriePfad`
    &sortby=`menuindex`
    &sortdir=`asc`
]]

Hier muss auch der Parameter &resources angegeben werden, z.B.:
&resources=`351,367,350,349,358,365,370,352`

Ich Liste alle Ressourcen IDs dynamisch mit dem pdoMenu auf  :wink:




getResources Pagination mit getPage

[[!getPage:default=`Keine Events vorhanden`?
   &context=`web7`
   &element=`getResources`
   &elementClass=`modSnippet`
   &parents=`[[*id]]`
   &depth=`0`
   &limit=`5`
   &tpl=`tplEvents`
   &pageVarKey=`page`
   &pageFirstTpl=`<li class="control"><a[[+classes]][[+title]] href="[[+href]]">Erste</a></li>`
   &pageLastTpl=`<li class="control"><a[[+classes]][[+title]] href="[[+href]]">Letzte</a></li>`
   &dateFormat=`%Y-%m-%d`
   &includeContent=`1`
   &showHidden=`0`
   &includeTVs=`1`
   &sortbyTV=`tvEventDateEnd`
   &sortdirTV=`asc`
   &sortby=``
   &tvFilters=`tvEventDateEnd>=[[!getStrftime? &format=`%Y-%m-%d %H:%M`]]`
]]
</div>

[[!+page.nav:notempty=`
<div class="paging">
<ul class="pageList">
[[!+page.nav]]
</ul>
</div>
`]]


dasselbe mit pdoResources und pdoPage

[[!pdoPage:default=`Keine Events vorhanden`?
    &context=`web7`
    &element=`pdoResources`
    &parents=`[[*id]]`
    &depth=`0`
    &limit=`5`
    &tpl=`tplEvents`
    &pageLimit=`100`
    &includeContent=`1`
    &showUnpublished=`0`
    &includeTVs=`tvEventDateEnd`
    &sortby=`tvEventDateEnd`
    &sortdir=`asc`
    &tplPage=`@INLINE <li><a href="[[+href]]">[[+pageNo]]</a></li>`
    &tplPageWrapper=`@INLINE <div class="pagination"><ul class="pageList">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>`
]]

[[!+page.nav]]

(habe hier meine eigene ul-Klasse "pageList" eingetragen)




Parent Title Anzeigen

[[getResourceField? &id=`[[UltimateParent]]` &field=`menutitle`]]
dasselbe mit pdoField
[[*id:pdoField=`{"topLevel":1,"field":"menutitle"}`]]
oder
[[!pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`1`]]

Wenn Parent ID 42 ist, dann tu das

[[*id:pdoField=`{"topLevel":1,"field":"id"}`:is=`42`:then=`
tu das
`:else=`
sonst tu das
`]]




PS: Datum in einem Template von pdoResources ausgeben, z.B.
[[+publishedon:date=`%Y-%m-%d`]]
anstatt wie bei getResources
[[+publishedon:strtotime:date=`%Y-%m-%d`]]

#75
LINUX / Prüfsumme (Datensicherheit)
Letzter Beitrag von Jo - 2014-11-12 | 19:03:59
Hinweis 2018: Unter KDE 5.14 ist die Prüfsumme im Dolphin standardmäßig unter Dateieigenschaften prüfbar :wink:

In der Informationstechnik ist eine Prüfsumme (englisch checksum) eine Wert, mit dem die Integrität von Daten überprüft werden kann.

Oft geben z.B. Linux oder Firmware Anbieter eine Prüfsumme ihrer Datei an, um den Download sicherer zu machen.
Dann kann nach einem Download geprüft werden, ob die Datei komplett und ohne Fehler geladen wurde - bzw. nicht von einem Hacker verändert wurde.
Beispiel: linuxmintdeutsch (klickt auf das i am Ende jeder Zeile).

Die Prüfsumme kann per Terminal-Befehl md5sum berechnet werden.

Bei Linux Mint 17 Cinnamon geht das auch einfach per Kontextmenü im Dateimanager und wer KDE benutzt, kann sich solch ein Kontextmenü für den Dateimanager Dolphin selbst erstellen (getestet mit KDE Dolphin Version 4.13.3).

Kopiert die Datei checkmd5.desktop nach
/usr/share/kde4/services/ServiceMenus/
wenn alle User diese Funktion haben sollen, oder nach
/home/[BENUTZER]/.kde/share/kde4/services/ServiceMenus/
für bestimmte User.

checkmd5.desktop
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/all;
Icon=dialog-ok
Actions=checkmd5;
TryExec=md5sum

[Desktop Action checkmd5]
Name=Read md5 Checksum
Icon=dialog-ok
Exec=notify-send -i "dialog-ok" "Checksum" "`md5sum %F`"



Quelle: kde-apps.org

PS: Im Anhang seht ihr die Prüfsumme der ZIP-Datei "checkmd5.desktop.zip"
#76
LINUX / Lenovo G50
Letzter Beitrag von Jo - 2014-11-08 | 13:37:06
Notebook Lenovo G50 WLAN Probleme?

Euer WLAN funktioniert unter MINT 17 (Ubuntu 14.04 LTS) nicht oder ist lahm?

Wahrscheinlich liegt das Problem an dem Modul ideapad_laptop.

Zum testen einfach das Modul entladen:
sudo rmmod ideapad_laptop

und wenn das funktioniert, dann dauerhaft sperren:
echo "blacklist ideapad_laptop" | sudo tee -a /etc/modprobe.d/blacklist-ideapad.conf

:-[
#77
LINUX / Antw:Gambas3 aktualisieren
Letzter Beitrag von Jo - 2014-09-25 | 08:17:22
Es gibt eine neue PPA für Gambas 3 (Stable)

Siehe Thread zuvor, oder mit einer Befehlszeile im Terminal:
sudo add-apt-repository ppa:gambas-team/gambas3 && sudo apt-get update && sudo apt-get upgrade

Quelle: gambaswiki.org

Wenn ihr eine alte PPA benutzt und deswegen eine Fehlermeldung beim aktualisieren per Terminal
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
erhaltet, könnt ihr diese PPA am einfachsten per Synaptic-Paketverwaltung: Einstellungen Paketquellen > PPAs und Authentifizierungsschlüssel löschen.

PS: alles aufräumen
sudo apt-get autoclean
sudo apt-get autoremove

#78
LINUX / Antw:Raspberry Pi
Letzter Beitrag von Jo - 2014-06-28 | 17:12:38
Update OpenELEC/XBMC 3.x auf 4.0.6
Stand 2014-06-25

Ladet euch den aktuellen Raspberry Pi Builds OpenELEC V4.0.6 herunter und entpackt die Datei "OpenELEC-RPi.arm-4.0.6.tar".

Im Ordner "target" findet ihr die 4 Dateien: KERNEL, KERNEL.md5, SYSTEM und SYSTEM.md5

Per Dateibrowser öffnet man die Adresse von OpenELEC (smb://openelec oder IP smb:⁄⁄192.168.xxx.xxx) und kopiert diese 4 Dateien in den Ordner "Update". Dann startet ihr OpenELEC neu und das Update wird ausgeführt.

Fertig  :cool:
#79
LINUX / Update kleinBild3
Letzter Beitrag von Jo - 2014-06-28 | 14:23:52
Da sich das Farbmanagement bei ImageMagick (ab 6.7.5-5 und 6.8.0-3 ) geändert hat, gibt es ein wichtiges Update für mein Tool kleinBild3.

Bitte installiert euch die Version kleinBild3 V14.6.26 oder höher.

:biggrin:
#80
LINUX / GIMP 2.8 stable
Letzter Beitrag von Wasi - 2014-06-21 | 12:31:30
GIMP ist meine Gratis-Alternative zu Photoshop!

Hier die PPA für GIMP 2.8.10 stable (ist in Ubuntu 14.04 und Mint 17 enthalten - Stand Juni 2014):
sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade


Einen vergleichbaren Filter wie beim Photoshop CS5 "Content Aware Fill" gibt es auch für GIMP (ist nicht in der PPA):
sudo apt-get install gimp-resynthesizer
Den findet ihr dann unter Filter->Verbessern->Heal selection...

Mehr GIMP Plugins können aus der gleichen PPA installiert werden und enthält auch den gimp-resynthesizer (wenn installiert wird dieser dann entfernt):
sudo apt-get install gimp gimp-gmic gmic
sudo apt-get install gimp-plugin-registry



Tipp:
Mit GIMP 2.8 präsentiert sich das Grafikprogramm beim Start noch im alten Drei-Fenster-Modus.
Ein Klick auf Fenster->Einzelfenster-Modus stellt auf den "Ein-Fenster-Modus" um.

:cool: