Bonjour,
<?php
/*
Usage:
Copy clone_news.php in <xoops_root>
Change current working directory to <xoops_root>
Update mappings as per new modulename.
php -q clone_news.php
*/
// ##########################################################
// Define your mapping here
// ##########################################################
$patterns = array(
// first one must be module directory name
'news' => 'memo',
'NEWS' => 'memo',
'News' => 'Memo',
'stories' => 'memo_stories',
'topics' => 'memo_topics',
'_MI_' => '_MI01_',
'Articles' => 'Memo',
'getmoduleoption' => 'memogetmoduleoption',
'MygetItemIds' => 'memoMygetItemIds',
'CreateSiteNavBar' => 'memoCreateSiteNavBar',
'updateCache' => 'memoupdateCache',
'TableExists' => 'memoTableExists',
'FieldExists' => 'memoFieldExists',
'AddField' => 'memoAddField',
'is_admin_group' => 'memois_admin_group',
'make_infotips' => 'memomake_infotips',
'DublinQuotes' => 'memoDublinQuotes',
);
$patKeys = array_keys($patterns);
$patValues = array_values($patterns);
// work around for PHP < 5.0.x
if(!function_exists('file_put_contents')) {
function file_put_contents($filename, $data, $file_append = false) {
$fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
if(!$fp) {
trigger_error('file_put_contents cannot write in file.', E_USER_ERROR);
return;
}
fputs($fp, $data);
fclose($fp);
}
}
// recursive clonning script
function cloneFileFolder($path)
{
global $patKeys;
global $patValues;
$newPath = str_replace($patKeys[0], $patValues[0], $path);
if (is_dir($path))
{
// create new dir
mkdir($newPath);
// check all files in dir, and process it
if ($handle = opendir($path))
{
while ($file = readdir($handle))
{
if ($file != '.' && $file != '..')
{
cloneFileFolder("$path/$file");
}
}
closedir($handle);
}
}
else
{
if(preg_match('/(.jpg|.gif|.png|.zip)$/i', $path))
{
copy($path, $newPath);
}
else
{
// file, read it
$content = file_get_contents($path);
$content = str_replace($patKeys, $patValues, $content);
file_put_contents($newPath, $content);
}
}
}
cloneFileFolder('modules/news');
echo "Happy cloning...n";
echo "check directory modules/" . $patterns['news'] . " for cloned module n";
echo "Consider modifying new module by editing language/english/modinfo.php and images/" . $patterns['news'] . "_slogo.png manually (if you care)n";
?>
ou memo est le nom du clone, donc pour changer il suffit de le remplacer par celui que vous désirez, attention à respecter la casse !
@+