Jump to content

Recommended Posts

Find attached the first Alpha Version of the Module ProcessSetupPageName with Multilanguage Support. I tested it under various circumstances and it is doing fine with one exception: Until now it doesn't work together with 'Page Name Extended' (since PW 3.0.12) which allows UTF8 Page Names. Module requires PHP >= 5.4.x
Download from here:
EDIT: Removed link, download last version from here: https://github.com/kixe/ProcessSetupPageName/archive/master.zip

Would be nice if you could test it and give a feedback to me. Thanks in advance.

Edited by kixe
Due to some updates, I replaced the download link.
  • Like 3

Share this post


Link to post
Share on other sites

There the error with the new file.

Error: Cannot access self:: when no class scope is active (line 70 of ../site/assets/cache/FileCompiler/site/modules/ProcessSetupPageName-master/ProcessSetupPageName.module)

For use it I just remove the self::$notes and replace by ''.

Share this post


Link to post
Share on other sites

@Filkaboy
Which PHP Version do you use? Both Errors you mentioned looking like PHP = 5.3.x Could you make an update of your PHP Version and try again? Thanks.

Fatal error: Using $this when not in object context in /site/modules/ProcessSetupPageName-master/ProcessSetupPageName.module on line 68

Error: Cannot access self:: when no class scope is active (line 70 of ../site/assets/cache/FileCompiler/site/modules/ProcessSetupPageName-master/ProcessSetupPageName.module)

Share this post


Link to post
Share on other sites

@Filkaboy

Which PHP Version do you use? Both Errors you mentioned looking like PHP = 5.3.x Could you make an update of your PHP Version and try again? Thanks.

Yes exactly the problem... my previews version of php 5.3 and now with 5.5 all work fine.

Thank you

  • Like 1

Share this post


Link to post
Share on other sites

Great module but there's one thing that prevents me form using it, maybe this could be added in the future:

When adding a page and in the middle of the process you decide not to add a new page (skipping the Publish button and navigate away), then an empty page will be created. I think this coul be solved by adding a "Cancel" button next to the existing buttons ("Publish", "Save and....", "Cancel"). But perhaps there is an easier fix.

Don't get me wrong - I can delete the pages of course but I would use this module to make it easier for clients to add new pages, especially where the page name is actually irrelevant.

As a bonus feature request I would love to see message like these appear only for superusers - these may be too much for a regular client:

"SetupPageName expects value in field 'title' to autogenerate Pagename"

  • Like 1

Share this post


Link to post
Share on other sites

Ryan solved this in pagetable as that pages created but not published are deleted automatically each day by a kind of lazycron. On mobile and no details for that... Just throwing in an idea

  • Like 1

Share this post


Link to post
Share on other sites

When adding a page and in the middle of the process you decide not to add a new page (skipping the Publish button and navigate away), then an empty page will be created. I think this coul be solved by adding a "Cancel" button next to the existing buttons ("Publish", "Save and....", "Cancel"). But perhaps there is an easier fix.

In fact the page is already created in the 'middle of the process' and it has to be created to pull the page name from other page fields. If you don't like this. Create a cronjob like bernhard mentioned. Example:

$wire->addHook('LazyCron::everyDay', function() {
    // trash untitled pages
    $delay = time()-60;
    $untitleds = wire('pages')->find("created<$delay,name^=untitled,include=all");
    foreach ($untitleds as $untitled) $untitled->trash(); // to delete permanently use $untitled->delete() instead
});
Don't get me wrong - I can delete the pages of course but I would use this module to make it easier for clients to add new pages, especially where the page name is actually irrelevant.

In this case you don't need this module. Use built in 'Name Format Children' in parent template settings and create the name frome date. It is also possible in my module to create the name from any autogenerated page property like 'created' or 'id'. Read the note in 'Name Format Children' field if module is installed.

As a bonus feature request I would love to see message like these appear only for superusers - these may be too much for a regular client:

"SetupPageName expects value in field 'title' to autogenerate Pagename"

This message is needed. How could the page editor know from where the values are pulled to generate the pagename? I don't want to change this.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks, I will try a combination of fields then & try lazycron.

This message is needed. How could the page editor know from where the values are pulled to generate the pagename? I don't want to change this.

Sometimes the editors shouldn't care about the page name, for example when pages are created to hold content for content blocks. For example awards pages that won't have its own page at all.

  • Like 1

Share this post


Link to post
Share on other sites

As I said use built in options in this case. Read more here: https://processwire.com/api/modules/process-template/

