Jump to content

Making PW more userfriendly


NorbertH

Recommended Posts

It seems some devs are afraid that improving usability is quivalent to decreasing power and flexibility.

It's been a while that I used ProcessWire to build a 'regular' website. (Not that I really know what a regular website is). Recently I finished a planboard system for managing newsletters and placing banners for multiple Portals. At home I have a personal little project a Ajax driven website for a band (Friends of mine). So my context of 'improving usability' is expanding API capabilities. 

The devs here do understand really well that there are many use cases for ProcessWire. The sky is the limit, and beyond. You have to know that ProcessWire thrives on good will of the community. It probably only takes 1 man to stand up and start building a commercial themes download website. This theme-able profile should have some standards. So that there are plug-ins that are interchange-able.

This all can be done with PW, because of the power of the API. 

This discussion is a really good discussion so we're all glad that these stories come up. 

  • Like 8
Link to comment
Share on other sites

@pwired Yes, it's a returning topic. And that means something, don't you think? Apparently there are two major groups of users. Why not try and cater for both groups?

Any CMS that manages to close the "gap" between these groups has a big advantage. Coders do not have so much to gain from closing this gap, as do non-coders. And furthermore, they may be afrraid that hordes of newbies flood the forums with please-hold-my-hand-creating-a-site-about-my-pet-rabbit requests, or that catering for non-devs means a decrease in flexibility and "cleaniness". That causes reluctance to try and cater more for non-dev users.

But I think the value PW improves if both devs and non-devs can use it for their goals. Right now, it's more a developers tool than a general purpose site building CMS. Which is fine in itself. But expanding the user base by improving usability for non-devs could mean a big boost to the value of this system as a whole.

  • Like 2
Link to comment
Share on other sites

Apparently there are two major groups of users. Why not try and cater for both groups?

I think this is the problem, the catering bit.

PW is a one man company with a small group of talented and helpful contributors. The current situation is that there is just enough people to manage and support PW as it is. If it grew a complex layer on top of the existing system that would need to be monitored, continually updated and so on, then it would quickly become unmanageable. One of the reasons that there are so many CMS type system out there full of bugs (especially plugins) and have huge maintenance issues is because they grew beyond the ability of the original developers to control and maintain properly.

In that way, growth does not add value, indeed it can undermine it.

As several of us have said, the profile system allows for variants to be created that can be installed as part of the main installation. So, if some users want to create a profile that offers the same sort of plug and play features as WordPress or Joomla, then that is by far the better way to do it than to expect the core maintainers to do it and in the process risk the integrity and maintainability of the system as it stands now.

Really, this is nothing to do with what CAN be added to ProcessWire in the way of additional functionality - we all know that anything is possible - really this is about WHO adds all that functionality and who has the time to maintain it properly: if even just a thousand people use that sort of system and want support, then that is a full time job on its own.

  • Like 10
Link to comment
Share on other sites

Joss, I think there is some misunderstanding here. Maybe it's my misunderstanding of PW. You talk about a complex layer on top of PW that needs support, monitoring, upgrading, etc.

I don't envision that either when I talk about adding (in any form whatsoever) some core functionalities (which is not the same as adding functionalities to the core!!) to PW so that non-devs can build general sites with it too. Nothing more, nothing less.

All PW fans here keep saying that adding these yourself is soooo easy, so why not offer them right away to beginners? It doesn't affect PW in any way. It just adds some comfort for those whose coding skills are low, or simply are not interested in coding in the first place. I don't see any negative impact for PW as a system at all.

As far as I understand site profiles are some kind of complete site setups, right? Very nice if you want all the functions and layouts of that profile. But what if I want only pages and a blog? Or pages, a blog and a form? Or pages and a form and a gallery? Then I need to deconstruct the profile, making it a much more cumbersome and error prone way of working than the other way round (adding the functions I want to a basic install or existing PW site).

Link to comment
Share on other sites

I was reading all the posts in this topic with big interest.

When I first read the title of this topic I was thinking "what exactly are you talking about? ProcessWire is the most userfriendly CMS I've ever seen".

As I read further (the first post) I understood the big difference in what people in this forum think is a user.

For me a user is a person that uses the backend of PW and because PW IS a CMS this means the user is able to manage contents. Nothing more, nothing less.

