Jump to content
adrian

Tracy Debugger

Recommended Posts

@Ipa and @tpr - can you please try the latest version and see if that error is now gone?

Speaking of the latest version, it includes a few new features.

  1. The ability to force superusers to always be in DEVELOPMENT mode, even on a live site.
     
  2. The ability to restrict non-superusers by their IP address - this is very useful if you need to debug a live site for a guest (or non-superuser role) and want the debugger bar and other features normally restricted to development mode. You can set the mode to DEVELOPMENT, give the user the "tracey-debugger" permission, and then restrict to your current IP address.
     
  3. The Users panel provides details of IP Address restriction so you can always easily check if you're safe.

post-985-0-67599400-1456168043_thumb.png

  • Like 1

Share this post


Link to post
Share on other sites

i just installed tracy and had some problems:

im on 2.7.2 and installation went without problems. but i can't see the debug bar. neither on frontend nor on backend. i tried with a different browser because i have some problems with visibility sometimes on my laptop and got the following error on the pw-login screen:

debug->true

Fatal error: Cannot use object of type TracyDebugger as array in /var/www/.../site/modules/TracyDebugger/TracyDebugger.module on line 476

Error: Cannot use object of type TracyDebugger as array (line 476 of /var/www/.../site/modules/TracyDebugger/TracyDebugger.module)

This error message was shown because site is in debug mode ($config->debug = true; in /site/config.php). Error has been logged. 

debug->false

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Error has been logged. 

besides those errors: do i have to do some additional things to see the tracy bar?

thanks for your help :)

Share this post


Link to post
Share on other sites

The original problem has not gone. At the moment all the frontend pages give me the error: "Class 'ProcessWire\TracyDebugger' not found". I have even tried to reinstall the module, but it doesn't help. I don't see the version mismatch on the upgrades page anymore. 

<?php 57: if(class_exists('TracyDebugger')) {

58: \ProcessWire\wire('templateVars', TracyDebugger::templateVars(get_defined_vars(), \ProcessWire\wire('page')));

59: }

Share this post


Link to post
Share on other sites

@BernhardB - are you using the latest version? Also, what version of PHP are you using - I wonder if there might be something connected with that?

@Ipa - can you please try emptying the site/assets/cache/FileCompiler/site/templates folder and see if it starts working after that?

Share this post


Link to post
Share on other sites

@BernhardB

Try setting Output Mode to "DEVELOPMENT"

Share this post


Link to post
Share on other sites

Actually I am seeing @BernhardB's issue when running 2.7.2 - I'll hopefully have a fix soon.

Share this post


Link to post
Share on other sites

hi adrian,

PHP Version 5.4.45 and tracy 0.5.4

the error came when i tried to reach the admin in a different browser where i was NOT logged in. in the browser where i installed tracy it seemed that everything worked but i could not see the debug panel. don't know if that's somehow related so my laptop or if i did not setup it correctly? i checked both checkboxes (frontend + backend)

Share this post


Link to post
Share on other sites

@Ipa - can you please try emptying the site/assets/cache/FileCompiler/site/templates folder and see if it starts working after that?

The problem is with Show Variables Panel setting. After clearing the compiled files from cache with the Show Variables Panel setting off, everything works. But when I enable the Show Variables Panel, the error is back. 

Share this post


Link to post
Share on other sites

great adrian, that did it :) and i can also see the panel now, it was related to my browser.

Share this post


Link to post
Share on other sites

The problem is with Show Variables Panel setting. After clearing the compiled files from cache with the Show Variables Panel setting off, everything works. But when I enable the Show Variables Panel, the error is back. 

Yeah, it is that feature which is responsible for adding that line to the bottom of the compiled templates - I just don't yet know why you are still getting the error and @tpr isn't and I have never seen it :) What version of PW and PHP are you running?

great adrian, that did it  :) and i can also see the panel now, it was related to my browser.

Glad it's working now - thanks for letting me know. What do you mean about it being related to your browser?

Share this post


Link to post
Share on other sites

@adrian: I just pop in to report that Tracy Debugger 0.5.5 on ProcessWire 3.0.8 with PHP 5.6.10 works without a hitch so far :) Thanx once more!

  • Like 1

