Jump to content
adrian

Batch Child Editor

Recommended Posts

Yes they are disabled by default, but I just added a new option under Content / Deletion / Protection to enable BCE editing of the Admin page branch.

Works fine, thanks. Is it enabled only for superusers?

Share this post


Link to post
Share on other sites
Works fine, thanks. Is it enabled only for superusers?

Not specifically - I thought about that, but AFAIK, only superusers can see/edit the Admin page tree anyway, so I don't think it should matter, but please let me know if you discover otherwise.

Share this post


Link to post
Share on other sites

I just thought that as an extra security step but there is no need for that as you wrote.

Share this post


Link to post
Share on other sites

I've just updated this module to the latest version, and now when the editor's in a new tab none of the child pages show up. If it's set to bottom/top then it shows perfectly.

Share this post


Link to post
Share on other sites

I've just updated this module to the latest version, and now when the editor's in a new tab none of the child pages show up. If it's set to bottom/top then it shows perfectly.

Thanks for the report - can you please try the latest version I just committed and let me know.

Share this post


Link to post
Share on other sites

There's a php notice after deleting a page. Seems unrelated to the new "admin edit" feature because it appears with and without enabling that. Using version 1.1.9, PW 306.

PHP Notice: Trying to get property of non-object ... in Page.php:780

Share this post


Link to post
Share on other sites

There's a php notice after deleting a page. Seems unrelated to the new "admin edit" feature because it appears with and without enabling that. Using version 1.1.9, PW 306.

PHP Notice: Trying to get property of non-object ... in Page.php:780

I'm not seeing that here - is this in edit mode? Are you deleting with the trashcan icon next to a page, or using the modal edit and deleting there? Or are you using a different BCE mode?

Share this post


Link to post
Share on other sites

Yes, Edit mode, and position: Replace, plus enable admin page editing, nothing else was changed. Using the trash icon for deletion.

This is a multilanguage setup so perhaps it's only ML issue.

Using the usual page delete (non-BCE) there is no php notice.

Share this post


Link to post
Share on other sites

Ok, I have tried with a ML setup and still can't reproduce. Could you please confirm what link 780 of Page.php is? Is it this commit:

https://github.com/ryancramerdesign/ProcessWire/blob/e3d6b894c27b5fed8d1ffd088b79d9c79b7e79ec/wire/core/Page.php#L780

I think that is the version from 3.0.6 - it was last updated 5 days ago, which should be before the 3.0.7 changes.

Thanks!

Share this post


Link to post
Share on other sites

This sounds more like a local issue then, I will try to track down.

  • Like 1

Share this post


Link to post
Share on other sites

Thanks - any chance you can do a debug_backtrace() to see what is calling that line in Page.php

Share this post


Link to post
Share on other sites

Thanks to a stack trace from @tpr the warning has been fixed in the latest version.

I also corrected an issue with the content protection check that may not have been working as expected for child pages with completed field content, so you may find that you need to check that config setting now where you may not have before, depending on your use case. I also added some more detailed notes about what this default mode means. To be honest, I always check to disable it, because otherwise it limits deletion of pages in edit and replace modes in many situations, but I still think it is an important default setting.

Share this post


Link to post
Share on other sites

Thanks for the report - can you please try the latest version I just committed and let me know.

Just updated and new tab looks to be working again.

  • Like 1

Share this post


Link to post
Share on other sites

Using 3.0.12 devns with BCE 1.2.7 localhost,

have a simple template with this kind of fields: title,textfield,textfield,textfield

i've added some pages manually and exported them:

Title;geo_lat;geo_long;geo_name
84171;121.976.250.779.091;484.157.637.838.784;Baierbach
84169;12.189.296.528.466;484.461.922.885.864;Altfraunhofen
84172;120.430.843.110.488;484.418.204.716.832;"Buch am Erlbach"

If i import pages in the same format the title is imported but nothing else.

If i change the first value as this would the title and import the exported data...the same title is getting imported and all other fields are empty no error no hint?

I don't know why the import is not working....used this module so often. :undecided:

best regards mr-fan

Share this post


Link to post
Share on other sites

Sorry about that @mr-fan - looks like a forgot to change the name of a few variables when I did some refactoring a while back. This only affected CSV creation of pages.

