示例#1
0
文件: cms.php 项目: ramainen/doit-cms
/**
 * Обработчик ошибок, возникающих при работе функций любого типа (шаблоны, функции и т.д.)
 *
 * @param $output Ошибочный вывод.
 * @return string Информация об шибке
 */
function doit_ob_error_handler($output)
{
    $error = error_get_last();
    if ($error['type'] == 1) {
        $parent_function = d()->_active_function();
        if (d()->db->errorCode() != 0) {
            $db_err = d()->db->errorInfo();
            $_message = '<br>Также зафиксирована ошибка базы данных:<br>' . $db_err[2] . " (" . $db_err[1] . ")";
            if (iam('developer')) {
                if ($db_err[1] == '1146') {
                    $_message .= '<br> Создать таблицу <b>' . h(d()->bad_table) . '</b>? <form method="get" action="/admin/scaffold/new" style="display:inline;" target="_blank"><input type="submit" value="Создать"><input type="hidden" name="table" value="' . h(d()->bad_table) . '"></form> ';
                }
                if ($db_err[1] == '1054') {
                    //Попытка создать столбик для таблицы
                    //Unknown column 'user_id'
                    $_column_name = array();
                    if (preg_match_all("/Unknown\\scolumn\\s\\'(.*?)\\'/", $db_err[2], $_column_name) == 1) {
                        $_column_name = $_column_name[1][0];
                        $_message .= '<br> Создать столбец <b>' . h($_column_name) . '</b> в таблице ' . h(d()->bad_table) . '? <form method="post" action="/admin/scaffold/create_column" style="display:inline;" target="_blank"><input type="submit" value="Создать"><input type="hidden" name="table" value="' . h(d()->bad_table) . '"><input type="hidden" name="column" value="' . h($_column_name) . '"></form> ';
                    }
                }
                $_message .= '<br> Провести обработку схемы? <form method="get" action="/admin/scaffold/update_scheme" style="display:inline;" target="_blank"><input type="submit" value="Провести"></form><br>';
            }
        }
        $errfile = substr($error['file'], strlen($_SERVER['DOCUMENT_ROOT']));
        return print_error_message(' ', $error['line'], $errfile, $error['message'], 'Ошибка при выполнении функции ' . $parent_function . ' ' . $_message);
    }
    return $output;
}
 function edit()
 {
     if (!iam('admin') && !iam('developer')) {
         return 'Только главный администратор может управлять доступом.';
     }
     if (url(4) != 'add') {
         d()->user = d()->Admin_user(url(4));
         if (d()->user->is_empty) {
             return 'Пользователь не найден';
         }
     } else {
         d()->user = d()->Admin_user->limit(0);
     }
     print d()->view();
 }
示例#3
0
function admin_generate_scheme()
{
    $non_migrate_columns = array('id', 'sort', 'admin_options', 'multi_domain');
    if (!iam('developer')) {
        return 'Производить генерацию схемы могут только разработчики';
    }
    set_time_limit(0);
    header("Content-Disposition: attachment; filename=schema.ini");
    header("Content-Type: application/octet-stream");
    header("Content-transfer-encoding: binary");
    $tables = d()->db->query('SHOW TABLES')->fetchAll();
    foreach ($tables as $row) {
        print "[schema.{$row[0]}]\r\n";
        $columns = d()->db->query('SHOW COLUMNS FROM ' . DB_FIELD_DEL . $row[0] . DB_FIELD_DEL)->fetchAll();
        $printed_array = array();
        foreach ($columns as $column) {
            if (!in_array($column['Field'], $non_migrate_columns)) {
                $printed_array[] = $column['Field'];
            }
        }
        sort($printed_array);
        foreach ($printed_array as $column) {
            print "{$column}\r\n";
        }
    }
    //d()->Scaffold->update_scheme();
    //print d()->view();
}
示例#4
0
</a></li>
		<?php 
        }
        ?>
	<?php 
    }
    ?>
        
		
		
    	
    </ul>
  </li>

		<?php 
    if (iam('developer')) {
        ?>
		  
				  <li>
			<a href="#"
				  
				 >
				  Скаффолдинг
				  
			</a>
			<ul >
			
			
			<li><a target="_blank" href="/admin/scaffold/new">Создать</a></li>