Leaderboard
Popular Content
Showing content with the highest reputation on 09/02/2016 in all areas
-
Our new site is built on the magnificient PW. Niinu Agility Sport is leading dog trainer in Finland with top of the notch quality of coaching. Our target, when choosing PW as the platform, was to find a tool that would help us maximise the level of automatisation in enrollment to our classes, billing and capacity management processes. Along the way we found we could improve so many other areas in our services that directly affect our end-user statisfaction. This was not the first project for us to use PW as the platform, but is absolutely the most effective one. Previous ones have mainly been "just websites". Now we have been able to integrate PW into the core of our business. Thus, able to leverage to level of our execution to compeltely new level. Most of the eyecandy for us lies in the back-end where we are able to drastically reduce the amount of manual labour in the course management and yet improve and enhance our customer experience and our ability in customer nurturation. I'm not sure if we could thank to mr. @apeisa enough for his ingeniousness and efforts in this project and in helping us to accomplish all of this. Outcome exceeds our expectations in every aspect, thanks to the incredible flexibility of PW as platform. https://niinuagilitysport.com6 points
-
This week we’ve loaded up our new ProcessWire repository with the latest 3.x version and we have some more details on that, as well as the official 3.x release date. We’ve also got a recipe you might find useful here as well. https://processwire.com/blog/posts/pw-3.0.33/5 points
-
5 points
-
Hi again, Ok, the console panel in the latest version of Tracy now works fine. When I initially coded it I was using GET not POST (I don't even remember why, but obviously a bad idea), but it meant I needed to base64 encode everything which was breaking the UTF8 of your content. Even though I switched to POST even before I released it, I never removed the base64. I could have recoded it as utf8 which actually does work, but I think the right thing to do is simply remove the base64 encoding, which has also made the console much snappier. Anyway, you will notice that the first time you open the console (after upgrading to the latest version) that the contents will be base64. After that you should be fine. Please let me know if there are any other issues along these lines or any other situations where you feel you can't trust the console panel. PS Sorry for the time everyone spent on this!4 points
-
I'm happy to announce that we are back on Processwire this morning. @Jonathan Lahijani contacted me based on this post and took on the daunting task of redeveloping / designing our site and has done an amazing job. I'm very pleased with the results. We have a few tweaks to do here and there but functionally, it's more than I was hoping for. Jonathan will be doing a full write up on the process here within the next couple of weeks but for now I just wanted to let everyone know and get some feedback on the new site. Also, HUGE thanks to @Jonathan Lahijani for doing such an amazing job. ~Mike4 points
-
Hi everybody. I found only one site in showcase section which uses Padloper. https://www.the-weekender.com/ Are there some other known examples of using Padloper?3 points
-
@bernhard are you sure it's not something in tracy's ajax request messing with the encoding? I wouldn't rely on those console tests to heavily.3 points
-
This is the version to stay. It is close to get stable 1.0.0 ! The quirks with the first tries in PW3 was mainly because of misunderstandings between Ryan and me when first time talking about the changes in core image field. And also because my insuficient knowledge of PW But know we have a solution that (only) extends the core image field with additional functionality. Possible changes, enhancements on the core imagefield will automatically inherited know, like it was with the versions before the core image change.3 points
-
No I'm not But in the movies "Z-Index-Man vs TprOnSteroids" would be a blockbuster for sure3 points
-
3 points
-
small update to v 0.9.15 and its now approved and available in the modules directory: http://modules.processwire.com/modules/croppable-image3/3 points
-
In case anyone else* (*so that would be the future me then, when I've forgotten o_O) wants to know how to do this, I worked it out, it's probably in the docs but for the life of me I could not find it (sorry doc writers). You have a hanna code called my_hanna_snippet and you want to output it from within a template, not from the Admin i/f. $hanna = $modules->get('TextformatterHannaCode'); echo $hanna->render("[[my_hanna_snippet]]"); Hope this helps someone/me in the future2 points
-
http://modules.processwire.com/modules/process-hanna-code/ Using Hanna Code from the API If you want to populate Hanna Code from the API, you can do so using the render() method, like this: $hanna = $modules->get('TextformatterHannaCode'); $page->body = $hanna->render($page->body); We can just provide the hanna code itself, if we want to, just as you do it in your example. BTW, are you sure you have never seen this in the docs?2 points
-
It depends on the type of WireArray and where it's used. It's just like arrays. One can choose to use string keys, but one can also leave keys be auto determined. $wirearray->getArray() will give you this internal array, $wirearray->getValues() is the internal array run through array_values() and $wirearray->getKeys() will give you the keys used.2 points
-
2 points
-
@POWERFULHORSE, if you have Imagick installed on your server you can try a slightly modified version (below) of the function I introduced in this post. // ImageMagick effects function imagickal($imagePath, $format, $method, array $arguments) { $path_parts = pathinfo($imagePath); $dirname = $path_parts['dirname'] . '/'; $filename = $path_parts['filename']; $mod = $method . '-' . implode($arguments, '-'); $mod = wire('sanitizer')->filename($mod, true); $savename = "{$dirname}{$filename}_{$mod}.{$format}"; if (!file_exists($_SERVER['DOCUMENT_ROOT'] . $savename)) { $image = new Imagick($_SERVER['DOCUMENT_ROOT'] . $imagePath); call_user_func_array([$image, $method], $arguments); $image->setImageFormat($format); $image->writeImage($_SERVER['DOCUMENT_ROOT'] . $savename); } return $savename; } I tested it as follows... $orig = "/site/templates/images/transparent.png"; $after = imagickal($orig, 'png', 'negateImage', [false]); echo "<img src='$orig'>"; echo "<img src='$after'>"; ...and the results...2 points
-
We had to add this to our latest project and I am happy to share here. I couldn't find anything on the forums for this so apologies if it has been done before. But there are always different ways of doing things: $firstEntry = $pages->find("parent_id=1037, sort=date_1, limit=1"); foreach (range(date("Y"), date("Y", $pages->get("$firstEntry")->date_1)) as $year) { $start = strtotime(date("$year-01-01")); $end = strtotime(date("$year-12-31")); $count = $pages->count("parent_id=1037, date_1>=$start, date_1<=$end"); if ($count > 0) echo '<li><a href="' . $page->parent->url . $year . '/">' . $year . '(' . $count . ')</a></li>'; } So what is going on: first of all, our pages were children, so we set the parent_id, and our date field is called date_1 we need to get the year of the oldest entry, so that happens with $firstEntry and a simple find next we create an array using a range of years, we start with the current year, then we get the year from our $firstEntry (note: if you have an output format for your date set in the field settings you will want to use $pages->get("$firstEntry")->getUnformatted("date_1") within the foreach) next we create a start date and end date for the year we count if there are any entries for that year if there are display them in a list Your next step would be to create the $input->urlSegment code to display your pages.1 point
-
I assume that you know how to show field label on front (there is few options), one option is: echo $page->fields->summary->label; // for field with name "summary" But today I had a problem how to show field label depending on the current page template (example: in template "member", "summary" field label is override to "Personal info"). In that case, previous example will not give you desired result. To get field label in that case, this is what works: $page->getField('summary')->label; // result would be "Personal info" Maybe this is helpful for someone. Regards.1 point
-
It is pretty fast for me (Finland). Very crisp and clean designs, even with all the ads! Nice work @Jonathan Lahijani and @cmscritic!1 point
-
Thank goodness. I almost had a heart attack when I saw a grade d. Glad to be back, so much quicker.1 point
-
I see the problem... I installed the site with pwshell and didn't set a timezone. In the response there was this warning Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. As soon as I set the timezone in the config.php everything started working. Sorry for the alert1 point
-
im not sure why it should behave that like, but have you tried to add "sort=-timestamp" directly to yout selector, and skip that extra step?1 point
-
WordPress: Grade D 65, 10.29 seconds load time, 3.5 MB page size, and 206 (!!) requests (URL) ProcessWire: Grade A 93, 1.73 seconds load time, 2.5 MB page size, and 70 requests (URL) (Using the same service and location) Good work1 point
-
https://gtmetrix.com/reports/cmscritic.com/IHjrEiKy The page load is substantially quicker (3.2s) and there are a lot less requests (61), but the score is still a D due to a few things which should be easy fixes, and are not PW related. The page is still 2.5MB, but again, not a PW issue.1 point
-
Okay no, I think I'm going to skip this. Will use a subtle animation in the row to show that the state has changed.1 point
-
Just figured I'd use it if it's installed... In this case, it's the jumplink state toggler (enable/disable), so the notification is a nice-to-have, but won't show if Notifications is not installed.1 point
-
Just wanted to let everyone here know that the Console panel just received a fix regarding UTF8 encoding: The first time you load the console after the update you'll see your code as base64 encoded, but once you enter something new it will work fine after that. Please let me know if you notice any other problems.1 point
-
I can confirm that it works fine here from a template file, but as @LostKobrakai there is something in the Tracy console AJAX request that is breaking the encoding. I'll try to look into it sometime today and provide a fix if I can.1 point
-
The code I gave you does pretty much that assuming you have a separate field for the teaser (I called it summary). If you want an automatic teaser than you need to truncate the body field (or whatever you might have called it). Instead of $article->summary, you can try something like: substr($article->body, 0, 300) Of course you can get much fancier with automatic teasers, but that is a PHP question and there are lots of answers on the web about that. Also, if you want the code I had to work from the homepage while the articles are perhaps under an Articles child of home, then try this: foreach($pages->get("/articles/")->children("limit=10, sort=-published_date") as $article) { echo "<a href='$article->url'>$article->title<\a>".substr($article->body, 0, 300); }1 point
-
There's nowhere written that a WireArray does need to be keyed with integers. For the file fields using the filename as key makes a lot of sense. If you still need the integer value just use this: foreach ($data->img_gallery->getValues() as $key => $imageobj) { // Do stuff }1 point
-
@thlinna .htaccess also works with LiteSpeed. I have 2 clients' websites using ProcessWire with it because they are hosted at PlanetHoster. One of them uses Let's Encrypt.1 point
-
I only get the same incorrect output as you if the script that invokes pageNameUTF8 (or the passed string) is encoded in iso-8859 instead of utf8. When everything is properly encoded, I get back the string with umlauts intact.1 point
-
I changed my hosting to digital ocean and was facing the same problem, how to monitor my virtual server. Started a small discussion over there: https://www.digitalocean.com/community/questions/alert-notification-when-server-is-down User sierracircle pointed out his free script (install via SSH): https://github.com/sierracircle/services-checker/issues/1 The nice thing about this script: It will *restart* your apache and your mysql. Hope that helps too. PS: Trying out the google docs monitor script, correct link is: http://www.labnol.org/internet/website-uptime-monitor/21060/ If that works, it would be extremely helpful1 point
-
We cannot see the backend, however if it is just as clean and easy to use as the frontend's graphic design, then it must be really well crafted! A big applause to the creators! PS: I noticed a missing image: https://www.niinuagilitysport.fi/virallinen-agilityharjoitus-09-2016-viikkorata/nutrolin_acana_orijen/1 point
-
We are OT here, but anyway, the pull request was based on this (if you take a closer look, you can see): https://community.letsencrypt.org/t/drupals-defualt-htaccess-file-breaks-webroot-authentication/30141 point
-
Oh I feel stupid , From httpd.config The processwire document root is set at C:\MAMP\processwire MAMP server Preference > (Tab) WebServer the document root is set \MAMP\htdoc. I have changed it into C:\MAMP\processwire and it initiate install.php1 point
-
My guess is that you mean a list of articles with perhaps a summary and then each one links to the full article. You would construct your site to have a child page for each article. Then you can do foreach($page->children("limit=10, sort=-published_date") as $article) { echo "<a href='$article->url'>$article->title<\a>$article->summary"; } That will display titles and summaries of the last 10 articles with direct links to the page where the full article lives. Apologies for the brevity and code formatting - not a good idea to try this on a phone while your laptop is running updates1 point
-
Thanks Adrian, It would be great if we could update the screenshot as it's outdated. Thanks!1 point
-
I am using font awesome in my PW project, and I can confirm that PW doesn't interfere with fontawesome rendering. To troubleshoot, first, try to get your FA icons to work in a plain HTML file outside PW. If that works, then move over fa icon elements into PW files.1 point
-
I forgot a moment the fact that the new versions of .htaccess were going to have the line that I recently had to change manually.1 point
-
1 point
-
I have just added a new config option for hiding the debug bar in modals. @tpr and I discussed this above and we decided to show in regular modals, but hide in inline ones, but the tripling up of the bar when editing a page in a modal and then editing an image from that page was driving me nuts, so now the default is to have it disabled in both modal types, but you can uncheck these if you want.1 point
-
For a croppable image edit page (the old modul version) opening in a new window is used: <a href="http://localhost/processwire/page/croppable-image/?filename=scheuermann_aussen.jpg&suffix=cropname&width=780&height=190&pages_id=1&field=header_images" target="_blank">cropname</a> Opening in a modal I now use: <a href="http://localhost/processwire/page/croppable-image-3/?filename=scheuermann_aussen.jpg&suffix=cropname&width=780&height=190&pages_id=1&field=header_images&modal=1">cropname</a> The page / croppable-image is a Processpage that get created during module ___install() routine.1 point
-
So that is why he did not have time to release his video tutorials? Never mind, at least cmscritic.com is back to normal. Thanks for reporting!1 point
-
Here's another example: https://github.com/horst-n/LocalAudioFiles/blob/master/site-default/modules/LocalAudioFiles/LocalAudioFiles.module#L121 The view file: https://github.com/horst-n/LocalAudioFiles/blob/master/site-default/modules/LocalAudioFiles/view.php gets intantiated here: https://github.com/horst-n/LocalAudioFiles/blob/master/site-default/modules/LocalAudioFiles/LocalAudioFiles.module#L531 point
-
I'm not very familiar with the process pages, but every time I used it, there was no Adminpage involved. ? If you have a look at the ProcessCropableImage3 module, it previous opened in a blank tab, and now in a modal window. But only contains it own content. There is made use of a HTML-template with PHP-vars, what gets populated when rendering. There is no need for templates or pages in the pagetree.1 point
-
Just wanted to say a special thanks for this comment - I am very glad to hear it's been so useful to you - several of you have also been instrumental in making Tracy as useful as it is, so thanks to you all as well!1 point
-
If this is true i am very much impressed with the community (my brothers/sisters), please @cmscritic let us know how we can chime in too.1 point
-
A quick update folks. A member of the forums has reached out and offered their services so perhaps you'll see our return to ProcessWire after all. We shall see.1 point
-
removeAll() is a method of a PageArray not a Page. So I think your code will need to check what type it's dealing with in order to avoid that error. if($reset) { if($page->$name instanceof PageArray) $page->$name->removeAll(); else $page->$name = null; }1 point