Please check the latest version and let me know if you still have any problems.

I know I am OT and bordering on self promotion (actually it's promoting the Tracy guys), but the new AJAX functionality that just got added to TracyDebugger made debugging this so easy :)

  • Like 3

Share this post


Link to post
Share on other sites

Thank you very much!

Will testing soon....I'm testing PW dev with modules that i use and - TracyDebugger - is on my list, too!!

I wish to get more deeper into the rabbit hole and i think tracy would help me to find a faster/better way.

Padawan i am - learning i should ;)

  • Like 3

Share this post


Link to post
Share on other sites

Hi! This is an awesome module!

Just something happened to me right now, I was exporting/reimporting pages through CSV, and didn't notice that I had some fields using markdown, so when exporting it was the actual HTML formatting that was exported, so when importing back, things didn't make sense. I don't know if there should be "Respect markdown field" or something in the export settings. Maybe I'm just being nitpicky but thought I could just comment the case here.

Also, I think this might be due to my CSV editor, but when importing the edited CSV, I had issues with line breaks in HTML, am I doing something wrong here? Because the initially exported CSV from the module, imported just fine inside the editor (Numbers) even with the line breaks in the HTML, but when importing back everything got messy :D

Then again, thanks a bunch! I was looking for a "batch pages fields editor" and found this module to be very useful to edit a bunch of Youtube links, from a bunch of pages.

  • Like 2

Share this post


Link to post
Share on other sites

Hi @elabx - glad you're finding the module so useful.

I think this line is the culprit: https://github.com/adrianbj/BatchChildEditor/blob/master/ProcessChildrenCsvExport.module#L106

I think there are use cases for wanting the CSV export formatted and cases when you wouldn't want it formatted. I will make this configurable so that the dev (and optionally the user) can decide. But before I do that, could you please comment out that line to make sure everything works as expected for you.

Actually I see another line that will interfere for multiplier and file fields: https://github.com/adrianbj/BatchChildEditor/blob/master/ProcessChildrenCsvExport.module#L183 - this may or may not affect you.

Thanks!

  • Like 1

Share this post


Link to post
Share on other sites

Hi!

Indeed it solved the Markdown issue! Though the newline characters are still messing with me, for example, in the Markdown lists that actually need the line break to format correctly. I thought it had something to do with my editor, but I just tried exporting/importing the same file and it doesn´t work. I mean, Excel or Numbers read the file just fine, so I am guessing there might me something off on how the module parses back the file?.. Just throwing rocks at the problem here :D

Proof that I'm not going mad haha: 

http://imgur.com/FjfAXha

Somehow I feel this will steer into something to do with encodings, a topic in which unfortunately I'm not very knowledgeable. Sorry if this is getting a bit off topic! Thanks for your help!

  • Like 2

Share this post


Link to post
Share on other sites

Ok, I have added an optional "Format Export" option. It is on by default when you upgrade to the latest version of BCE, but you can easily uncheck this in the module config settings and then your imports should work as expected.

As for the line break stuff - to make it easier for me to debug, could you please send me an example CSV export from BCE that shows the problem.

  • Like 1

Share this post


Link to post
Share on other sites

Hello,

I'm having issues w/ BCE importing a CSV that is first generated by the BCE CSV Export feature.  For some reason, when I re-import, I'm getting the following error:

"Session: The number of columns/fields in your CSV is not enough for number of fields defined for this import. Nothing can be safely imported."

I've double checked the CSV's column names to ensure that the number of fields match the related template.  I've also then inputted the "CSV Field Pairings" exactly to match the template and the CSV.

I've tried this with "ignore first row" unchecked w/ a corresponding CSV that includes the fieldnames in the first row, and also tried checking the "ignore first row" option and excluding the corresponding first row in the CSV.  

I have a total of 45 fields in the template, 45 defined in the CSV Field pairing setting box, and 45 columns in the CSV.

Not sure what I'm missing here, but could this have anything to do w/ the fact that I'm using page fieldtypes for at least 5 of the fields / columns?

Other than that, I can't make heads or tails as to where the error lies.

Share this post


Link to post
Share on other sites

