Packaging script voor drupal met nl, fr (& de?) vertalingen.
Op de laatste meeting ging ik zien of we op de nieuwe site drupal met reeds de nl en fr vertalingen in kunnen laten downloaden. De oplossing die ik zie is van via een module de nodige zaken te downloaden en te packagen en dit aan een node te hangen.
Dit is de code, het download de drupal distrib en de laatste nl vertaling en maakt er een .tar.gz van. Natuurlijk moet er nog gecheckt wordt of het een nieuwe versie is en zo maar het is het concept dat ik hier wil tonen. Zou dit iets zijn voor op de nieuwe drupal site?
Een probleem kan zijn dat er system() calls nodig zijn en dat allow_url_fopen moet aanstaan. Laat de nieuwe server dit toe?
<?php
function _drupalbe_get_module_version($module) {
$url = sprintf('http://updates.drupal.org/release-history/%s/6.x', urlencode($module));
$xml = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
$major = $xpath->query('//releases/release[1]/version_major')
->item(0)
->nodeValue;
$minor = $xpath->query('//releases/release[1]/version_patch')
->item(0)
->nodeValue;
return array($major, $minor);
}
function drupalbe_cron() {
//var_dump(_drupalbe_get_module_version('drupal'));
//if( > variable_get('drupalbe_download_patch_version', 0)
_drupalbe_build_package();
}
function _drupalbe_download($url, $target) {
$stream = fopen($url, 'rb');
file_put_contents($target, $stream);
fclose($stream);
}
function _drupalbe_build_package() {
$tmp_dir = sys_get_temp_dir() . '/drupalbe'; // . mt_rand();
mkdir($tmp_dir);
$drupal_version = _drupalbe_get_module_version('drupal');
$drupal_dir = $tmp_dir . '/drupal-' . implode('.', $drupal_version);
$nl_version = _drupalbe_get_module_version('nl');
$url = sprintf('http://ftp.drupal.org/files/projects/drupal-%s.tar.gz', implode('.', $drupal_version));
_drupalbe_download($url, $tmp_dir . '/drupal.tgz');
// PHP does not have built-in tar libraries.
system("tar xfz $tmp_dir/drupal.tgz -C $tmp_dir");
$url = sprintf('http://ftp.drupal.org/files/projects/nl-6.x-%s.tar.gz', implode('.', $nl_version));
_drupalbe_download($url, $drupal_dir . '/nl.tgz');
system("tar xfz $drupal_dir/nl.tgz -C $drupal_dir", $result);
unlink($drupal_dir . '/nl.tgz');
$cmd = "tar cfz $tmp_dir/drupal-" . implode('.', $drupal_version) . ".tar.gz -C $tmp_dir drupal-" . implode('.', $drupal_version);
var_dump($cmd);
system($cmd);
//system('rm -rf ' . $tmp_dir);
}
?>
Actuele inhoud
12 feb 2012
- , Tekst bij foto's , (Forumonderwerp) , Harrie
- , Kleuren , (Forumonderwerp) , Harrie
- , Er worden escape characters toegevoegd , (Forumonderwerp) , baltusf
- , Rekenhulp maken , (Forumonderwerp) , ebosch
- , Edit tabs invoegen in template , (Forumonderwerp) , Mindhunter
11 feb 2012
- , Artikel alleen lezen voor geregistreerden , (Forumonderwerp) , Hilde Jansen
10 feb 2012
- , Nieuwe module toevoegen , (Forumonderwerp) , snake , Reacties: 1
09 feb 2012
- , CKeditor zelf HTML en CSS toepassen in de code view , (Forumonderwerp) , DGNY
- , Parse error: syntax error , (Forumonderwerp) , ballooning4u , Reacties: 1
- , Views, inhoud van een cell , (Forumonderwerp) , LLMM
- , Webform Rules anoniem , (Forumonderwerp) , Juzzuu , Reacties: 1
- , Database moeten in stukken, hoe moet ik dit voor elkaar krijgen? , (Forumonderwerp) , GioV , Reacties: 7
- , youtube film in website , (Forumonderwerp) , annemie , Reacties: 4
- , userpoints vraagje , (Forumonderwerp) , jeroenenwendy
08 feb 2012
- , Vacature Webdeveloper , (Forumonderwerp) , JoHo Processen ...