Share this post


Link to post
Share on other sites

@adrian: I just pop in to report that Tracy Debugger 0.5.5 on ProcessWire 3.0.8 with PHP 5.6.10 works without a hitch so far :) Thanx once more!

Awesome - thanks for letting me know.

I did just make another change though in an attempt to fix the problem @Ipa is still having with the Variables panel. Hopefully this might work and hopefully I haven't broken anything for anyone else :)

  • Like 1

Share this post


Link to post
Share on other sites

Awesome - thanks for letting me know.

I did just make another change though in an attempt to fix the problem @Ipa is still having with the Variables panel. Hopefully this might work and hopefully I haven't broken anything for anyone else :)

Sorry, but it still doesn't work for me. I have PHP 5.5.29, PW 3.0.8 and Mac OS X 10.10.5.

Share this post


Link to post
Share on other sites

I switched to PHP 5.5.26 (that is the closest to 5.5.29 I happen have at the moment). I am also on OS X 10.10.5 but this should not matter too much I guess. I also updated to 0.5.6. Actually I have just realized, that although I do not get any errors with $Variables Panel turned on, it does not display any variables except for a strange empty array, like this:

array ()

That is all I have in the panel, however – for example – I have $title = $page->get('headline|title'); in my _init.php and <?= $title ?> outputs fine. Shouldn't it be a variable that is displayed in this panel?

Share this post


Link to post
Share on other sites

@Ipa - did you clear your FileCompiler templates cache after installing the new version? - this is essential to ensure the new version of the code is added into the templates when they are compiled.

I switched to PHP 5.5.26 (that is the closest to 5.5.29 I happen have at the moment). I am also on OS X 10.10.5 but this should not matter too much I guess. I also updated to 0.5.6. Actually I have just realized, that although I do not get any errors with $Variables Panel turned on, it does not display any variables except for a strange empty array, like this:

array ()

That is all I have in the panel, however – for example – I have $title = $page->get('headline|title'); in my _init.php and <?= $title ?> outputs fine. Shouldn't it be a variable that is displayed in this panel?

Sorry, I should have made it more obvious that for this feature to work, you need to clear your compiled templates cache as it needs to add a line to the bottom of the compiled template. Once you do this once, it will work for future updates to your templates.

Share this post


Link to post
Share on other sites

Thanks. I manually cleaned .../site/assets/cache/FileCompiler/site/modules and got fatal error as the class TracyDebugger was not found. (Class 'ProcessWire\TracyDebugger' not found). And using Admin > Modules > Site > [Clear Compiled Files] button afterwards did not help.

Deleting the FileCompiler folder itself gets rid of the error, but my original problem (that is not seeing any variables in the panel) remained.

One more thing. If I manually delete .../site/assets/cache/FileCompiler/site/modules and do not resave the module settings afterwards but try to reload the forntend, then the Fatal Error is back againg.

Share this post


Link to post
Share on other sites

What is folder permission for cache/FileCompiler?

Share this post


Link to post
Share on other sites

I cleared the cache both manually and with the button at Site -> Modules settings. The problem remains. I have also the empty array() in my $Variables panel.

Share this post


Link to post
Share on other sites

What is folder permission for cache/FileCompiler?

This is my local machine and I run Apache as my own user so that I always have read/write permissions while developing.

Share this post


Link to post
Share on other sites

You need to empty .../site/assets/cache/FileCompiler/site/templates, not .../site/assets/cache/FileCompiler/site/modules

Please tell me that works :)

Share this post


Link to post
Share on other sites

Yes, I have deleted files in site/assets/cache/FileCompiler/site/templates and it still gives those errors….

Share this post


Link to post
Share on other sites

So the line added to the end of my compiled template files currently looks like:

if(class_exists('TracyDebugger')) {
    TracyDebugger::$templateVars = TracyDebugger::templateVars(get_defined_vars(), \ProcessWire\wire('page'));
}

Does that match what you are currently seeing?

