Adminer 2.2.0

Školení, která pořádám

Nová verze nástroje pro správu MySQL databáze Adminer přináší dvě hlavní novinky:

Vedle toho došlo k několika drobným změnám z oblasti použitelnosti:

Opravil jsem také několik chyb:

V Editoru bylo změn více:

Dvě změny jsem také provedl v přizpůsobení:

Udělal jsem také několik interních změn, které by se navenek pokud možno neměly nijak projevit:

Jakub Vrána, Adminer, 21.10.2009, diskuse: 37 (nové: 0)

Diskuse

ikona PeTaX:

Adresa http://www.adminer.org/cs/ dosud nabízí minulou verzi 2.1.0

ikona Jakub Vrána OpenID:

Pravděpodobně se stránka načetla z keše, zkus refresh.

ikona PeTaX:

Udělal jako první. DTTO.

Patrick:

Chtěl bych se zeptat, pokud v editoru upravuju jeden záznam, po uložení se výpis vždy vrátí na první stránku. Je možné nějak nastavit, aby se vrátil na tu stránku, na které jsem byl před editací? Prošel jsem dokumentaci i zdrojáky... ale stejně jsem na to nepřišel....

ikona Jakub Vrána OpenID:

On je problém v tom, že když je zapnutý nějaký filtr a záznam změním tak, že do tohoto filtru nespadne, tak by se mohla zobrazit stránka bez jakýchkoliv záznamů. Proto to nechám tak, jak to je.

Sám pro to používám trik – záznam označím a upravím ho pomocí tlačítka pod tabulkou. U toho v URL zůstanou všechny parametry, takže se pak vrátí na stejnou stránku.

ikona David Grudl:

Není nejjednodušší pevné mezery zapisovat přímo znakem? Je to o 50% úspornější než entita (chápu že je to OT kvůli  white-space: pre).

ikona Jakub Vrána OpenID:

Byl bych pro, ale z nějakých důvodů udržuji zdrojový kód kompatibilní s jednobajtovými kódováními (kromě překladů). Ty důvody už jsem nicméně zapomněl :-).

ikona David Grudl:

A co "\xc2\xa0" - ejhle, ono je to o 66% menší :)

papundeklová paní:

ryze teoreticky, toto je zase závislé na normě Unicode, ne?

těžkotonážní pusa:

"Firefox totiž nepodporuje značku <colgroup>, …"
Byla bych pro to optimalizovat podle normy, ne podle prohlížeče ;-)

(on ho stejně za nějaký čas FF podporovat začne)

ikona Jakub Vrána OpenID:

Já optimalizuji především podle sebe. A vzhledem k tomu, že používám Firefox, tak to nebudu řešit značkou <colgroup>, kterou nepodporuje.

A s tou podporou bych to tak slavně neviděl. Jde o bug #915 (teď jsme pro představu za půl milionem) z roku 1998: https://bugzilla.mozilla.org/show_bug.cgi?id=915.

ikona v6ak:

Uf, když jsem viděl to číslo bugu, udělalo se mi nevolno.

jája:

> "Já optimalizuji především podle sebe..."

ajajaj. špatně. velmi špatně.. :-(

ikona Jakub Vrána OpenID:

Právě naopak. Udělat něco pro sebe je v open-source ta nejlepší motivace. Jinak to většinou není dotažené a od toho to je open-source, aby si každý mohl udělat to, co potřebuje.

jája:

Nádhérná ukázka toho, jak si protiřečíš ;-)

ikona Jakub Vrána OpenID:

Nic takového nepozoruji.

cvičební úbor:

Tentokrát něco méně důležitého - dotaz na nastajlování pomocí CSS. Prosím, prosím, nešlo by v několika málo případech, jako je:
* řádek s odkazy pro manipulaci s tabulkou
* řádek s příkazovými tlačítky
* řádek s vlevo nahoře ("SQL příkaz | Export | Odhlásit")
* řádek se stránkováním výpisu tabulky
přidat do <p> nějakou třídu, aby se to v CSS dalo "odchytit"?
Vím, že už jsi předtím na něco podobného odpovídal a tvůj argument byl ten, že by se tím znatelně zvýšila velikost výsledného HTML kódu. To však není tento případ. Jde jen o to na pár místech připsat: ‘ class="něco" ’.

