Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/03/2016 in all areas

  1. A new band website for the German electronic avant-garde band DEINE LAKAIEN. The idea was to make this an introduction website for media and new listeners. For in-depth information, the website is accompanied by another new ProcessWire website (with an integrated xenforo forum) for the fanclub: colour-ize.com. and the label website chrom.de. All three websites use the same UI and re-occurring elements (while preserving a unique look), so people find their way around easily. Design/programming details: It was tried to make the dark look (which is the band CI) feeling modern and artistic (avoiding a Nineties look which so many dark themed websites have). The website is built in my spare time in 5 weeks thanks to the ease of ProcessWire 3 and is fully responsive (using uikit and Hype). ProcessWire's new language features were more than welcome to make language management a breeze (People coming from WordPress know what I mean). The backend is build in a way that non-techies (band, volunteer translators, fanclub, booking) can handle the CMS without needing much support and knowledge of SEO. Everything is explained or almost self-explanatory. And the complex internal link-building is done either fully automatic or half automatic.
    8 points
  2. Unexpectedly found a half day to spare, so I've pushed 0.0.3 to GitHub. New features: Field settings for custom date, date+time and text fields can now be made on the inputfield's input tab, e.g. date and time formats, placeholder text or text validatoin patterns (numeric field settings are on the todo list) Names for custom fields are limited to start and end with ASCII letters and only have alphanumeric ASCII characters and hyphens in between Custom field name of "data" is silently stripped to avoid bollixing up all entries The custom fields table in the backend is now sorted by name (new entries simply get appended) The module is still alpha. Things are getting smoother, but there are still a few items on the todo list.
    4 points
  3. This is the first time that I'm going to post anything under the showcase forum, although I have a few ProcessWire powered websites under my belt. This one is special because I think the use case is somewhat unique. Caltex Loyalty Club - initial the situation Caltex Loyalty Club is a customer loyalty and rewards program of Caltex Palawan aimed to provide exciting promos and incentives their customers' continuous patronage. Caltex Palawan originally bought their system from a large software company that also provides card-based solutions. The previous system consist of the following: two high-end Dell servers that are located in two separate Caltex' offices traditional EFTPOS devices for reading loyalty cards MIfare RFID cards as loyalty cards Running within one of the Dell servers was a crude and barely usable loyalty/rewards manager application that runs the whole thing. Here's what I mean: You're free to imagine what the rest of the application looks like. The other dell server acts as a VPN server through which all the EFTPOS devices and the application server connect to. To cut the long story short, this setup was running smoothly for a total of 3 weeks before problems started popping up, mostly because VPN server did not have a static IP address and the EFTPOS devices could not connect. The developers refused to provide service to the system because Caltex Palawan does not want to shoulder the travel and boarding expenses of the developers (since it was just working 3 weeks). We were called in at this point (we being a local tech solutions provider in Puerto Princesa), and we made the VPN server work, but other problems soon surfaced. The whole system was barely working for about 3 years when they finally decided they were fed up with the customer complaints they keep getting everyday. Our Solution We studied the existing system for quite some time to examine where the problems we're coming from. The most obvious one we found was that because the servers were located inside Caltex Palawan's offices, the servers were prone to downtimes caused by power outages and internet connectivity problems. It was obvious that the better way would be a web-based solution that would always be online. We also wanted to replace the bulky and outdated EFTPOS devices with android based NFC device that are more portable, and easier to work with. We retained the cards that originally came with the system since there are thousands left unused, but eventually replaced them with NTAG stickers, and newer cards. To sum it up: A web-based application to manage the loyalty / rewards system Android based NFC device to read the loyalty cards NTAG stickers to act as loyalty cards ProcessWire to the Rescue Having used ProcessWire before, it was our best choice, after considering using Laravel, and other frameworks, because of ProcessWire's key strengths: all custom fields - no unnecessary bloat powerful api scalability Although this straight up looks like it's been lifted from processwire.com's front page, but this really is the case, and these are all we need from a web-application framework to do almost anything! All custom fields Since we are working with a unique dataset, it's impossible for us to find anything out there that would have anything even remotely close to what we need. In the beginning we were planning to use custom database tables that we would deploy alongside ProcessWire. I even posted one time in the forum, asking if there's any way to integrate an ORM library with ProcessWire, and the answer I got was that it would be redundant, and almost surely unnecessary. And this turned out exactly the case! When we designed our database (using ERDs), we we're delighted at how closely we were able to replicate our relational design using templates, fields, and pages. This is mainly due to FieldtypePage. We were able to create meaningful relationships within our templates. We ended up with ~60 templates and ~70 fields. Powerful API About 70% of our code are API calls. The rest are just control structures and simple computations. That's how powerful the ProcessWire API is. So powerful that we did not even need to write a single sql query to complete the whole project. We needed to handle user login, API has it. Session handling, API has it. Selecting and manipulating huge amount of interrelated data, the API has it! Scalability At the onset of the project, the existing CLC program already has some 20 thousand members with hundreds of thousands of transactions. Right now, our current system has around 500,000 pages and counting and were not experiencing any slowdown. How we used ProcessWire The first thing that we decided that our client would not be able to see the processwire admin page. We wanted to present them with a simplified UI that does not present them with anything they don't need. We created a whole frontend UI for the client to use. We had custom forms for all the pages that they can create, and all the actions that they can do. We, on the otherhand, use the admin backend thoroughly in continuously developing, and supporting the system. What the clients see vs what we see: Our setup ProcessWire 2.8 running on a LEMP stack DigitalOcean droplet AjentiV VPS manager Modules we used We used a very minimal amount of modules for the project: ImportPagesCSV - to import the data migrated from the old system FieldtypeDecimal - for all our decimal values Modified RestHelper - from clsource for all the communication between ProcessWire and our android POS app Modified PagesSum from esrch ProcessSelectorTest - for quickly checking some selections Things we had to do on our own Frontend user login Frontend password recovery Fine-grained permission handling for users Cron jobs for scheduled tasks. The rest are API calls, and business logic. The Result Our Caltex Loyalty Club web application is now running on its sixth month without so much as a hiccup! Compared to the previous system that was averaging 200 transactions per day, we are now getting 800 and it's growing. We are running 10 campaigns and promos simultaneously across 18 Caltex Stations all over Palawan, with 30 android NFC terminals communicating to a single ProcessWire installation. We are very happy with ProcessWire in terms of performance, ease of use, and most importantly it's simple and yet very powerful functionality as a web-application framework even though it doesn't primarily market itself as one. PS. Also one of the best things we experienced while doing this project is the awesome, unparalleled community support. Throughout the project, although we had a lot of moments when we just couldn't figure out what to do, never once did we have to ask a question in the forum. A quick search here and there, and someone already helped someone else that faced the same problem we were having. It's almost as if people are being paid to diligently answer all the questions! We most of the time just had to like an answer that was already there! Screenshots and photos Android POS terminals and CSR training
    3 points
  4. Latest version supports: Column selection and ordering for CSV export. Exported rows also respect the Find filters that have been applied. Should be very handy for clients to be able to extract relevant info from large table datasets.
    3 points
  5. Another proof-of-concept module: JsonNativeField Leverages MySQL >= 5.7.8's native JSON column type for key-value storage. This gives us the opportunity to store arbitrary (textual) fields in the database and allows us to search for them with plain subfield selector syntax, including wildcard operators. Possible applications are storing submitted form data or adding user-defined properties to their profile. Currently, the module is still really, really alpha, but I wanted to get input early on. Let me know what you think. Download from GitHub. Here are a few screenshots for anybody interested but unable to try for themselves: 1. First page with json field and custom subfields: 2. Second page with json field and custom subfields: 3. Searching through all subfields in the json field: 4. Searching only in a specific subfield: The interface is really rather crude still. The "delete" buttons only work after saving (have to attach listeners to the newly created entries yet), and I've got to straighten out supported operators for Lister to pick up. I'll see if I find some time tomorrow to work on these issues and brush up the visual side a bit.
    2 points
  6. Thanks for the answers @kongondo. Both Media Manager and Visual Page Selector look like useful and clever modules, although the cost/features ratio favours MM. I think what would be really fantastic is something in between the feature set of MM and VPS, and this could perhaps be accomplished by borrowing some of the features developed for MM into VPS. To explain, something I think PW is missing is custom fields for images (and I'm not alone: this GitHub request from today has 4 upvotes in 2 hours). There are loads of use cases for this, but one example: you are using images in your site that have a Creative Commons Attribution license. To fulfill the terms of the license each image needs the following fields attached: Author (text), Source link (URL), License (Page select), License link (URL, although in fact you'd probably store the URL for each license in the License page field). The ImageExtra module only supports textarea custom fields so it's not the right solution. What would work is a page-per-image approach with the custom fields for the image stored in the image's page. VPS is a big step towards making this a workable solution, but to use this as a replacement for a standard image field some extra features are needed beyond what is currently offered... 1. There needs to be an easy way to edit the image's custom fields from the Page inputfield. A modal link to Page Edit is all that's needed to begin with - this is something that's possible with existing inputfields such as AsmSelect. Somewhere down the line this could maybe be enhanced with AJAX loading of the custom fields into the list view of VPS, as per repeaters (just dreaming here). 2. There needs to be an easy way to add an image (page) from the inputfield. This is possible with most existing Page inputfields if the template and parent for allowed pages is defined. Basic support for this would be to open the Add Page form in a modal (the Page Field Edit Links module does something like this). But to be a closer match to existing image field functionality it would be nice to be able to upload multiple images at once. This feature is in MM - could it be added to VPS? (when template and parent are defined for the field). 3. There needs to be an easy way to embed an image into CKEditor. This feature is in MM - could it be added to VPS? Really keen to hear your thoughts on this. Thanks!
    2 points
  7. There's $pages->getById(): <?php $ctas = ...; foreach($pages->getById($ctas) as $p):
    2 points
  8. Great! (this is an overwhelming response :))
    2 points
  9. Updated the module to fix the above bug and some other things. Also added options to set a height for the editor, choose whether you want to include or exclude the defined extensions and the default file is now relative to the default directory.
    2 points
  10. Have a read about WireCache: http://processwire.com/blog/posts/processwire-core-updates-2.5.28/#wirecache-upgrades
    2 points
  11. Here is it - if it works fine I can upload it to github/modules dir. PageimageRemoveVariations_v004.zip
    2 points
  12. 2 points
  13. Hi @Robin S, Thanks for your interest in VPS and MM. My plan is for these to be ready within 3 weeks. However, some users of MM have reported successfully using it in PW 3 with no hiccups. @see below please No, VPS does not have an upload feature since it functions as a 'normal' page field...i.e. it does not have a central repository of media but includes images you've uploaded yourself to any number of named image fields (named in the settings of VPS Custom fields: Yes, VPS would be better in that case, although the other benefits of MM probably outweigh this one advantage No, you can't, currently #2 Differences between VPS and MM Media Manager is a complete digital asset management for 4 types of media: audio, document, image and video. Media are stored and managed in one central repository. Uploading, editing and publication of media are tightly controlled by various permissions. Media can be uploaded to a waiting area before uploading to your Media Library. Media can be previewed (e.g. listen to a MP3 file), edited, tagged, filtered, etc with great ease. Media can be inserted in a page in two ways: in a field or in a CKEditor RTE. Media can be infinitely reused across your site. Media Manager has its own API for frontend use. Visual Page Selector is mainly targeted to those who 'consciously' use the one page per image approach. It is an Inputfield for Pagefields. Its purpose is to remove the guess work in site editors' minds when they have to include 'pages' in a 'page' in situations where those 'pages' are included on the 'page' for the sole purpose of accessing and reusing images found in those 'pages' (wow, a mouthful, sorry!). VPS does this by offering a visual selector where the editors can see the images contained in those 'pages'. VPS does not have its own API...it is a Pagefield, hence is accessed like any other Pagefield in ProcessWire. Hence, the two modules are quite different from each other actually. In MM, your editors don't know and don't care that they are actually dealing with pages. All they see are media, easily accessible via a single Media Library. VPS is a visual interface to a normal Pagefield. This means you will need to set it up like any other Pagefield, with one or two extra details you have to tell it, for instance, the name of the 'image field(s) in the 'pages'. If, on the other hand, you would like a streamlined workflow for your media management, from uploads to inclusion in pages, managing tens or hundreds or thousands of media, all in a single easy to use interface, then MM is for you. Hope this answers your question. Sorry, I have just seen that I never availed the READMEs for this modules as per your request. I can still send these to you if you wish. Please let me know if you require any more info. Cheers.
    2 points
  14. Big +1 for this - sometimes it can be very hard to explain what should go in a field without a label.
    2 points
  15. No, the true culprit is here: protected function ___renderList() { $out = "\n<ol id='{$this->id}_items' data-id='{$this->id}' data-name='{$this->name}'>" . $this->renderListItem("Label", "1", "itemTemplate"); The pageSelected function in InputfieldPageAutocomplete.js then checks if the select page's id equals the value in the item template, and with "1" matching the id of "home", it returns without appending the page. I can't definitely say if this is intentionally excluding home, but my guess is that it was only meant to exclude items already present in the list in whatever scenario those might occur. In that case, excluding the template item in the selector for the duplicate checks would be sufficient: pageSelected: function($ol, page) { var dup = false; $ol.children('li:not(.itemTemplate)').each(function() { var v = parseInt($(this).children('.itemValue').text()); if(v == page.page_id) dup = $(this); });
    2 points
  16. http://www.oreilly.com/programming/free/ A good selection of Python, Design Patterns and Java books peppered with some interesting titles like 2016 European SW Dev Salary Survey and 2016 SW Dev Salary Survey
    2 points
  17. Last week we called it a soft launch, but this week we'll say ProcessWire 3 is now released and considered our new master, version 3.0.35. This post is a changelog of sorts, where we will cover all that's new in ProcessWire 3! https://processwire.com/blog/posts/pw3-changelog/
    1 point
  18. Great - I have pushed that version to Github.
    1 point
  19. I'd imagine it should work like this: $this->add(array( // Text field: greeting array( 'name' => 'greeting', // name of field 'type' => 'text', // type of field (any Inputfield module name) 'label' => $this->_('Hello Greeting'), // field label 'description' => $this->_('What would you like to say to people using this module?'), 'required' => true, 'value' => $this->_('A very happy hello world to you.'), // default value ), // Radio buttons: greetingType array( 'name' => 'fs', 'type' => 'fieldset', 'children' => array( array( 'name' => 'greeting', // name of field 'type' => 'text', // type of field (any Inputfield module name) 'label' => $this->_('Hello Greeting'), // field label 'description' => $this->_('What would you like to say to people using this module?'), 'required' => true, 'value' => $this->_('A very happy hello world to you.'), // default value ), ) ) ));
    1 point
  20. OK, thanks guys! Like @Robin S posted, we either have never experienced any problems with twitter (or any other some) handles. Can you @Macrura plese give me more detalied example about false positives you faced with? I was thinking that maybe I could add new 'execution method' to the module config where one could select whether to exclude/include email auto obfuscation at selected templates/pages or go full manual by using public method ever when needed. This would definitely be more flexible than the current route we have in use.
    1 point
  21. Could you try the attached version (just replace this .module file). ProcessCustomUploadNames.module
    1 point
  22. I've added it to v072 as I could reproduce the issue. The z-index was applied properly only if RenoTweaks fixed header was on.
    1 point
  23. Fascinating how that file works. Given the scale of attackers these days, I'd have expected that file to be somewhat bigger. Also curious to see archive.org in the bad_bot list...
    1 point
  24. sure, that's correct. but it would be interesting if there are some other things to keep an eye on when using it with processwire. unfortunately i'm so busy atm that i can't try it myself so i wanted to ask if anyone has some experience with it to save me time when i try it out the module could indicate if htaccess is writeable and show instructions how to chmod and alert to chmod back after making the changes.
    1 point
  25. Hi @Juergen - sorry, not sure about your issue, but looking at the contents of your page table, I couldn't help but think this new module by @BitPoet could be a much nicer replacement:
    1 point
  26. hey @kongondo, that does the trick. Thank you! maybe it is an option to make the selection obsolete, when the field is set to 1 Image only, and select it directly on click of the thumb? also, i would suggest to let the "add Media" Link be visible if the maximal image count is reached - and then simply replace the image instead of first having to select & delete & save the image /page to add another media. i know, its not THAT simple, but i guess this would be a big improvement! great module, though!
    1 point
  27. I think this is only possible with ListerPro, where each lister is configurable.
    1 point
  28. @vanderbreye, Many thanks for using Media Manager. Apologies, documentation is seriously lagging behind. I am trying my best to complete it. To select a media for editing and preview, please click on its title. The module will remember the last clicked media and if it was being previewed or edited. The media currently on preview will be highlighted with a greenish/yellow box as seen in your image above and its title will be white text against a black background. For other manipulations such as inserting or applying bulk actions (e.g. publish, lock, etc), please click on the thumbnail itself. Hope this answers your question. Cheers.
    1 point
  29. v071 is up which hopefully fixes the CKEditor issues above. I didn't see anything with the Source dialog so if the problem still exists, please add some details. The pagelist template edit tooltip was removed and this feature was moved to a pagelist action because I found it way to disturbing. You can find it as the last item, named as #home, #basic-page, etc. Long-click action works but it doesn't honor the module settings, so it doesn't open in a new tab unless you use the middle mouse button.
    1 point
  30. Hi @kongondo I have a few pre-purchase questions: 1. Is a PW3-compatible version of Visual Page Selector very far off? How about Media Manager - is that PW3-compatible? 2. Could you say a bit about how the use cases would differ for Visual Page Selector versus Media Manager? They seem similar in many ways (or similar in terms of image management - I know that MM supports more than just images). 3. Media Manager includes an upload feature to go from image files on my computer to page-per-image pages in PW. Does Visual Page Selector have a similar upload feature? If not, how do you recommend images are loaded to pages? 4. One of the main things that appeals to me about the page-per-image approach used in VPS/MM is the ability to add custom fields to the page used to hold the image. But I saw that you commented in the MM thread: So would VPS be a better option if the editing of custom fields is needed? 5. The demo video for VPS doesn't show if the page holding the image may be opened for editing from the VPS field. In other words, can I click the thumbnail or image title and open the page? Does it open in a modal window? Thanks, Robin.
    1 point
  31. My first time using this module - very cool. For custom "additional" fields it would be nice to be able to set a field label as well as the field name, so field labels in the page editor can have spaces instead of underscores, etc. Maybe the field labels could be defined in the same table that is used for selecting TextFormatters?
    1 point
  32. @pmarki: Thanks for that hint, it could have been happened ... But I used a different browser to visit the page as a guest. I found another reason, why your code did not work for me - you wrote: if($session->get('visit_counter_flag') === 0 && !$user->isSuperuser())... as long as a page is not requested yet, there is no 'visit_counter_flag' with the value '0'. I changed '===' to '==' and the counter works. What I have now is a counter that increases when a guest visits the first page of his session. It could be interesting to 1. merge the counters of the single pages to get the number of all visits. 2. count the visit of the second, third ... page within the session. So I had two values: 1. Number of visitors 2. Number of visits of every page. Because I am still a beginner in PHP, I dont know how to realize it.
    1 point
  33. @Macrura @horst I've added this feature request to the new repo - please emoti-vote for it if you still want this as a core feature. As a side note, here are some screenshots of a module that I ended up developing in the absence of this feature. Take a standard ASM Select... ...add some extended data attributes to the options... ...and a little javascript to use the data-group attribute of the selected options to disable other, currently unselected options with a matching data-group value (all while keeping things in the right sort order.) You then get a list that prevents your gymnasts from being booked in to the Trampoline group at the same time they are already booked in the Gymnastics group...
    1 point
  34. You'll probably need to log out - that module only checks for new PW versions when logging in: https://github.com/ryancramerdesign/ProcessWireUpgrade/issues/10
    1 point
  35. The file compiler is ultimately only meant for handling legacy modules/templates in pw3. If you're using custom namespaces and you want to be compatible with 2.8 and 3.0 you need to do a bit of manual work to differ between namespace and non-namespace processwire functions/classes. The file compiler will skip any file with a custom namespace and will only work on non namespaced files. So if you're referencing processwire classes only in a non namespaced jumplinks.module your fine, but if your custom classes (Jumplinks namespace) do also reference those, then the file compiler won't do anything for these files and you need to handle the namespace differences on your own. The composer dependencies will most likely only be installed by composer require some/module, because processwire has no knowledge of a eventually installed composer package. If you choose composer to handle dependencies it should probably be done completely by composer. But maybe someone can make a GUI for composer (via exec/system). I've a npm package which does temp. install composer to pull in a package, so it should be possible with enough access rights. I think you're in the nice spot of having a working module. I'd simply go for 3.0 support with jumplinks 2 and leave the first version for anyone else.
    1 point
  36. When you see all the new features listed together and consider the short amount of time this has happened in it's really impressive. Thank you Ryan, and thanks also to the other contributors to the PW core.
    1 point
  37. True happiness!! And today Vue 2.0 was released too, Destiny are you trying to tell me something?! Thanks everyone for the amazing work, I keep enjoying developing with PW like in no other system.
    1 point
  38. I have it in a site/ready.php (if you don't have this file just create one) function bot_detected() { if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) { return TRUE; } else { return FALSE; } } if($session->get('visit_counter_flag') === 0 && !$user->isSuperuser()) { if (bot_detected()) return; /* if the user is NOT logged in and not counted */ /* turn of output formating so PW do not give an error when we change the value */ $page->of(false); /* save the visitor_counter field */ $page->set('visitCounter', ($page->visitCounter ?? 0) + 1); $page->save('visitCounter', array('quiet' => true, 'uncacheAll' => false, 'resetTrackChanges' => false)); /* turn on output formating so PW work as it should */ $page->of(true); /* set a visit counter flag to 1 so next load do not count */ $session->set('visit_counter_flag', 1); } As a extra bonus this script exludes bots from statistics.
    1 point
  39. Welcome to the enterprise world. We have been in competition a few times. From other companies I hear it's a pain in the ass to maintain and to update. Developers spending 60 hours just to upgrade seems like no exception. The suites sell it good. These are the guys who can convince a client User Experience is a checkbox in a page.
    1 point
  40. Superb work and so great many improvements. While I read all the blog posts I can't even remember them all, like the multi language improvements. Thanks Ryan (and the rest of the team) for the great work.
    1 point
  41. Sometimes it's better to use the ID of the page for those critical pages, or employ some way to prevent changing the name of the page: page-rename permission: https://processwire.com/blog/posts/language-access-control-and-more-special-permissions/#how-to-use-the-page-rename-permission "prevent manual changes" option in the Page Rename Options module: http://modules.processwire.com/modules/page-rename-options/
    1 point
  42. For my particular project it would be a fantastic feature, at least to have the option to enable it. I have a number of people adding documents to the site, almost all of which will require images as you go along, so it would make it so much easier. Let me know what you think. That aside, it's a fantastic module and has made the process of creating my project so much easier than using the standard PW images. Thanks for your hard work and continuing support on it.
    1 point
  43. wireshell 1.0.0 Compatibility: ProcessWire 3.x Prepares wireshell for ProcessWire 3.x, adds namespace support, only supports ProcessWire 3.x Updates Github Repository: github.com/processwire/processwire Improves module:upgrade command, if no argument is provided it just checks for upgrades Extends new command, adds option --src=path/to/source to be able to use a pre-downloaded tgz/zip/folder Extends status command, only shows database password if --pass option is provided, shows if an upgrade is available Updates upgrade command, removes options dev and devns
    1 point
  44. First off, a big thanks to Jonathan Lahijani and Benjamin Milde for taking over the last two weeks of blog posts while I was traveling. They did an awesome job. If you haven't yet read Jonathan's CMS Critic case study or Benjamin's Migrations module introduction, be sure to check them out. This week we started using our new GitHub organization repository to soft launch version 3.0. ProcessWire 3.0 now appears on packagist as well (installable via Composer). We’ve got several other updates for you as well! https://processwire.com/blog/posts/hello-pw3/
    1 point
  45. True you do have a point, Composer is just another means
    1 point
  46. I think short-term mostly the module development will benefit from the composer addition. No need to pull in symfony/console for multiple modules with cli interface, when once would be enough. The new jumplinks module will be built by using the popular nikic/fast-route package. There are lot's of popular packages to support filetypes like excel or pdf (Pages2PDF uses mpdf), which can simply be pulled in by using composer. Version constrains allow each of those dependencies to be independently updated (e.g. security fixes) without the module author necessarily being involved.
    1 point
  47. This is a good reminder for me. There's not enough time in a week (since I got back in town) and there's plenty of little details I still have to attend to, which is why I thought calling it a soft launch was better. This will definitely be added though. You are completely right here of course. I have updated the blog post to add that as well. I agree with this. Composer is pretty awesome and all, but it's not every day that I have a use for it. The work I do rarely requires anything outside of what is already in the PW core. This is likely common among web developers that build sites in PW or some other system that already provides the majority of what you will need. Sephiroth's comment is true when you step outside of this context though, into the wider development world of PHP. With version 3.0 we're hoping to bring more of that world into PW's audience. So even though most of our current audience likely doesn't use/need Composer for many of the sites they develop, my hope is that will change as more people relying on Composer begin to use ProcessWire. Also depending on the site/app, the PW core/modules can't always accommodate every need, so I expect people will very likely increase their use of Composer when the needs for something more arise.
    1 point
  48. Whether or not one would benefit a lot of Composer depends a lot on the type of work they do (like @szabesz already pointed out), the workflow they prefer, and a few other factors. I for one haven't seen any reason to really get into using Composer. It's not that I don't like it, mind you – I really do, and I actually wish I had more use for it, but I just don't. I do most of my work with ProcessWire, and most of the time I work on web sites: public-facing sites, intranets, extranets, directories of data, etc. I do custom development for those sites, applications if you will, and in many cases there's some server-side automation / integration involved. ProcessWire does out-of-the-box most of what I need to get that stuff done, I use some third party modules here and there, and PHP itself is a framework with a vast collection tools and extensions built-in. That being said, when I browse the list of the most popular packages on Packagist, I see some projects I've used in the past (using a basic download / git clone + require one file approach) and some that I probably could've used but usually have worked around with a few lines of my own code. Either way, these projects could've saved me a few minutes (or even hours) here and there, had I already been well versed in the Composer workflow. Now that ProcessWire supports Composer, I'm probably going to give it a try and see how it feels, but for the time being my opinion still stands: Composer is by no means something you "have to" use, even if you do so-called "serious development". It's one tool among others, and while some no doubt benefit from it greatly, for some it's of very little help (or potentially even harmful as it can tempt you to rely on a dependency for everything – left-pad, anyone?)
    1 point
  49. I'm not sure, but isn't this more what people might be looking for when creating a new project: composer create-project processwire/processwire Otherwise processwire will be pulled inside the vendor folder, where it's from questionable use besides for being bootstrapped into other applications.
    1 point
  50. This is about javascript rather than PW, so don't have tutorials about this specifically. I think what I mentioned should work, but it's just a matter of debugging to find out why it's not working. Where I would start is to just get it working with hard-coded URLs. Meaning, if your arrow-up.png file is in /site/templates/scripts/js/img/arrow-up.png, then hard code that location and see if it starts working: .scrollUp({location:"right",image_src: "/site/templates/scripts/js/img/arrow_up.png",wait:100,time:300}); Also make sure you have a javascript console open (like in Chrome: View > Developer > Javascript Console), as it's nearly impossible to debug this kind of stuff without a console to tell you when an error occurs.
    1 point
×
×
  • Create New...