25/9/2011

Vergelijk met Komparator4

Filed under: — cybrarian @ 12:30 am

Vergelijken van directories
“Vergelijk mijn documentenmap op mijn laptop met die van mijn desktopcomputer (om ze bij te werken)”.
“Vergelijk mijn html-map op mijn laptop met die van mijn website op de server bij mijn hosting provider.”

Een Linuxgebruiker denkt dan waarschijnlijk aan “sync”, een commandolijn bevel dat gebruikt kan worden in scripts, om bv backups te maken.

Maar Linux Desktopgebruikers bedoelen de vraag anders; ze willen een programma waarbij zowel de besturing, als de instelling en de feedback in een desktopprogramma gebeuren.

Je kan een programma gebruiken zonder je in de handleiding of opsomming van de paramters te verdiepen (wat daarom niet efficienter is, maar voor eenmalig gebruik is dat niet altijd belangrijk). Je kan een programma gebruiken zonder kennis van de “command prompt”. Maar bovenal krijg je van bij het instellen visueel feedback en de mogelijkheid bij te sturen.

Komparator
Komparator voor Linux is een programma voor KDE, liefst minstens versie 4.3. In OpenSuse 11.3 (= KDE 4.4) komt Komparator4 voor in de lijst van te installeren programma’s (in system/ configuration/ install-remove software), en installeert als versie 0.5, de info vermeldt Georg Hennig als auteur.

Tegen mijn verwachting in opent het geen venster met twee luiken, een voor ieder systeem (zoals in mc), maar slechts 1 venster, met bovenaan een drietal instellingen. Voor de instellingen heb je tabbladen Basis zoekbewerkingen, Uitgebreide zoekbewerkingen, en algemene instellingen:

Onderste helft van het scherm heb je tabbladen voor (vrij vertaald) “Dubbel voorkomende bestanden”, “Ontbrekende bestanden”, en “Nieuwere bestanden”; het staat standaard op het eerste tabblad “Duplicate Files”; als ik het scherm beter bekijk is het onderaan onderverdeeld in een bovenste en onderste helft. Voor de andere tabbladen krijg je wel een opsplitsing links-rechts venster.

Je moet natuurlijk de twee mappen opgeven die je wil vergelijken; dat gebeurt door een URL op te geven, ofwil intikken, ofwel op de knop van het mapje klikken, en door je mappen te bladeren als in de bestandsbeheerder (Konqueror/Dolphin).

Spijtig dat de URL niet onthouden wordt zoals in Firefox; dat zou handig zijn als je terug naar dezelfde plek moet als vorige keer. Je kan wel instellingen bewaren, dus zo erg is het niet; je kan zelf de laatse instellingen als “standaard” zetten met een klik op de “save”-knop; dan heb je hetzelfde effect.

Gelukkig kan je het uit Konqueror bekende “fish” protocol gebruiken; je vergelijkt bv je eigen systeem in URL 1:

/home/cybrarian/Documents/project1

met dat van je laptop:

fish://cybrarian@192.168.1.55/home/cybrarian/Documents/project1

Fish gebruikt “secure shell”, op de commandolijn als “ssh” bekend, en wordt als veiliger beschouwd dan “ftp”.

De URL-lijn is soms niet lang genoeg, en helaas rekt ze niet oneindig mee uit met het rekken van het venster. Voor een struktuur als
“fish://cybrarian@192.168.1.55/home/cybrarian/Documents/Projects”
is ze al te kort om nog tot subdirectories te kunnen zien. Je kan het nog wel ingeven zonder het einde van de lijn te zien, na ingave zie je het einde van de ingegeven lijn en kom je er toch door.

Pro is zeker dat er een soort “tab”-automatisch aanvullen mogelijk is, zoals op de Linux commandolijn.

Na het aktiveren wordt duidelijk waarom op het eerste scherm geen twee mappen naast elkaar worden weergegeven; het zijn de bestanden die in allebei de systemen exact hetzelfde voorkomen.

Het tabblad “Missing files” moet je even bekijken; het toont bv links niet de bestanden die “missen”, maar wel de bestanden die er “meer zijn dan rechts”, of de bestanden die rechts missen! Omgekeerd staat rechts wat links mist. Eigenlijk zou het tabblad dus “Extra” moeten heten; het toont wat er extra is links en wat er extra is rechts.

Het tabblad “Newer files” is dan weer niet helemaal duidelijk; ik zie links en rechts dezelfde bestanden staan; links staan ze blauw, rechts in gewoon zwarte tekst; ik moet naar de datum gaan kijken om te zien welke “nieuwer” zijn. De nieuwere zijn ook niet altijd groter, maar daar wordt niet naar gekeken hier.

