Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/09/2018 in all areas

  1. It's all there. When I was starting with PW years ago, I very soon looked at modules and all the Process modules that make the admin. So I never really needed a tutorial, just look and learn copy and try. It was so simple and since it's all in the same fashion using the already familiar API and "normal" modules. So you have a ton of modules Ryan has already built that make ProcessWIre backend you can use as examples/learning. Isn't it nice?
    3 points
  2. Hey guys, Thought I would share a quick preview of Designme. A module we (Eduardo @elabx and I) are building for visually laying out your templates/edit screens. ? This is a really quick, zero polish screen grab. FYI. Video #2 - UPDATE This new video shows the following features in Designme: Re-arranging fields via Drag & Drop Re-sizing fields via Dragging. Adjusting field settings - with live refresh. Working on "hidden" fields while Designme is active. Creating New fields. Deleting fields. Creating/Deleting Tabs. Dragging fields between tabs. Creating fieldsets. Tagging/Un-tagging fields. Fields without headers expand when hovered (like checkboxes). Live filtering of fields in the sidebar. Ability to adjust (all) Template settings without leaving Designme. Template File Tree Editing Template files source code with ACE Editor. Editing Multiple files with ACE Editor. (New Tabs) Saving files. Techie stuff Fields load their own js/css dependancies. *ready to use on creation (*most fields) Everything happens via Ajax to ProcessPageEdit (via module + hooks). Designme has a JS api that you can use. All actions trigger events. We would love any detailed feedback on what you see so far. If you are interested in testing Designme. Let me know below. ? Video #1.
    2 points
  3. In this demo video, it is working from the existing 'home' template. All Ajax requests are going directly to the existing ProcessPageEdit url. there are no 'dynamic templates', but very shortly, you will have the ability to create templates on the fly from the page tree and start editing directly in Designme to speedup template/data model creation. So you can start with a completely blank template/editscreen and start throwing in fields as fast as possible. (hope this makes sense).
    2 points
  4. I've been thinking PW could do with something like this for a long time but your implementation is way better than anything I had imagined - great work! ?
    2 points
  5. Do you mean this? (ProcessPageEditImageSelect)
    2 points
  6. Just added the beforementioned ProcessNetteTester module download links to the first post. Read the readme on GitHub on how to set it up.
    2 points
  7. vscode is now portable by core, so we can share settings across multiple environments easily: https://code.visualstudio.com/docs/editor/portable ?
    2 points
  8. Well I'm a starter only but it's fun, and knowing you can any time run tests to ensure everything is OK is invaluable.
    2 points
  9. EDIT: Demo version download here: Hello I've been looking for a way to give "editors" a little bit more freedom regarding the layout, without having to care about CSS, Fields, Templates etc. After playing with PageTable(-Extended) and Bootstrap, this is the (intermediate) result: http://theowp.bplaced.net/upload/prev.html It is just a proof of concept atm. Does anything like this already exist for PW?
    1 point
  10. DEPRECATED If you are interested in the new version (commercial module launching in 2023) write me a PM --- Some of you might have followed the development of this module here: https://processwire.com/talk/topic/15524-previewdiscussion-rockdatatables/ . It is the successor of "RockDataTables" and requires RockFinder to get the data for the grid easily and efficiently. It uses the open source part of agGrid for grid rendering. WHY? ProcessWire is awesome for creating all kinds of custom backend applications, but where it is not so awesome in my opinion is when it comes to listing this data. Of course we have the built in page lister and we have ListerPro, but none of that solutions is capable of properly displaying large amounts of data, for example lists of revenues, aggregations, quick and easy sorts by the user, instant filter and those kind of features. RockGrid to the rescue ? Features/Highlights: 100k+ rows Instant (client side) filter, search, sort (different sort based on data type, eg "lower/greater than" for numbers, "contains" for strings) extendable via plugins (available plugins at the moment: fullscreen, csv export, reload, batch-processing of data, column sum/statistics, row selection) all the agGrid features (cell renderers, cell styling, pagination, column grouping etc) vanilla javascript, backend and frontend support (though not all plugins are working on the frontend yet and I don't plan to support it as long as I don't need it myself) Limitations: While there is an option to retrieve data via AJAX the actual processing of the grid (displaying, filtering, sorting) is done on the client side, meaning that you can get into troubles when handling really large datasets of several thousands of rows. agGrid should be one of the most performant grid options in the world (see the official example page with a 100k row example) and does a lot to prevent problems (such as virtual row rendering), but you should always have this limitation in mind as this is a major difference to the available lister options that do not have this limitation. Currently it only supports AdminThemeUikit and I don't plan to support any other admin theme. Download: https://gitlab.com/baumrock/FieldtypeRockGrid Installation: https://gitlab.com/baumrock/RockGrid/wikis/Installation Quikckstart: https://gitlab.com/baumrock/RockGrid/wikis/quickstart Further instructions: https://gitlab.com/baumrock/RockGrid/wikis/quickstart#further-instructions German Translation File: site--modules--fieldtyperockgrid--fieldtyperockgrid-module-php.json Changelog: https://gitlab.com/baumrock/FieldtypeRockGrid/raw/master/changelog.md Module status: alpha, License: MIT Note that every installation and uninstallation sends an anonymous google analytics event to my google analytics account. If you don't want that feel free to remove the appropriate lines of code before installation/uninstallation. Contribute: You can contribute to the development of this and other modules or just say thank you by testing, reporting issues and making PRs at gitlab liking this post buying me a drink: paypal.me/baumrock/5 liking my facebook page: facebook.com/baumrock hiring me for pw work: baumrock.com Support: Please note that this module might not be as easy and plug&play as many other modules. It needs a good understanding of agGrid (and JavaScript in general) and it likely needs some looks into the code to get all the options. Please understand that I can not provide free support for every request here in the forum. I try to answer all questions that might also help others or that might improve the module but for individual requests I offer paid support (please contact me via PM). Use Cases / Examples: Colored grid cells, Icons, Links etc. The Grid also has a "batcher" feature built in that helps communicating with the server via AJAX and managing resource intensive tasks in batches: Filters, PW panel links and instant reload on panel close: You can combine the grid with a chart library like I did with the (outdated) RockDataTables module:
    1 point
  11. Thanks a lot. I think the biggest challenge so far has been to try to make Designme feel like a natural extension of using PW instead of an additional layer of complexity.
    1 point
  12. Maybe you should post this in the Duplicator module thread....
    1 point
  13. To answer your first question: this seems possible. You can already set custom headers. See this part on the WireHTTP class or in API ref.
    1 point
  14. @Robin S Thanks for the fix! working now, but I just found another bug in 0.1.1: the virtual parent stops working if it's the 1st page in the tree (first one under Home). Otherwise, if it's 2nd or more (or "lower" in the display tree) it works perfectly. With a clean setup of PW 3.0.98 and virtual parents, with a structure like this, everything works fine: Home | - Basic Page | - Virtual Parent | - Virtual Child 1 | - Virtual Child 2 But move Virtual Parent to be the 1st child of Home, and Virtual Parent shows no children: Home | - Virtual Parent (no children - no downward arrow, no number of children digit, no expansion on click interaction) | - Basic Page Move it back to be the 2nd, and it works again ? Edit for clarity: the Virtual Parent doesn't have to be manually moved to be the first child of Home, after being configured as the Virtual Parent for this behavior to happen. If the Virtual Parent page is already the 1st child of Home before the config is applied in the Virtual Parents Module, the bug still happens - and one gets the impression that the module doesn't work at all, which was very confusing ?
    1 point
  15. Here is way to get most viewed posts today: https://processwire.com/talk/topic/2868-count-views-of-post/?do=findComment&comment=28641 for a pagelist you have to asign a page field to a user and you save added pages via click like you described. This module could also be interesting: http://modules.processwire.com/modules/page-bookmarks/ regards mr-fan
    1 point
  16. In this post we preview a new feature coming in ProcessWire 3.0.108, which is a major upgrade to our live search feature in the admin. In this update, PW’s search becomes a lot more versatile and powerful while remaining just as easy to use. Plus, there are some fun and useful power-user features that we’ll cover here too. https://processwire.com/blog/posts/processwire-3.0.108-preview/
    1 point
  17. So we're over half way through the year. How are we getting on with this @ryan? I don't see much of a discussion around it? I think this is a really important first step to making ProcessWire part of the larger web development community and really increasing its popularity. (And sales of pro modules!).
    1 point
  18. Try this in /site/ready.php: $wire->addHookAfter('InputfieldCKEditor::renderReadyHook', function(HookEvent $event) { $inputfield = $event->object; $page = $inputfield->hasPage; $field = $inputfield->hasField; // Whatever test you need to identify when the asset page should be changed if($field->name === 'body' && $page->template == 'basic_page') { $js_config = $this->config->js('InputfieldCKEditor_' . $inputfield->name); $js_config['pwAssetPageID'] = 1234; // The id of the asset page you want to use $this->config->js('InputfieldCKEditor_' . $inputfield->name, $js_config); } }); Seems to work well in the PW admin, but the code comment here suggests it won't work for front-end editing.
    1 point
  19. This is really nice @tpr! I am currently reading up on these test suites like Codeception and Tester or plain testing like phpunit. This comes in very handy.
    1 point
  20. I'm close to release the initial version of the module, only a few issues are left behind. I rewrite the UI so it uses ajax all the time. It was an overkill to start all test on page load, plus it was done in one PHP thread which involved a few issues (timeout, included files were inherited by next tests, etc). With ajax it's not only user-friendlier but more reliable too, and it's possible to catch PHP errors too (beforehands the syntax error was outputted on the whole page). I also managed to format the Assert error message so now it's much easier to grasp the message. I really like how it looks and works now. Even so it seems simple the JS part was tricky sometimes ?
    1 point
  21. echo $results->renderPager(array( 'linkMarkup' => "<a href='{url}#YOURANCHOR'><span>{out}</span></a>" ));
    1 point
  22. 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 ?
    1 point
  23. For some inputfield visibility constants it is too late to set them at inputfield render. For Inputfield::collapsedHidden, Inputfield::collapsedNoLocked and Inputfield::collapsedYesLocked these are handled by the InputfieldWrapper class. I've found that a good method to hook for setting the visibility of fields in Page Edit is Field::getInputfield. This example is for /site/ready.php but easy to adapt to a module context: $wire->addHookAfter('Field::getInputfield', function(HookEvent $event) { // Only for ProcessPageEdit if($this->page->process !== 'ProcessPageEdit') return; $field = $event->object; $inputfield = $event->return; if($field->name == 'proj_code_folder') { $inputfield->collapsed = Inputfield::collapsedNoLocked; } });
    1 point
  24. The problem is very likely something not visible in your post above. Testing with the setup below, I had no issues getting this to work under latest version of the devns branch: <?php # /site/modules/TestHook.module class TestHook extends WireData implements Module { public static function getModuleInfo() { return array('autoload' => true); } public function init() { $this->addHookAfter('WireHttp::send', $this, 'hookCheckAuth'); } public function hookCheckAuth(HookEvent $event) { die("dying"); } } <?php # /site/templates/basic-page.php $http = new \ProcessWire\WireHttp; $http->send('/');
    1 point
×
×
  • Create New...