<?php

/**
 * 开发专用
 */

namespace Module\Admin;

use Pyramid\Component\HttpFoundation\Response;
use Pyramid\Component\HttpFoundation\RedirectResponse;

trait Develop {
    
    /**
     * 开发面板
     * @access root
     * @route /admin/develop
     */
    public static function develop($request) {
        return new Response(render('/admin/develop.html'));
    }

    /**
     * 更新CCK信息
     * @access root
     * @route /admin/develop/cck
     */
    public static function cck($request) {
        if ($request->getMethod() == 'POST') {
            $connect = db_getconnection();
            $schemas = db_schema()->getSchema();
            $fields  = db_select('field_config', 'f')
                            ->fields('f')
                            ->execute()
                            ->fetchAll();
            foreach ($fields as $v) {
                $field = $connect->replacePrefix('{'.'data_' . $v->field_name.'}');
                if (isset($schemas[$field])) {
                    $config = array();
                    foreach ($schemas[$field] as $k => $vv) {
                        if (in_array($k, array('entity_type', 'entity_id', 'delta'))) {
                            continue;
                        }
                        $config[str_replace($v->field_name.'_', '', $k)] = $vv;
                    }
                    $data = array('columns' => $config,);
                    db_update('field_config')
                        ->fields(array('data' => serialize($data),))
                        ->condition('id', $v->id)
                        ->execute();
                }
            }
            return new Response('CCK更新完成');
        }
        return new Response(render('/admin/develop.cck.html', array(
            'data' => db_query("select id,entity_type,field_name,active from {field_config}")->fetchAll(),
        )));
    }

    /**
     * PHPINFO
     * @access root
     * @route /admin/develop/phpinfo
     */
    public static function phpinfo($request) {
        ob_start();
        phpinfo(29);
        $phpinfo = ob_get_contents();
        ob_end_clean();
        $phpinfo = preg_replace("/<style.+?<\/style>/is", '<style>pre{margin:0px;}.center table{margin:0 auto;text-align:left;}.center th{text-align:center !important;}.center td,.center th{border:1px solid #000;font-size:100%;padding:6px;}.center h1{font-size:150%;text-align:center}.center h2{font-size:125%;text-align:center}.p{text-align:left;}.e{background-color:#ccf;font-weight:bold;color:#000;}.h{background-color:#99c;font-weight:bold;color:#000;}.v{background-color:#ccc;color:#000;}.vr{background-color:#ccc;text-align:right;color:#000;}.center img{float:right;border:0px;}</style>', $phpinfo);
        return new Response(render('/admin/develop.phpinfo.html', array('data'=>$phpinfo)));
    }

}