Вышел phpBB 3.1 Beta Release [обсуждаем]
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Вышел phpBB 3.1 Beta Release [обсуждаем]
Обсуждаем выход phpBB 3.1 Beta1 Release и другие beta-релизы.
Скачать свежий языковой пакет для текущей бета-версии можно по прямой ссылке: ascraeusrupack.zip.
Скачать свежий языковой пакет для текущей бета-версии можно по прямой ссылке: ascraeusrupack.zip.
-
- phpBB 2.0.0
- Сообщения: 209
- Стаж: 13 лет 1 месяц
- Благодарил (а): 3 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
А при конвертации 3.0.12 в 3.1 стиль подхватится или не будет нормально работать?
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Если обновите стиль до совместимого с 3.1, то будет работать.
-
- phpBB 2.0.0
- Сообщения: 209
- Стаж: 13 лет 1 месяц
- Благодарил (а): 3 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Получается, если стиль не дорабатывался автором, то на 3.1 ему делать будет нечего и все установки по нему тю-тю?rxu писал(а):Если обновите стиль до совместимого с 3.1, то будет работать.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Дорабатывался или нет - без разницы. Стиль должен быть обновлен и совместим с 3.1. Старый работать на 3.1 не будет.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Работа была начата тут https://github.com/phpbb/phpbb/pull/666 но потом автор ее забросил, и PR закрыли. Можете посмотреть на комменты и оцениться?Борис Бердичевский писал(а):Я балдею от этих разработчиков. Несколько лет обсуждали мою разработку для SQLite 3. И в результате -- ноль эффекта
-
- phpBB 3.0.0 RC1
- Сообщения: 1457
- Стаж: 17 лет 3 месяца
- Откуда: Израиль, Беэр-Шева
- Благодарил (а): 28 раз
- Поблагодарили: 53 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
rxu
я у себя это сделал, и это работает, для версии бета-2. За исключением одной небольшой минорной проблемки.
Добавлено спустя 12 минут 33 секунды:
Проблемка в том, что при инсталляции выдаёт кучу ненужных сообщений (ворнингов):
Добавлено спустя 19 минут 22 секунды:
Это моя последняя версия драйвера /phpbb/db/driver/sqlite.php
*** уже не последняя, я уже кое-что исправил! ***
Добавлено спустя 1 час 49 минут 59 секунд:
я у себя это сделал, и это работает, для версии бета-2. За исключением одной небольшой минорной проблемки.
Добавлено спустя 12 минут 33 секунды:
Проблемка в том, что при инсталляции выдаёт кучу ненужных сообщений (ворнингов):
Код: Выделить всё
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_acl_groups
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_acl_groups
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_acl_groups
....
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_zebra
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_zebra
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_zebra
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/db/driver/sqlite.php on line 168: SQLite3::query(): Unable to prepare statement: 1, no such table: phpbb_zebra
[phpBB Debug] PHP Warning: in file [ROOT]/install/index.php on line 423: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3801)
[phpBB Debug] PHP Warning: in file [ROOT]/install/index.php on line 424: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3801)
[phpBB Debug] PHP Warning: in file [ROOT]/install/index.php on line 425: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3801)
[phpBB Debug] PHP Warning: in file [ROOT]/install/index.php on line 426: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3801)
Это моя последняя версия драйвера /phpbb/db/driver/sqlite.php
*** уже не последняя, я уже кое-что исправил! ***
Код: Выделить всё
<?php
/**
*
* @package dbal
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace phpbb\db\driver;
/**
* Sqlite Database Abstraction Layer
* Minimum Requirement: 2.8.2+
* But really support 3.7 only!
* @package dbal
*/
class sqlite extends \phpbb\db\driver\driver
{
var $connect_error = '';
var $db=0;
var $query_result_objs = array();
var $query_result_counter = 0;
var $int_query;
var $n_count = 20; /* count oa attemts */
var $n_msec = 250000; /* time-out in millisecons (bisyTimeout)*/
function set_result($result, $result_id)
{
$this->query_result_objs[$result_id] = $result;
}
function get_result($result_id)
{
return $this->query_result_objs[$result_id];
}
function delete_result($result_id)
{
if( isset($this->query_result_objs[$result_id]) && is_object($this->query_result_objs[$result_id]))
$this->query_result_objs[$result_id]->finalize();
unset($this->query_result_objs[$result_id]);
}
/**
* Connect to server
*/
function sql_connect($sqlserver, $sqluser, $sqlpassword, $database, $port = false, $persistency = false, $new_link = false)
{
//.global $cache;
//$cache = NULL;
$this->persistency = $persistency;
$this->user = $sqluser;
$this->server = $sqlserver . (($port) ? ':' . $port : '');
$this->dbname = $database;
try{
$this->db = new \SQLite3($this->server);
$this->db_connect_id = 1;
$this->db->exec('PRAGMA short_column_names = 1');
} catch (Exception $error) {
$this->connect_error = $error;
return array('message' => $error);
}
return true;
}
/**
* Version information about used database
* @param bool $raw if true, only return the fetched sql_server_version
* @param bool $use_cache if true, it is safe to retrieve the stored value from the cache
* @return string sql server version
*/
function sql_server_info($raw = false, $use_cache = true)
{
global $cache;
if (!$use_cache || empty($cache) || ($this->sql_server_version = $cache->get('sqlite_version')) === false)
{
$vers = $this->db->version();
$this->sql_server_version = $vers["versionString"];
if (!empty($cache) && $use_cache)
{
$cache->put('sqlite_version', $this->sql_server_version);
}
}
return ($raw) ? $this->sql_server_version : 'SQLite ' . $this->sql_server_version;
}
/**
* SQL Transaction
* @access private
*/
function _sql_transaction($status = 'begin')
{
switch ($status)
{
case 'begin':
return $this->db->query('BEGIN');
break;
case 'commit':
return $this->db->query('COMMIT');
break;
case 'rollback':
return $this->db->query('ROLLBACK');
break;
}
return true;
}
/**
* Base query method
*
* @param string $query Contains the SQL query which shall be executed
* @param int $cache_ttl Either 0 to avoid caching or the time in seconds which the result shall be kept in cache
* @return mixed When casted to bool the returned value returns true on success and false on failure
*
* @access public
*/
function sql_query($query = '', $cache_ttl = 0)
{
$was_error = false;
if ($query != '')
{
global $cache;
// EXPLAIN only in extra debug mode
if (defined('DEBUG_EXTRA'))
{
$this->sql_report('start', $query);
}
$this->query_result = ($cache_ttl && method_exists($cache, 'sql_load')) ? $cache->sql_load($query) : false;
$this->sql_add_num_queries($this->query_result);
if ($this->query_result === false)
{
$nc=0;
for( $nc=0; $nc< $this->n_count; $nc++)
{
try{
$this->db->busyTimeout($this->n_msec);
$this->int_query = $query;
if ( strpos($query, 'SELECT') !== 0 && strpos($query, 'PRAGMA') !== 0)
{
$err_level = 0;
if( $this->return_on_error )
$err_level = error_reporting(0);
$was_error = !($this->db->exec( $query ));
$this->query_result_counter++;
$this->query_result = $this->query_result_counter;
$this->set_result( NULL, $this->query_result);
if( $this->return_on_error
&& $nc >= $this->n_count -1 )
error_reporting($err_level);
}
else
{
$this->query_result_counter++;
$this->query_result = $this->query_result_counter;
$res = $this->db->query( $query );
$was_error = !(isset($res) && is_object($res));
$this->set_result( $res, $this->query_result);
}
} catch (Exception $error) {
if ($nc >= $this->n_count -1 )
$this->sql_error($query);
$was_error = true;
}
if( $was_error === false)
break;
$was_error = false;
}
if (defined('DEBUG_EXTRA'))
{
$this->sql_report('stop', $query);
}
if ($cache_ttl && method_exists($cache, 'sql_save'))
{
$this->open_queries[(int) $this->query_result] = $this->query_result;
$cache->sql_save($query, $this->query_result, $cache_ttl);
}
else if (strpos($query, 'SELECT') === 0 && $this->query_result)
{
$this->open_queries[(int) $this->query_result] = $this->query_result;
//$this->query_result_id++;
}
}
else if (defined('DEBUG_EXTRA'))
{
$this->sql_report('fromcache', $query);
}
}
else
{
return false;
}
if( $was_error == true)
return false;
if( $this->query_result && $this->get_result($this->query_result) )
{
return $this->query_result;
}
$error_returned = $this->_sql_error();
$error_code = $error_returned['code'];
if( $error_code == 0)
return true;
return false;
}
/**
* Build LIMIT query
*/
function _sql_query_limit($query, $total, $offset = 0, $cache_ttl = 0)
{
$this->query_result = false;
// if $total is set to 0 we do not want to limit the number of rows
if ($total == 0)
{
$total = -1;
}
$query .= "\n LIMIT " . ((!empty($offset)) ? $offset . ', ' . $total : $total);
return $this->sql_query($query, $cache_ttl);
}
/**
* Return number of affected rows
*/
function sql_affectedrows()
{
return ($this->db_connect_id) ? $this->db->changes() : false;
}
/**
* Fetch current row
*/
function sql_fetchrow($query_id = false)
{
global $cache;
if ($query_id === false)
{
$query_id = $this->query_result;
}
if ( isset($cache->sql_rowset[$query_id]))
{
return $cache->sql_fetchrow($query_id);
}
if( $query_id === false)
{
return false;
}
$query_result_obj = $this->get_result($query_id);
if( isset($query_result_obj) && is_object($query_result_obj))
{
try{
$row = $query_result_obj->fetchArray(SQLITE3_ASSOC);
} catch (Exception $error) {
$this->sql_error($this->int_query);
}
}
else
{
return false;
}
if ( !$row || !sizeof($row) || !is_array($row))
{
return $row;
}
$rowx = array();
foreach ($row as $key => $value)
{
$pos = strpos($key, '.');
if( $pos >0 )
{
$keyx = substr($key, $pos+1);
$rowx[$keyx] = $value;
}
else
{
$rowx[$key] = $value;
}
}
return $rowx;
}
/**
* Seek to given row number
* rownum is zero-based
*/
function sql_rowseek($rownum, &$query_id)
{
global $cache;
if ($query_id === false)
{
$query_id = $this->query_result;
}
if (isset($cashe) && isset($cache->sql_rowset[$query_id]))
{
return $cache->sql_rowseek($rownum, $query_id);
}
return true; //($query_id !== false) ? @sqlite_seek($query_id, $rownum) : false;
}
/**
* Get last inserted id after insert statement
*/
function sql_nextid()
{
return $this->db->lastInsertRowID();
}
/**
* Free sql result
*/
function sql_freeresult($query_id = false)
{
global $cache;
if ($query_id === false)
{
$query_id = $this->query_result;
}
if (isset($cache->sql_rowset[$query_id]))
{
return $cache->sql_freeresult($query_id);
}
$this->delete_result($query_id);
return true;
}
/**
* Escape string used in sql query
*/
function sql_escape($msg)
{
return $this->db->escapeString($msg);
}
/**
* {@inheritDoc}
*/
function sql_lower_text($column_name)
{
return "LOWER(SUBSTRING($column_name, 1, DATALENGTH($column_name)))";
}
/**
* Correctly adjust LIKE expression for special characters
* For SQLite an underscore is a not-known character... this may change with SQLite3
*/
function sql_like_expression($expression)
{
// Unlike LIKE, GLOB is case sensitive (unfortunatly). SQLite users need to live with it!
// We only catch * and ? here, not the character map possible on file globbing.
$expression = str_replace(array(chr(0) . '_', chr(0) . '%'), array(chr(0) . '?', chr(0) . '*'), $expression);
$expression = str_replace(array('?', '*'), array("\?", "\*"), $expression);
$expression = str_replace(array(chr(0) . "\?", chr(0) . "\*"), array('?', '*'), $expression);
return 'GLOB \'' . $this->sql_escape($expression) . '\'';
}
/**
* return sql error array
* @access private
*/
function _sql_error()
{
if( $this->connect_error == '' ) {
$error = array(
'message' => $this->db->lastErrorMsg(),
'code' => $this->db->lastErrorCode()
);
}
else {
$error = array(
'message' => $this->connect_error,
'code' => '',
);
}
return $error;
}
/**
* Build db-specific query data
* @access private
*/
function _sql_custom_build($stage, $data)
{
return $data;
}
/**
* Close sql connection
* @access private
*/
function _sql_close()
{
return $this->db->close(); //@sqlite3_close($this->db_connect_id);
}
/**
* Build db-specific report
* @access private
*/
function _sql_report($mode, $query = '')
{
switch ($mode)
{
case 'start':
break;
case 'fromcache':
$endtime = explode(' ', microtime());
$endtime = $endtime[0] + $endtime[1];
$results = $this->db->query( $query);
while ($result= $results->fetchArray(SQLITE3_ASSOC))
{
// Take the time spent on parsing rows into account
}
$splittime = explode(' ', microtime());
$splittime = $splittime[0] + $splittime[1];
$this->sql_report('record_fromcache', $query, $endtime, $splittime);
$results->finalize();
break;
}
}
/**
* Return column types
*/
function fetch_column_types($table_name)
{
$col_types = array();
$col_info_res = $this->db->query( "PRAGMA table_info('". $table_name . "')");
while ($col_info = $col_info_res->fetchArray(SQLITE3_ASSOC))
{
$column_name = $col_info['name'];
$column_type = $col_info['type'];
$col_types[$column_name] = $column_type;
}
$col_info_res->finalize();
return $col_types;
}
function create_extractor($format, $filename, $time, $download = false, $store = false)
{
$extractor = new \phpbb\db\driver\sqlite_extractor($format, $filename, $time, $download, $store);
$extractor->$mimetype = 'text/x-sql';
$extractor->$deletePrefix = 'DELETE FROM ';
return $extractor;
}
}
?>
Там нечего оценивать, там приведён старый мой код, который уже не релевантен...rxu писал(а):Можете посмотреть на комменты и оцениться?
Последний раз редактировалось Борис Бердичевский 18.04.2014 11:26, всего редактировалось 1 раз.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Так может, откроете собственный PR?Борис Бердичевский писал(а):там приведён старый мой код, который уже не релевантен
-
- phpBB 3.0.0 RC1
- Сообщения: 1457
- Стаж: 17 лет 3 месяца
- Откуда: Израиль, Беэр-Шева
- Благодарил (а): 28 раз
- Поблагодарили: 53 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
У меня есть пермишен на это?
Добавлено спустя 2 минуты 20 секунд:
Хотелось бы также совета, что делать с этими ворнингами...
Добавлено спустя 2 минуты 20 секунд:
Хотелось бы также совета, что делать с этими ворнингами...
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Без проблем. Клонируете официальный репо, создаете ветку от develop, вносите изменения локально, потом льете на сервер, делаете PR (можно пометить ее как WIP - work in progress).Борис Бердичевский писал(а):У меня есть пермишен на это?
Для начала, как раз увидеть бы все изменения в комплексе.Борис Бердичевский писал(а):Хотелось бы также совета, что делать с этими ворнингами...
-
- phpBB 3.0.0 RC1
- Сообщения: 1457
- Стаж: 17 лет 3 месяца
- Откуда: Израиль, Беэр-Шева
- Благодарил (а): 28 раз
- Поблагодарили: 53 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Всё, с ворнингами уже разобрался, это моя ошибка была.
Добавлено спустя 4 минуты:
Вот с Git работать я ещё только начинаю, на новой моей работе первые опыты. Так что попробую
Добавлено спустя 4 минуты:
Вот с Git работать я ещё только начинаю, на новой моей работе первые опыты. Так что попробую