Pro is zeker ook dat de Permissions, de bestandseigenschappen die de rechten weergeven, in de laaste kolom in iedere bestandslijst getoond worden; zowel links als rechts.

Versie
Het programma heeft opvallend genoeg een versie nummer dat begint met “nul komma”; dat wil zeggen dat het niet als volwaardig afgewerkt programma wordt beschouwd door de maker ervan.

Als je de evolutie wil volgen kan je terecht op:

http://kde-apps.org/content/show.php?content=116039

Waar ik bv leer wat verschilt in de volgende versie:

Changelog:
0.6
===
* run KIO commands from GUI thread as KIO is not thread-save (fix random crashes)
* workaround for random crashes when deleting files

Hieronder nog wat screenshots …


20/9/2011

Drupal7: Als mooie URL’s niet werken

Filed under: — cybrarian @ 9:27 pm

Als in Drupal de mooie URL’s niet werken, maw als je geen http://localhost/drupal/node/2 in de URL kan gebruiken, heb je enkel de vorm met http://localhost/?q=node/3. Die werkt ook natuurlijk, maar om de gemakkelijkere vorm te kunnen gebruiken, als is het maar om als beheerder snel naar een bepaalde inhoud te gaan, moet de “rewrite” werken. Ook voor opgeven van URL’s binnen Drupal, bv in de visibility settings. In een standaardinstallatie van bv openSuSe 11.3, 12.1 is dat niet het geval; mod_rewrite voor Apache is wel mee geïnstalleerd, maar niet aktief.
Ps: Check eerst of de .htaccess file bestaat, bv wel/niet mee gekopieerd werd naar htdocs/

Kort samengevat moet je volgende doen:

Wijzig als root de configuratiefile van de webserver, bv met
mcedit /etc/sysconfig/apache2

Zoek naar de lijn waarin de huidig werkende modules staan opgesomd; bv:

APACHE_MODULES=”suexec access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif userdir ssl php4″

Voeg in die lijn “rewrite” toe, bv met een spatie achter “php4”

Bewaren.

Een deel van de configuratiebestanden van Apache worden gegenereerd; draai daarom als root “suseconfig”. Dat geeft feedback ongeveer eindigend als volgt:


Executing /sbin/conf.d/SuSEconfig.gtk2…
Executing /sbin/conf.d/SuSEconfig.ispell…
Executing /sbin/conf.d/SuSEconfig.permissions…
Executing /sbin/conf.d/SuSEconfig.postfix…
Setting up postfix local as MDA…
Executing /sbin/conf.d/SuSEconfig.words…
Finished.

Herstart de webserver om de configuratiebestanden te laten lezen en toepassen:

/etc/init.d/apache2 restart

Controleer of de module nu voorkomt met apache2ctl -M:

apache2ctl -M

Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
actions_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_default_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dir_module (shared)
env_module (shared)
expires_module (shared)
include_module (shared)
log_config_module (shared)
mime_module (shared)
negotiation_module (shared)
setenvif_module (shared)
ssl_module (shared)
userdir_module (shared)
php5_module (shared)
rewrite_module (shared)
Syntax OK

Ook in phpinfo() zou de module nu zichtbaar moeten zijn in de pagina waarin je dat zet.
echo "< ?php phpinfo(); ?>" > htdocs/phpinfo.php
(niet laten staan op een publieke server – die info is voor iedereen nuttig).

Nu moet de webserver toestemming geven voor het gebruik van .htaccess bestanden.

Wijzig het instellingen-bestand bv met:

mcedit /etc/apache2/default-server.conf

Zoek naar AllowOverride of naar de lijnen:

AllowOverride None

vervang die laatste door

AllowOverride All

Bewaar het instellingenbestand, en genereer de configuratiebestanden en laat ze lezen door de webserver:

SuSEconfig
/etc/init.d/apache2

Nu moet je een .htaccess file maken, in de directory van je drupal installatie
(bij nieuwe drupal is na uitpakken .htaccess bestand aanwezig maar het wordt soms niet mee ge-upload omdat het “onzichtbaar” staat)
of aanpassen als het bestaat; check met
/srv/www/htdocs/drupal # cat .htaccess

dat er bv zo uitziet:

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.

Order allow,deny

# Don’t show directory listings for URLs which map to a directory.
Options -Indexes

# Follow symbolic links in this directory.
Options +FollowSymLinks

# Multiviews creates problems with aliased URLs and is not needed for Drupal.
Options -Multiviews

# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php

# Force simple error message for requests for non-existent favicon.ico.

# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 “The requested file favicon.ico was not found.

# Set the default handler.
DirectoryIndex index.php index.html index.htm

