I bet you didn’t know it but Nette’s internal behaviour can be configured quite extensively in config.neon. Default form error messages, switching on/off debugger panels, changing mailer to use SMTP instead of mail() and so on. All of this can be set up in PHP but keeping configuration out of your code helps making it easier to read. Do have a look, it has a great potential. As usually, the documentation is pretty bare and it’s up to us to discover the whole truth. This post contains some additional information that I scavenged in forums or discovered myself. Read the rest of this entry »
Many of us send sensitive information over Skype chat in order to prevent a third party from reading it. Think login credentials for example. What you may not know is that Skype is set by default to store chat history on your hard disk. Nothing wrong with it if it weren’t in plain text!
At the time of this writing, Nette lacks a good support for dynamic snippets. You can define them wrapped in a static snippet but you can’t invalidate them individually (unless they each belong to a different control, I think). You can only invalidate the static parent snippet which means you receive all its dynamic children snippets in the payload.
If you defined only a few snippets with small amount of data in each then no big deal. If however, you have a pageful of forms, each form containing a snippet that you want updated upon the parent form submission then you have to resort to tricks. For instance, you don’t want a message “Saved” displayed in each row/form in a product administration table.
Read the rest of this entry »
Many applications use the default Windows colour picker which unfortunately, doesn’t support hexa codes. Use this bookmarklet to convert and copy the decimal values from your browser to the picker. No need to bullshit around, here’s the thing :-)
There are many ways to handle image thumbnails. Sites with heavy traffic generate resized copies right after the original image is uploaded. Light traffic sites on the other hand, prefer to wait until the thumbnail is actually requested. Nette offers a few creative ways to handle this:
- You can use .htaccess to catch requests for non-existent thumbnails and redirect them to your script.
- Following the same theme, you can also use your ErrorPresenter to generate the thumbnail and override the response code (so that it’s not 404).
- An unusual solution is to use a helper and generate the thumbnail when rendering your template.
- Or simply use a presenter action.
In any of these cases, you need to decide where you’re going to store the thumbnail and how you’re going to delete/update it when the main image changes. This is where you can use the excellent built-in caching aparatus.