После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Борис Бердичевский
Поддержка SQLite3 добавлена и будет представлена в ближайшей 3.1beta3. Есть и Ваша заслуга
Поддержка SQLite3 добавлена и будет представлена в ближайшей 3.1beta3. Есть и Ваша заслуга

-
- phpBB 3.0.0 RC1
- Сообщения: 1457
- Стаж: 17 лет 3 месяца
- Откуда: Израиль, Беэр-Шева
- Благодарил (а): 28 раз
- Поблагодарили: 53 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Спасибо за добрые слова! И за добрую весть.
Конечно, надо посмотреть и протестировать.
Конечно, надо посмотреть и протестировать.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
-
- phpBB 3.0.0 RC1
- Сообщения: 1457
- Стаж: 17 лет 3 месяца
- Откуда: Израиль, Беэр-Шева
- Благодарил (а): 28 раз
- Поблагодарили: 53 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Проверил, вроде работает!
Ох, избавлюсь от необходимости каждую новую версию модифицировать, причём перед установкой!
Добавлено спустя 4 минуты 32 секунды:
rxu,
вот, возьми русскую правку к этому:
language/ru/install.php
Найти
Заменить следующую строчку на
Добавлено спустя 10 минут 30 секунд:
Там же:
Найти
Заменить следующую строчку на:
Ох, избавлюсь от необходимости каждую новую версию модифицировать, причём перед установкой!
Добавлено спустя 4 минуты 32 секунды:
rxu,
вот, возьми русскую правку к этому:
language/ru/install.php
Найти
Код: Выделить всё
'DLL_POSTGRES' => 'PostgreSQL',
Код: Выделить всё
'DLL_SQLITE' => 'SQLite 2',
'DLL_SQLITE3' => 'SQLite 3',
Там же:
Найти
Код: Выделить всё
<li>PostgreSQL 8.3 и выше</li>
Код: Выделить всё
<li>SQLite 2.8.2 и выше</li>
<li>SQLite 3.6.15 и выше</li>
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Борис Бердичевский
Спасибо. Все правки лангпака для беты 3 уже давно на Гитхабе
Добавлено спустя 52 минуты 17 секунд:
Кстати, 3.1.0-бета3 тоже вышла.
Спасибо. Все правки лангпака для беты 3 уже давно на Гитхабе

Добавлено спустя 52 минуты 17 секунд:
Кстати, 3.1.0-бета3 тоже вышла.
-
- phpBB 3.0.0 RC1
- Сообщения: 1457
- Стаж: 17 лет 3 месяца
- Откуда: Израиль, Беэр-Шева
- Благодарил (а): 28 раз
- Поблагодарили: 53 раза
Re: Вышел phpBB 3.1 Beta Release [обсуждаем]
Но по ссылке в первом посте темы -- пока нет. Хотя там надо бы и инфу обновить, что уже 3-я бета.rxu писал(а):Все правки лангпака для беты 3 уже давно на Гитхабе
----
Нет, там всё в порядке, я ошибаюсь... Только уточнить версию.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!