To create contentblocks you can also use Repeaters (single template). Or better ProFields RepeaterMatrix (multiple templates). Repeaters are stored as pages too but very hidden and you don't need to care about naming.

Share this post


Link to post
Share on other sites

Hi, I was trying this module, and I get this error:

Error: Uncaught Error: Call to a member function getDefault() on null in /Users/krlos/Documents/Sitios/processpdf/site/modules/ProcessSetupPageName/ProcessSetupPageName.module:99

Processwire: 2.7.2

PHP: 7.0.0

Share this post


Link to post
Share on other sites
On 2016/7/11 at 10:51 AM, Krlos said:

Hi, I was trying this module, and I get this error:


Error: Uncaught Error: Call to a member function getDefault() on null in /Users/krlos/Documents/Sitios/processpdf/site/modules/ProcessSetupPageName/ProcessSetupPageName.module:99

Processwire: 2.7.2

PHP: 7.0.0

I also get this error and found that this is due to the lack of  a core module called "Languages Support". The error is gone after install the module.

I suggest to add "Languages Support" to the dependency of this module.

Share this post


Link to post
Share on other sites

Hi,

this module throws an error when I create a new page.

Call to a member function getLanguageValue() on a non-object (Zeile 121 in /var/www/_html_default/processwire-playground/site/modules/ProcessSetupPageName/ProcessSetupPageName.module)


My name format for children is "date(Y/m/d) title", LanguageSupport is installed but the title field has the type PageName, not PageNameLanguage.

In this case, $page->title is a plain string, so this seems to work for me:

        // case 2: title default
        else if ($format == 'title') {
            if(is_object($page->title) && strlen($page->title->getLanguageValue($languageID))) {
                $pageName .= '-'.$page->title->getLanguageValue($languageID);
            } else {
                $pageName .= '-'.$page->title;
            }
        }

Further investigation might be necessary: Can $page->title->getLanguageValue(...) be an empty string?

Share this post


Link to post
Share on other sites

Hi,

it seems the module throws errors, when used together with Version Control. Pages which have version control enabled generate this error message.

I am not very good at php, so I cant investigate this further, but I would like to use this module. ATM I cant run the site without version control.

Uncaught Error: Call to a member function get() on null in /Applications/MAMP/htdocs/wire/core/Pages.php:321
Stack trace:
#0 /Applications/MAMP/htdocs/wire/core/WireArray.php(1933): ProcessWire\Pages->get('setModuleConfig...')
#1 /Applications/MAMP/htdocs/wire/core/WireArray.php(2149): ProcessWire\WireArray->implode('ProcessVersionC...', 'setModuleConfig...', Array)
#2 [internal function]: ProcessWire\WireArray->___callUnknown('setModuleConfig...', Array)
#3 /Applications/MAMP/htdocs/wire/core/Wire.php(374): call_user_func_array(Array, Array)
#4 /Applications/MAMP/htdocs/wire/core/WireHooks.php(549): ProcessWire\Wire->_callMethod('___callUnknown', Array)
#5 /Applications/MAMP/htdocs/wire/core/Wire.php(399): ProcessWire\WireHooks->runHooks(Object(ProcessWire\Modules), 'callUnknown', Array)
#6 /Applications/MAMP/htdocs/wire/core/Wire.php(402): ProcessWire\Wire->__call('callUnknown', Array)
#7 /Applications/MAMP/htdocs/site/mo (Zeile 321 in /Applications/MAMP/htdocs/bluevr/wire/core/Pages.php) 

PW: 3.0.39

Share this post


Link to post
Share on other sites

@Krlos @Karl_T

On 11.7.2016 at 4:51 AM, Krlos said:

Hi, I was trying this module, and I get this error:


Error: Uncaught Error: Call to a member function getDefault() on null in /Users/krlos/Documents/Sitios/processpdf/site/modules/ProcessSetupPageName/ProcessSetupPageName.module:99

 

I fixed the single/ multilanguage issue. Sorry for the delay ...
Please update to 2.0.1 and try out.

  • Like 1

Share this post


Link to post
Share on other sites

How can I display on the backend the pages created with this module as titles instead of names?

For example I'm currently see the pages as: test-30-jan-2017. How can I see them as: Test 30 Jan 2017?

Sorry that was my mistake.

Share this post


Link to post
Share on other sites
On 13.2.2017 at 1:02 PM, PWaddict said:

@kixe Are you planning to make the module to update the page name when the fields that used to generate the name have been edited?

@PWaddict Thanks for the input. I made the module configurable with the option you mentioned. Furthermore I did some repairings for some special cases. Seems to work. Please try Version 2.0.2

  • Like 2

