friendsofredaxo / adminer Goto Github PK
View Code? Open in Web Editor NEWDatenbank-Verwaltung in REDAXO und rex_sql-Code-Generator, ohne dass dafür Login-Daten eingegeben werden müssen.
License: MIT License
Datenbank-Verwaltung in REDAXO und rex_sql-Code-Generator, ohne dass dafür Login-Daten eingegeben werden müssen.
License: MIT License
Wenn ich ein Resultset habe mit mehr als 30 Einträgen, gibt es unten eine Pagination. Ein Klick auf eine Seite, bringt mich aber zurück ins Backend. Da ist wohl der Pfad noch verkehrt.
Min php und redaxo version ind die package.yml
Beim Klonen von Datensätzen in einer Tabelle:
ErrorException: Array to string conversion
File: redaxo/src/core/lib/util/type.php
Line: 60
Function | File | Line |
---|---|---|
rex_error_handler::handleError | redaxo/src/core/lib/util/type.php | 60 |
rex_type::cast | redaxo/src/core/lib/request.php | 201 |
rex_request::arrayKeyCast | redaxo/src/core/lib/request.php | 49 |
rex_request::request | redaxo/src/core/functions/function_rex_globals.php | 36 |
rex_request | redaxo/src/addons/theme/lib/developer/theme_manager.php | 41 |
theme_manager::register | redaxo/src/addons/theme/lib/developer/theme_manager.php | 27 |
theme_manager::start | redaxo/src/core/lib/extension.php | 49 |
rex_extension::{closure} | redaxo/src/core/lib/util/timer.php | 54 |
rex_timer::measure | redaxo/src/core/lib/extension.php | 56 |
rex_extension::registerPoint | redaxo/src/addons/developer/lib/manager.php | 152 |
rex_developer_manager::start | redaxo/src/addons/developer/boot.php | 17 |
rex_package->{closure} | redaxo/src/core/lib/extension.php | 49 |
rex_extension::{closure} | redaxo/src/core/lib/util/timer.php | 54 |
rex_timer::measure | redaxo/src/core/lib/extension.php | 56 |
rex_extension::registerPoint | redaxo/src/core/packages.php | 31 |
include_once | redaxo/src/core/backend.php | 200 |
require | redaxo/src/core/boot.php | 137 |
require | redaxo/index.php | 9 |
REDAXO | |
---|---|
Version | 5.11.1 |
PHP | |
---|---|
Version | 7.4.11 |
OPcache | yes |
Xdebug | no |
Database | |
---|---|
Version | MariaDB 10.2.34 |
Character set | utf8mb4 |
Server | |
---|---|
OS | Linux |
SAPI | fpm-fcgi |
Webserver | Apache |
Request | |
---|---|
Browser | Chrome/87.0.4280.88 |
Protocol | HTTP/2.0 |
HTTPS | yes |
Packages | |
---|---|
accessdenied | 1.0.6 |
across | 3.0.0-dev23 |
across/backend | 3.0.0 |
adminer | 1.8.1 |
backup | 2.6.2 |
be_style | 2.11.1 |
be_style/customizer | 2.11.0 |
be_style/redaxo | 2.11.1 |
bloecks | 3.0.0 |
bloecks/cutncopy | 3.0.0 |
bloecks/status | 3.0.0 |
cke5 | 4.2.0 |
cronjob | 2.7.1 |
cronjob/article_status | 2.7.1 |
cronjob/optimize_tables | 2.7.1 |
developer | 3.9.0 |
events | 2.0.0-dev |
feeds | 3.1 |
install | 2.8.0 |
iwcc | 1.1.2 |
maintenance | 2.4.1 |
markitup | 3.6.0 |
mblock | 3.1.0 |
media_manager | 2.10.1 |
mediapool | 2.9.0 |
metainfo | 2.7.2 |
mform | 5.3.1 |
mform/docs | 1.0 |
minify | 2.2 |
phpmailer | 2.9.1 |
project | dev |
quick_navigation | 3.9.4 |
sprog | 1.2.0 |
structure | 2.11.1 |
structure/content | 2.11.1 |
structure/history | 2.11.0 |
structure/version | 2.11.0 |
theme | 1.2.0 |
uploader | 2.2.0 |
url | 2.0.0-beta3 |
users | 2.7.1 |
watson | 2.2.0 |
ycom | 4.0.3 |
ycom/auth | 4.0.3 |
ycom/docs | 4.0.3 |
ycom/group | 4.0.3 |
yform | 3.4.1 |
yform/email | 3.4.1 |
yform/manager | 3.4.1 |
yform/tools | 3.4.1 |
yform_geo_osm | 1.2.3 |
yform_spam_protection | 1.0.5 |
yform_usability | 1.4 |
yrewrite | 2.7 |
zip_install | 1.1 |
Ich mach das Issue mal rein, weil es mir nur mit Adminer aufgefallen ist:
Error: Call to undefined function get_magic_quotes_gpc()
File: redaxo\src\addons\adminer\vendor\adminer.php
Line: 20
Function | File | Line |
---|---|---|
remove_slashes | redaxo\src\addons\adminer\vendor\adminer.php | 169 |
include | redaxo\src\addons\adminer\pages\index.php | 50 |
include | redaxo\src\core\lib\packages\package.php | 272 |
rex_package->includeFile | redaxo\src\core\lib\be\controller.php | 470 |
rex_be_controller::{closure} | redaxo\src\core\lib\util\timer.php | 63 |
rex_timer::measure | redaxo\src\core\lib\be\controller.php | 471 |
rex_be_controller::includePath | redaxo\src\core\lib\be\controller.php | 409 |
rex_be_controller::includeCurrentPage | redaxo\src\core\backend.php | 236 |
require | redaxo\src\core\boot.php | 137 |
require | redaxo\index.php | 9 |
REDAXO | |
---|---|
Version | 5.12.0-dev |
PHP | |
---|---|
Version | 8.0.0 |
OPcache | no |
Xdebug | no |
Warning | Das Setup wird ohne HTTPS/Verschlüsselung durchgeführt. Es wird empfohlen jegliche Frontend und Backend aufrufe nur mittels HTTPS durchzuführen, um die Privatsphäre und den Datenschutz zu gewährleisten. |
Database | |
---|---|
Version | MariaDB 10.4.17 |
Character set | utf8mb4 |
Server | |
---|---|
OS | WINNT |
SAPI | apache2handler |
Webserver | Apache/2.4.46 |
Request | |
---|---|
Browser | Chrome/87.0.4280.141 |
Protocol | HTTP/1.1 |
HTTPS | no |
Packages | |
---|---|
2factor_auth | 1.0.0 |
accessdenied | 1.0.6 |
across | 3.0.0-dev24 |
adminer | 1.8.1 |
backup | 2.6.2 |
be_style | 2.11.1 |
be_style/customizer | 2.11.0 |
be_style/redaxo | 2.11.1 |
be_style_fluent | 3.0.0 |
bloecks | 3.0.0 |
bloecks/cutncopy | 3.0.0 |
bloecks/status | 3.0.0 |
cke5 | 4.0.4 |
cronjob | 2.7.1 |
cronjob/article_status | 2.7.1 |
cronjob/optimize_tables | 2.7.1 |
debug | 1.1.0-dev |
developer | 3.9.0 |
events | 2.0.0-dev |
feeds | 3.1 |
install | 2.9.0-dev |
iwcc | 2.0.0-beta6 |
maintenance | 2.4.1 |
mblock | 3.1.0 |
media_manager | 2.10.1 |
mediapool | 2.9.0 |
metainfo | 2.7.2 |
mform | 5.3.1 |
mform/docs | 1.0 |
phpmailer | 2.9.1 |
project | dev |
search_it | 6.7.2 |
search_it/autocomplete | 6.7.2 |
search_it/documentation | 6.7.2 |
search_it/plaintext | 6.7.2 |
search_it/stats | 6.7.2 |
sprog | 1.2.0 |
structure | 2.12.0-dev |
structure/content | 2.11.1 |
theme | 1.1.1 |
uploader | 2.1.0 |
url | 2.0.0-beta3 |
users | 2.8.0-dev |
watson | 2.2.0 |
ycom | 4.0.3 |
ycom/auth | 4.0.3 |
ycom/docs | 4.0.3 |
ycom/group | 4.0.3 |
yform | 3.4.1 |
yform/docs | 3.3.1 |
yform/email | 3.4.1 |
yform/manager | 3.4.1 |
yform/rest | 3.4.1 |
yform/tools | 3.4.1 |
yform_geo_osm | 1.2.3 |
yform_spam_protection | 1.0.5 |
yform_usability | 1.4 |
yrewrite | 2.6 |
zip_install | 1.1 |
Wäre klasse, wenn man aus YForm heraus direkt in die passende Adminer-Tabelle springen kann - bspw. bei der Tabellenübersicht oder der Felddefinition. Ich müsste mal prüfen, ob es da einen passenden EP gibt.
Soweit ich weiß hast du @TobiasKrais doch schon einige Datentabellen im Backend manipuliert.
Oder wäre es andernfalls in Ordnung, in YForm in diesem speziellen Fall an entsprechender Stelle zu prüfen, ob Adminer installiert ist und dann einen passenden Link dazu darzustellen?
Hallo, habe eine kleine css-Datei geschrieben die dem Adminer ein bessere Redaxo-Anmutung gibt.
body {
font-family: "Lucida Grande", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
line-height: 1.428571429;
margin: 0;
background-color: #f3f6fb;
color: #324050
}
a {
color: #4b9ad9;
text-decoration: none
}
a:visited {
color: #4b9ad9
}
a:link:hover,
a:visited:hover {
color: red;
text-decoration: none
}
a.text:hover {
text-decoration: none
}
h1 {
background: #4b9ad9;
border: 0
}
h2 {
color: white;
background: #4b9ad9;
border: 0
}
h3 {
font-weight: normal;
font-size: 150%;
margin: 1em 0 0
}
table {
border: 0;
font-size: 100%;
background-color: white
}
td,
th {
border: 0;
border-bottom: 1px solid #999;
padding: .5em 2em .5em .5em;
background-color: transparent
}
th {
background: transparent;
text-align: left
}
thead th {
text-align: center;
padding: .2em .5em
}
thead td,
thead th {
background: #dfe3e9
}
.odd td,
.odd th {
background: transparent
}
fieldset {
display: inline;
vertical-align: top;
padding: .5em .8em;
margin: .8em .5em 0 0;
min-height: 50px;
border: 1px solid rgba(156, 165, 178, .3)
}
code {
background: #eee
}
tbody tr:hover td,
tbody tr:hover th {
background: #e0f5ee
}
.js .checkable .checked td,
.js .checkable .checked th {
background: rgba(0, 0, 0, 0.1)
}
.pages {
background: rgba(255, 255, 255, 0.9);
border-radius: 10px;
border: 1px solid rgba(156, 165, 178, .3);
left: auto;
right: 20px;
bottom: 10px;
padding: 1em 2em
}
#menu .links a {
white-space: nowrap;
margin-right: 20px;
color: #4b9ad9;
width: 100%;
padding: 0.5em 1em;
border-radius: 3px;
display: inline-block
}
#menu .links a:hover {
background-color: #283542;
box-sizing: border-box
}
#content .links a {
color: #4b9ad9;
background-color: rgba(0, 0, 0, 0.02);
padding: 0.5em 1em;
border-radius: 3px;
display: inline-block;
border: 1px solid rgba(156, 165, 178, .3)
}
#content .links a:hover {
color: white;
background-color: #4b9ad9
}
.logout {
margin-top: .5em;
position: absolute;
top: 0;
right: 0
}
#menu {
width: 250px;
background-color: #324050
}
#menu p,
#tables {
padding: .8em 1em;
margin: 0;
border-bottom: 1px solid rgba(156, 165, 178, .3)
}
#tables li {
list-style: none
}
#tables li:hover {
background-color: #283542
}
#tables li:hover a:hover {
color: #4b9ad9
}
#logins,
#tables {
white-space: nowrap;
overflow: hidden
}
#logins a,
#tables a,
#tables span {
background: transparent;
color: #9ca5b2
}
#content {
margin: 2em 0 0 248px;
padding: 10px 0px 20px 20px
}
#breadcrumb {
white-space: nowrap;
position: absolute;
top: 0;
left: 21em;
background: transparent;
height: 2em;
line-height: 1.8em;
padding: 3px 1em 0 0;
margin: 0 0 0 -18px
}
#h1 {
color: white;
text-decoration: none;
font-style: normal
}
pre.sqlarea.jush-sql.jush,
pre.sqlarea.jush.jush {
border: 0px !important;
background-color: white
}
code.jush-sql {
padding: 1em;
margin-bottom: 1em;
display: inline-block;
background-color: rgba(255, 255, 255, 0.5)
}
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="file"]::-webkit-file-upload-button,
button {
-webkit-appearance: none;
border: 0px;
border-radius: 5px;
padding: 0.1em 1em 0.2em 1em;
font-size: 100%;
background-color: #324050;
color: white;
box-shadow: 1px 1px 1px silver
}
input[type="button"]:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="file"]::-webkit-file-upload-button:hover,
button:hover {
background-color: #4b9ad9;
color: white
}
a.select {
text-indent: -48px;
overflow: hidden;
width: 20px;
display: inline-block
}
a.select::after {
content: '\00A0→'
}
rex_sql_table::get(rex::getTable('dsgvo_client'))
->ensureColumn(new rex_sql_column('`key`', 'text'))
// ->ensureIndex(new rex_sql_index('`key`', ['`key`'], rex_sql_index::UNIQUE))
->ensure();
SQL-Keywords wie bspw. KEY, die auch als Feldnamen infrage kommen können, müssen mit Backticks maskiert werden.
php 7.2.5
Warning | session_cache_limiter() [function.session-cache-limiter]: Cannot change cache limiter when session is active
Um phpstan besser zu unterstützen sollten dateien immer nur deklarationen oder logik enthalten, aber nicht beides zugleich:
Die function sollte in ein externes file und included werden:
Line 6 in c0b38d7
Siehe auch
phpstan/phpstan#1780
Make maxlength in edit fields a soft limit
Add accessibility labels
Add Cache-Control: immutable to static files
MySQL: Support MySQL 8
MySQL: Support JSON data type
MySQL: Add dedicated view for replication status
MySQL: Support spatial indexes
PostgreSQL: Export
PostgreSQL: Don't treat partial indexes as unique
MS SQL: Support pdo_dblib
Elasticsearch: Support HTTPS by inputting https://server
https://sourceforge.net/p/adminer/news/2017/03/adminer-430-released/
Das Adminer-Addon 1.5.0 ist nicht mit REDAXO 5.5.1 kompatibel, wird dort aber im Installer aufgeführt.
Hi Gregor.
superklasse! Danke.
Guck doch mal ob folgende Ergänzung der boot.php sinnvoll wäre:
if (rex::isBackend() && rex::getUser() && rex::getUser()->isAdmin()) {
rex_extension::register('OUTPUT_FILTER',function(rex_extension_point $ep){
$suchmuster = '<a href="index.php?page=adminer"><i class="rex-icon fa-database"></i> Adminer</a>';
$ersetzen = '<a href="index.php?page=adminer" target="_blank"><i class="rex-icon fa-database"></i> Adminer</a>';
$ep->setSubject(str_replace($suchmuster, $ersetzen, $ep->getSubject()));
});
}
LG
Oliver
Hallo, danke für das AddOn. Wo muss ich denn die adminer.css ( design > https://www.adminer.org/#extras ) hochladen damit diese verwendet wird statt der default.css ? Oder könnte man die Auswahl der Designs per Dorpdown "irgendwie" integrieren?
Für die nächste Version würde ich mir Wünschen, dass man nicht nur in die Redaxo-Datenbank reinschauen kann, sondern auch in die 2. Datenbankverbindung aus der config.yml
Das wäre sooooo hilfreich, wenn mal ein Update/Upgrade im Installer daneben geht, der mit Datenbank-Tabellen zu tun hat.
Adminer kommt mit vielen plugins
https://github.com/vrana/adminer/tree/master/plugins
Sind diese bereits mit dem addon nutzbar? Falls ja wie -> doku/hinweis?
Ich denke, z.b. Das json-column plugin wäre hilfreich
https://github.com/vrana/adminer/blob/master/plugins/json-column.php
Feature description / Feature Beschreibung
Wäre klasse, wenn man aus YForm heraus direkt in die passende Adminer-Tabelle springen kann - bspw. bei der Tabellenübersicht oder der Felddefinition. Ich müsste mal prüfen, ob es da einen passenden EP gibt.
Soweit ich weiß hast du @TobiasKrais doch schon einige Datentabellen im Backend manipuliert.
Oder wäre es andernfalls in Ordnung, in YForm in diesem speziellen Fall an entsprechender Stelle zu prüfen, ob Adminer installiert ist und dann einen passenden Link dazu darzustellen?
Die Option debug.throw_always_exception
muss temporär deaktiviert werden auf der Adminer-Page, sonst kommt whoops.
https://github.com/vrana/adminer/releases/
vllt noch ein paar tage warten, ggf. gibts ja in kürze ein 4.4.1 o.ä.
Wg security vuln.: https://github.com/vrana/adminer/releases/v4.7.7
rex_sql_table::get(rex::getTable('dsgvo_client'))
->ensureColumn(new rex_sql_column('`key`', 'text'))
->ensureIndex(new rex_sql_index('`key`', ['`key`'], rex_sql_index::UNIQUE))
->ensure();
Dieser Code führt das Problem vor.
Adminer, eines der geilsten Addons! :-)
Meine Anregung: in der Tabelle rex_article_slice die Spalten article_id und module_id nach vorne holen vor die Value-Spalten. Die beiden sind wichtiger als die leeren Value-Felder, finde ich. Danke und LG Heinz
Reicht Nur hier im repos, damit es auch andere machen können
Dadurch, dass hier DB1:
ausgegeben wird, wird beim Erstellen eines Foreign Keys ein falscher SQL-Befehl erzeugt.
LATEST FOREIGN KEY ERROR
------------------------
2019-11-23 11:14:14 0x44a0 Error in foreign key constraint of table rex_vorlage/#sql-5b60_5e5:
FOREIGN KEY (`stream_id`) REFERENCES `DB 1: rex_vorlage`.`rex_feeds_stream` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION:
Cannot resolve table name close to:
(`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
Es gab im Slack den Wunsch das Addon im Installer zu haben.
@gharlan könntest Du das machen? Wenn nicht hättest Du was dagegen wenn ich das dann mache?
LG
Oliver
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.