Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/06/2020 in all areas

  1. I've only recently stumbled across Processwire. Thanks to ADHD and avoiding doing other work. I'm blown away at the power of Processwire. Ryan and all those who've built modules have done an incredible job of making a system that is fully customizable with incredible dev speed. Wordpress has so much bloat, it isn't very user friendly when all you want to do is quick a blog post or change. In fact unless you're a geek, It's actually quite daunting. Hell I'm still daunted by it all the time. I've never got my head around the interface layout and placement of menus and settings. On top of that, most plugins are trying to cater for anyone everyone and they have more junk to 'impress' than anything else. I love that I can just build my own functionality with PW easily or find a way to do it. What I'm particularly excited about is the end clients point of view. I could show a client in 5 minutes what they need to do to maintain their site. Changing look and theme as looks and trends move on would also be a cinch because no mark-up data is stored within the fields, unlike all the WP editor themes out there. Change templates, new site and look. All legacy data looks as good. So thank you to Ryan and the community for Processwire. I've only recently restarted developing after 15 years and frankly really didn't want to but PW has excited about web development again. I'm not one for blowing air up peoples arses but when something excites me, it excites me. ? Now I have to decide on whether I'm going to import my existing website's data or start an entirely new one ? G
    9 points
  2. have you tried to double click one trash icon? Should do the trick. (since PW version 2.2?)
    4 points
  3. This little module is for verifying a vat number (UID) through a SOAP webservice (http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl). After installing this module you get a additional option in details-tab to check the field, if it is a real UID. https://modules.processwire.com/modules/inputfield-uid/ https://github.com/hintraeger/PW-InputfieldUID
    3 points
  4. Same feeling I felt as a Developer when I stumbled upon Processwire coming from Wordpress, glad you love it
    3 points
  5. Hi everyone! This is Antti from Avoine. Our website business is growing and we are looking for some extra talent to help us. We are looking for web developer(s) with great visual skills who can design and develop websites that look great and work fast on desktop and mobile. We are looking for a long-term partnership, not a single project gig. Agencies and freelancers can both apply. All the projects will come to our hosting and maintenance, so we expect you to build websites in a same way that we build all our sites. We will of course teach and help to get in track with this. Our current process includes: source code hosted at github.com gulp based workflow composer based processwire installation default site profile that all our projects use tailwind css wireframe used for output strategy We hope that you are familiar with tools like git and composer. Not too much, so don't be afraid about these. Please contact me with email to antti.peisa@avoine.fi and please include: Links to at least 2 reference projects online (both design and front end development needs done by you or your company) Some kind of estimate about how many hours reference project development took Your hour price in euros or usd Looking forward for your application. This is great opportunity to work with legendary creatures like @teppo @Fokke and unfortunately me too.
    3 points
  6. Ok, when working with image fields, you have many useful functions right with the core image field, and / or you can use third party modules. At first, you should enable the imagick rendering engine under modules > core > image. (Your webserver need to support this) Also you can enable the animated gif engine. The engines get invoked by inspected image filetypes. It do no harm to have more then the default fallback based on GD-lib. With the core image fields you can enable/disable a lot of features, like limiting the amount of images, allow upload of multiple images via ZIP, make use of focus point & zoom!, and many more. When it comes to cropping, you have many different ways to choose from. I prefer using the focus point and template code, assisted by PIA. You can use the built in crop functionality for manually create and name crop variations, but if you do, go and add the ImageCropRatios module to the toolbox. With it you can define fixed ratios. Another way can be to use the CroppableImage4 module. (module board of CAI3) With it you can define crop ratios per template basis. Also interesting, the CAI4 extends the core image field, what lets you use all functionalities in one field. You can make use of the focus & zoom in one template, and use predefined crops in another. If you once have a need for individual image manipulation, there is a module too. Thats the toolbox that I use or select from, but there are a lot more in regard of the variation filenames, EXIF data. There are modules that create a lightbox gallery out of the box, and more. But best is to know how the core pageimage work, in template scope and elsewhere! ---------------------------------------------------------------------------------- More: https://modules.processwire.com/modules/process-media-manager/
    2 points
  7. Nothing too fancy, just few composer hooks that update ProcessWire based on the composer.json. Looking forward to handle module updates through composer too, but not there yet.
    2 points
  8. Hi there Here is the future of e-commerce for Processwire framework: https://processwire.com/talk/topic/19911-future-of-padloper-new-project-lead/ by @kongondo Third parties solutions looks great until you will faced with customization and then, with issues after updates. It is always better to control the code by yourselves. Best wishes from the Alps Alexander
    2 points
  9. I am using CKEditor ? I must be honest I was more curious than anything. I realise it's not the right way to do it. I've come from Wordpress which I'm just getting tired of. That's what I really like about PW .. nice neat and clean input and output. Thank you for the suggestion I had a feeling I could output through the image field, I've seen tags but not sure how it's all put together... yet. I'm getting my head around PW at the moment. Thank you for your help.
    2 points
  10. The more I think about it, I am sure we need a core solution. Even if we hook into every Inputfield::processInput method we know of, there will still be custom inputfields which we will miss. And if you populate your pages by api Inputfields are not even used and the hooks are never called. UTF8 normalization should be buried somewhere deep in the core: Probably every mysql query and all user input should be normalized automatically. Currently this is not possible with hooks alone as far as I know. Btw, I just found another lightweight library which provides a fallback function if normalizer_normalizer is not available: https://github.com/wikimedia/utfnormal
    2 points
  11. The easiest way is to use SnipWire: https://modules.processwire.com/modules/snip-wire/ Product variations is one of the open points in my module SnipWire. It's fully customizable - just see how this works here: https://docs.snipcart.com/v2/getting-started/customization It's easy by using the hookable webhook methods of SnipWire module! Snipcart validates an order's integrity, by using the values specified in the data-item-url attribute of each product. If you submit an order, Snipcart crawls your website and compares the submitted values with the stored values of the products. It's impossible to manipulate an order.
    2 points
  12. Hi @Greg Lumley, welcome to the forums. This is funny, for me it is the other way round. Coming from photography I more and more moved into the field of programming. ? If you don't mind, I can point you to some spots and third party modules in the context that I, as a photographer, find very useful in PW.
    1 point
  13. All you need to do is to bring all the knowledge from this thread together and open a request at github: https://github.com/processwire/processwire-requests/issues You don't need to do any git magic there. Just plain text descriptions ? I'm not sure if that is more a request or on issue... Issues are filed here: https://github.com/processwire/processwire-issues/issues/new
    1 point
  14. Sounds like a reasonable feature request. I’m assuming you’re using CKEditor? In the meantime, have you considered outputting directly from the image field? That is, looping through the images in your template and generating the markup that way. If you’re doing a gallery of all images on the page, or maybe all images with a certain tag, that seems like the way to go. It would also give you more control over the presentation, for example if you need clicked images to open in a lightbox or something.
    1 point
  15. No worries, thanks and keep up the good work! All added to my list of things to try out. ?
    1 point
  16. I meant File > Add Folder to Workspace but it seems you had this setup already. Ah. I see. In my case I always namespace my template files as well. In your case, it was looking for the function definitions in the global namespace, hence the error.
    1 point
  17. The wire folder is already in my workspace. Or do you mean I have to add it in VSCode in the workspace settings? After adding namespace ProcessWire to my template files, I got rid of these errors.
    1 point
  18. You could put this in your site/init.php: $this->addHookAfter("Page::viewable", function($event) { if ($event->object->isUnpublished() && wire('input')->get('preview') === 'true') { $event->return = true; } }); It won’t work in site/ready.php because the 404 will already be thrown by the time you get there. Of course, you may also make a module out of it.
    1 point
  19. These are two completely different modules Formbuilder: Forms that can be filled out and sent via the frontend (save to page, send an email etc.) Login register: Users can register and will receive a corresponding e-mail. Users can edit a (customizable) profile themselves in the frontend. There is a forgotten password function
    1 point
  20. I added a module for this that hooks on page save. Added an ace css text field for color coded markup and when I save, if that page has a css field, it creates the .css file on the server using a timestamp name. public function init() { $this->pages->addHookBefore('save', $this, 'updateThisPage'); $this->pages->addHookAfter('save', $this, 'makeMergeFiles'); } and something like $myfile = fopen('../assets/css/' . $newAssetFilename . '.css', "w"); fwrite($myfile, $allCSS); fclose($myfile); For some reason if I move a page it doesnt work right. Have to save it to fix, but it hasnt bothered me enough to research it. lol I usually add one to my template page, and the individual page and it finds all pages with this field and merges everything into one file. I do one for js also.
    1 point
  21. I have my doubts about how effective that strategy will be, but you have a few options: 1. Create a PW template and page that outputs the CSS. Use a "text/css" content-type header, either using the "Content-Type" select on the Files tab of the template, or by using header(). header('content-type: text/css; charset: UTF-8'); Add this page to your markup in a <link> tag: <link rel="stylesheet" type="text/css" href="/path/to/page/"> 2. Similar to the above, but rather than create a template and page instead create a PHP file in the site root (PHP files are blocked inside /site/) that bootstraps ProcessWire. 3. Use $files->filePutContents() to actually write a CSS file that you load in your markup. In all of these cases you will probably want to use a cache-busting query string based on the time the CSS was last modified.
    1 point
  22. I can only thank @bernhard again for this module and for the support he provided, for example in finding a solution for option fields. RockFinder2 can not only be used to load masses of pages faster, it can also be used at field level. For example, I used it to load about 40 to 60 fields per repeater matrix type, which are also further nested in FieldsetPages (for design settings) in one query. This amount of fields caused 700 or more single SQL queries to be executed and up to 140 PW-Page objects to be loaded into RAM. This caused a significant loading delay. By using RockFinder2 the SQL queries could be reduced to 200 on average. About 60 page objects less are loaded in RAM, the CPU is also happy and the loading time for pages without cache was also reduced on average to 700 ms to 1 second. Good job Bernhard! ?
    1 point
  23. https://modules.processwire.com/modules/search-engine/
    1 point
  24. This is much easier ? $u = $users->add('user-name');
    1 point
  25. You can renew any time. The auto-generated renewal invoices expire on their own after awhile (I think 90 days or thereabouts). So if you find you can't renew when you want to, just send me an email or PM and I can refresh it so that it'll work.
    1 point
  26. This is what I use. It groups items into an array with years as keys, then you iterate over them and display your output. <?php $items = $pages->find('selector'); $grouped = array_reduce($items->getArray(), function (WireArray $carry, Page $item) { $year = date('Y', $item->published); if (!$carry->has($year)) { $carry->set($year, new WireArray()); } $carry->get($year)->add($item); return $carry; }, new WireArray()); ?> <?php foreach ($grouped as $year => $yearItems): ?> <h2>Year: <?= $year ?></h2> <?php foreach ($yearItems as $item): ?> <!-- render your items of certain year here --> <?= $item->title ?> <?php endforeach; ?> <?php endforeach; ?>
    1 point
×
×
  • Create New...