Odstránime vizuálny editor, výber farebnej schémy a ďalšie podrobnosti v oblasti správy WordPress. Odstránime vizuálny editor, výber farebnej schémy a ďalšie detaily v administračnom paneli WordPress Zmeňte kód

Všeobecné otázky

Otázka: Profiler zobrazuje aktivitu servera, ale nezobrazuje všetky požiadavky a relácie.

A: Nezabudnite kliknúť na tlačidlo Štart a začať zachytávať relácie.

Otázka: Bolo možné pripojiť sa k MySQL, ale relácie sa nezobrazujú.

A: Neor Profile SQL funguje ako proxy server. To znamená, že sa môžu zobraziť iba relácie prechádzajúce cez profilovač. Vaša aplikácia (alebo stránka) by mala byť schopná pripojiť sa k profileru ako bežný server MySQL. Profiler používa iba prichádzajúce pripojenia TCP. A potom uvidíte výsledok na karte Relácie.

Otázka: Prečo sú v niektorých reláciách požiadavky s nulovým časom?

A: Požiadavky s nulovým časom sú extrémne rýchle bez oneskorenia. Takéto dotazy môže DBMS uložiť do vyrovnávacej pamäte alebo vykonať veľmi rýchlo, napríklad ak máte výkonný server a dobre optimalizované tabuľky.

Otázka:Čo znamená % v čase a dĺžke trvania relácie?

A:„Čas %“ je percento z celkového času vykonania relácie. "Trvanie %" je zlomok najdlhšej požiadavky v relácii (pomer k najdlhšej požiadavke).

Otázka: Používam JetProfiler a jeho nastavenie je jednoduchšie.

A: JetProfiler prijíma informácie z MySQL servery cez príkaz "show status" a nemôže získať všetky informácie na serveri, pretože funguje diskrétne. Neor Profile SQL zobrazuje absolútne všetky databázové dotazy. A to si vyžaduje konfiguráciu vašej aplikácie tak, aby smerovala tok požiadaviek cez profilovač.

Otázka: Tlačidlo Profil na karte SQL nezobrazuje výsledok

A: Funkcia profilovania v editore SQL funguje prostredníctvom príkazu SHOW PROFILES, ktorý bol do MySQL Community Server pridaný od verzie 5.0.37. Skontrolujte svoju verziu servera MySQL.

Otázka: Je možné vyrobiť konzolu profilovača?

A: Pre konzolu použite kopu DBMS a tail logov, prípadne špeciálnych konzolových nástrojov, ktorých je pomerne dosť. Neor Profile SQL je aplikácia operačného systému Windows, ktorá je určená na hosťovanie v systéme vývojára.

Otázka: Profiler funguje, ale z nejakého dôvodu nezobrazuje hlavný štatistický graf?

A: Hlavný graf používa príkaz SHOW STATUS pre hlavný server. Možno nemáte povolenie na spustenie tohto príkazu na serveri. Uistite sa, že máte povolenia pre tento príkaz.

Otázka: Ako spustiť inštalačný program v tichom režime?

A: sqlprofiler-4.1.1.exe /S /D:C:Program Files (x86)Neor Profile SQL

Windows

Otázka: Ako skontrolovať pripojenie profilera?

A: Na pripojenie k profileru použite klienta konzoly MySQL. Ak svoju reláciu vidíte na karte Relácie, znamená to, že všetko je nastavené správne.
Napríklad:
Potom urobte jednoduchý SQL príkaz:
zobraziť tabuľky;
A pozrite sa, čo sa stalo na karte Relácie v profileri.

linux

Otázka: Nedá sa pripojiť cez localhost.

A: Linux sa pokúša priradiť localhost k soketovému pripojeniu, ale Neor Profile SQL funguje iba s TCP pripojeniami. Nastavte adresu servera v profileri na 127.0.0.1 namiesto localhost. Urobte to isté v nastaveniach vašej aplikácie.
Napríklad:
mysql --host=127.0.0.1 --user=LOGIN --password=HESLO --port=4040

