Leaderboard
Popular Content
Showing content with the highest reputation on 07/05/2018 in all areas
-
Hi Everyone, Today I am delighted to share my new product that we have created with Processwire. It's a verification system, that binds together a physical address with website. I’m using Processwire nearly from the beginning and I still believe that it is one of the greatest open-source platforms that exist. Being thankful I’m pleased to provide the service of Verikey verification to the Processwire community (and websites that you did) for free. Forever. Visit verikey.com Gift code: ###### (please, request by direct message) Feedback and questions are really appreciated. Many thanks my Mom, @ryan, @soma, @adrian and all Processwire contributors. Cheers, Alexander UPD: While subscription Stripe requires a valid bank card details. It’s a formality by Stripe for all subscriptions. The Verikey service remains 100% free and out of charge with the provided voucher code.9 points
-
Admin Theme Boss A light and clear theme based on Uikit 3 Features Five unique color options Beautifully redesigned login screens Modern typography using Roboto Condensed Extended breadcrumb with edit links Extends AdminThemeUikit, so you can continue using all current and future AdminThemeUikit features Option to activate theme for all users Compatibility with AdminOnStreoids and other third party modules Updated and Releases There is a shiny new release page where you can subscribe to updates for new releases of AdminThemeBoss. Color Variants: ProcessWire Blue Dark Black Vibrant Blue Happy Pink Smooth Green *new with 0.6.1* Requirements Requires a current ProcessWire version with AdminThemeUikit installed and activated. Installation Make sure AdminThemeUikit is activated Go to “Modules > Site > Add New“ Paste the Module Class Name “AdminThemeBoss“ into the field “Add Module From Directory“ Click “Download And Install“ On the overview, click “Download And Install“ again… On the following screen, click “Install Now“ Manual Installation Make sure the above requirements are met Download the theme files from GitHub or the ProcessWire Modules Repository. Copy all of the files for this module into /site/modules/AdminThemeBoss/ Go to “Modules > Refresh” in your admin Click “Install“ on the “AdminThemeBoss“ Module7 points
-
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.5 points
-
Make sure you have a filter form that action url is the $page->url. I don't know what the problem is really but it's all getting too complicated for what it really can be (dead simple). Example filter form for a paginated result list : <?php namespace ProcessWire; $filter = ""; $form = $modules->InputfieldForm; $form->attr("action", $page->url); $form->attr("method", "get"); // select with sort options $f = $modules->InputfieldSelect; $f->attr("name", "sort"); $f->label = "Sort"; $f->addOptions(array( "-title" => "descending", "title" => "ascending" )); $form->add($f); // submit button $f = $modules->InputfieldSubmit; $f->attr("name", "filter"); $form->add($f); // process form if(count($input->get)){ // processes and populates form fields $form->processInput($input->get); // if sort is not empty if($form->get("sort")->value) { // build filter and add to whitelist so it gets picked up by pagination $input->whitelist("sort", $sanitizer->selectorValue($form->get("sort")->value)); $filter .= ",sort=" . $input->whitelist("sort"); } } $result = $pages->find("template=basic-page, limit=2{$filter}"); $content .= "<h2>Show Results</h2>"; if(!$result->count) { $content .= "<p>no results</p>"; } else { foreach($result as $res){ $content .= "<p>$res->title<br>$res->url</p>"; } $content .= $result->renderPager(); } $content .= $form->render();3 points
-
Easiest, fastest, most reliable framework. Considering my workload this past weeks, I'm considering on switching. It supports a wide range of applications:2 points
-
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.2 points
-
2 points
-
@Robin S Ok, thanks a lot for your help, this worked perfectly. I don't know why I didn't think of this after so much digging. Seems so simple hindsight. You literally just helped me remove a BUNCH of JS I didn't want in my application. Thanks a million. This worked for both tabs and regular fieldsets. (well I am doing it to all InputfieldWrappers). Here is what I used: // make inputfieldWrappers render by FORCE even if they are empty $this->addHookBefore('InputfieldWrapper::render', $this, 'inputfieldWrapperShim'); public function inputfieldWrapperShim($event){ $inputfieldWrapper = $event->object; $f = new InputfieldText(); $f->attr('id','-hidden-shim-'.rand()); $f->attr('name','-hidden-shim'); $f->attr('class','-hidden-shim'); $inputfieldWrapper->add($f); } For anyone wondering, I didn't use InputfieldMarkup because it's an InputfieldWrapper so we would end up being stuck in a loop forever.2 points
-
The "Restore" tab is now supported. I have also added a new option that lets you display the name field in the Content tab if you have hidden the Settings tab - default is not to show it though.2 points
-
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 ?2 points
-
But what I'm saying is that Profiler has a dedicated pro support board where you can get optimisation advice from Ryan, the creator of ProcessWire. Nobody knows more about optimising PW than him.2 points
-
@Mirza Did you setup the PHP-FPM status page to grab more informations ? It can return a lot of info using the full report2 points
-
Yes, everything is fine. For the next days it's here in a temporary subdomain: http://pw-single.designport.info I replaced the js stuff (except the parallax) with uikit (https://getuikit.com). As you mentioned in your introduction, this is really a good way to enter the Processwire world.2 points
-
Great idea @Robin S - I do know about wrapAttr but I must admit that I often forget about it in situations like this - thanks for the reminder. I have implemented like this and it seems to be working well now. @netcarver - if you decide to revert to using this module, let me know how it goes for you.2 points
-
Yes, I think the module should do this (or offer an option for it). Because the name field is normally on the Settings tab, and if you are removing that tab for a role then you probably don't want the role seeing any of the fields normally on that tab. You probably know this but it was new to me... you can add styles to an inputfield without needing to include a CSS file with the module: $if = $wrapper->getChildByName('_pw_page_name'); $if->wrapAttr('style', 'display:none;');2 points
-
Hi, ProcessWire does not compete with the WordPress market... Thank the lord. ProcessWire is for developers with basic to advanced knowladge who need a tool to make their vision a reality, easier. A framework. Much like jQuery. You must have some knowledge of JavaScript to fully understand jQuery. Just like if you were to develop for WordPress, you'll need PHP knowledge. Well, unless you are looking to sell themes. I don't know why a PHP developer would touch WordPress. ProcessWire's API is so much easier. So to answer your question, in ProcessWire you start here - http://php.net/docs.php then here - https://processwire.com/docs/ In WordPress you start here - https://wordpress.org/plugins/ then here - https://codex.wordpress.org/FAQ_My_site_was_hacked Edit: Notice how the 'My site was hacked' question was in the Frequently Asked Question section... Should it really be a frequently asked question? Because I don't think I've seen it asked once on the ProcessWire forum. Edit2: Most people here just use the blank profile and see the other profiles as bloat.2 points
-
I'm working on a module that makes easier to run tests, from within the admin. It's a process module and you can add pages anywhere in the admin and set each page a tests directory. So you can add new tester pages, or specify a path to an existing tests directory, see my TemplateLatteReplace module's tests in action on the screencap. Furthermore you can narrow the list of tests within a directory with URL parameters, to include only a few tests or exclude some. This may come handy if you don't want to run all the tests within a directory. Another handy feature is that you can re-run tests via ajax, that makes it easy to check whether your fixes are working (whether in "real" code or in test code).2 points
-
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:1 point
-
Tasker is a module to handle and execute long-running jobs in Processwire. It provides a simple API to create tasks (stored as PW pages), to set and query their state (Active, Waiting, Suspended etc.), and to execute them via Cron, LazyCron or HTTP calls. Creating a task $task = wire('modules')->Tasker->createTask($class, $method, $page, 'Task title', $arguments); where $class and $method specify the function that performs the job, $page is the task's parent page and $arguments provide optional configuration for the task. Executing a task You need to activate a task first wire('modules')->Tasker->activateTask($task); then Tasker will automatically execute it using one of its schedulers: Unix cron, LazyCron or TaskerAdmin's REST API + JS client. Getting the job done Your method that performs the task looks like public function longTask($page, &$taskData, $params) { ... } where $taskData is a persistent storage and $params are run-time options for the task. Monitoring progress, management The TaskerAdmin module provides a Javascript-based front-end to list tasks, to change their state and to monitor their progress (using a JQuery progressbar and a debug log area). It also allows the on-line execution of tasks using periodic HTTP calls performed by Javascript. Monitoring task progress (and log messages if debug mode is active) Task data and log Detailed info (setup, task dependencies, time limits, REST API etc.) and examples can be found on GitHub. This is my first public PW module. I'm sure it needs improvement1 point
-
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
-
Nice solution between you both. Thanks for posting.1 point
-
Thanks for this. Currently I'm testing the PIA-Module, now it's clean again ?1 point
-
Oh man, that looks amazing! Great times being a part of the PW Community!1 point
-
There was an issue with installations in subfolders – wire('config')->urls->AdminThemeUikit returned the subfolder twice, resulting in wrong css urls. The latest release 0.1.4 fixes that as well…1 point
-
Oh boy, what a buggy release… @wbmnfktr Release 0.1.3 should fix it: https://github.com/noelboss/AdminThemeBoss/releases/tag/0.1.31 point
-
There are many of us running the dev version on live sites - it's typically more stable than master. Of course there are exceptions on occasion, but I tend to look at the changes implemented in each dev commit - if they are significant, I'll hold off for a week, but if not, I'll update right away.1 point
-
PHPSpreadsheet will let you read the file: https://phpspreadsheet.readthedocs.io/en/develop/topics/reading-files/ Once you have read the cell that you need, you can add that to a PW page field with the PW API. It's really not that complicated to do, but you might find it a little challenging at first to get your head around things.1 point
-
This is probably your best and easiest option - https://developers.google.com/sheets/api/reference/rest/1 point
-
1 point
-
OK sorted now - I'd added the following to /site/config.php on the development server $config->defaultAdminTheme = 'Default'; Not sure why that would cause a problem, but I removed it and everything works fine now.1 point
-
What about the Restore tab? I'm looking at the ProcessPageEdit.module and in ___BuildFormContent() is: if($this->page->template->nameContentTab) { // add InputfieldPageName ... } But in ___BuildFormSettings() the condition is different: if(($this->page->id > 1 || $this->hasLanguagePageNames) && !$this->page->template->nameContentTab) { // add InputfieldPageName ... } Why?1 point
-
https://codecanyon.net/item/easy-product-designer/20894137?s_rank=8 http://preview.codecanyon.net/item/fancy-product-designer-pricing-addon-jquery/1 point
-
Thanks Benhard for this module, small modification i've updated the save() function to allow various output types as stated: https://mpdf.github.io/reference/mpdf-functions/output.html /* ########## output ########## */ /** * save output to: local file ($dest = "FILE") download ($dest = "DOWNLOAD") inline to browser (default - $dest = "INLINE") */ public function save($filename = 'output.pdf', $dest = "INLINE") { if(!$filename) $filename = 'output.pdf'; if($dest == "FILE") $filename = $this->getAbsolute($filename); // save to disk $this->mpdf->Output($filename, constant('\Mpdf\Output\Destination::'.$dest)); } // stream to browser $pdf->save(); $pdf->save('filename.pdf') $pdf->save('filename.pdf,'INLINE); // force download $pdf->save('myfile.pdf','DOWNLOAD'); // save locally $pdf->save('myfileserver.pdf','FILE');1 point
-
Hope everything works now @neophron. Was away and haven't had a chance to respond in time.1 point
-
1 point
-
$allbooks = $pages->find("template=book, sort=$sort, $q, $tagged, $select_studio, limit=10"); if ($input->get()->count() && !$allbooks->count() && $input->pageNum > 0) { $url = $page->url([ 'http' => true, 'pageNum' => 0, 'data' => $input->get()->getArray() ]); $session->redirect($url); } Not tested and may result in redirection loop, but just an idea. Tested, it works.1 point
-
Maybe u can try putting "./" in your filter form action link ./?studio=london <a href="./?studio=london">London</a>1 point
-
I see where you're coming from, but I would kindly disagree. PW will never really cater to the "click-and-install-my-entire-website-and-then-you-will-have-your-latte-macchiato-ready-for-you" crowd. wix.com and whathaveyou will do that for you, cheaper and faster. Where PW really shines, is: Creating something that lives on the web, and doesn't make any assumptions how you're going to (re-) use that data in your frontend. There are so many trendy buzzwords, that it's hard to keep track of... PW is (e.g.) perfectly suitable as a "Headless CMS", or whatever the mot du jour is... For such scenarios, "modern website presets" just get in the way.1 point
-
Cool. On a related note: If you need to extract images from an MS-Word file, there's an easy "hack": Copy the Word file rename it to filename.zip. Un-zip it, and you'll see a folder "media" with all the images inside1 point
-
Great! I would like to finish it so I can give it to you.1 point
-
Testing with actual fields in the template (just for convenience, and will be the same for inputfields added dynamically with InputfieldWrapper::insertAfter(), etc)... Empty fieldset: renders fine. Empty fieldset tab: tab itself renders but not the tab content. Probably needs some inputfield contained within it even if that inputfield isn't visible. Try InputfieldHidden, or InputfieldMarkup with no markup and the skipLabelHeader option.1 point
-
1 point
-
1 point
-
ok then check if your new template is in the allowed page (template) in the sections field options (go to Setup > Fields > sections then Input tab)1 point
-
No surprise here.. I guess I am from the old school. A 'long time' ago, logos used to be background images set on anchors (<a> tags). Menu items (<a> tags) used to have background images called sprites that would 'shift' on hover to create a nice hover effect...1 point
-
kixie is right. Sorry, just to correct mine it would be index 2, because 1 is root parent and 0 would be root (home). $bar = $page->parents->eq(2); Just to summarize if called from the children // works $parent = $page->parent("parent=$page->rootParent"); // works and same as $parent = $page->parent("parent=1001"); // where 1001 would be /foo/ // works $parent = $page->parents->eq(2); $parent = $page->parents("parent=$page->rootParent")->first; // even works when on the parent itself $parent = $page->closest("parent=$page->rootParent");1 point
-
Hi All, Hope you are all doing good. We have the system which has 12 Million pages, We have used ProCache also, but not much help. We have 40+ agents are working on the pages. Our server Process Memory is going high as 2.5GB, Can you please advice/suggest us how to optimize. Our Db health is good. Php-fpm process memory is going high. We are using the ListerPro as well. Is there any module where I can monitor processes running currently? Appreciate your support on this. Thanks in advance.0 points