Coder Social home page Coder Social logo

friendsofredaxo / adminer Goto Github PK

View Code? Open in Web Editor NEW
55.0 9.0 1.0 5.46 MB

Datenbank-Verwaltung in REDAXO und rex_sql-Code-Generator, ohne dass dafür Login-Daten eingegeben werden müssen.

License: MIT License

PHP 100.00%
redaxo adminer database sql mysql redaxo-addon hacktoberfest

adminer's People

Contributors

aeberhard avatar alxndr-w avatar gharlan avatar olien avatar schuer avatar skerbis avatar staabm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adminer's Issues

Pagination des Resultsets funktioniert nicht

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.

Requirements

Min php und redaxo version ind die package.yml

ErrorException (E_NOTICE) Array to string conversion

Beim Klonen von Datensätzen in einer Tabelle:

ErrorException: Array to string conversion
File: redaxo/src/core/lib/util/type.php
Line: 60

Stacktrace
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
System report (REDAXO 5.11.1, PHP 7.4.11, MariaDB 10.2.34)
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

Hinweis: Adminer-Addon nicht PHP8-kompatibel - Safe Mode-Button fehlt

Ich mach das Issue mal rein, weil es mir nur mit Adminer aufgefallen ist:

image
Error: Call to undefined function get_magic_quotes_gpc()
File: redaxo\src\addons\adminer\vendor\adminer.php
Line: 20

Stacktrace
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
System report (REDAXO 5.12.0-dev, PHP 8.0.0, MariaDB 10.4.17)
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

Aus YForm-Tabelle in Adminer-Tabelle springen

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?

CSS-Datei für Adminer ?

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→'
}

Umgang mit SQL-Keywords in rex_sql_table-Code

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.

Unsupported operand types: string * string

Bei der Suche innerhalb der Datenbanktabellen und anschließendem Anklicken eines Treffers.

Copy Markdown funktioniert jedoch nicht mehr innerhalb des Whoops. Aktuelle dev-Version von R5.12

image

target="_blank"

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

designs

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?

2. / n. Datenbank öffnen

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

Integration / Verknüpfung mit YForm

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?

Debug-Modus abschwächen

Die Option debug.throw_always_exception muss temporär deaktiviert werden auf der Adminer-Page, sonst kommt whoops.

rex_sql_table-Code - ensureIndex führt zu Fehler

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.

Spaltenreihenfolge rex_article_slice

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

db-name mit `DB# `-Präfix führt zu Fehler bei der Fremdschlüsselerstellung

image

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

Addon im Installer stellen

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.