ikona Jakub Vrána OpenID:

A nedaly by se na to napsat malinko složitější selektory? Když se podívám na současné vzhledy, tak ty si s tím zdá se poradily.

cvičební úbor:

Zkusme to úplně konkrétně:
(nejsem specialista na CSS; jako referenční prohlížeč používám Firefox)

* řádek s odkazy pro manipulaci s tabulkou)

#content p:fist-child a{margin:auto 0.5ex;}
nefunguje :-(

#content p a{margin:auto 1em;} /* zvětšíme mezery mezi odkazy */
#content p a:first-child{margin-left:0;} /* u prvního odkazu zrušíme mezeru nalevo */
#content p code a{margin:auto;} /* zrušíme mezery u jush odkazů v použitém SQL kódu */
toto postihne stránkování a případné další odkazy v divu obsahu

v dalším příkladu se pokouším pomocí CSS nahradit odkazy "vypsat" v levém sloupci obrázkem (ohledně tohoto jsi taktéž někomu odpovídal a říkal jsi, že pro větší použitelnost (net usability) by tam měl zůstat odkaz slovně - toto respektuji, ale já si chci udělat CSS buď jen pro mě nebo pro ty, kteří chtějí ušetřit místo, jsou zvyklí na phpMyAdmina a je jim jasné, že ta první ikonka bude znamenat vypsání tabulky)
Výpis odkazů pro přehled tabulek a jejich vypsání je v současné době v jednom odstavci, ve kterém je za každým 2. odkazem "<br />". Není mi znám způsob, jak odchytnout každý druhý odkaz a přiřadit mu jiné CSS vlastnosti. Zkoušel jsem to např. přes odlišnost v cílové adrese (odkaz "vypsat" obsahuje parametr "select"):

#tables a[href~=select]{
background:no-repeat left top url(data:image/gif;base64,R0lGODlhDwAKALMAAAQCBJSOj9HP0Zzu/FlbWcPAwezs8fv9+2yazDRqhB8hJ3x6fGSarHR6pNze5KSmpCH5BAEAAAcALAAAAAAPAAoAAwQ+8MhJqzQHP1GClYFCAIACEFVAiElQNspCPYRwDIWSGMbpWIhEAvFzFSwGBgMjKTB5mYPAVrB9qoEFj/npSiIAOw==);
font-size:0.0001pt;
display:inline-block;
width:16px;
}
ale bohužel ani toto nefunguje (zjistil jsem, že by v href muselo být pouze ono "select", což je na nic :-( )

Jestli někdo zdatnější v CSS na něco přijdete, určitě to sem napište, ale já si stejně myslím, že není nic proti ničemu na pár místech prostě dopsat ‘ class="název_třídy" ’.

cvičební úbor:

zapomněl jsem napsat:
* jak je naznačeno u mého prvního příkladu, tak přístup z hlediska CSS je (konkrétně u těch mezer) ovlivnit všechny odkazy a následně vyjmenovávat všechny případy, kdy to platit nemá, a u nich to zase dávat do pořádku nastavováním oné mezery na nějakou pevnou hodnotu. Velmi neelegantní ;-) Na druhé straně, CSS třídu nebo identitu by šlo jednoduše "chytnout" a upravit ji, aniž by se rozhodily ostatní prvky.

kozotoč:

cvičební úbore, podívej se na stránky adminu, je tam jedna šablona od jakéhosi Martina Hořínka, která si s tím poradila. Při pohledu přímo do ní zjistíš, že je to docela masakr (a nota bene jen pro ty "lepší" prohlížeče), ale jde to ;-)

Jakube, ale když už na to „cvičební úbor” narazil, tak např. u tabulky s výpisem jejích polí byl mohl každému lichému řádku přidat třídu "odd" (stejně jako to děláš u výpisu). To bys teda udělat mohl B-)

kozotoč:

5 sekund poté zjišťuju, že sudé řádky jde taky podchytit a to přes jakousi CSS třídu nth-child:

tr:nth-child(2n){background-color:#abc;}

ale ta platí to (resp. bude to fungovat) jen u prohlížečů s podporou CSS v. 3+, tak nevim, asi by class="odd" za to přecijen stála

ikona Jakub Vrána OpenID:

Přidal jsem třídy .tabs, .logout a .pages. Jestli jsou potřeba ještě nějaké další, tak je prosím přesněji popiš.

A doufám, že ten styl pak dáš k dispozici a že bude stát za to :-).

cvičební úbor:

Jestli bude stát za to nevím - to musejí posoudit ostatní.
Každopádně tady je link:

http://leteckaposta.cz/264469395

Pozn.: prej platí jen 25 dní, takže doufám, že to během té doby stáhneš a -pokud nebude problém- přidáš na adminer.org

ikona Jakub Vrána OpenID:

Paráda! Dal jsem to tam.

ikona v6ak:

Tak jsem taky aktualizoval a všiml jsem si jedné nepříjemné věci: Nahoře mám: Struktura tabulky | Pozměnit tabulku

Kdykoli chci vidět strukturu, klikám na Struktura tabulky. Řešení tu může být více:
* zvýrazňovat aktuální (v případě, že nejsem na struktuře, to nepomůže)
* Struktura tabulky -> Zobrazit strukturu

Je to spíš drobnost, ale otravuje to.

ikona Jakub Vrána OpenID:

Nerozumím větě „Kdykoli chci vidět strukturu, klikám na Struktura tabulky.“ To je snad v pořádku, ne?

ikona v6ak:

Spletl jsem se. Chtěl jsem napsat, že kdykoli chci _upravit_ strukturu, klikám na Struktura tabulky. A to, jak jistě uznáš, ač zní logicky, nevede ke správnému výsledku. Proto jsem navrhl ty úpravy.

Šimoník:

Nejde mi upravovat tabulka, kde jsou dlouhé texty.
Píše to :
Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.

Jde s tím něco udělat?
Díky

ikona Jakub Vrána OpenID:

Nejlepší je do tabulky přidat nějaký unikátní klíč, pomocí kterého se na jednotlivé záznamy bude dát odkazovat.

Jinak lze použít tlačítko Upravit pod tabulkou se záznamy (po zaškrtnutí políčka u editovaného řádku). To přenáší data POSTem.

Šimoník:

Zkoušel jsem importovat sql soubor 17MB (vznik z předchozího exportu z jiné databáze) a píše to "Soubor nelze nahrát". Nebylo by lepší při exportu vytvořit PHP soubor s příkazy pro create a insert do databáze?

ikona Jakub Vrána OpenID:

Lepší by to nebylo, protože by se tím zhoršila možnost použít export jinde. Doporučuji export nahrát na server pomocí FTP jako adminer.sql a spustit ho k tomu určeným příkazem.

Šimoník:

Tak teď nevím, jak to myslíš. Já to nahraji pomocí FTP a pak v admineru dám SQl, nahrání souboru a to právě vyhodí tu hlášku Soubor nelze nahrát". Jak jde jinak spustit ta záloha? Díky

ikona Jakub Vrána OpenID:

Nahrání souboru nahraje soubor z lokálního disku. Pod tím je ještě:

Soubor adminer.sql[.gz|.bz2] na webovém serveru - Spustit soubor

To spustí soubor z disku webového serveru.

Šimoník:

Já jsem měl starší verzi admineru. Teď už se to zobrazuje.
Když to spustím, tak v adrese zůstane :
http://localhost/kolobezky/akce/ad.php?server=…-bylnicecz&sql=

a sql soubor se neprovede, adminer nenaběhne - pouze se zobrazí z rozhraní admineru první dva řádky.

Co zase dělám špatně?

Šimoník:

No on adminer 2.0.0. odmítá provést jakýkoliv sql příkaz.

Šimoník:

Ještě upřesňuji - adminer 2.1.0 stejné příkazy vykoná bez problémů.

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.