Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


 Поделиться

Рекомендованные сообщения

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

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

\admin\index.php 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...

3 шаг это какой? у меня на 1541 все прекрасно работает

Это замена строчки в mysql.php

без sql остальные данные показывает

Ссылка на комментарий
Поделиться на других сайтах


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

<?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)

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

Ссылка на комментарий
Поделиться на других сайтах


Как можно финансовую благодарность автору выразить для дальнейшего развития модуля? Ну, чтобы ему хоть кофе хватало при работе :)

Ссылка на комментарий
Поделиться на других сайтах

уж думаю на кофе то хватает ему всяко))) а вот от вискаря кто б отказался))) ради скотча кто хочешь автором станет )))))

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


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

Ссылка на комментарий
Поделиться на других сайтах


<?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 месяц спустя...

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

 

// рассчет времени работы $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 недели спустя...

А может есть кто сможет помочь, отладить работу что бы по шустрее магазин работал.. соответственно, за скромное вознаграждение 

Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...

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

Нужная вешь.

Кто ставил подскажите что нужно в 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 запросов, которые выполняются после загрузки страницы?

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.