# Override PHP settings that cannot be changed at runtime. See
# sites/default/default.settings.php and drupal_initialize_variables() in
# includes/bootstrap.inc for settings that can be changed at runtime.

# PHP 5, Apache 1 and 2.

php_flag magic_quotes_gpc off
php_flag magic_quotes_sybase off
php_flag register_globals off
php_flag session.auto_start off
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation off

# Requires mod_expires to be enabled.

# Enable expirations.
ExpiresActive On

# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600

# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off

# Various rewrite rules.

RewriteEngine on

# Block access to “hidden” directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or
# Git to store control files. Files whose names begin with a period, as well
# as the control files used by CVS, are protected by the FilesMatch directive
# above.
#
# NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is
# not possible to block access to entire directories from .htaccess, because
# is not allowed here.
#
# If you do not have mod_rewrite installed, you should remove these
# directories from your webroot or otherwise protect them from being
# downloaded.
RewriteRule “(^|/)\.” – [F]

# If your site can be accessed both with and without the ‘www.’ prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the ‘www.’ prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the ‘www.’ prefix,
# (http://example.com/… will be redirected to http://www.example.com/…)
# uncomment the following:
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#
# To redirect all users to access the site WITHOUT the ‘www.’ prefix,
# (http://www.example.com/… will be redirected to http://example.com/…)
# uncomment the following:
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]

# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /

# Pass all requests not referring directly to files in the filesystem to
# index.php. Clean URLs are handled in drupal_environment_initialize().
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.

# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ – [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ – [T=text/javascript,E=no-gzip:1]

# Serve correct encoding type.
Header append Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding

# $Id: .htaccess,v 1.111 2010/11/23 02:59:05 dries Exp $

In Drupal,
http://localhost/drupal/?q=admin/config/search/clean-urls
Toont het scherm:

Home » Administration » Configuration » Search and metadata

Clean URLs
[ ] Enable clean URLs
Use URLs like example.com/user instead of example.com/?q=user.

(Save Configuration)

Daarna zouden de schuine streepjes moeten werken in de URL’s.

Referenties:

http://drupal.org/node/15365
http://enarion.net/web/htaccess/mod_rewrite-on-suse/
http://drupal.org/node/5590

13/9/2011

Drupal 7 : terminologie en concepten

Filed under: — cybrarian @ 9:06 pm

Hieronder eerste een opsomming van termen die gebruikt worden bij het werken met Drupal (7), eronder verklaring van een aantal begrippen of concepten.

Terminologie (opsomming)

node
block
comment
bundle : entity type + velden + configuratie
files
taxonomie terms & vocum
users
CCK / Content Construction Kit
Fields (module) :CCK
Theme
field instance setting; bv het label (CCK )
inhoudstype:

veldtype:

  • imagefield
  • Filefield
  • Link
  • Date
  • email
  • Embedded media field (flickr, youtube..)

weight: gewicht om plaats van item op scherm te bepalen.
menu; standaard:

  • Main menu
  • Management
  • Navigation
  • User menu

weight
region: plek op het scherm (in standaard theme):

  • Header (bovenste rij naast logo en onder login)
  • Featured (eerste rij onder menu “Home” enz tabs)
  • Sidebar first (mogelijk als eerste linkse kolom)
  • Highlighted (tussen sidebars first en second)
  • Sidebar second (mogelijk als rechtse kolom)
  • (Home) Help (mogelijk boven de eigenlijk inhoud, onder highlighted)
  • Content (eigenlijke inhoud)
  • Triptych first (afsluiter onder artikel als linkse kolom)
  • Triptych middle (afsluiter onder artikel als middelste kolom)
  • Triptych last (afsluiter onder artikel als rechtse kolom)
  • Footer first column (Eerste lijn van de footer; kolom 1)
  • Footer second column (Eerste lijn van de footer; kolom 2)
  • Footer third column (Eerste lijn van de footer; kolom 3)
  • Footer fourth column (Eerste lijn van de footer; kolom 4)
  • Footer (onderste footerlijn)

Hierboven de opsomming van termen die gebruikt worden bij het werken met Drupal (7), hieronder de verklaring van een aantal begrippen of concepten.

Begrippen en Concepten

article
Artikel is een node die inhoud (tekst, ..) bevat, die aangemaakt wordt door een gebruiker (die daar de rechten voor heeft). Artikel is als inhoudsvorm bedoeld voor nieuwsberichten, blog berichten, enz.; normaal vormt een artikel onderdeel van een in de tijd opeenvolgende reeks artikels.

Taxonomy:
Labels die aan inhoud worden gehangen om hun samenhang aan te tonen met andere inhoud; “tagging of content” (term, tags, vocabulary)