If you are in that mindset PW delievers a great user experience, because everything the user sees is exactly what he/she needs. There are no useless fields and there are no complicated mechanisms to publish different types of content.

This is a real additional value for the user as this kind of CMS is way easier to grasp. (in opposite to let's say 5 plugins/addons/modules which are all from different devs and therefore have all a different workflow)

On the other hand, this means there has to be a real web designer/developer, beause the user will never be able to get new features by themselfs.

This person is not in the user role, he/she is the webmaster/administrator.

This makes PW perfect for professional use and personally I think this is the right direction.

  • Like 8
Link to comment
Share on other sites

The reason that, for instance, there is no gallery module as part of the default offering is several fold:

  • What gallery functionality would be offered?
  • What fields would it use and what would they be called?
  • What JQuery plugin would it use? (Or Mootools, or something else?)
  • Who would maintain that plugin?
  • What markup would it use?
  • Would it be usable within a framework like Bootstrap?

And so on.

One of the main reasons I eventually dumped Joomla entirely is that I got fed up trawling through gallery or similar plugins and never being able to find one that did precisely what I wanted. And because they were trying to be everything to everyone, they were hugely bigger than the basic bit of JQuery they were initially based on. On top of that, they broke every time Joomla turned left at update, were often full of bugs or left gaping security holes, did not have enough staff to support them and then the devs went and charged for the wretched things.

ProcessWire for me as a non-developer, means I can tailor make my sites exactly as I want them with no compromise and only have myself to blame if it goes wrong.

But that does not mean that third party developers cannot, working independently, create exactly what you are talking about - if you dig through the forums there is already a blog module that is very feature rich and there is also basic shop functionality developed by users.

But it is not practicable to expect the core developer (one clever chappy called Ryan) to add to his todo list and then support.

  • Like 4
Link to comment
Share on other sites

As far as I understand site profiles are some kind of complete site setups, right? Very nice if you want all the functions and layouts of that profile. But what if I want only pages and a blog? Or pages, a blog and a form? Or pages and a form and a gallery? Then I need to deconstruct the profile, making it a much more cumbersome and error prone way of working than the other way round (adding the functions I want to a basic install or existing PW site).

I think the issue, why this doesn't exist in this form, is that, according to the pw core priciples, most people here don't want to glorify one way of solving things, but much rather tell you how to do it yourself. I can understand that this is not the best way to appeal to newbies and I also think there could be done more to ease the entry of working with pw. One would like to have a big teaser image on their blog, while others want a "x" layers deep categorization for their thoughts. If you want to add all possible scenarios you'll likely end up with bloat. 

Most other CMS's out there just tell you which content you have to use. A standard Wordpress installation can manage exactly four types of content: articles, pages (more or less the same as articles), comments and "media", while telling you how all those type should look like. It just gives you a blog. Only all those plugins try to make it something more.

  • Like 4
Link to comment
Share on other sites

Joss, you interprate things much more complex than they should be. Some posts above you posted a link to a tutorial on creating a simple gallery. Why not offer this as a ready to use thingy? Maybe add a bit more to it, but nothing fancy. If people want more, than can do that. Just offer the basics, that's what I am talking about. It doesn't matter how it is constructed, just give beginners something to start with, and tell them that it's just an example, one way of doing it. It doesn'need "support", as it's just a sample of working with PW, and those things are constantly discussed in the forums anyway.

I really don't understand the resistance towards offering some elementary ready to use content types or functionalities. It doesn't matter if there are zillions other ways to do things. Why should everyone invent the wheel themselves? To learn the system? PW is not an educational system, it's a CMS (or whatever you cal it). Learning how to code is not the purpose of PW, is it?

Link to comment
Share on other sites

I really don't understand the resistance towards offering some elementary ready to use content types or functionalities. It doesn't matter if there are zillions other ways to do things. Why should everyone invent the wheel themselves? To learn the system? PW is not an educational system, it's a CMS (or whatever you cal it). Learning how to code is not the purpose of PW, is it?

First:

I think such thing is easy possible with the upcoming 2.5 that have a import/export for fields:

https://processwire.com/talk/topic/2117-continuous-integration-of-field-and-template-changes/page-6#entry68899

So such examples could get some demofiles....

Second:

I find PW is for me a educational system!! Really like this aspect maybe we should advertice this on the homepage!! ^-^

This is the reason while users are here (and i'm so happy to found it) i can reinvent the wheel i like - i coun't do that with any other cms - and serve my clients with the result that i believe it's good.

So please argos and norbert take a breath, read the letters from the experienced users here and accept there strong opinion - there is no fear, there is no need...

@Joss - could the old wiki entries that are mostly complete transformed in some tuts....wiki is badly linked (i found it via some older posts)

but they helped me very much to get first results special this four would be great:

http://wiki.processwire.com/index.php/Small_Project_Walkthrough

http://wiki.processwire.com/index.php/Basic_Website_Tutorial

http://wiki.processwire.com/index.php/Simple_Gallery_System

http://wiki.processwire.com/index.php/Simple_News_System

or link it in the docs for now?

  • Like 6
Link to comment
Share on other sites

Learning how to code is not the purpose of PW, is it?

Believe it or not but this is the only php that you have to know (already discussed before)

to make websites with processwire:

1. href="<?php echo $config->urls->templates?>styles/your_css_style.css" />

2. src="<?php echo $config->urls->templates?>scripts/your_java_script.js">

3. <?php echo $page->your_field; ?>

4. foreach

    echo "html and code";

All the rest is your own html and css to make it as beautiful or interesting as you want.

So it's actually 4 php things a beginner has to know and there isn't much to learn here

just follow a simple format, that is all.

From there you can simply grow into php as far as your website really needs more php.

  • Like 3
Link to comment
Share on other sites

Why not offer this as a ready to use thingy? Maybe add a bit more to it, but nothing fancy. If people want more, than can do that. Just offer the basics, that's what I am talking about. It doesn't matter how it is constructed, just give beginners something to start with, and tell them that it's just an example, one way of doing it.

I know it was not you saying it, but if you also think that by simply calling PW a CMS we are attracting...

...people from conventional CMS with false promises.

what would you say about offering them a couple of ready to use thingies with the basics and then telling them that they have to construct everything else by themselves? Maybe it would help PW to attract more people to download it, but wouldn't it lead to more frustration and loss of time?

  • Like 5
Link to comment
Share on other sites

@Martijn From my own experience 90% of the sites I make are for entrepeneurs and small businesses. They need the four things I already mentioned a couple of times:

1. regular pages: title, content, image(s), maybe downloads

2. news/blog: title, intro, content, image(s), maybe downloads, categories

3. image galleries: thumb, lightbox, maybe description, categories

4. forms

I think this is the basis for the majority of websites. More complex stuff can be done by coding, snippets, modules, etc.

@Diogo I'm sure it doesn't lead to frustration if you communicate the nature of PW clearly on the website. It's a framework where you need to do some coding yourself if you want more than the basics. But to get beginners going, there are some basic thingies more or less ready to use. A whole lot of users will probably settle for that if it covers their needs. If they need more, then there's some work to be done.

Link to comment
Share on other sites

I really don't understand the resistance towards offering some elementary ready to use content types or functionalities.

The devil is in the details. To make something complete and ready to use it has to come along with a lot of baggage which can actually make it harder to figure out what's going on. You cant easily tell the essential stuff that makes the gallery or whatever special apart from the stuff that's just there to make it a complete example.

There are tools though which are getting better all the time and will make it easier to have your cake and eat it too. The ProcessMigrator module "Allows automated migration and sharing of page tree content along with their templates and fields via JSON files. These JSON files can be imported into another PW installation to recreate the entire structure and content, including files and images." The Upgrade tool Ryan's put out very recently will also be a help to new users.

Currently people are pretty good about supplying some cut and paste code you can use to do a quick test. That's fine if you're comfortable with PHP and the DIY aspect. I'm picturing a near future where people publish a module and provide the ready to use examples you want as content you install with the migrator or something like that.

  • Like 6
Link to comment
Share on other sites

1. regular pages: title, content, image(s), maybe downloads

2. news/blog: title, intro, content, image(s), maybe downloads, categories

3. image galleries: thumb, lightbox, maybe description, categories

4. forms

I'll expand this list with (Soma's navigation module), :-)

