Вход Регистрация
Файл: htmlpurifier-4.3.0/maintenance/rename-config.php
Строк: 128
#!/usr/bin/php
<?php

chdir
(dirname(__FILE__));
require_once 
'common.php';
require_once 
'../library/HTMLPurifier.auto.php';
assertCli();

/**
 * @file
 * Renames a configuration directive.  This involves renaming the file,
 * adding an alias, and then regenerating the cache.  You still have to
 * manually go through and fix any calls to the directive.
 * @warning This script doesn't handle multi-stringhash files.
 */

$argv = $_SERVER['argv'];
if (
count($argv) < 3) {
    echo 
"Usage: {$argv[0]} OldName NewNamen";
    exit(
1);
}

chdir('../library/HTMLPurifier/ConfigSchema/schema');

$old = $argv[1];
$new = $argv[2];

if (!
file_exists("$old.txt")) {
    echo 
"Cannot move undefined configuration directive $oldn";
    exit(
1);
}

if (
$old === $new) {
    echo 
"Attempting to move to self, abortingn";
    exit(
1);
}

if (
file_exists("$new.txt")) {
    echo 
"Cannot move to already defined directive $newn";
    exit(
1);
}

$file = "$old.txt";
$builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
$interchange = new HTMLPurifier_ConfigSchema_Interchange();
$builder->buildFile($interchange, $file);
$contents = file_get_contents($file);

if (
strpos($contents, "rn") !== false) {
    
$nl = "rn";
} elseif (
strpos($contents, "r") !== false) {
    
$nl = "r";
} else {
    
$nl = "n";
}

// replace name with new name
$contents = str_replace($old, $new, $contents);

if (
$interchange->directives[$old]->aliases) {
    
$pos_alias = strpos($contents, 'ALIASES:');
    
$pos_ins = strpos($contents, $nl, $pos_alias);
    if (
$pos_ins === false) $pos_ins = strlen($contents);
    
$contents =
        
substr($contents, 0, $pos_ins) . ", $old" . substr($contents, $pos_ins);
    
file_put_contents($file, $contents);
} else {
    
$lines = explode($nl, $contents);
    
$insert = false;
    foreach (
$lines as $n => $line) {
        if (
strncmp($line, '--', 2) === 0) {
            
$insert = $n;
            break;
        }
    }
    if (!
$insert) {
        
$lines[] = "ALIASES: $old";
    } else {
        
array_splice($lines, $insert, 0, "ALIASES: $old");
    }
    
file_put_contents($file, implode($nl, $lines));
}

rename("$old.txt", "$new.txt") || exit(1);
Онлайн: 2
Реклама