Share this post


Link to post
Share on other sites
8 hours ago, kixe said:

@PWaddict Thanks for the input. I made the module configurable with the option you mentioned. Furthermore I did some repairings for some special cases. Seems to work. Please try Version 2.0.2

I just tried it and unfortunately it doesn't work at all. I tried with both checked and unchecked the option just in case that was the problem.

Share this post


Link to post
Share on other sites
9 hours ago, kixe said:

I made the module configurable with the option you mentioned.

Perhaps there should be some warning about this option in the readme and/or module config page, as it has the potential to inadvertently break links if the Page Path History module is not installed.

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, PWaddict said:

I just tried it and unfortunately it doesn't work at all. I tried with both checked and unchecked the option just in case that was the problem.

I am sorry about that. Did you get any Errors? Exceptions? Please let me know. I tested the module in 2 different environments. It worked there without problems.

@Robin S

Thanks for the hint. I added a note to the config field and the readme.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, kixe said:

I am sorry about that. Did you get any Errors? Exceptions? Please let me know. I tested the module in 2 different environments. It worked there without problems.

There are no errors. It's just doesn't update the page name. I'm on localhost with php 7 and ProcessWire 3.0.52.

Share this post


Link to post
Share on other sites

@PWaddict

I missed to add the hook which update pagenames even if language support isn't enabled. I fixed this in Version 2.0.3
If you use the module in single language mode this might have been the cause. Thanks for your help.

  • Like 2

Share this post


Link to post
Share on other sites
52 minutes ago, kixe said:

@PWaddict

I missed to add the hook which update pagenames even if language support isn't enabled. I fixed this in Version 2.0.3
If you use the module in single language mode this might have been the cause. Thanks for your help.

Yep that was the problem. Now it's working perfect. Thank you very much.

  • Like 1

Share this post


Link to post
Share on other sites

@kixe I'm using a multi-language datetime field on the name format for children and it doesn't work properly. I'm using this format: %b %d, %Y and it can't update the page name with the format %b. It seems that it can only update the numeric formats.

Instead of getting this page name:
jan-22-2018

I'm getting this:
b-22-2018

Can you please fix it?

Share this post


Link to post
Share on other sites

The module uses php function date() and NOT strftime(). To get what you expect use the following format string: 'date(M-d-Y)'.

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. 
      EDIT: You can now install it directly from the Modules directory: http://modules.processwire.com/modules/inputfield-float-range/
       
      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) Optional step value (Read more) Optional manual override of the selected value (will still adhere to the rules above) Configurable rounding of manually entered values (floor, round, ceil, disable) 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  
      Changelog
      004 (current version)
      - Make rounding of manually entered values configurable (floor, round, ceil or disable)
      - Fix small JS bug when the value-display field was not displayed
      - Update README
      003
      - Code cleanup, add some ModuleInfo data & LICENSE
      - Submit to PW Modules directory (http://modules.processwire.com/modules/inputfield-float-range/)
      002
      - Fix issue where setting the step value to an empty value created problem with validation
      - Make the display-field optional
      001
      - Initial release
       
      Thanks!
       
       
    • By Gadgetto
      Status update links (inside this thread) for SnipWire development will be always posted here:
      2019-10-18
      2019-08-08
      2019-06-15
      2019-06-02
      2019-05-25
      If you are interested, you can test the current state of development:
      https://github.com/gadgetto/SnipWire
      Please note that the software is not yet intended for use in a production system (alpha version).
      If you like, you can also submit feature requests and suggestions for improvement. I also accept pull requests.
      ---- INITIAL POST FROM 2019-05-25 ----
      I wanted to let you know that I am currently working on a new ProcessWire module that fully integrates the Snipcart Shopping Cart System into ProcessWire. (this is a customer project, so I had to postpone the development of my other module GroupMailer).
      The new module SnipWire offers full integration of the Snipcart Shopping Cart System into ProcessWire.
      Here are some highlights:
      simple setup with (optional) pre-installed templates, product fields, sample products (quasi a complete shop system to get started immediately) store dashboard with all data from the snipcart system (no change to the snipcart dashboard itself required) Integrated REST API for controlling and querying snipcart data webhooks to trigger events from Snipcart (new order, new customer, etc.) multi currency support self-defined/configurable tax rates etc. Development is already well advanced and I plan to release the module in the next 2-3 months.
      I'm not sure yet if this will be a "Pro" module or if it will be made available for free.
      I would be grateful for suggestions and hints!
      (please have a look at the screenshots to get an idea what I'm talking about)
       




    • 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.
×
×
  • Create New...