Otázka: Nedá sa pripojiť k 127.0.0.1.

A: Skontrolujte typ pripojenia vo svojej aplikácii. Môžete tiež použiť typ pripojenia lokálneho soketu, ktorý nevyžaduje hodnotu portu.

Otázka: Ako nainštalovať Neor Profile SQL pod OpenSUSE?

A: V súčasnosti podporujeme iba balík DEB, ktorý beží pod Ubuntu, Debianom a je kompatibilný Linuxové distribúcie. Môžete si vytvoriť súbor RPM sami a pomôcť.

Otázka: Prečo nemôžem zachytiť požiadavky Sysbench?

A: Profiler používa iba prichádzajúce pripojenia TCP. Spustite Sysbench s parametrami hostiteľa a portu:
sysbench --test=oltp --mysql-host=127.0.0.1 --mysql-port=4040--mysql-user=root --mysql-password=pripravte heslo

MacOS X

Otázka: Profiler sa nemôže pripojiť k serveru MAMP MySQL.

A: Problém sieťové pripojenie v konfigurácii MySQL:

  1. MAMR
    Bezplatná verzia– skopírujte štandardnú konfiguráciu MySQL do priečinka
    /Applications/MAMP/conf/my.cnf
    Verzia Pro - otvorte ponuku SÚBOR - UPRAVIŤ - Šablóna MySQL
  2. v konfigurácii my.cnf odstráňte riadok skip-networking
  3. v nastaveniach profilera zmeňte adresu hostiteľa DB z localhost na 127.0.0.1

Zmena portu MySQL vo vašom skripte

V Neor Profile SQL je predvolený port 4040. Ak chcete zhromažďovať dotazy SQL, musíte vo svojom skripte zmeniť predvolené hodnoty pripojenia MySQL hostiteľa a portu 3306. Nižšie sú uvedené príklady, ako to urobiť.

string connStr = " server=127.0.0.1;port=4040; databáza=VAŠA_DATABÁZA;používateľ=VÁŠ_POUŽÍVATEĽ;heslo=VAŠE_HESLO;";
http://dev.mysql.com/doc/refman/5.1/en/connector-net-tutorials-intro.html


Zmena portu v populárnom CMS

Wordpress

Súbor: wp-config.php
Kód: define("DB_HOST", "localhost :4040 ");

PrestaShop

Súbor: config/settings.inc.php
Kód: define("_DB_SERVER_", "localhost :4040 ");

opencart

Súbor:config.php
Kód: define("DB_HOSTNAME", "localhost :4040 ");

Už som napísal používateľom WordPress (pozrite si odkaz). Ale ako každý nástroj (okrem perlíka), Adminimize nie je dokonalý a nedokáže úplne odstrániť všetko, hoci je to len vďaka programátorom Vorpress.

Tento príspevok sa zrodil spontánne, môžete poďakovať hosťovi Blow. Podstatou jeho otázky bolo toto (skôr séria otázok):

1. Ako skryť "Voľba farebná schéma"pre používateľa?

2. Ako skryť "Klávesové skratky" a " vizuálny editor» v hlavnom paneli WordPress?

Prejdem rovno k veci. Touto metódou môžete používateľovi skryť ľubovoľné prvky v jeho profile a aj na iných stránkach. Najjednoduchší spôsob je upraviť súbor zobrazenia!

Pre "Profil" - toto je súbor user-edit.php, ktorý sa nachádza v priečinku wp-admin. Musíte ho upravovať veľmi opatrne, inak môžete za svoje experimenty dobre zaplatiť.

Riešenie (zjednotené):

1. Stiahnite si súbor do počítača a vytvorte si jeho kópiu (opatrne ....)

2. Hľadáme Html kód, ktorý je zodpovedný za zobrazenie informácií, ktoré potrebujeme.

