Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/22/2018 in all areas

  1. Attention: This is the thread for the archived open source version of RockPdf. This module is neither developed any further nor maintained nor will it get any fixes. Modules Directory: https://modules.processwire.com/modules/rock-pdf/ Download & Docs: https://github.com/BernhardBaumrock/RockPDF Please see the new version here:
    7 points
  2. https://www.baumrock.com/portfolio/hrdiamonds-360-feedback-tool/ This tool was developed for the vienna based HR company hrdiamonds.com. They can create projects for their clients, setup the feedback architecture, choose from a library of competences and create their very own surveys and provide highly customized services for their clients. Highlights: Everything multilingual (EN/DE) PDF reports with custom designs, table of contents, page numbers, importable custom pdfs (annex, written in MS Word, so they have perfect freedom and ease of use) and of course: pretty charts (done by chart.js): Scalable and nice UI by RockGrid+batcher in several custom process modules: Automatic multilingual e-mails with several variables: Another example of RockGrid: Customizable groupings of feedback-roles (there have to be at least 3 feedbacks per role so they need to have the possibility of aggregating different feedbacks-roles). This project was online for some time already but I ported it from RockDatatables to RockGrid which I plan to release in the next days. If anybody is interested in using/reselling this tool feel free to contact me via PM ?
    6 points
  3. I've been traveling in the second half of this week, so will release ProcessWire version 3.0.107 for next week. This week we look at the WordPress vs. ProcessWire series of videos by Jonathan Lahijani. We talk with him about the how the videos are made, what inspired them, what’s been learned, platform strengths, future plans, and more. https://processwire.com/blog/posts/wordpress-vs-processwire/
    5 points
  4. https://processwire.com/api/include/
    5 points
  5. Welcome to the forums @OxfordSUOliver If you have access to your files, paste the following temporarily into one of your template files and then visit a page that uses that template: $u = $users->get('sup'); // or whatever your supersuser name is $u->of(false); $u->pass = 'your-new-strong-secret-password'; $u->save(); Remember to delete the above from your template file once done. If you don't know the name of the supersuser, you can check this in your DB tables. See the pages table. Scroll down to user with ID 41 and check the string under the column name. Alternatively, temporarily again, in a template file, do the following: $u = $users->get(41); echo $u->name;// this is the name you want for logging in Note the original ProcessWire Superuser ID is normally 41, unless for some reason your colleague changed it, which would be highly unlikely, although they could have deleted that user having set up an alternative Superuser ?.
    2 points
  6. So much to learn... even searching the documentation ?‍♂️
    2 points
  7. Thx Sergio, sure I'm happy to share some insights. The library is mPdf (version 7) https://mpdf.github.io/ and I created a little helper module and just set it to public if anyone is interested: The custom design is just a regular PDF done by a designer and it is then imported into the pdf as needed (see line one in the next screenshot). My helper module provides a possibility to create only the HTML (not the pdf) so debugging is a lot easier: This is the result. The second logo would be the logo of the actual client of course... CSS is done with LESS, so it is easy to style and modify variables. LESS is compiled via AIOM on the fly without the need of any other compilers/setup. widows/orphans are controlled by a .nopagebreak class that can be applied so some blocks that should stay together: Charts have a fixed size so the amount of text above those charts is limited so that everything stays on one page. To get the TOC working with the custom design without page numbers etc. was quite tricky but finally it works very well. Also the "annex" feature is very nice, where they can upload a custom PDF without background and page numbers and the text is imported in the document automatically with the correct background and page numbers: We just created a word-template with the correct colors, fonts and headline sizes and that's it ?
    2 points
  8. solution #3 (just playing around, I'd prefer solution #2)
    2 points
  9. As you said, get the array from session in a temp var, insert your new item then assign back the array to the session var : $order = array(); $order['token'] = 'token'; $order['product'] = 'product-name'; $session->order = $order; bd($session->order); $tmp = $session->order; $tmp['price'] = 'price'; $session->order = $tmp; bd($session->order); Or use $session->setFor() : $session->setFor('shop', 'token', 'token'); $session->setFor('shop', 'product', 'product-name'); bd($session->shop); $session->setFor('shop', 'price', 'price'); bd($session->shop); $session->setFor('shop', 'price', 'new-price'); bd($session->shop);
    2 points
  10. LogMaintenance A simple ProcessWire module to give some maintenance control over log files. I found myself often having lots of log files for different things that can grow more or less quickly to a size where they can be difficult to maintain. The built in Logger of PW does a good job of giving you the possibility to delete or prune logs. But it has to be done manually and sometimes a log grows into millions of lines, which makes it often impossible to even prune it as it's too large. LogMaintenance uses LazyCron to run the maintenance task and there's several settings you can setup on a global or per log basis. Archive: will create zip files for each log file in logs/archive/ folder and add the log each time the maintenance is run to a subfolder containing the datetime. Lines: keeps logs to a certain number of lines Days: keeps the log to a certain number of days Bytes: keeps the log to a certain amount of bytes Each setting is checked from top down, the first setting to contain something is used. So if you check the "Archive" option, all other settings are ignored and logs are archived everytime the LazyCron is executed. If you want to keep your logs to a certain amount of bytes just leave all other settings to 0 or blank. Per Log Settings There's a textarea that you can use to setup a config for a specific log file one per line. All the logs you define here ignore the global settings above. The syntax for the settings is: logname:[archive]:[lines]:[days]:[bytes] errors:1:0:0:0 // would archive the errors log messages:0:10000:0:0 // will prune the errors log to 10000 lines The module can be found on github for you to check out. It's still fresh and I'm currently testing. https://github.com/somatonic/LogMaintenance
    1 point
  11. Hi, We build our first PW module, so don't hesitate to share your feedback! https://github.com/Typografics/PaymentMollie-PW3 We developed this payment module for our fundraiser webshop: https://shop.typografics.be/. Here you can read the whole story. Enjoy the weekend!
    1 point
  12. Here is my first processwire module (beta). https://github.com/theo222/ImagePickerField A lot of "first times". First time Github, Markdown and of course PW Modules. So be gentle please. I hope it works.
    1 point
  13. You may or may not know the templates created over at Styleshout.com. As a fan of the work I decided to create a site profile based on the latest template Sublime. Just in case you ask: I talked to Erwin from Styleshout about the idea and he was totally fine with it. There are no major changes compared to the official version of that template - just some CSS tweaks. The whole site profile was created without any 3rd party ProcessWire modules and comes with sample (lorem ipsum) content and free stock photos. Details about used fonts, scripts and images can be seen over at the Sublime template details page. If you decide to use this site profile please keep in mind that you keep at least the Styleshout link in the footer of that page - my link can be removed. ? Is this site profile ready for usage? Sure. It will work and can be customized and updated with your content straight away. There is even a SEO tab if you want to play that Google-game. Right now I would say it's more of a good looking easy entrance to the ProcessWire world. All template code is quite verbose and easy to understand for beginners. By now all site profile files are located over at Github: https://github.com/webmanufaktur/pw-sublime That's all Folks - feel free to play around with this site profile. Let me know what you would do different or what should be changed. Bugs, questions, anything? Let me know. Screenshots Pages or sections created in the backend. Choose and sort those sections for the front page. SEO if you want Auto-generated navigation based on sections. Global settings What will or might come in the future? I plan to create more site profiles in the future - all based on pre-made HTML templates that are available for free. If you know other templates or would like to see one of them as a site profile, please let me know. Maybe I can spare an hour or two.
    1 point
  14. ? ? Well, I've just recently installed it, but I need to sit and learn to use it. It seems it's going to be of great help.
    1 point
  15. The best Debugging solution so far for ProcessWire ! ? https://processwire.com/api/ref/session/set-for/
    1 point
  16. Hi Margaret, I remember to have read something about this issue. you could try in first instance what is stipulated on the following thread then let us know :
    1 point
  17. @adrian I have no more problems with the upgrade module under PHP 7.0 and 7.1. However, I had a problem with PHP 7.2 some time ago. However, I can' t remember the exact error message. It was something with "Can't parse JSON from Github". Had then switched back to PHP 7.1 and it worked. I'm trying to reproduce that again.
    1 point
  18. You can create roles in ProcessWire. For example GuestsA, GuestsB, GuestsC and easily get 'em via Api. // Get them $usersA = $users->find("roles=GuestA"); // Check them if($user->hasRole('GuestA')) Also you can create custom fields inside the user-"pages". So you could create a selectfield which you can set with a hook after registration. $users->find("yourcustomfield=groupA");
    1 point
  19. This is very impressive! Excellent job @bernhard!! Could you detail more about the PDF generation? Library used, how the custom design was made, how you control widows / orphans etc. Thank you!
    1 point
  20. I also made function for Page Reference field in pagefields.php. private function getReference($p, $apiField) { $p->of(false); $pages = $apiField->name; $id = $p->get($pages); $apiFields = []; if ($id) { $output[$pages]['title'] = $id->title; $output[$pages]['name'] = $id->name; $output[$pages]['url'] = $id->url; return $output; } return $apiFields; } Then add this to function "getAllFields" else if ($apiFieldType instanceof FieldtypePage) { $apiFields = array_merge($this->getReference($p, $apiField), $apiFields); }
    1 point
  21. A small news about Duplicator and why its not updated recently: On the current state of the module, it is usable for small website, I mean small database (I am aware of the issue which include the parent directory in the compressed package which make the package non deployable by the installer). As stated by Ryan itself, If you are working with really large files, it may be better to perform that task directly in PhpMyAdmin or the native MySQL client. And as I am working now with giga-sized databases, its the time to rewrite this module. So what is planned ? Duplicator will be made on top of PHPBU in the hope to provide to the community a professional focused backup service for your websites. More information : Future requirement: PHP 7.x.x The official repo : https://github.com/sebastianfeldmann/phpbu Any suggestion welcome. Have a nice day ! ✌️
    1 point
  22. Half joking: the beauty of lawmaking is in that you don't ever have to worry about any of that inconvenient real world stuff. Those abiding by said laws are the ones who have to figure out how to make them work – or not, and risk being penalized ? On a more serious note: automation can't handle all cases, so what this will likely mean is more false positives, more manual work, and more severe consequences when something is reported by real users. From my point of view that won't be a major (or breaking, as some have claimed) change for the entire Internet, but perhaps I'm just not able to see the Big Picture yet. This is awfully optimistic and very much out of character for me, but.. let's just wait and see how this works out. Then again, at this point that's pretty much all we can do ?
    1 point
  23. I've done a simple version of this by hashing the file's modified time: $js_version = md5(filemtime($config->paths->assets . 'js/script.js')); echo sprintf('<script src="%sjs/script.js?v=%s"></script>', $config->urls->assets, $js_version);
    1 point
  24. I just had an issue with a site where end users were pasting content from Word. There is a Paste From Word plugin, but that still leaves a lot of formatting and overrides the paste as plain text. To resolve this I did the following: Custom Config Options forcePasteAsPlainText: true Remove Plugins I added pastefromword to the end of the list already there.
    1 point
  25. I built this module because I needed a versatile solution to replace tags and simple if-blocks in some E-Mails and PDF documents. If you only need to replace static tags (no if-conditions), then you can use default PW api and need no module: $str = "My favourite color is {color}."; $texttools = $sanitizer->getTextTools(); echo $texttools->populatePlaceholders($str, ['color' => 'red']); // output: My favourite color is red. Usage: See the two example Files in the folder /replacements Methods: replacementsTable() Renders an overview of all available replacements (see the example in the Module's config file: Create new Replacements: Simply copy the sample file and adopt to your needs. Download: https://gitlab.com/baumrock/RockReplacer
    1 point
  26. i'm not sure but i think hannacode does not support the if statements like [myifstatement]this is shown only to superusers for example[/myifstatement] second, hannacode is a textformatter module that works only as a formatter for fields. i use my module to replace tags in emails and pdfs (ok that would also be possible with the textformatter and i'm thinking of adding a textformatter to call all my replacements, but i just wanted to have my own way of doing it...). and third, i prefer to define things with single files and not to write code into some field's config field. you can then use git for version control. next on the roadmap is to support else-statements like this: [superuser] access [else] sorry, only for superusers :) [/superuser]
    1 point
  27. Ah, sorry it's not $page->pagefieldmulti->has(1001) then it would have to be a selector if($page->pagefieldmulti->has("id=1001")) ... if($page->pagefieldmulti->has("id=1001|1002)) ...
    1 point
×
×
  • Create New...