كيف تقوم بنسخ استايل - للمساعدة في عمل استايلك الخاص



السلام عليكم ورحمة الله وبركاته ..

طريقة نسخ أي استايل لديك .. لتقوم بالتعديل على النسخة كما تشاء .. ^_^

هنا سيتم الشرح على استايل subsilver2 ويمكنك تطبيق الدرس على أي استايل تريد

وسيكون اسم الاستايل المنسوخ newstyle كمثال ^_^

أولاً : الطريقة اليدوية :

[1] قم بنسخ مجلد الاستايل styles/subsilver2 إلى styles/newstyle
[2] قم بتغيير اسم الاستايل داخل الملفات التالية إلى newstyle
styles/newstyle/style.cfg
styles/newstyle/imageset/imageset.cfg
styles/newstyle/template/template.cfg
styles/newstyle/theme/theme.cfg

مبروك الاستايل الجديد .. قم بالتعديل عليه كما تشاء ^_^ ..

ثانياً : الطريقة الأوتوماتيكية :

قم بعمل ملف يحمل اسم clone.php داخل المجلد styles ويحتوي على الكود التالي :
كود PHP:

<?php  
 
$src 
'subsilver2';  
$dst 'newstyle';  
 
$ln = isset($_SERVER['HTTP_HOST']) ? '<br />' "\n";  
 
echo 
'Copying '$src' to '$dst'...'$ln;  
 
$files = array();  
get_files($src'/');  
 
function 
get_files($base$dir)  
{  
   global 
$files;  
   
$res opendir($base $dir);  
   while((
$file readdir($res)) !== false)  
   {  
       if(
$file !== '.' && $file !== '..')  
       {  
           if(
is_dir($base $dir $file))  
           {  
               
get_files($base$dir $file '/');  
           }  
           else  
           {  
               
$files[] = $dir $file;  
           }  
       }  
   }  
   
closedir($res);  
}  
 
for(
$i=0$i<count($files); $i++)  
{  
   
clone_file($src$dst$files[$i]);  
}  
 
function 
clone_file($src$dst$file)  
{  
   
$new $dst str_replace($src$dst$file);  
   
$data = @file_get_contents($src $file);  
   
$list explode('.'strtolower($file));  
   
$ext $list[count($list) - 1];  
    if(
$ext === 'html' || $ext === 'cfg' || $ext === 'css' || $ext ===  'php' || $ext === 'txt' || $ext === 'js' || $ext === 'htm')  
   {  
       
$data str_replace($src$dst$data);  
   }  
   
$dirname dirname($new);  
   if(
strlen($dirname) && !@file_exists($dirname))  
   {  
       
$list explode('/'$dirname);  
       
$str '';  
       for(
$i=0$i<count($list); $i++)  
       {  
           
$str .= (strlen($str) ? '/' '') . $list[$i];  
           if(!@
file_exists($str))  
           {  
               if(!@
mkdir($str0777))  
               {  
                   echo 
'Cannot write cache file "' $new '".'$ln;  
                   return;  
               }  
           }  
       }  
   }  
   
$f = @fopen($new'w');  
   if(!
$f)  
   {  
       echo 
'Cannot write cache file "' $new '".'$ln;  
       return;  
   }  
   
fputs($f$data);  
   
fclose($f);  
   
chmod($new0777);  
   
touch($newfilemtime($src $file));  
}  
 
echo 
'done!';  
 
?>
مع تغيير اسم الاستايل في السطر الثالث إلى الاستايل الذي تريد النسخ منه ..
وتغيير اسم الاستايل في السطر الرابع إلى اسم الاستايل الذي النسخ إليه ..