3. Starostlivo ho okomentujte a „nahrajte“ ho späť s náhradou.

Teraz si precvičte (úprava User-edit.php):

Úprimne povedané, nepamätám si, akú verziu WP mám na experimentálnej stránke, ale určite nie nižšiu ako 2.8.2.

Najprv som si stiahol súbor do PC a pozrel sa na samotný kód pomocou prehliadača Chrome Code Viewer a našiel som kód, ktorý som potreboval v programe Notepad++.

(pomlčka dve na každej strane "-")

1. Skryť "Vizuálny editor"

Zmeniť na kód:

—>

ps: nekopírovať daný kód, a zmeniť doma - pravdepodobnosť chýb je vysoká !!!

2. Skryť "Výber farebnej schémy".

Dúfam, že ste si všimli rozdiel medzi kódmi - celkovo pribudlo 7 znakov. Ak chcete skryť túto položku, hľadáme if (count($_wp_admin_css_colors) > 1) a okomentujte pod riadkom celý kód medzi predtým

3. Skryte "Klávesové skratky".

V druhej lekcii napíšeme ďalšie dve triedy a kompletne dokončíme vnútornú časť skrípt.

Plán

Cieľom tejto série tutoriálov je vytvoriť jednoduchú aplikáciu, ktorá používateľom umožní registráciu, prihlásenie, odhlásenie a zmenu nastavení. Trieda, ktorá bude obsahovať všetky informácie o užívateľovi sa bude volať User a bude definovaná v súbore User.class.php. Trieda, ktorá bude zodpovedná za vstup/výstup, sa bude volať UserTools (UserTools.class.php).

Trochu o pomenovaní triedy

Správny tón je pomenovať súbory triedy rovnakým názvom ako samotná trieda. Týmto spôsobom je ľahké určiť účel každého súboru v priečinku triedy.

Je tiež bežné pridať .class alebo .inc na koniec názvu súboru triedy. Preto jasne definujeme účel súboru a môžeme použiť .htaccess na obmedzenie prístupu k týmto súborom.

Trieda používateľa (User.class.php)

Táto trieda bude definovať každého používateľa. Ako sa táto aplikácia rozrastá, definícia „používateľa“ sa môže výrazne zmeniť. Našťastie OOP programovanie uľahčuje pridávanie ďalších užívateľských atribútov.

Konštruktér

V tejto triede použijeme konštruktor – ide o funkciu, ktorá sa automaticky volá pri vytvorení ďalšej kópie triedy. To nám umožňuje automaticky publikovať niektoré atribúty po vytvorení projektu. V tejto triede bude konštruktor preberať jeden argument: asociatívne pole, ktoré obsahuje jeden riadok z tabuľky užívateľov v našej databáze.