What if you manually add \ProcessWire\ in front of each TracyDebugerr, like this - just do it for one of the compiled template files and load a page with that template - this is just a test for me at the moment to help debug.

if(class_exists('\ProcessWire\TracyDebugger')) {
    \ProcessWire\TracyDebugger::$templateVars = \ProcessWire\TracyDebugger::templateVars(get_defined_vars(), \ProcessWire\wire('page'));
}

I feel like I am going off on a tangent here, but what happens if you also add false to that check, eg:

if(class_exists('\ProcessWire\TracyDebugger', false)) {
    \ProcessWire\TracyDebugger::$templateVars = \ProcessWire\TracyDebugger::templateVars(get_defined_vars(), \ProcessWire\wire('page'));
}

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


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By eelkenet
      Hi! I've created a small Inputfield module called InputfieldFloatRange which allows you to use an HTML5 <input type="range" ../> slider as an InputField. I needed something like this for a project where the client needs to be able to tweak this value more based on 'a feeling' than just entering a boring old number. Maybe more people can use this so I'm hereby releasing it into the wild. 
      EDIT: You can now install it directly from the Modules directory: http://modules.processwire.com/modules/inputfield-float-range/
       
      What is it?
      The missing range slider Inputfield for Processwire. 
      What does it do?
      This module extends InputfieldFloat and allows you to use HTML5 range sliders for number fields in your templates.
      It includes a visible and editable value field, to override/tweak the value if required.  
      Features
      Min/max values Precision (number of decimals) Optional step value (Read more) Optional manual override of the selected value (will still adhere to the rules above) Configurable rounding of manually entered values (floor, round, ceil, disable) Usage
      Clone / zip repo Install FieldtypeFloatRange, this automatically installs the Inputfield Create new field of type `Float (range)` or convert an existing `Float`, `Integer` or `Text` field. To render the field's value simply echo `$page->field` Demo
      A field with Min=0, Max=1, Step=0.2, Precision=2

      Field with settings Min=0, Max=200, Step=0.25, Precision=2

       
      Todo
      Make the display-field's size configurable (will use the Input Size field setting)  Hopefully become redundant  
      Changelog
      004 (current version)
      - Make rounding of manually entered values configurable (floor, round, ceil or disable)
      - Fix small JS bug when the value-display field was not displayed
      - Update README
      003
      - Code cleanup, add some ModuleInfo data & LICENSE
      - Submit to PW Modules directory (http://modules.processwire.com/modules/inputfield-float-range/)
      002
      - Fix issue where setting the step value to an empty value created problem with validation
      - Make the display-field optional
      001
      - Initial release
       
      Thanks!
       
       
    • By Gadgetto
      Status update links (inside this thread) for SnipWire development will be always posted here:
      2019-10-18
      2019-08-08
      2019-06-15
      2019-06-02
      2019-05-25
      If you are interested, you can test the current state of development:
      https://github.com/gadgetto/SnipWire
      Please note that the software is not yet intended for use in a production system (alpha version).
      If you like, you can also submit feature requests and suggestions for improvement. I also accept pull requests.
      ---- INITIAL POST FROM 2019-05-25 ----
      I wanted to let you know that I am currently working on a new ProcessWire module that fully integrates the Snipcart Shopping Cart System into ProcessWire. (this is a customer project, so I had to postpone the development of my other module GroupMailer).
      The new module SnipWire offers full integration of the Snipcart Shopping Cart System into ProcessWire.
      Here are some highlights:
      simple setup with (optional) pre-installed templates, product fields, sample products (quasi a complete shop system to get started immediately) store dashboard with all data from the snipcart system (no change to the snipcart dashboard itself required) Integrated REST API for controlling and querying snipcart data webhooks to trigger events from Snipcart (new order, new customer, etc.) multi currency support self-defined/configurable tax rates etc. Development is already well advanced and I plan to release the module in the next 2-3 months.
      I'm not sure yet if this will be a "Pro" module or if it will be made available for free.
      I would be grateful for suggestions and hints!
      (please have a look at the screenshots to get an idea what I'm talking about)
       




    • By Robin S
      Another little admin helper module...
      Template Field Widths
      Adds a "Field widths" field to Edit Template that allows you to quickly set the widths of inputfields in the template.

      Why?
      When setting up a new template or trying out different field layouts I find it a bit slow and tedious to have to open each field individually in a modal just to set the width. This module speeds up the process.
      Installation
      Install the Template Field Widths module.
      Config options
      You can set the default presentation of the "Field widths" field to collapsed or open. Field widths entered into the Template Field Widths inputfield are only applied if the Edit Template form is submitted with the Template Field Widths inputfield in an opened state. "Collapsed" is the recommended setting if you think you might also use core inputs for setting field widths in a template context. You can choose Name or Label as the primary identifier shown for the field. The unchosen alternative will become the title attribute shown on hover. You can choose to show the original field width next to the template context field width.  
      https://github.com/Toutouwai/TemplateFieldWidths
      https://modules.processwire.com/modules/template-field-widths/
    • By adrian
      This module allows you to automatically rename file (including image) uploads according to a configurable format
      This module lets you define as many rules as you need to determine how uploaded files will be named and you can have different rules for different pages, templates, fields, and file extensions, or one rule for all uploads. Renaming works for files uploaded via the admin interface and also via the API, including images added from remote URLs.   Github: https://github.com/adrianbj/CustomUploadNames
      Modules Directory: http://modules.processwire.com/modules/process-custom-upload-names/
      Renaming Rules
      The module config allows you to set an unlimited number of Rename Rules. You can define rules to specific fields, templates, pages, and file extensions. If a rule option is left blank, the rule with be applied to all fields/templates/pages/extensions. Leave Filename Format blank to prevent renaming for a specific field/template/page combo, overriding a more general rule. Rules are processed in order, so put more specific rules before more general ones. You can drag to change the order of rules as needed. The following variables can be used in the filename format: $page, $template, $field, and $file. For some of these (eg. $field->description), if they haven't been filled out and saved prior to uploading the image, renaming won't occur on upload, but will happen on page save (could be an issue if image has already been inserted into RTE/HTML field before page save). Some examples: $page->title mysite-{$template->name}-images $field->label $file->description {$page->name}-{$file->filesize}-kb prefix-[Y-m-d_H-i-s]-suffix (anything inside square brackets is is considered to be a PHP date format for the current date/time) randstring[n] (where n is the number of characters you want in the string) ### (custom number mask, eg. 001 if more than one image with same name on a page. This is an enhanced version of the automatic addition of numbers if required) If 'Rename on Save' is checked files will be renamed again each time a page is saved (admin or front-end via API). WARNING: this setting will break any direct links to the old filename, which is particularly relevant for images inserted into RTE/HTML fields. The Filename Format can be defined using plain text and PW $page variable, for example: mysite-{$page->path} You can preserve the uploaded filename for certain rules. This will allow you to set a general renaming rule for your entire site, but then add a rule for a specific page/template/field that does not rename the uploaded file. Just simply build the rule, but leave the Filename Format field empty. You can specify an optional character limit (to nearest whole word) for the length of the filename - useful if you are using $page->path, $path->name etc and have very long page names - eg. news articles, publication titles etc. NOTE - if you are using ProcessWire's webp features, be sure to use the useSrcExt because if you have jpg and png files on the same page and your rename rules result in the same name, you need to maintain the src extension so they are kept as separate files.
      $config->webpOptions = array(     'useSrcExt' => false, // Use source file extension in webp filename? (file.jpg.webp rather than file.webp) ); Acknowledgments
      The module config settings make use of code from Pete's EmailToPage module and the renaming function is based on this code from Ryan: http://processwire.com/talk/topic/3299-ability-to-define-convention-for-image-and-file-upload-names/?p=32623 (also see this post for his thoughts on file renaming and why it is the lazy way out - worth a read before deciding to use this module). 
       
       
      NOTE:
      This should not be needed on most sites, but I work with lots of sites that host PDFs and photos/vectors that are available for download and I have always renamed the files on upload because clients will often upload files with horrible meaningless filenames like:
      Final ReportV6 web version for John Feb 23.PDF

×
×
  • Create New...