Jump to content

Recommended Posts

Спасибо, очень удобная штука!

Share this post


Link to post
Share on other sites

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

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

\admin\index.php 

  • +1 1

Share this post


Link to post
Share on other sites

1.5.4.1

3 шаг ни в какую. Сайт падает

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

просто повторите действия из п.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)

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

подскажите, пожалуйста, чайнику, как модицифировать код вывода, чтобы он отображался лишь админу или юзеру с определенным 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

Share this post


Link to post
Share on other sites

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

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

2013-08-26_2142.png

  • +1 1

Share this post


Link to post
Share on other sites

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

 

// рассчет времени работы $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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Нужная вешь.

Кто ставил подскажите что нужно в 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>

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

debugger_0.0.2.zip  на  ocStore 1.5.0

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Ошибок нет.

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

Share this post


Link to post
Share on other sites

Ошибок нет.

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

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

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

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

$response->output();

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By barl0g
      Просьба к более опытным программистам описать каким образом правильно организовать отладку ошибок, возникающих при конфликте модулей в opencart?
       
      Например, программист натыкается на ошибку типа:
      Parse error: syntax error, unexpected 'else' (T_ELSE) in /home/user/www/opencart/system/storage/modification/catalog/view/theme/default/template/product/product.tpl on line 198 В phpstorm breakpoint в файлах *.tpl не устанавливается (?). Каким образом правильно организовать отладку в таких случаях?
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.