require_once "db.class.php"; class User ( public $id; public $username; public $hashedPassword; public $email;
public $joinDate;
//Konštruktor sa volá pri vytvorení nového objektu//Vezme asociatívne pole s riadkom DB ako argument. function __construct($data) ( $this->id = (isset($data["id"])) ? $data["id"] : ""; $this->username = (isset($data[" username"])) ? $data["username"] : ""; $this->hashedPassword = (isset($data["heslo"])) ? $data["password"] : ""; $this- >email = (isset($data["email"])) ? $data["email"] : ""; $this->joinDate = (isset($data["join_date"])) ? $data[" pridať dátum"] : ""; )
public function save($isNewUser = false) ( //vytvorte nový databázový objekt. $db = new DB(); //ak je používateľ už zaregistrovaný a my //práve aktualizujeme jeho informácie. if(!$isNewUser ) ( //nastavenie dátového poľa $data = array("username" => ""$this->username"", "password" => ""$this->hashedPassword"",
"email" => ""$this->email"");
//aktualizácia riadku v databáze $db->update($data, "users", "id = ".$this->id); )else ( //ak je používateľ registrovaný prvýkrát. $data = array("username" => ""$this->username"", "password" => ""$this->hashedPassword"" , "email" => ""$this->email"", "join_date" => """.date("Y-m-d H:i:s",time())."""); $this-> id = $db->insert($data, "users"); $this->joinDate = time(); ) return true; ) ) ?>

Vysvetlenie

Prvá časť kódu, mimo zóny triedy, poskytuje pripojenie triedy k databáze (pretože v triede User je funkcia, ktorá túto triedu vyžaduje).

Namiesto „chránených“ premenných triedy (použitých v lekcii 1) ich definujeme ako „verejné“. To znamená, že akýkoľvek kód mimo triedy má pri práci s objektom User prístup k týmto premenným.

Konštruktor vezme pole, v ktorom sú kľúčmi stĺpce v tabuľke. Premennú triedy definujeme pomocou $this->variablename. V príklade tejto triedy v prvom rade skontrolujeme, či hodnota určitého kľúča existuje. Ak áno, potom nastavíme premennú triedy na túto hodnotu. V opačnom prípade prázdny reťazec. Kód používa krátku formu notácie obratu, ak:

$hodnota = (3 == 4) ? "A" : "B";

V tomto príklade kontrolujeme, či sa 3 rovná štyrom! Ak áno - potom $hodnota = "A", nie - $hodnota = "B". V našom príklade je výsledkom $value = „B“.

Ukladanie informácií o používateľoch do databázy

Funkcia uloženia sa používa na vykonanie zmien v databázovej tabuľke s aktuálnymi hodnotami v objekte používateľa. Táto funkcia používa triedu DB, ktorú sme vytvorili v prvom tutoriále. Pomocou premenných triedy sa nastaví pole $data. Ak je to prvýkrát, čo sa používateľ ukladá, potom sa $isNewUser odovzdá ako $true (predvolená hodnota je false). Ak $isNewUser = $true, potom sa zavolá funkcia insert() triedy DB. V opačnom prípade sa zavolá funkcia update(). V oboch prípadoch budú informácie z objektu používateľa uložené v databáze.

Trieda UserTools.class.php

Táto trieda bude obsahovať funkcie súvisiace s používateľmi: login(), logout(), checkUsernameExists() a get(). S rozšírením tejto aplikácie však môžete pridať oveľa viac.

//UserTools.class.php require_once "User.class.php"; require_once "db.class.php";
trieda UserTools(
//Prihlásiť používateľa. Najprv skontroluje, či sa //užívateľské meno a heslo zhodujú s riadkom v databáze. //Ak je to úspešné, nastavte premenné relácie //a uložte objekt používateľa.
verejné prihlásenie ($username, $password)
{
$hashedPassword = md5($heslo); $result = mysql_query("SELECT * FROM users WHERE username = "$username" AND password = "$hashedPassword""); if(mysql_num_rows($result) == 1) ( $_SESSION["user"] = serialize(new User(mysql_fetch_assoc($result))); $_SESSION["login_time"] = time(); $_SESSION["prihlásené_in "] = 1; return true; )else( return false; ) )
//Odhláste používateľa. Zničte premenné relácie. public function logout() ( unset($_SESSION["user"]); unset($_SESSION["login_time"]); unset($_SESSION["logged_in"]); session_destroy(); ) //Skontrolujte, či používateľské meno existuje. //Toto sa volá počas registrácie, aby sme sa uistili, že všetky používateľské mená sú jedinečné. verejná funkcia checkUsernameExists($username) ( $result = mysql_query("select id from users where username="$username""); if(mysql_num_rows($result) == 0) ( return false; )else( return true; )
}
//získať používateľa //vráti objekt používateľa. Berie ID používateľa ako vstupnú verejnú funkciu get($id) ( $db = new DB(); $result = $db->select("users", "id = $id"); return new User($result ;)))
?>

funkciu login().

Funkcia login() je samozrejmá. Berie užívateľské argumenty $username a $password a kontroluje, či sa zhodujú. Ak sa všetko zhoduje, vytvorí objekt používateľa so všetkými informáciami a uloží ho do relácie. Všimnite si, že používame iba funkciu PHP serialize(). Vytvára trvalú verziu objektu, ktorú možno jednoducho zrušiť serializáciou pomocou unserialize(). Uloží sa aj čas prihlásenia. To môže byť neskôr použité na poskytovanie informácií používateľom o dĺžke ich pobytu na stránke.

Môžete si tiež všimnúť, že nastavujeme $_SESSION["logged_in"] na 1. To nám umožňuje na každej stránke jednoducho skontrolovať, či je používateľ prihlásený. Stačí zaškrtnúť iba túto premennú.

funkciu logout().

Tiež jednoduchá funkcia. PHP funkcia unset() vymaže premenné v pamäti, zatiaľ čo session_destroy() vymaže reláciu.

funkcia checkUsernameExists().

Kto vie po anglicky, funkciu ľahko pochopí. Jednoducho sa spýta v databáze, či sa takéto prihlásenie používa alebo nie.

funkcia get().

Táto funkcia preberá jedinečné ID používateľa a dopytuje databázu pomocou triedy DB, konkrétne funkcie select(). Bude potrebné asociatívne pole s niektorými informáciami o používateľovi a vytvorí nový objekt používateľa, pričom pole odovzdá konštruktorovi.

Kde sa dá použiť? Napríklad, ak vytvoríte stránku, ktorá potrebuje zobrazovať špecifické užívateľské profily, budete musieť tieto informácie brať dynamicky. Môžete to urobiť takto: (povedzme, že adresa URL je http://www.website.com/profile.php?userID=3)

//poznámka: najprv budete musieť otvoriť pripojenie k databáze. //Ďalšie informácie o tom nájdete v časti 1. //Musíte sa tiež uistiť, že ste zahrnuli súbory triedy.
$tools = new UserTools(); $user = $tools->get($_REQUEST["userID"]); echo "Používateľské meno: ".$user->username.""; echo "Pripojené dňa: ".$user->joinDate."";

Jednoducho! pravda?

Dokončenie na strane servera: global.inc.php

global.inc.php sa vyžaduje pre každú stránku webu. prečo? Takto na stránku umiestnime všetky bežné operácie, ktoré potrebujeme. Napríklad spustíme session_start(). Otvorí sa aj pripojenie k databáze.

require_once "classes/UserTools.class.php";
require_once "classes/DB.class.php";
//pripojenie k databáze $db = new DB(); $db->connect();
//inicializácia objektu UserTools $userTools = new UserTools(); //spustenie relácie
session_start();
//obnoviť premenné relácie, ak ste prihlásení if(isset($_SESSION["logged_in"])) ( $user = unserialize($_SESSION["user"]); $_SESSION["user"] = serialize($userTools-> get($user->id)); ) ?>

Čo robí?

Deje sa tu viacero vecí. Najprv otvoríme pripojenie k databáze.

Po pripojení spustíme funkciu session_start(). Funkcia vytvorí reláciu alebo pokračuje v aktuálnej, ak je používateľ už prihlásený. Keďže naša aplikácia je určená pre používateľov na prihlásenie/odhlásenie, táto funkcia je potrebná na každej stránke.

Ďalej skontrolujeme, či je používateľ prihlásený. Ak áno, aktualizujeme $_SESSION["user"], aby sa zobrazili najnovšie informácie o používateľovi. Napríklad, ak používateľ zmení svoj e-mail, relácia bude stále uchovávať starý. Ale s pomocou automatickej aktualizácie sa to nestane.

Týmto sa končí druhá časť! Zajtra očakávajte záverečnú lekciu na túto tému.

Všetko najlepšie!