Comment:
Comment is een reaktie op een inhoud; bv
– article comment,
– basic page comment
– forum comment
Comment is zelf niet van het type node!

Views:
(views module – simpleviews module)
– lijst met titels, stukje van inhoud, afbeelding..
– RSS feeds
– als pagina of als blok

Block:
Site onderdeel dat bedoeld is deel uit te maken van de struktuur, en aldus herhaald te worden op meer websitepagina’s; meestal verwijst het naar een ander deel van de site (bv inhoudstabel, menu met links), maar het kan ook gewone tekst bevatten als contactgegevens bv. Een “block” wordt in een “region” gezet. Dit gebeurt per “theme”; dus voor het admin theme kan het op een andere plaats terechtkomen dan voor de gewone bezoeker.
ps: een block is geen node!

Node
Drupal ziet alle door gebruikers gemaakte inhoud voor publicatie als een node. Een page, een post, een news item: allemaal “nodes”.
In tegenstelling daarmee géén nodes: een comment, een block.
De node wordt getoond in een struktuur, de structuur van de site wordt gemaakt met views, blocks en menu’s,

De hierarchie van Drupal:

Datapool (node) – Module – block/menu – user (permission) – Template

  • Datapool: bv de data van de nodes ; laagste niveau
  • Module: programmering, functies, bepaalt mogelijkheden site
  • Block / Menu: geeft (selectie-combinatie) van inhoud weer; kan worden gebruikt op verschillende plaatsen in theme, kan ook beperkt worden in zijn uitvoer voor bepaalde pagina’s/gebruikers (volgens visibility settings).
  • User permissions: wie kan/ziet wat. Eerst wordt een “rol” gedefinieerd, daarna krijgen gebruikers een rol toegewezen.

Theme/skin; xhtml, css, php variabelen.

Visibility Settings:
Bijkomende instellingen van bv een “block”; je kan fijntunen om het blok zichtbaar te maken met uitzonderingen; toon overal behalve op een gedefinieerde pagina of toon enkel op bepaalde pagina. Het doel van de setting kan zijn: een bepaalde node, een theme, een usergroup, een user. Het idee is het block enkel te tonen waar het zin heeft, en niet perse altijd overal te tonen. Bv: een ingelogde admin moet niet altijd het block met contactgegevens op het scherm hebben.

Menu:
Er zijn verschillende soorten menu’s voorzien; main, management, navigation, user.

  • main: er is een algemeen menu voor de site (bv: menu-items “Blogposts, Over ons, Diensten” leiden naar de hoofd-onderdelen van de site).
  • management: er is een menu voor de administrators dat enkel zichtbaar is als ze ingelogd zijn met die rechten, en dat linkt naar allerlei instellingen en onderhoudsschermen.
  • navigation: menu voor de bezoekers van de site; de links erin evolueren met de opbouw van de site, sommige modules vullen het aktief aan.
  • user: er is een gebruikersmenu; eenvoudigste mogelijk is “login/logout”, maar kan ook “mijn profiel” bevatten om publieke gebruikersgegevens te laten wijzigen.

Menu’s kunnen bijgemaakt worden, hebben eigenschappen als naam, beschrijving, kunnen sub-menu’s krijgten, en worden als block ingesteld om te gebruiken op de site. ()

weight
Overal waar Drupal de mogelijkheid heeft om de volgorde van items te kiezen, wordt gebruik gemaakt van een eigenschap “gewicht”. Die kan je zelf aan de items “hangen” door een getal in te geven; een groter getal is meer gewicht dus zakt het dieper naar beneden (eigenaardigheid: de getallen staan negatief; -50 zakt dieper dan -30)

Theme: bepaalt uitzicht (niet inhoud) voor bezoekers (skin)

Book
Een node kan aangemaakt worden van het type “book page”; pagina van een boek. Vanop de eerste pagina kan je het tabblad “Outline” kiezen; bij “book outline”, onder “book”: “new book”; waarop de huidige pagina de hoofdpagina van het book wordt.

This is the top-level page in this book.

Je krijgt bij de pagina volgende nieuwe links:

* Add child page
* Printer-friendly version

Een nieuwe book-page krijgt de mogelijkheid om bij outline dit “book” te kiezen (titel van deze pagina komt in drop-down lijst).
Bij meer pagina’s krijg je onderaan het bladermechanisme van het boek: je kan van de ene pagina naar de volgende gaan, en terug naar de vorige in de betekenis bepaald door het “boekbinden”. In het midden krijg je de link “up” die naar de eerste pagina gaat.

CCK: Content Construction Kit: zelf bijmaken van velden in de databank om eigen inhoud toe te voegen.
bundle (CCK): entity type + velden + configuratie

Powered by WordPress