Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Отладчик для OpenCart - Debugger


Recommended Posts

Пожалуйста допилите версию с работающим отладчиком в админке OC  :wink: очень нужно !

просто повторите действия из п.2 из инструкции по установке для файла админки

\admin\index.php 

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 3 months later...

файл должен быть таким:

<?php
final class MySQL {
	private $link;
	
	public function __construct($hostname, $username, $password, $database) {
		if (!$this->link = mysql_connect($hostname, $username, $password)) {
      		trigger_error('Error: Could not make a database link using ' . $username . '@' . $hostname);
    	}

    	if (!mysql_select_db($database, $this->link)) {
      		trigger_error('Error: Could not connect to database ' . $database);
    	}
		
		mysql_query("SET NAMES 'utf8'", $this->link);
		mysql_query("SET CHARACTER SET utf8", $this->link);
		mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
		mysql_query("SET SQL_MODE = ''", $this->link);
  	}
		
  	public function query($sql) {
		//$resource = mysql_query($sql, $this->link);
        // Debug
        $sysstart = microtime(true);
        $resource = mysql_query($sql, $this->link);
        $row = array();

        if(DEBUG){
            $caller = debug_backtrace();
            $row['file'] = $caller[1]['file'];
            $row['line'] = $caller[1]['line'];

            $row['Duration'] = round(( microtime(true) - $sysstart), 5);
            $row['Query'] = $sql;

            Debug::$_profs[] =  $row;
        }

		if ($resource) {
			if (is_resource($resource)) {
				$i = 0;
    	
				$data = array();
		
				while ($result = mysql_fetch_assoc($resource)) {
					$data[$i] = $result;
    	
					$i++;
				}
				
				mysql_free_result($resource);
				
				$query = new stdClass();
				$query->row = isset($data[0]) ? $data[0] : array();
				$query->rows = $data;
				$query->num_rows = $i;
				
				unset($data);
				
				return $query;	
    		} else {
				return true;
			}
		} else {
			trigger_error('Error: ' . mysql_error($this->link) . '<br />Error No: ' . mysql_errno($this->link) . '<br />' . $sql);
			exit();
    	}
  	}
	
	public function escape($value) {
		return mysql_real_escape_string($value, $this->link);
	}
	
  	public function countAffected() {
    	return mysql_affected_rows($this->link);
  	}

  	public function getLastId() {
    	return mysql_insert_id($this->link);
  	}	
	
	public function __destruct() {
		mysql_close($this->link);
	}
}
?>
Надіслати
Поділитися на інших сайтах

просто повторите действия из п.2 из инструкции по установке для файла админки

\admin\index.php 

ocStore © 2009-2013 All Rights Reserved.

Version 1.5.4.1

  •  0.63048 s
  •  2.22 mb
  •  logs (2)
  •  sql (19)
  •  files (49)
  •  request (49)

Некорректно отображается в админке

Надіслати
Поділитися на інших сайтах


<?php if(isset($this->session->data['token'])) { ?>код<?php } ?>

<?php if($this->customer->getId()==1) { ?>код<?php } ?>

