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
09 feb 2012
- , youtube film in website , (Forumonderwerp) , annemie
- , userpoints vraagje , (Forumonderwerp) , jeroenenwendy
08 feb 2012
- , Vacature Webdeveloper , (Forumonderwerp) , JoHo Processen ...
- , node id opslaan in database , (Forumonderwerp) , Noikes , Reacties: 5
07 feb 2012
- , Civi en Drupal installatie gevraagd! , (Forumonderwerp) , Koen van Hees
- , kan niet meer inloggen na verhuizing website , (Forumonderwerp) , meppel001
- , Image slider/banner maken in Dp7 , (Forumonderwerp) , CrazyFly , Reacties: 2
- , migrate van subdir naar main directory , (Forumonderwerp) , Jaap3D
- , Filter criteria , (Forumonderwerp) , Lambert de Groot , Reacties: 2
06 feb 2012
- , Activity map aanmaken , (Forumonderwerp) , Samuël2013
- , Weergave forums beperken tot containers die dan uitklapbaar zijn , (Forumonderwerp) , vdwaetsy
- , - , (Forumonderwerp) , karel3s
- , Tokens weergeven in een node , (Forumonderwerp) , Mindhunter , Reacties: 1
05 feb 2012
- , content type, manage fields, veld tonen naar gelang van item selected , (Forumonderwerp) , LLMM
04 feb 2012
- , stappenplan maken.... , (Forumonderwerp) , Mindhunter