Note: ATTACHING A FOLLOWUP to this post from earlier...i.e. when I try to import just 3 fields, 1 being a multi-value page fieldtype, I get the following error:

ProcessWire: ProcessPageEdit: Page 30 is not valid for product_item_weight_or_count (Page 30 does not have required parent 1055)

So the question becomes, how do I properly re-import this data?  The exported data shows piped values correctly: e.g. 30|50|75

How should the import data appear and include the required parent reference?

Also, how do I define the CSV Field pairings?    e.g. parent.subfield    OR simply the template fieldname (product_item_weight_or_count)
 

post-3032-0-84156000-1461871842_thumb.pn

Share this post


Link to post
Share on other sites

Just a heads-up that there appears to be a conflict between Batch Child Editor and Pierre-Luc's Password Reset module.

ProcessWire: ProcessPageEdit: Unknown template
#0 ...\site\modules\BatchChildEditor\BatchChildEditor.module(711): BatchChildEditor->isAllowedTemplateAdd(147, Object(Page))
#1 ...\site\modules\BatchChildEditor\BatchChildEditor.module(348): BatchChildEditor->createChildEditSet(Object(Page), Object(Page), Object(InputfieldWrapper))
#2 ...\wire\core\Wire.php(459): BatchChildEditor->addChildEditFieldset(Object(HookEvent))
#3 ...\wire\core\Wire.php(333): Wire->runHooks('buildFormChildr...', Array)
#4 ...\wire\modules\Process\ProcessPageEdit\ProcessPageEdit.module(456): Wire->__call('buildFormChildr...', Array)
#5 ...\wire\modules\Process\ProcessPageEdit\ProcessPageEdit.module(456): ProcessPageEdit->buildFormChildren()

Share this post


Link to post
Share on other sites

@shamus - sorry for the delay in getting back to you - I have made a start on investigating this and improving the importing in general - stay tuned!

