Leaderboard
Popular Content
Showing content with the highest reputation on 05/14/2019 in all areas
-
Please upgrade to the dev version 1.3.10-ATO here : https://github.com/flydev-fr/Duplicator/tree/dev Steps : - Rename the Duplicator folder to .Duplicator - Download the dev version and extract the folder in the modules directory - Rename Duplicator-dev to Duplicator - Go to Modules > Refresh It should works.3 points
-
Done. pushed the update in Duplicator 1.3.11-ATO. Does your domain name contain a dash char ? If yes, try the latest update (v1.3.11-ATO).2 points
-
hi, at first sight the archives look good: about 500 MB. i was able to unpack the archive, everything seems to be in the right place ?2 points
-
so same issue as @arjen observed, quite strange. @entschleunigung, did you verify the backups are complete? Do they have a reasonable size?2 points
-
.....And @LostKobrakai the "stingiest" among the so-called top posters ??.2 points
-
1 point
-
this is great, will have to study this ... thanks for your work on this @elabx1 point
-
thank you fly, thank you. now it works, but only with one exception. the package manager doesn't show the backups on the overview page, but you can find them under /site/assets/backups. i also tested different browsers, always with the same result. i also deleted the compiled files under module, no changes. and the logs: 14.05.2019 12:55:29: - package build failed. 14.05.2019 12:55:29: - package build failed, doesn't exist no stress, for me this is a small beauty error, i can live with it as long as the backups are made. but i don't mind if the overview page would work ? thx1 point
-
It even surprised myself when I had a look a few days ago ?1 point
-
update: If I remove the pageSelect field from the registration form the error no longer shows but the registration process is still not working (not sure why) The problem seems to be on the registration form only. Profile edit works just fine with the pageSelect field.1 point
-
@PWaddict - not sure when that started happening, but should be fixed now.1 point
-
I don't think it has to do with the settings of the images field cause I tried all of them and the problem still happens. The module can't retrieve properly the title of the vimeo video because on the image description I'm getting: array-1. When I enter a youtube url the title retrieved properly. The problem happens only on vimeo.1 point
-
Done, but I modified to allow all fields that extend the Text field type.1 point
-
Looks good. You could maybe simplify the first hook by using a str_replace(): $wire->addHookAfter('InputfieldPageTable::render', function (HookEvent $event) { $markup = $event->return; $markup = str_replace("&context=PageTable", "&context=PageTable&field_parent={$event->object->hasPage}", $markup); $event->return = $markup; });1 point
-
Thanks for your answer Robin! Your solution is one of the paths i might take. And thanks for those links! Which basically lead to a solution by Soma saving info in the session variable. Another Idea I haver is to add a url param to the Add New button (also mentioned in a github issue by @Macrura), to have information about the page within the modal, and maybe that way, I would just need a hook on Page::added and getting the "pagetable field owner" through a input->get->owner_field. What's your opinion on this? I'm not entirely STUCK on pagetables, but I like better the way they render (RM is too bulky) and also seems more straightforward to bring as pages to display on another lister. (tho I know i could do this with repeater pages too, just doesn't seemed to me like the best way to go about it). EDIT: I have something like this working now: (credits to @Macrura who also posted a similar idea in a github issue, so gave it a shot): EDIT2: Simplified hook for pagetable add new button markup edit. Thanks @Robin S! $wire->addHookAfter('InputfieldPageTable::render', function ($event) { if($event->object->name == "asignaciones"){ $markup = $event->return; $markup = str_replace("&context=PageTable", "&context=PageTable&field_parent={$event->object->hasPage}", $markup); $event->return = $markup; } }); wire()->addHookAfter('Pages::added', function($event) { $page = $event->arguments(0); if($page->template == "asignacion"){ if($this->input->get->field_parent){ $owner = $this->pages->get($this->input->get->field_parent); if($owner->id){ $owner->of(false); $owner->asignaciones->add($page); $owner->save('asignaciones'); } } } });1 point
-
The module doesn't allow me to select my multi-language URL field. Please replace the 48 line with this to enable support for it: "searchVideoFieldTypes" => array("FieldtypeText", "FieldtypeTextLanguage", "FieldtypeTextarea", "FieldtypeTextareaLanguage", "FieldtypeURL", "FieldtypeURLLanguage", "FieldtypeTextareas")1 point
-
1 point
-
1 point
-
Btw, mainly for @bernhard and @adrian who have previously looked at RTM code, InputfieldRuntimeMarkup now behaves similar to many inputfields in that it gets its values from the Fieldtype's wakeupValue(), i.e. from $this->attr('value'). The previous implementation seemed a bit unclean to me when I looked at it recently. We had the inputfield doing its own eval() or wireRenderFile(). Now I've moved everything to FieldtypeRuntimeMarkup plus added a small helper class in there to handle such things. All the inputfield does now is serve values, as inputfields are meant to do.1 point
-
The second install is probably working on a smaller site (less than 200 MBytes of data), so the re-opening mechanism is not triggered at all. I guess you edited the pathnames, since the /**/ looks weird to me and I'm missing the domain name. Does your domain name contains a dash? Then this fix should help:1 point
-
Update version 006 - 11 May 2019 Finally got a bit of time to work on this module. Changelog Namespacing: ProcessWire 3.x Support only from now on. Removed the module's CSS and JS files. They are unnecessary. Switched to $files->render() instead of wireRenderFile(). Option to check for and optionally use InputfieldAceExtended for code highlighting in the PHP custom code textarea. Thanks to @adrian , @diogo and others who suggested this. Option to specify number of rows for the PHP custom code textarea (@note: for some reason, it's not working with Ace Extended. It does work with plain textarea). Removed the option (in field settings) to search for files to render under /site/modules/FieldTypeRuntimeMarkup/ as these could get overwritten during upgrades. Refactored code to prevent unnecessary re-rendering of output, thanks @adrian Render PHP file mode is now supported for frontend use as well, thanks @Noel Boss Changed license to MIT. Please note this is the new master and is available in the modules directory. Screenshots Over to you @bernhard ?.1 point
-
Did you check the additional logfile written into the backup directory? That should at least show "CLOSING ZIP" and "OPENING ZIP" along with the filename. You may check, if that file actually exists on your server. If it does exist and the re-open fails its probably best to modify the code to get the error, something like: $res = $zip->open($zipfile); if($res !== true) throw new WireException("Unable to re-open ZIP ({$zipfile}): {$res}"); https://www.php.net/manual/en/ziparchive.open.php#117339 Anyway, you may set the flush margin (DUP_ZIP_FLUSH_MBYTES in Duplicator.module) to a higher value to disable this close&re-open mechanism.1 point
-
I have Duplicator running smoothly on several installs. Today I felt I needed to upgrade to the dev version (sometimes you feel crazy ?), but I'm running into this line: if($zip->open($zipfile) !== true) throw new WireException("Unable to re-open ZIP: $zipfile"); I'm not sure how to debug this. I'm running PHP 7.2.17. ZipArchive has been installed. The Duplicator log also doesn't show any errors. Any pointers how to debug this?1 point
-
I fixed this for you ? tbh though, people were using Modernizr for years, and still use polyfills and whatnot, that bloats the HTML tag with countless pseudo classes, just so the tools know if their polyfill function should do anything this way or another. And with tools like Angular, Vue or React, you have inline crap all over the place... ng-this, ng-that, CSS written in JS(X) etc.1 point
-
1 point
-
News Update - 3 May 2019 - Part Two Class Padloper - Public API We have re-written the Padloper Class (Padloper.module) to server as proxy class for use as a public API for everything you need to do with Padloper (except rendering; we don't do that :-), see previous post). Think of ProcessWire $pages variable. This is something similar in that it allows you to interact with (retrieval and manipulation) with Padloper at a higher level. Rather than multiple methods from multiple classes such as $modules->get("PadCart")->someMethod() or $modules->get("PadCheckout)->anotherMethod(), you will only need to interact with one class, Padloper. This will hopefully streamline your development process. Most (maybe all) of the current modules will be "converted" to Padloper core classes (.php) and/or absorbed in other classes. This means less modules will be installed. With one class (proxy class but also with native methods) you won't need to know (but good if you did :-)), the names of the fields that Padloper will ship with. Your code could be as simple as this: // get the class $padloper = $modules->get("Padloper"); // find a limited number of products $products = $padloper->findProducts(); // find products matching a criteria $selector = "brand=toshiba,price>200"; $products = $padloper->findProducts($selector); $selector = "tags|categories~=Vane,type*=Jac,description~=Some text,images.count>3"; $products = $padloper->findProducts($selector); $selector = "inventory<=10,variant_option=size|colour,variant_option_value=red|black"; $products = $padloper->findProducts($selector); // find related products $related = $padloper->findRelatedProducts($product); // get current cart $cart = $padloper->getCart(); // add item to current cart $padloper->addCart($item); // import products $padloper->importProducts($imports);// array/json/csv // get an order $order = $padloper->getOrder($id); // export orders $padloper->exportOrders($selectedOrders); // etc for customers, discounts, downloads, categories, tags, brands, variants, reports, inventory, types, etc Note the short 'field names' in the selectors. For instance, there are no fields known as brand or tags or categories in Padloper (they have other names and/or are subfields) but Padloper will convert them into something ProcessWire will be happy with. Currently, we don't support Or:groups, sub-selector selectors and similar using the 'short-field-names-selectors' . For such, you would need to pass the the full names and subfields of the Padloper fields you want to query to findProducts(), etc. The Padloper Class is also useful for debugging your shop, producing reports using the API, etc.. We'll talk about this and more in future posts.1 point
-
News Update - 3 May 2019 - Part One The little speckled fella has been very busy on the trail. Despite being the smallest of its kind, she has lofty dreams. We've been working on the API and the Products GUI. In the next post, I'll tell you more about the API. Products Features and GUI Though there are a few issues still pending (aren't there always? sigh), I am relatively pleased with the results. Of course, during beta testing we'll received and incorporate feedback as best as we can. Only UI-Kit theme will be officially supported. Multilingual fields if site is multilingual Ajax powered inputs for fast and convenient editing Four types of products Physical product requiring shipping Physical product not requiring shipping (for collection) Digital product Service/Event (etc) products - e.g. Swimming lessons, Consultancy services, Hotel booking, etc Product Classification (ajax powered) by: Type: e.g. Belt, trousers, etc Brand: Puma, Sanyo, whatever (editors can type in or import brand names + planning to support logos) Categories (aka Collections): Multiple categories, e.g. Men, Girls, Hospitality Tags: Multiple tags can be entered, e.g. sale, amazing, etc Product Variants (consists of an Option (e.g. Colour) and an Option Value (e.g. Red) Add zero or n variants as you wish Live preview as you build variants Each created product variant can be enabled/disabled. Devs can then decide to either show that variant as unavailable or not show them at all. That's up to you :-). Apart from classifications, shipping class, inventory policy, weight and dimensions units, title and description (and this latter one may change), almost all product properties will vary by variant if variants are used Product properties include: Images Colour (more on this below) Downloads (centralised and reusable) Price and Compare Price (aka former price) Inventory policy (whether to track or not) Charge taxes SKU (stock keeping unit) Inventory (quantity) Allow back orders (aka overselling) - @note: this can be set per variant. This is useful if one variant can be restocked faster than others Weight Length Width Height Weight Unit (mg, g, kg, oz, lb, t) Dimensions Unit (mm, cm, m, in, ft ) Shipping Class - can be used for product-based shipping if needed (e.g. bulky goods, light, fragile, small items, perishable, etc) Images (more on this below) Downloads (more on this below) Images Multiple images can be added to both a product and its variants (in case its has some). Images add to the product itself can be used with all variants Images added to a variant are tracked/tagged as belonging to only that variant In some cases, it may not make much sense to add different images for similar variants. For instance, a small red hat and a large red hat could probably share the same images. Although we do not currently support specifying an already uploaded image as belonging to a group of variants, this may change in the future Colour Similar to images, can be set at both product and its variants level Colour saved in RGBA format Downloads Also similar to images, can be populated for both both product and/or its variants Multiple files can be added to a product A file designated for 'whole' product will be available to download irrespective which variant of the product was purchased Conversely, a file or files saved for a variant will only be available to the buyer if they buy that variant of the product The above is useful if you want buyers to be able to download different files of the same product. For instance, recently someone needed to sell two versions of a font as part of one product. This is a solution for such cases. TODO List Lots! e.g. default settings for some properties, e.g. weight unit, shop currency, etc. For the frontend, we are creating a rich language-aware API that you can use to build your shop however you want. There will be no rendering of markup (but see first post in this thread about a separate fully functional frontend shop). In the next post, we talk a bit about the API. Before that, here are some screenshots and a video demo (if you can spare some 20 minutes away from watching, er..., cat videos? ?) Screenshots Video Demo Thanks ?1 point
-
@jimmytricks, that post is in FormBuilder support section, as an owner of FormBuilder you should have access to it.1 point
-
This module (github) does with site/assets/files what Ryan's DatabaseBackups module does with the database: Backup site/assets Download ZIP archive Upload ZIP archive Restore site/assets Motivation: This module can be the missing part for projects with content backup responsibility on the client's side: The client will be able to download DB and assets/files snapshots through the backend without filesystem access, thus backing up all content themselves. Release state alpha – do not use in production environments. Credits for the nice UI go to @ryan – I reused most of it and some other code from the DatabaseBackups module.1 point
-
1 point
-
Great Module, thanks. I had some luck getting this to integrate with FormBuilder (method d) by using the following Form Builder hook to check the recaptcha before submitting: $forms->addHookBefore('FormBuilderProcessor::processInputDone', function ($e) use ($captcha) { $form = $e->arguments(0); // retrieve argument by number (zero based) // Check to see if recaptcha is true if ($captcha->verifyResponse() === true) { // This will process the form as usual } else { // This will cause an error on form and stop processing $form->error('Recaptcha is missing. Please tick I\'m not a robot and try again'); } }); More info on FormBuilder hooks: https://processwire.com/blog/posts/formbuilder-v34/ Cheers,1 point
-
That "/var/www" is the root path (within your filesystem) where your webserver places the content of your domains. This can only be changed when you point your server to some other folder. I guess you are currently working with the release version (1.2.9) of Duplicator, right? That one expands the site files into a directory level below which needs to be moved manually during the install. Please try the V1.3.10 above which should solve this. Btw, @flydev, do you plan to include the suggested domain name fix into ProcessDuplicator::getPackagesDetails to support dashes in domain names? If anyone else is using Duplicator on domains containing dashes, you may want to change these lines in aforementioned method (otherwise the package list stays empty): $parts = explode('-', $originalFilename); array_pop($parts); $tsstr = implode('-', $parts); with this dirty hack: $tsstr = substr($originalFilename, 0, 19); // 2019-03-20_01-15-411 point
-
Maybe I don't understand your problem correctly, but if you don't want to use a package manager, can't you just inject the css file for the theme directly as well? There's a CDN link on the themes page: https://unpkg.com/tippy.js@4/themes/light-border.css If you want to bundle all those files into a single dependency, I recommend Parcel, it's much simpler than webpack and you basically need no configuration for a basic compilation of JS/CSS dependencies into bundle files. I have just tried it out for a project I'm working on; this NPM script is all the config I needed: parcel build js/main.js --target browser --out-dir public/site/js --out-file bundle This will parse all code/imports in the main.js file and bundle them into a bundle.js file. It will also create a bundle.css file if you import any css.1 point
-
This is off-topic, but here is drag and drop JSON tree page module (or menu manager) what I build inside this project to solve client task to get much as simple solution to manipulate with Main menu (and all other website navigations). Also, please that this topic go in same direction as it started. This is only short of-topic. What this module do: 1: clone page tree and build JSON string (it's good if you have few thousands of pages), and in rendering you don't have in runtime to build main menu 2: if you have some special cases where need to do some correction for main menu, you can do it very fast and easy (do not need to "move" DB large page tree, you "moves" inside small JSON) 3: you can save ("export") somewhere current tree, and experimenting with menu 4: you can create page tree Menu, and child "Top menu", "Sidebars", "Fotter menu" etc... I build this for this project, and main target was to leave real PW page tree, but add options to manipulate with that if needed. Also one of target was to get faster page rendering, done testing (in this project with >2000 pages, get faster pages rendering about 25% and more). How to use it: 1) download attached zip (at the bottom of this message) and install like any other PW module 2) create "JSON tree" type field and place it on some template ("menu", or if you like place it on "home", or...) 3) you can add pages one by one (first tab), or if you have large page tree, in second tab set your "max deep level", set what parent you want to skip their children, and press "Create list" 4) press Save 5) now you can drag and drop and create custom tree (and after changes press save) How to edit some list item: Press on some list item button "pencil/edit", and in the bottom you will get that page selected, change that to some another page... And press Save. How to create "Label" item, in next version that would be different, but now it's can be done: 1) Create template "label" (only title field), create some pages ("labels"), and after select that pages inside JSON tree and append children to it (drag and drop). 2) In rendering process check if template=='label'... How to render page tree (Menu): As example, call: // field is on page with id 3600 // fieldname is "tree" $menu = $pages->get(3600); // var_dump($menu->tree); echo mainMenu( json_decode( $menu->tree)); // mainMenu is method in function.php, there you go through tree and create UL,LI... NOTES: 1) What is inside "mainMenu" function? Do var_dump(...) before function call and will understand what that function need to do. We have JSON objects with attributes, eg. "pwid" store page ID. If you don't build multilanguage websites, you don't have to call PW page (there is also attribute "slug"). // function.php // you need to create function inside function.php // this is only example function mainMenu($items){ $out = ''; foreach( $items as $item ){ // please note main attribute "pwid" it's store PW page id $i = wire('pages')->getById($item->pwid)->first();// in my example need this because multilanguage project . . . . } } This module is totally unpolished (first version). Here are few screenshots: - First image shows process when module clone PW page tree where you can add desired pages to list. - Second image shows option where you can add pages one by one, or select multiple and add. - Third image shows what happened after you press button "Add to list" or "Create list". Regards. FieldtypeJSONtree.zip1 point
-
This is what I was after. $testimonials = $pages->get(1019)->testimonials->find("limit=5, sort=random"); Credit to @adrian:1 point
-
1 point
-
Which cache? Template cache you would go to the PageRender module settings and delete cache.1 point