А вообще, работать на продакшн постоянно оно не должно, даже если отладочная информация не выводится, она потребляет немного памяти и процессора. Если уж очень хочется, перенесите define('DEBUG,true) в index.php после $registry->set('session', $session); 

if(isset($this->session->data['token']))  define('DEBUG,true);

else define('DEBUG,false);

  • +1 1
Надіслати
Поділитися на інших сайтах


подскажите, пожалуйста, чайнику, как модицифировать код вывода, чтобы он отображался лишь админу или юзеру с определенным ID?

если вам постоянно необходимо вкл/откл отладчик, самый простой способ делать это через куку, чтобы постоянно не править конфиг:

Логика простая: если на сайте стоит секретный cookie с именем, например, "debug_opencart" - включаем отладчик, если нет такой, значит выкл.

для того чтобы это работало надо:

1. в файле config.php заменить строчку:

define('DEBUG', true);

на

define('DEBUG', (isset($_COOKIE) && isset($_COOKIE['debug_opencart']) ? true : false));

 

2. установить/удалить cookie - это просто делается в FireBug

2013-08-26_2025.png

  • +1 2
Надіслати
Поділитися на інших сайтах

Недавно встретил отладчик сделанный отдельным проектом, без привязки к фреймвору.

Выглядит очень симпатично, может кого заинтересует http://phpdebugbar.com/

2013-08-26_2142.png

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 1 month later...

Вот, что выдаёт после всех изменений:

 

// рассчет времени работы $sysstart = microtime(true); // рассчет памяти function_exists('memory_get_usage') ? define('MEM_USAGE', memory_get_usage()) : null;//debug define('DEBUG', true);Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in /home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25Notice: Use of undefined constant DEBUG - assumed 'DEBUG' in/home/y/youfash/optovikoff.ru/public_html/system/database/mysql.php on line 25

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 2 weeks later...

Добрый день всем.

Нужная вешь.

Кто ставил подскажите что нужно в header.tpl добавить чтоб слайдбар появился ?

Я добавил

<script src="admin/view/javascript/profilertoolbar.js" type="text/javascript"></script>
<link href="admin/view/stylesheet/profilertoolbar.css" rel="stylesheet" />

и

<div id="ptb">
</div>

Но слайдбар не появляется.

Надіслати
Поділитися на інших сайтах

Откуда вы это взяли? Я лично не припоминаю такого в инструкции.

Что именно, какую версию и на какую версию вы ставить пытаетесь?

Надіслати
Поділитися на інших сайтах

Откуда вы это взяли? Я лично не припоминаю такого в инструкции.

Что именно, какую версию и на какую версию вы ставить пытаетесь?

debugger_0.0.2.zip  на  ocStore 1.5.0

В инструкции такого нет.

Но в инструкции нет ничего о модификации файла шаблона .

Надіслати
Поділитися на інших сайтах

А его и не нужно трогать

Я по инструкции сделал. Ошибок нет . Но и слайдбара не появилось.

При этом не вижу чтоб подключались скрипт и таблица стилей в документе.

На демке они подключены.

Поэтому и подключал правя .tpl.

А как должно быть ?

Надіслати
Поділитися на інших сайтах

Ошибки выдаёт?
Второй пункт весь сделали?

2. Добавляем в файл \config.php и \admin\config.php в конец:

	//debug
	define('DEBUG', true);

2. Добавляем в файл \index.php 
	2.1 в начало файла добавляем:

		// рассчет времени работы
		$sysstart = microtime(true);
		// рассчет памяти
		function_exists('memory_get_usage') ? define('MEM_USAGE', memory_get_usage()) : null;

	2.2  после комментария //Application Classes:
	
		require_once(DIR_SYSTEM . 'library/debug.php');

	2.3 в конец:
	
		// вывод итогового лога отлатчика
		echo !DEBUG ? null : Debug::show($sysstart);
 


 
И если что, то для конфига админки нужно задать define('DEBUG', false);

Автор в начале темы писал об этом

Надіслати
Поділитися на інших сайтах

Да, прописано.

Там еще нужно в startup.php прописать

require_once(DIR_SYSTEM . 'library/debug.php');

Ошибок нет.

Мне просто не понятно как слайдбар появляется , без правки шаблона.

Надіслати
Поділитися на інших сайтах

Ошибок нет.

Мне просто не понятно как слайдбар появляется , без правки шаблона.

Ошибок нет, или же они не отображаются? ;)

А по  поводу второй строки... да вы шутите? А это что? С комментами!

// вывод итогового лога отлатчика
echo !DEBUG ? null : Debug::show($sysstart);

Могу предположить, что либо у вас плагинами браузера что-то блокируется, либо отладчик скрыт под каким-то элементом (например верхним меню) обладающим более высоким z-index

И ссылку можете в лс прислать

Надіслати
Поділитися на інших сайтах

Ошибок нет, или же они не отображаются? ;)

А по  поводу второй строки... да вы шутите? А это что? С комментами!

// вывод итогового лога отлатчика
echo !DEBUG ? null : Debug::show($sysstart);

Могу предположить, что либо у вас плагинами браузера что-то блокируется, либо отладчик скрыт под каким-то элементом (например верхним меню) обладающим более высоким z-index

И ссылку можете в лс прислать

Да, протупил. Спасибо.

Вобщем заработало.

У меня проблема в том что если  

echo !DEBUG ? null : Debug::show($sysstart);

  прописать после

$response->output();

, то слайдбар не появляется.

Если прописать до $response->output();  слайдбар появляется.

Правда при этом структура документа нарушается - <head> оказывается пустой, а все что должно в нем быть выводится в <body>.

Но это мелочи. главное что работает.

Надіслати
Поділитися на інших сайтах

Что входит в понятие время выполнения скрипта?

Речь идет о PHP скрипте? Другими словами это время загрузки страницы сайта?

Учитывает ли отладчик время выполнения javascript кода и ajax запросов, которые выполняются после загрузки страницы?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.