@Robin S - I posted about this here: https://processwire.com/talk/topic/10517-frontend-password-reset/?p=119386 - it's a bug in the Password Reset module, but I have implemented a check in BCE that will prevent the error - instructions on how to implement are also in that thread.

  • Like 2

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By eelkenet
      Hi! I've created a small Inputfield module called InputfieldFloatRange which allows you to use an HTML5 <input type="range" ../> slider as an InputField. I needed something like this for a project where the client needs to be able to tweak this value more based on 'a feeling' than just entering a boring old number. Maybe more people can use this so I'm hereby releasing it into the wild.  
       
      What is it?
      The missing range slider Inputfield for Processwire. 
      What does it do?
      This module extends InputfieldFloat and allows you to use HTML5 range sliders for number fields in your templates.
      It includes a visible and editable value field, to override/tweak the value if required.  
      Features
      Min/max values Precision (number of decimals) Steps (Read more) Manual override of the selected value (will still adhere to the rules above) Usage
      Clone / zip repo Install FieldtypeFloatRange, this automatically installs the Inputfield Create new field of type `Float (range)` or convert an existing `Float`, `Integer` or `Text` field. To render the field's value simply echo `$page->field` Demo
      A field with Min=0, Max=1, Step=0.2, Precision=2

      Field with settings Min=0, Max=200, Step=0.25, Precision=2

       
      Todo
      Make the display-field's size configurable (will use the Input Size field setting)  Hopefully become redundant If it's usable for others I'll add it to the Modules list  
      Changelog
      v002
      - Fix issue where setting the step value to an empty value created problem with validation
      - Make the display-field optional 
      v001
      - Initial release
       
      Thanks!
       
       
    • By Robin S
      Another little admin helper module...
      Template Field Widths
      Adds a "Field widths" field to Edit Template that allows you to quickly set the widths of inputfields in the template.

      Why?
      When setting up a new template or trying out different field layouts I find it a bit slow and tedious to have to open each field individually in a modal just to set the width. This module speeds up the process.
      Installation
      Install the Template Field Widths module.
      Config options
      You can set the default presentation of the "Field widths" field to collapsed or open. Field widths entered into the Template Field Widths inputfield are only applied if the Edit Template form is submitted with the Template Field Widths inputfield in an opened state. "Collapsed" is the recommended setting if you think you might also use core inputs for setting field widths in a template context. You can choose Name or Label as the primary identifier shown for the field. The unchosen alternative will become the title attribute shown on hover. You can choose to show the original field width next to the template context field width.  
      https://github.com/Toutouwai/TemplateFieldWidths
      https://modules.processwire.com/modules/template-field-widths/
    • By adrian
      Tracy Debugger for ProcessWire
      The ultimate “swiss army knife” debugging and development tool for the ProcessWire CMF/CMS

       
      Integrates and extends Nette's Tracy debugging tool and adds 35+ custom tools designed for effective ProcessWire debugging and lightning fast development
      The most comprehensive set of instructions and examples is available at: https://adrianbj.github.io/TracyDebugger
      Modules Directory: http://modules.processwire.com/modules/tracy-debugger/
      Github: https://github.com/adrianbj/TracyDebugger
      A big thanks to @tpr for introducing me to Tracy and for the idea for this module and for significant feedback, testing, and feature suggestions.
    • By adrian
      This module allows you to automatically rename file (including image) uploads according to a configurable format
      This module lets you define as many rules as you need to determine how uploaded files will be named and you can have different rules for different pages, templates, fields, and file extensions, or one rule for all uploads. Renaming works for files uploaded via the admin interface and also via the API, including images added from remote URLs.   Github: https://github.com/adrianbj/CustomUploadNames
      Modules Directory: http://modules.processwire.com/modules/process-custom-upload-names/
      Renaming Rules
      The module config allows you to set an unlimited number of Rename Rules. You can define rules to specific fields, templates, pages, and file extensions. If a rule option is left blank, the rule with be applied to all fields/templates/pages/extensions. Leave Filename Format blank to prevent renaming for a specific field/template/page combo, overriding a more general rule. Rules are processed in order, so put more specific rules before more general ones. You can drag to change the order of rules as needed. The following variables can be used in the filename format: $page, $template, $field, and $file. For some of these (eg. $field->description), if they haven't been filled out and saved prior to uploading the image, renaming won't occur on upload, but will happen on page save (could be an issue if image has already been inserted into RTE/HTML field before page save). Some examples: $page->title mysite-{$template->name}-images $field->label $file->description {$page->name}-{$file->filesize}-kb prefix-[Y-m-d_H-i-s]-suffix (anything inside square brackets is is considered to be a PHP date format for the current date/time) randstring[n] (where n is the number of characters you want in the string) ### (custom number mask, eg. 001 if more than one image with same name on a page. This is an enhanced version of the automatic addition of numbers if required) If 'Rename on Save' is checked files will be renamed again each time a page is saved (admin or front-end via API). WARNING: this setting will break any direct links to the old filename, which is particularly relevant for images inserted into RTE/HTML fields. The Filename Format can be defined using plain text and PW $page variable, for example: mysite-{$page->path} You can preserve the uploaded filename for certain rules. This will allow you to set a general renaming rule for your entire site, but then add a rule for a specific page/template/field that does not rename the uploaded file. Just simply build the rule, but leave the Filename Format field empty. You can specify an optional character limit (to nearest whole word) for the length of the filename - useful if you are using $page->path, $path->name etc and have very long page names - eg. news articles, publication titles etc. NOTE - if you are using ProcessWire's webp features, be sure to use the useSrcExt because if you have jpg and png files on the same page and your rename rules result in the same name, you need to maintain the src extension so they are kept as separate files.
      $config->webpOptions = array(     'useSrcExt' => false, // Use source file extension in webp filename? (file.jpg.webp rather than file.webp) ); Acknowledgments
      The module config settings make use of code from Pete's EmailToPage module and the renaming function is based on this code from Ryan: http://processwire.com/talk/topic/3299-ability-to-define-convention-for-image-and-file-upload-names/?p=32623 (also see this post for his thoughts on file renaming and why it is the lazy way out - worth a read before deciding to use this module). 
       
       
      NOTE:
      This should not be needed on most sites, but I work with lots of sites that host PDFs and photos/vectors that are available for download and I have always renamed the files on upload because clients will often upload files with horrible meaningless filenames like:
      Final ReportV6 web version for John Feb 23.PDF

×
×
  • Create New...