function replace_recursive($dir)
{
    $files = glob($dir . '/*');
    foreach ($files as $file) {
        if ($file == '.' || $file == '..') {
            continue;
        }
        if (is_dir($file)) {
            replace_recursive($file);
            continue;
        }
        if (substr($file, -4) !== '.php') {
            continue;
        }
        if (false !== strpos($file, 'replace_recursive.php')) {
            continue;
        }
        $orig = file_get_contents($file);
        $replaced = preg_replace("/([^#])require_once/", "\$1#require_once", $orig);
        if (strpos($file, 'Locale/Math.php') !== false) {
            $replaced = str_replace("#require_once 'Zend/Locale/Math/PhpMath.php';", "require_once 'Zend/Locale/Math/PhpMath.php';", $replaced);
        }
        if (strcmp($orig, $replaced) === 0) {
            continue;
        }
        $fp = fopen($file, 'w');
        fwrite($fp, $replaced);
        fclose($fp);
        echo "Changed '{$file}'\n";
    }
}
Exemplo n.º 2
0
function replace_recursive($data)
{
    global $oldUrl, $newUrl, $counter;
    if (is_array($data)) {
        foreach ($data as $key => $info) {
            if (!is_array($info) && !is_object($info)) {
                if (strpos($info, $oldUrl) !== false) {
                    $data[$key] = str_replace($oldUrl, $newUrl, $info);
                    $counter++;
                }
            } else {
                $data[$key] = replace_recursive($data[$key]);
            }
        }
    } elseif (is_object($data)) {
        foreach ($data as $key => $info) {
            if (!is_array($info) && !is_object($info)) {
                if (strpos($info, $oldUrl) !== false) {
                    $data->{$key} = str_replace($oldUrl, $newUrl, $info);
                    $counter++;
                }
            } else {
                $data->{$key} = replace_recursive($data->{$key});
            }
        }
    }
    return $data;
}
Exemplo n.º 3
0
    register_post_type($slug, $args);
}
add_action('init', 'custom_post_type_reusablemodule');
/**
 * Loops through all files in folder modules and adds them to the ACF repeater
 * */
if (function_exists("acf_add_local_field_group")) {
    // Loop over files in modules
    $moduleDefinitionsAbove = array();
    $moduleDefinitions = array();
    $files = glob(dirname(__FILE__) . "/../modules/*.php");
    $files = array_reverse($files);
    foreach ($files as $filename) {
        include $filename;
        $filename = explode("/", $filename);
        $className = str_replace(".php", "", $filename[count($filename) - 1]);
        if (substr($className, 0, 1) == "_") {
            continue;
        }
        // Skip the file if it begins with underscore
        $module = new $className();
        $moduleDefinition = $module->acfDefinition();
        $moduleDefinitions[] = $moduleDefinition;
        // Tweak module definition used above content. MUST: unique keys so we append ___top
        $moduleDefinitionAbove = $moduleDefinition;
        $moduleDefinitionAbove['sub_fields'] = replace_recursive($moduleDefinitionAbove['sub_fields'], 'key', '___top');
        $moduleDefinitionAbove['sub_fields'] = replace_recursive($moduleDefinitionAbove['sub_fields'], 'field', '___top');
        $moduleDefinitionsAbove[] = $moduleDefinitionAbove;
    }
    acf_add_local_field_group(array('key' => 'plant_layout_group', 'title' => 'Layout Group', 'fields' => array(array('key' => 'layout_group_rows', 'label' => 'Modules', 'name' => 'layout_group', 'type' => 'flexible_content', 'layouts' => $moduleDefinitionsAbove, 'button_label' => 'Add module', 'min' => '', 'max' => '')), 'location' => array(array(array('param' => 'post_type', 'operator' => '==', 'value' => 'post')), array(array('param' => 'post_type', 'operator' => '==', 'value' => 'page')), array(array('param' => 'post_type', 'operator' => '==', 'value' => 'reusablemodule'))), 'options' => array('position' => 'normal', 'layout' => 'no_box', 'hide_on_screen' => array()), 'menu_order' => 0));
}