looping your list:

  1. for title & content they are covered ( echo $page->title; & echo $page->body;)

    for images, using the API is simpler that any other solution i've ever seen.

    for  downloads (Potential Module, that accepts a single file, presenting the user with a link, force download the file)

  2. Could be a module that creates necessary templates & pages & presenting ready to use code snippets to use in your templates.
  3. Could be a module that takes the name of the images field and specify the sizes of thumb & link-to image,

    additional code snippets for the javascript could be included.

  4. forms, are already covered by Formbuilder.
  • Like 4
Link to comment
Share on other sites

Quick hint: already saved snippets.pw and trying to create a blog/snippet collection so you get easier into pw. But it's only a concept at the moment.

Without having read this thread and this very post I (didn't find the time to look in the forums last weeks and should have waited for ProcessWireWeekly to catch up with all developments before yelling ideas into the forum :D) coincidentally had a similar idea (again): https://processwire.com/talk/topic/7572-processwire-recipes/#entry73055

Link to comment
Share on other sites

I've been a member here since July 2012. I have less than 300 posts.

If you were to check them all out, I am mostly voicing my opinion. Very very very few of my posts are CODE related. I don't share code with someone in the hopes it works for them because it worked for me. I don't post code issues that are not working on my installation.

I AM NOT A CODER.

Period!

ADHD and OCD make it incredibly tough to piece things together.

I don't memorize every CSS3 element or attribute. I rely heavily on http://www.css3.info/ and http://caniuse.com/

I don't dare memorize much PHP either, so I shoot over to http://php.net/

I use Foundation5 for my layouts, but I can NOT memorize those damned classes, so http://foundation.zurb.com/docs/components/grid.html

All I know is the basics: git status, git add ., git commit -m'This is my commit message.'

For ANYTHING ELSE I Google the hell out of it.

For others, I rely on the above bookmarks, or the other 1,000 others I have bookmarked here on the forums of snippets and little code ideas that could come in handy.

Have I learned PHP? Yeah!

I can create some variables, if and elseif statements, and simple loops.

With my limited PHP, HTML5, CSS3, and Foundation5 knowledge. I've put out several websites this year. Made $x,xxx. Made some hardware upgrades. Bought some business cards. Purchased the PW Forms module. Taken my family out to dinner.

I've learned that if I want to make ProcessWire do this and that, which it CAN'T do outta the box - I got a little bit of learning to do.

AND I AM NOT A CODER!

hah!

  • Like 13
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By spercy16
      I was previously using individual fields to capture and output multiple cards onto my web page but after recently learning about repeaters would prefer to use this field type, as it will be a lot more user friendly for end users to create new cards. I tried to modify my code to grab the fields from the new Repeater field(s) but am getting this error message on the page:
      Here is the code I'm currently trying to use for the cards:
      <?php // https://processwire.com/api/arrays/ // check if the array of images has items foreach($page->tall_card as $card) { $count = 0; $count++; $options = array( 'quality' => 70 ); $image = $card->image; $img = $card->image->size(550, 400, $options); $cardHeading = $card->title; $cardBody = $card->plain_paragraph; $raised = $card->raised_amount; $goal = $card->goal_amount; $link = $card->link; if ($raised == 0 ) : $percent = 0; else: $percent = $raised_amount / $goal_amount * 100; endif; if ($percent <= 5) : $percent = 0; endif; ?> <span id="card<?php echo $count?>" class="card"> <img class="cardThumb" src="<?php echo $img->url; ?>" alt="<?php echo $image->description; ?> Thumbnail" /> <div class="cardBody"> <div class="cardText"> <h2><?php echo $cardHeading; ?></h2> <?php echo $cardBody; ?> </div> <div class="progressBarSection"> <progress class="progressBar" id="progressbar<?php echo $count; ?>" value="<?php echo $percent; ?>" max="100"></progress> <span class="raisedAmount"> $<?php echo $raised; ?> usd </span> <span class="goalAmount"> $<?php echo $goal; ?> usd </span> </div> <div class="primaryBtn"> <a href="https://www.paypal.com/donate?hosted_button_id= <?php echo $link; ?> &source=url"> <button> <i class="fas fa-donate"></i> Donate </button> </a> </div> </div> </span> <?php } ?> Thanks in advance for any help!
    • By CachePuzzles
      Hi there,
      I'm probably missing something simple, but I'm just setting up my first site so I guess that's bound to happen.
      I've installed the LoginRegistration module and at first I was thinking that the confirmation emails weren't being sent. However I now see that new user confirmation emails are taking 20+ minutes to arrive. Is there a way to speed this up?
      Also the email is coming from processwire@mydomain - I couldn't found a place to change this.
      Any advice or help would be great!
      Brian
    • By humanafterall
      Hi,
      I would like to set an admin template to 'https only' as recommended in the Processwire security docs.
      However if I do this it forces this setting locally too, resulting in https://localhost requests which result in an error page.
      Is there a simple way round this? Setting https for templates in the config?
      Thanks!
    • By fruid
      Hi friends,
      just 7 months ago, I was "just" a designer and a rather semi-developer, still struggling with WordPress sites and more often than not delegating that work to pros. ProcessWire really helped me realising that it's not that hard after all (well it's still hard but it's doable) and you learn a lot just by doing it which has to be true for all developers anyway. So I started coding myself, I might also have to thank the 2020 pandemic to help me focus a bit more than usual, I created a bunch of websites using PW already – one of which I can't wait to put on showcases but it's still not live yet. That is one big personal milestone for me. The next milestone would be to give something back, and so I'd like to take on contributing some code I wrote, namely a event calendar for anyone to use. It's my first attempt doing this so please don't eat me alive. It's not a PW module yet (that's the plan however) just a git but I'm positive it will be useful once it works – well it works but it still needs more work – because if I had found a module that came close I wouldn't have started coding it myself :D
      With that, I will appreciate all input, be it how to improve the .js (probably especially), or the templates, or guidance how to proceed turning this into a PW-module, and of course, in that last process, no pun intended, suggestions to make it more versatile for different needs.
      git: github.com/bbblgmsp/ProcessEventCalendar
      demo: http://foobar.roofaccess.org/events/
      Thank you!
    • By Chris Bennett
      Hi all, I am going round and round in circles and would greatly appreciate if anyone can point me in the right direction.
      I am sure I am doing something dumb, or missing something I should know, but don't. Story of my life 😉

      Playing round with a module and my basic problem is I want to upload an image and also use InputfieldMarkup and other Inputfields.
      Going back and forth between trying an api generated page defining Fieldgroup, Template, Fields, Page and the InputfieldWrapper method.

      InputfieldWrapper method works great for all the markup stuff, but I just can't wrap my head around what I need to do to save the image to the database.
      Can generate a Field for it (thanks to the api investigations) but not sure what I need to do to link the Inputfield to that. Tried a lot of stuff from various threads, of varying dates without luck.
      Undoubtedly not helped by me not knowing enough.

      Defining Fieldgroup etc through the api seems nice and clean and works great for the images but I can't wrap my head around how/if I can add/append/hook the InputfieldWrapper/InputfieldMarkup stuff I'd like to include on that template as well. Not even sure if it should be where it is on ___install with the Fieldtype stuff or later on . Not getting Tracy errors, just nothing seems to happen.
      If anyone has any ideas or can point me in the right direction, that would be great because at the moment I am stumbling round in the dark.
       
      public function ___install() { parent::___install(); $page = $this->pages->get('name='.self::PAGE_NAME); if (!$page->id) { // Create fieldgroup, template, fields and page // Create new fieldgroup $fmFieldgroup = new Fieldgroup(); $fmFieldgroup->name = MODULE_NAME.'-fieldgroup'; $fmFieldgroup->add($this->fields->get('title')); // needed title field $fmFieldgroup->save(); // Create new template using the fieldgroup $fmTemplate = new Template(); $fmTemplate->name = MODULE_NAME; $fmTemplate->fieldgroup = $fmFieldgroup; $fmTemplate->noSettings = 1; $fmTemplate->noChildren = 1; $fmTemplate->allowNewPages = 0; $fmTemplate->tabContent = MODULE_NAME; $fmTemplate->noChangeTemplate = 1; $fmTemplate->setIcon(ICON); $fmTemplate->save(); // Favicon source $fmField = new Field(); $fmField->type = $this->modules->get("FieldtypeImage"); $fmField->name = 'fmFavicon'; $fmField->label = 'Favicon'; $fmField->focusMode = 'off'; $fmField->gridMode = 'grid'; $fmField->extensions = 'svg png'; $fmField->columnWidth = 50; $fmField->collapsed = Inputfield::collapsedNever; $fmField->setIcon(ICON); $fmField->addTag(MODULE_NAME); $fmField->save(); $fmFieldgroup->add($fmField); // Favicon Silhouette source $fmField = new Field(); $fmField->type = $this->modules->get("FieldtypeImage"); $fmField->name = 'fmFaviconSilhouette'; $fmField->label = 'SVG Silhouette'; $fmField->notes = 'When creating a silhouette/mask svg version for Safari Pinned Tabs and Windows Tiles, we recommend setting your viewbox for 0 0 16 16, as this is what Apple requires. In many cases, the easiest way to do this in something like illustrator is a sacrificial rectangle with no fill, and no stroke at 16 x 16. This forces the desired viewbox and can then be discarded easily using something as simple as notepad. Easy is good, especially when you get the result you want without a lot of hassle.'; $fmField->focusMode = 'off'; $fmField->extensions = 'svg'; $fmField->columnWidth = 50; $fmField->collapsed = Inputfield::collapsedNever; $fmField->setIcon(ICON); $fmField->addTag(MODULE_NAME); $fmField->save(); $fmFieldgroup->add($fmField); // Create: Open Settings Tab $tabOpener = new Field(); $tabOpener->type = new FieldtypeFieldsetTabOpen(); $tabOpener->name = 'fmTab1'; $tabOpener->label = "Favicon Settings"; $tabOpener->collapsed = Inputfield::collapsedNever; $tabOpener->addTag(MODULE_NAME); $tabOpener->save(); // Create: Close Settings Tab $tabCloser = new Field(); $tabCloser->type = new FieldtypeFieldsetClose; $tabCloser->name = 'fmTab1' . FieldtypeFieldsetTabOpen::fieldsetCloseIdentifier; $tabCloser->label = "Close open tab"; $tabCloser->addTag(MODULE_NAME); $tabCloser->save(); // Create: Opens wrapper for Favicon Folder Name $filesOpener = new Field(); $filesOpener->type = new FieldtypeFieldsetOpen(); $filesOpener->name = 'fmOpenFolderName'; $filesOpener->label = 'Wrap Folder Name'; $filesOpener->class = 'inline'; $filesOpener->collapsed = Inputfield::collapsedNever; $filesOpener->addTag(MODULE_NAME); $filesOpener->save(); // Create: Close wrapper for Favicon Folder Name $filesCloser = new Field(); $filesCloser->type = new FieldtypeFieldsetClose(); $filesCloser->name = 'fmOpenFolderName' . FieldtypeFieldsetOpen::fieldsetCloseIdentifier; $filesCloser->label = "Close open fieldset"; $filesCloser->addTag(MODULE_NAME); $filesCloser->save(); // Create Favicon Folder Name $fmField = new Field(); $fmField->type = $this->modules->get("FieldtypeText"); $fmField->name = 'folderName'; $fmField->label = 'Favicon Folder:'; $fmField->description = $this->config->urls->files; $fmField->placeholder = 'Destination Folder for your generated favicons, webmanifest and browserconfig'; $fmField->columnWidth = 100; $fmField->collapsed = Inputfield::collapsedNever; $fmField->setIcon('folder'); $fmField->addTag(MODULE_NAME); $fmField->save(); $fmFieldgroup->add($tabOpener); $fmFieldgroup->add($filesOpener); $fmFieldgroup->add($fmField); $fmFieldgroup->add($filesCloser); $fmFieldgroup->add($tabCloser); $fmFieldgroup->save(); /////////////////////////////////////////////////////////////// // Experimental Markup Tests $wrapperFaviconMagic = new InputfieldWrapper(); $wrapperFaviconMagic->attr('id','faviconMagicWrapper'); $wrapperFaviconMagic->attr('title',$this->_('Favicon Magic')); // field show info what $field = $this->modules->get('InputfieldMarkup'); $field->name = 'use'; $field->label = __('How do I use it?'); $field->collapsed = Inputfield::collapsedNever; $field->icon('info'); $field->attr('value', 'Does this even begin to vaguely work?'); $field->columnWidth = 50; $wrapperFaviconMagic->add($field); $fmTemplate->fields->add($wrapperFaviconMagic); $fmTemplate->fields->save(); ///////////////////////////////////////////////////////////// // Create page $page = $this->wire( new Page() ); $page->template = MODULE_NAME; $page->parent = $this->wire('pages')->get('/'); $page->addStatus(Page::statusHidden); $page->title = 'Favicons'; $page->name = self::PAGE_NAME; $page->process = $this; $page->save(); } }  
×
×
  • Create New...