Jump to content

David Karich

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by David Karich

  1. I have the new version of AIOM+ uploaded (3.1.2). From this version it is now possible to disable the directory traversal filter. Also, the LESS parser was updated. Now compatible with the official LESS version 1.7.
  2. The easiest way is by infected third-party applications. Also on Bower or Composer, its possible, that compromised packages can be delivered. I have currently identified no scenario targeted at Process Wire, rather it is one of my personal programming rules. Just do not make it possible. Asset files belong in the template folder. This approach I have always in development, regardless of platform or environment. I have some clients who work with sensitive data, and the safety requirements are very high. Therefore, this is my natural data schizophrenia.
  3. Hi pwFoo, AIOM+ monitors each asset file on the modifikation time and generates a hash for the comparsion with the already cached files. If there exist no cached file, the first function call will trigger that process, but only for files, that are needed (first page load). The average overhead of an average webproject on shared hosting with 128 MB php_memory_limit are round 500 ms for generating, minimization, parsing and writing the cached files. That's at least my experience. The complete Bootstrap 3 source as LESS files is generated in under 3 seconds.
  4. Hi Jonathan , yes, in this function paths are filtered to prevent directory traversal attacks. AIOM+ loads only allowed files that are located in the template folder. I think about it, in one of the upcoming versions, introduce a whitelist for asset folder. For a workaround change the following line (749) in AllInOneMinify.module: $_path = str_ireplace(array('../', './', '%2e%2e%2f', '..%2F'), '', (wire('config')->paths->templates.$_file)); to $_path = wire('config')->paths->templates.$_file; I have not tested it and I can not recommend it too.
  5. Hi ceberlin, no, there is no option, because this ist not the target of a minimization. Every browser has an inspector or dev-tools in which you or your client can see the restructured DOM.
  6. Our @ProcessWire module AIOM+ has reached Version 3.1.1. with new feature: Conditional loading based on API selector. http://mods.pw/5q

  7. So, just before the weekend, I've uploaded a new version (3.1.1) that supports a new feature: Conditional loading. You can now assign CSS, LESS or JS files with an API-selector a condition at which they should be loaded. For example: <?php $stylesheets = array('css/reset.css', 'css/main.less', array('loadOn' => 'id|template=1002|1004|sitemap', // PW API selector 'files' => array('css/special.css', 'css/special-theme.less'))); ?> <link rel="stylesheet" type="text/css" href="<?php echo AIOM::CSS($stylesheets); ?>" />
  8. Thank you guys, for all the discussion and info, that either-or is coming and currently not supported. It has me in the morning at 4:00 clock a bit confused if I was just too tired, or it really does not work.
  9. Hey Pierre, I'm not really happy with Assetic for several reasons: Too many dependencies. Java-based YUI integeration. Many shared hosting do not offer Java support. Depending on the Google Closure API. I don't wanted to integrate any third party service. Node.js for LESS parser, because the PHP-ported version in Asettic is outdated and is no longer developed and supported. In summary, you could not just use AIOM+ as it is now – install and use. AIOM+ requires only PHP and is not dependent on another service or special server requirements.
  10. With all the other selectors I have no problems. Only with this special OR selector.
  11. Thank you Adrian, but I get the same error with this module. Respectively, if I adjust the selector (id|path%=1001|about): Error: Exception: Operator '%=' is not supported for 'id'
  12. Is that right, i can't select the path as an OR-option in find() or get()? For example: $_pages = wire('pages')->find('id|path=1001|/about/'); produce following error: Error: Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'pages.path' in 'where clause' (in C:\wamp\www\Development\Processwire-Modules\PW-TESTING\wire\core\DatabaseQuery.php line 86) Same with ->get(); PHP: 5.3 and 5.5, PW version: 2.4
  13. AIOM+ now in Version 3.0.1 with a little but recommended fix in the Less parser. If a large LESS file is split by the parser, the following error occurs: Error: Class 'Less_Exception_Parser' not found (line 8795 of /site/modules/AllInOneMinify/lib/Less/Less.php) Issue found and submited by Ryan Pierce. Thanks.
  14. A truly inspiring work. I love the AJAX implementation.
  15. Good work! I like the color scheme for the classical theme.
  16. I think for websites and applications that are designed for desktop systems, domain sharding is still acute and helpful. For mobile-optimized sites, it is counterproductive. The DNS overhead, is however, in my experience, not in comparison with the cookie data. For large news portals I continued domain sharding in use.
  17. Thank you guys, for this great feedback. That make me happy. I do not think it's the best way, to integrate Autoprefixer in AIOM+. I think it's not good when the module changes the generated code, which can be difficult to understand. Makes it difficult for the troubleshooting. But I'll be looking at Autoprefixer. Maybe I can port the code to PHP. Currently i use LESS for that: .transition(@style) { -webkit-transition: @style; -moz-transition: @style; -o-transition: @style; -ms-transition: @style; transition: @style; } #element { .transition(all 0.2s ease); } Excellent suggestion! I'm still thinking about the syntax, but definitely write this function on the To-Do. Thank you.
  18. Yeah! Our @ProcessWire module "All In One Minify" has reached Verion 3. AIOM+ now with server-side LESS support. http://mods.pw/5q

  19. Hey guys, first, ProcessWire is a great piece of software. Thanks for that and the great community behind that. So, i'm realy new to ProcessWire, but i will present you my first module for SEO- and performance optimizing: AIOM+ (All In One Minify). AIOM+ (All In One Minify) for CSS, LESS, JS and HTML AIOM+ (All In One Minify) is a module to easily improve the performance of your website. By a simple function call Stylesheets, LESS and Javascript files can be parsed, minimized and combined into one single file. This reduces the server requests, loading time and minimizes the traffic. In addition, the generated HTML source code can be minimized and all generated files can be loaded over a cookieless domain (domain sharding). Install AIOM+ Download current release (link below) Extract and copy the files for this module to /site/modules/AllInOneMinify/ Login to PW backend and go to Modules > Check for new modules Install Module > AIOM+ (All In One Minify) for CSS, LESS, JS and HTML Alternative in ProcessWire 2.4 Login to PW backend and go to Modules Click tab "new" and enter Module Class Name: "AllInOneMinify" Click "Download and Install" Features Combining stylesheets / LESS files or JavaScripts Minimize the combined files No change to the .htaccess necessary (except for the domain sharding) Server-side LESS parsing without plugins HTML source code minimization Cookieless domain / domain sharding Automatic cache management (With changes to the source file, the cache is rebuilt) Configurable via the backend Automatic rewriting the paths in the stylesheet and LESS files. No changes are needed Optional developer mode (combining, but no minimize and browser cache prevention) Clear the cache on the backend Conditional loading for CSS, LESS and JS (since Version 3.1.1) How to use Minimize multiple stylesheet or LESS files into one file. You can even mix stylesheet and LESS files in parsing and combining process! <link rel="stylesheet" href="<?php echo AIOM::CSS(array('css/file-1.css', 'css/file-2.less', 'css/file-3.css', 'css/file-4.less')); ?>"> Minimize multiple javascript files into one file. <script src="<?php echo AIOM::JS(array('js/file-1.js', 'js/file-2.js', 'js/file-3.js', 'js/file-4.js')); ?>"></script> Conditional loading (same with Javascripts) <?php $stylesheets = array('css/reset.css', 'css/main.less', array('loadOn' => 'id|template=1002|1004|sitemap', // PW API selector 'files' => array('css/special.css', 'css/special-theme.less'))); ?> <link rel="stylesheet" type="text/css" href="<?php echo AIOM::CSS($stylesheets); ?>" /> More Information, Documentation and Download AIOM+ in ProcessWire repository AIOM+ on GitHub So, I hope you can do something with this module. Dave
  20. Since PW Version 2.4 i cant use this module anymore. I think its not really compatible. Every minute, all my pages are automatically unpublished. Unfortunately I have no time to search for the problem. Disable the module helps for now.
  21. Hi guys, is there a simply way to hook directly into ProcessWire build-in page cache (not markup cache)? I will code a module to use memcache(d) as an alternative to build-in filesystem based page cache. So, i need to bypass the page cache function, but i can't find any hook for this. Regards, Dave
  22. No problem. Issue has been reported on Github. https://github.com/Notanotherdotcom/MarkupSitemapXML/issues/11
  23. If I have PW in a subdirectory, the 404-Page will be displayed, not the sitemap. And if I remove the directory name from the start variable, it works. For understanding: It is a real directory, not a segment in the URL as language localization. So PW installed in the root: www.example.com/sitemap.xml (work). PW installed in a real subdir: www.example.com/a-real-subdir-on-server/sitemap.xml (404 page)
  24. Hi guys, I think i found a bug in this module. There is no Sitemap generated when ProcessWire is installed in a subfolder relative to the root directory. For example: If PW is installed in direct root: www.flipzoom.de - works If PW is installed in the subdirectory: www.flipzoom.de/pw203/ - does not work; trigger a 404 The problem is on line 42 in the MarkupSitemapXML.module. $startpage = $this->sanitizer->path(dirname($_SERVER['REQUEST_URI'])); The variable $startpage returns "/pw203/" instead of "/". The following should fix the problem. Replace line 42 $startpage = $this->sanitizer->path(dirname($_SERVER['REQUEST_URI'])); with $startpage = str_ireplace(trim(wire('config')->urls->root, '/'), '', $this->sanitizer->path(dirname($_SERVER['REQUEST_URI']))); Best regards, Dave
  25. Our @processwire-module AIOM (All-In-One-Minify) has reached version 2.0.0. Now with backend and domain sharding. http://mods.pw/5q

  • Create New...