-
Posts
135 -
Joined
-
Last visited
-
Days Won
4
Everything posted by eelkenet
-
Yes, both the files and images fields work fine. Also resizing images through the API works, so it is not a rights issue I would say. Did you test it yourself with the latest version of PW? Maybe something changed between 3.0.36 and 3.0.62. Yeah I'm also just starting out, but for this problem I think you should consider the EC2-instance just as a regular old Virtual Private Server.
-
Hi, I've tested the field on another environment and there it worked fine using the same S3 credentials and settings. So, there must be some significant difference between the two causing this. Where it does not work: ProcessWire 3.0.62 PHP 7.0.16 on an Amazon EC2 Linux instance (Amazon Linux AMI release 2017.03) I installed LAMP using these instructions: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html, with MySQL running on a RDS instance. The working environment: ProcessWire 3.0.36 PHP 5.6.27 on a shared hosting environment (Debian GNU/Linux 7) As the domains are for staging/development I can send you a private message with links to the phpinfo output , perhaps there is some PHP module I forgot to install? Also, I checked the Chrome console after uploading, which shows why the spinner never finishes: the server error above is also showing up in the JSON that InputfieldFileS3.js tries to parse: [{"error":false,"message":"Added file: img_8737.jpg","file":"\/site\/assets\/files\/12978\/img_8737.jpg","size":1391384,"markup":"<li id='file_72fa2d34b55cc08ec37b4551217bf582' class='InputfieldFileItem ui-widget ui-widget-content'><p class='InputfieldFileInfo InputfieldItemHeader ui-state-default ui-widget-header'><i class='fa fa-file-image-o fa-fw HideIfEmpty'><\/i><a class='InputfieldFileName' title='img_8737.jpg' target='_blank' href='https:\/\/s3-eu-central-1.amazonaws.com\/foamtalentcall-1\/12978\/img_8737.jpg'>img_8737.jpg<\/a> <span class='InputfieldFileStats'>1,359 kB<\/span> <label class='InputfieldFileDelete'><input type='checkbox' name='delete_tests3_72fa2d34b55cc08ec37b4551217bf582' value='1' title='Delete' \/><i class='fa fa-fw fa-trash'><\/i><\/label><\/p><div class='InputfieldFileData description ui-widget-content'><div class='InputfieldFileDescription'><label for='description_tests3_72fa2d34b55cc08ec37b4551217bf582' class='detail'>Description<\/label><input type='text' name='description_tests3_72fa2d34b55cc08ec37b4551217bf582' id='description_tests3_72fa2d34b55cc08ec37b4551217bf582' value='' \/><\/div><input class='InputfieldFileSort' type='text' name='sort_tests3_72fa2d34b55cc08ec37b4551217bf582' value='0' \/><\/div><\/li>","replace":false,"overwrite":0}]<br /> <b>Warning</b>: filemtime(): stat failed for /var/www/html/site/assets/files/12978/img_8737.jpg in <b>/var/www/html/wire/core/Pagefile.php</b> on line <b>389</b><br /> <br /> <b>Warning</b>: filemtime(): stat failed for /var/www/html/site/assets/files/12978/img_8737.jpg in <b>/var/www/html/wire/core/Pagefile.php</b> on line <b>389</b><br /> I checked the Pagefile.php code and it seems that there is no default escape in the switch statement which tries to get information from the uploaded file.
-
Hi @fbg13, Thank you for your module! I am in the process of learning AWS (EC2, RDS, S3) services and moving my first PW project to 'the cloud'. As a part of all this, I have tested your module, and I did run into an issue: The upload seemingly never finishes (ie. the progress bar does not finish). It does not display any warnings, but stays stuck at 100% transfer. Upon reloading the page I get a PHP-error: Warning: filemtime(): stat failed for /var/www/html/site/assets/files/12978/fullsizeoutput_2aa6.jpeg in /var/www/html/wire/core/Pagefile.php on line 389 Even so, the file did transfer correctly and is present in the S3 bucket It is also present in the database and on the page In the database I see that the modified and created fields of the file are showing incorrect timestamps: 1970-01-01 01:00:00 I have configured the InputfieldFileS3 module with the correct Key, Secret and Bucket name. The ACL is set to public-read, the region is set to the same my VPC is located, SSL is on, Use my domain & Store files locally are off. Turning Store files locally on skips the entire S3 upload it seems, so no errors but also no new files in S3.
-
how to redirect old website url to new page?
eelkenet replied to adrianmak's topic in General Support
Why not use http://modules.processwire.com/modules/process-jumplinks/ ? Wouldn't that be less problematic? -
Convert .htaccess to web.config for Microsoft Azure Cloud
eelkenet replied to VirtuallyCreative's topic in General Support
That's great, have you also tried to get ProCache running per chance? I had to deal with PW+ProCache+Azure last year and couldn't get it to work properly.- 3 replies
-
- azure cloud
- .htaccess
-
(and 1 more)
Tagged with:
-
It looks really nice, and works well on my test site. However, I've grown so accustomed to having the side bar in Reno, that I miss it here on the desktop. I see you've made a great side bar for mobile devices though. Having such so much screen real estate (hurray for the responsive full width experience!), could you make it (optionally?) available for larger screen sizes too? Great work Ryan!
-
@Harmen That depends on what you need and what your client wants to spend of course But mostly even the simple personal package is good enough though!
- 15 replies
-
- webserver
- processwire
-
(and 1 more)
Tagged with:
-
I've had to work with the combination of TransIP and PW for one client, and well.. I wasn't too happy with that. Let's just say they are cheap for a reason.. As a fellow Dutchman I can advise Greenhost.nl. I host most of my clients there. These guys are friendly, professional, and take good care for clients and the world. I have never had any PW-related issues with them.
- 15 replies
-
- webserver
- processwire
-
(and 1 more)
Tagged with:
-
wireshell - an extendable ProcessWire command line interface
eelkenet replied to marcus's topic in API & Templates
Hey guys, great work on all of this! I really like having this option. However, while testing the 1.0.0 version [Edit: On macOS Sierra 10.12] I ran into an issue with creating a new project using a zipped site profile: It seems Wireshell fails at extracting the profile zip due to incorrect permissions? (I did not use any older version before so I do not know if this is a new problem). I have exported a site profile using Ryans Site Profile Export module, and have confirmed this works on a new PW 3.0.35 project: when I set it up manually (downloading & unpacking the PW zip, unpacking my profile zip into the folder and going through manual installation of the project) everything works fine. Also I can create new projects using the built-in profiles correctly (ie. `wireshell new projectname --profile=blank` etc). To be sure I even checked if I could sudo run the script but to no avail (bad idea anyway). Below is the (truncated) result: weps:Server eelke$ wireshell new thijmentest2 --verbose --profile=ProjectGenerator/site-ember-pw-profile.zip Downloading ProcessWire... 10.21 MB/10.21 MB ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100% Preparing project... Extracting profile... [2016-10-03 08:39:59] name.ERROR: Error: Directory /Users/eelke/Documents/Werk/Server/thijmentest2/site/assets/ must be writable. Please adjust the permissions before continuing. [] [] [2016-10-03 08:39:59] name.ERROR: Error: File /Users/eelke/Documents/Werk/Server/thijmentest2/site/config.php must be writable. Please adjust the permissions before continuing. [] [] [2016-10-03 08:39:59] name.ERROR: One or more errors were found above. We recommend you correct these issues before proceeding or contact ProcessWire support if you have questions or think the error is incorrect. But if you want to proceed anyway, click Continue below. [] [] (.. Wireshell project settings ..) [2016-10-03 08:40:51] name.ERROR: Please fix the error to further proceed [] [] Congratulations, ProcessWire has been successfully installed. weps:Server eelke$ As a result, the entire installation fails. After running the script, the database is empty and this is the folder structure: Any ideas? Edit: Definitely a problem with unzipping files. Very simple command: It seems to be macOS Sierra related, accidentally I ran into a same kind of problem this morning doing some Homebrew tasks. (https://github.com/caskroom/homebrew-cask/pull/22002) The signature of Zip files has changed apparently. Running 'file -Izb -- ~/Server/ProjectGenerator/processwire-master.zip' on OS X 10.11 yields: application/x-empty compressed-encoding=application/zip; charset=binary; charset=binary But on macOS 10.12 all you get is: application/zip; charset=binary -
+1 For Dash docset! I use Dash daily for almost every other documentation requirement, it is very very handy. PW docset would be a very welcome addition.
-
Thanks @Mats! The map tiles are designed in Mapbox, the map itself is built on Leaflet.js, using the great Ember Leaflet addon. Once you get the hang of Ember.js (quite a steep learning curve) and it all starts making sense, it becomes really logical and fast to build upon. Because it is so strict, you can predict how components and external addons will work, and how to separate your functions. All using the same philosophy. As a result, it's peanuts to toggle markers and other layers on the map that relate to other items in the application. Let me illustrate how easy it is. The polylines are added by adding a Polyline-layer, which is part of the Ember Leaflet addon. It requires 'locations': an array of lat/lng points. The stripped down version of it works like this: 1. From the API we get, for instance, this JSON for the Hoofdroute (main route) -> http://www.intonature.net/api/routes/hoofdroute 2. Through the default Ember Data Rest adapter this JSON gets loaded into the route* model: // models/route.js import DS from 'ember-data'; export default DS.Model.extend({ title: DS.attr("string"), points: DS.attr("array"), color: DS.attr("string"), }); 3. After the model promise is fulfilled, it renders the Template belonging to the Route*, often with help from an Controller to 'decorate' the data. If that made no sense, you can also read that previous sentence like this: Through the magic of Ember this ends up at the Map Component which is inserted into the Explore template. The stripped down version of the Explore template: {{!-- templates/explore.hbs --}} {{map-component locations=locations currentItem=currentItem currentPreviewItem=currentPreviewItem routes=routes }} 4.And then inside the map component we get the following: {{!-- components/map-component.hbs --}} {{#leaflet-map id='explore-map'}} {{tile-layer url=tileLayer}} {{#each routes as |route|}} {{#if route.points}} {{#polyline-layer locations=route.points color=route.color }} <span class="route-label">{{route.title}}</span> {{/polyline-layer}} {{/if}} {{/each}} {{/leaflet-map}} And that is essentially it. We load the /explore route*, which loads data from the server and puts it into a model, then renders its template. This template contains a component which draws polylines on top of a tile layer. My previous large map-oriented / PW- & RequireJS powered project took overall about 300 hours to develop. In large because I had to invent the wheel, discover fire, and then deal with burning wheels everywhere. In short: I was missing a strict, well defined idea of which part is responsible for which function, something that happens to a lot of developers I have noticed. That, combined with the incredible shitty documentation of the non-standard Google Maps stuff and some other setbacks made it quite a tedious project. (The resulting site is still quite nice though: http://www.vangoghroute.nl ) Developing Into Nature took me around 90 hours, of which maybe half map-related. I still had to figure out a lot, yet I don't think I'll quickly return to the old world of "Php-generated html with bits of Javascript here and there and oh let's throw some more Ajax at it shall we?" * Let me clarify: We are dealing with 2 kinds of routes here. First of all the "Into Nature art routes", and then there are the 'Ember Routes'. Ember Routes are the urls of the app, and responsible for getting data and injecting that data into models.
-
I have just delivered this website: Into Nature (Dutch only), about an 'Art expedition' through the province of Drenthe, in The Netherlands. I built the site for Vandejong. The site is made using two distinct parts/techniques: Processwire for the back-end (through a RESTful json api) and the front-end is built on Ember.js. This is my third large site built this way, and the first I am completely happy about. A page called 'API' is the main interface between the two: it uses urlSegments and parses the content from the PW pages into Ember-friendly JSON data. As Ember is very strict (heavily based on the Convention over Configuration concept), and Processwire is extremely versatile, the way Ember requires its data dictates the way I shaped the API. Both @clsource's REST-helper and ProCache are used to format and cache the API responses, making the API very responsive. Something that was initially hard to wrap my head around was how to deal with the site's routing/pagetree. While Google now indexes modern 'single-page' web applications, for instance Facebook still scrapes their opengraph from the raw HTML pages. I dealt with this by giving the Ember app and the PW page-tree use the exact same routes / pages. Every Processwire page is a valid starting point for the Ember app, while also including the scrapeable meta tags belonging to that exact URL. As a result, the whole thing is nicely CURL-able and bot-friendly.
-
Hi all, I'm not sure how to proceed on the following. I have a ajax-driven search working on my site, which works like a charm. My site is a historic overview and as such content-rich site about cities/villages (template: areas) and it's children: locations (homes, churches, etc) located in those areas. (Sadly I can't show off the site yet, but the release is getting closer and closer.) My query is the following: $matches = $pages->find("title|body|short|keyword|photos.description|remarks*=$q, limit=50, template=area|location, sort=template"); I currently loop through the pages, displaying the title and the short fields. However, the result of this may be that a user has no idea how his search for city A can yield city B showing up in the list, while not showing as to why this happened. (Technically this can happen when city A is mentioned in the body text of city B.) This can be very confusing for people, who are very used to Google's way of returning results. So I would like to be able to show the bit of the body text which shows the query instead of the short, whenever this is applicable. Is there a way to know which part of full query resulted it showing up in the search results? Or should I split up my query into separate ones? And/or should I do some regex magic on all the returned fields to figure out which bit contains the query? Thank you for your thoughts.
-
Looks very good guys! Its very good to see that finally the cropping module gets an upgrade! I would love to be able to add some more (very simple) text fields to the images, in the likes of http://modules.processwire.com/modules/fieldtype-image-extra/ This is something that I think the regular image fieldtype should also include, but maybe you take a lead here (My reason is that right now I'm working on a very media-rich site, with artworks needing titles, descriptions, and 3 distinct handmade crops. Separate pages aren't an option because the drag&drop is so much better. I currently tackled this by splitting the description string, but that seems counter intuitive.)
-
Yeah I'm on there. Rather silly and dangerous site, it devours my time like a Dementor sucking on little Harry's soul.
-
I had the same problem on a fresh 2.5 installlation, and this 'fixed' it for me too. My exact set-up: - Local development database + install (fresh 2.5.0 installation) - Moved both to staging server - Added an 'admin' role, with amongst others: editing permissions - Added a user for my client using the new role I could only get the user to edit by adding the editing permissions for each template individually.
-
Good news everyone, I figured out what's going on here. My problem only occurred when there were no pages linked. I could bypass the problem by first adding a slide, and only after that turning on the Render Layout toggle. Turns out the problem lies on line 101 as per warning, as this bit is outside the foreach-loop that defines $parsedTemplate. $parsedTemplate->page->of(false); // set OutputFormatting back to false, just in case Moving this line to line 90 (inside the foreach) fixed it.
-
I have a fresh install (PW 2.5.3) and wanted to try out this module (version 0.2.0, installed through ModulesManager), but I keep getting this error: Error: Call to a member function of() on a non-object (line 101 of /Volumes/schijf/Users/eelke/Documents/Werk/Server/vida/site/modules/FieldtypePageTableExtended/InputfieldPageTableExtended.module) This error message was shown because you are logged in as a Superuser. Error has been logged. My configuration is really simple: - Template "Slide" - Field "title" - Field "image" (single image field) - Template "Home" - Field "title" - Field "slideshow" (PageTableExtended, set to select "Slide" templates) - For testing purposes "Slideshow"'s Table fields has been set to just include the Title column - No extra CSS / other templates location has been set - A stand-alone page using Slide works fine - When disabling the "Render Layout instead of table rows?" option everything works fine This is the complete Slide template (no header/footer is added) : <?=$page->title?><br> <?=$page->image->url?> (Expected behaviour here is of course not to see the image rendered, but to get the filename).