Jump to content

New and Excited


joshuag
 Share

Recommended Posts

I've wanted to try Processwire on a site for about a month and finally had the opportunity. I took the plunge and built a school website with it. The entire experience was fantastic!

I have tried (and built) so many different pieces of CMS software. Every time it's the same story, I get excited about a CMS - decide to use it on a project. Read all the documentation and start building a site - only to find that half way through the project I am usually wishing I had just done everything myself. I was totally ready to experience that with PW, but it never happened. Instead, I continually found myself amazed at how simple it was for me to create exactly what I needed with PW - and super fast!

Just made a website with about 50 pages of content, automatic photo galleries, a News section, the ability to manage documents and downloads, calendar and events, custom sidebars, internal staff only pages and content, dynamic homepage content... menus, search (thank you so much for this), custom frontend forms, ... etc.  did it all. I even wrote my very first module! yay! I can't tell you how much fun this really was for me. I can't wait to learn more.

What I really want to learn is forms... I wan't to think about how I can streamline creation of forms in PW without having to create a new template for every form on a site.

The other thing I am really interested in is learning how I can build admin screens. seems like this will be pretty straight forward. Going to give that shot here next. I have some ideas for modules and themes that I would like to create too... can't wait.

Other than that, I just converted 2 other websites that I had over to processwire - took me about 1.5 hours each. Not bad. I don't think I could have done it that fast with anything I have used before.

The other thing that I love... I showed this to my different clients and they instantly knew how it worked and how to manage their content. It's that simple. Pages -> Edit/New -> Repeat. Amazing.

So, I guess this isn't a support post, but I didn't see a different section of the forum to post in. Glad to be here. Nice to meet you all. Thanks Ryan (and anyone else) for this amazing piece of software. I can't wait to see where it's going and how I can be a part of this community. It's like the CMS I have always been looking for.

Link to comment
Share on other sites

I've wanted to try Processwire on a site for about a month and finally had the opportunity. I took the plunge and built a school website with it. The entire experience was fantastic!

That's great to hear! Thanks for your message, this makes my day.

Just made a website with about 50 pages of content, automatic photo galleries, a News section, the ability to manage documents and downloads, calendar and events, custom sidebars, internal staff only pages and content, dynamic homepage content... menus, search (thank you so much for this), custom frontend forms, ... etc.  did it all.

That's impressive!  Sounds like a great site, and that you've done a lot of great things with it. 

I'm always wanting to add new sites to this page, if you ever have any you want me to post there just let me know:

http://processwire.com/about/sites/

What I really want to learn is forms... I wan't to think about how I can streamline creation of forms in PW without having to create a new template for every form on a site.

There really isn't much in the way of a form builder right now, but it's something we've been talking about. I expect we'll be making progress on this in the summer (soon!), assuming someone else doesn't do it first. But multi-language support and a redesign of the user/role/permissions system are in progress now, and a form builder comes after that.

The other thing I am really interested in is learning how I can build admin screens. seems like this will be pretty straight forward.

This is relatively straightforward because pages in the Admin are just like any other pages on your site. You can add a page to the admin, and make it use any one of your templates. Internally, ProcessWire uses what are called "Process" modules to serve as a very basic framework for managing flow control on a given page (very loosely like CodeIgniter in terms of calling a function based on a URL segment). But it's not a requirement to use them.

The other thing that I love... I showed this to my different clients and they instantly knew how it worked and how to manage their content. It's that simple.

I've found that my clients relate well to the tree structure too. Or when they don't, I tell them to think of a family tree, and then they get it. :)

I can't wait to see where it's going and how I can be a part of this community. It's like the CMS I have always been looking for.

Thanks for using ProcessWire and being part of the community here! I look forward to talking more.

Ryan

Link to comment
Share on other sites

Hmm, now I want to see what you did ! :-)

About the 2 sites you converted to PW, were they custom builds or did you use any other CMS/CMF ? Links ?

One site was using CodeIgniter and the other was pretty static. I am going to post links, just waiting for these sites to get out of Q&A.

Link to comment
Share on other sites

This is relatively straightforward because pages in the Admin are just like any other pages on your site. You can add a page to the admin, and make it use any one of your templates. Internally, ProcessWire uses what are called "Process" modules to serve as a very basic framework for managing flow control on a given page (very loosely like CodeIgniter in terms of calling a function based on a URL segment). But it's not a requirement to use them.

I am excited to learn more about this. I am very familiar with CodeIgniter - pretty much my fall back framework. I am going to play with this and see what type of admin pages I can create. Any specific classes I can dig into to get an understanding of how a process works?

Link to comment
Share on other sites

I am excited to learn more about this. I am very familiar with CodeIgniter - pretty much my fall back framework. I am going to play with this and see what type of admin pages I can create. Any specific classes I can dig into to get an understanding of how a process works?

ProcessWire wasn't built to be a full-on MVC framework like CodeIgniter, and so most of what is used in developing the admin modules is fairly basic. Though I've never actually built anything in CodeIgniter, so I don't know all that it does specifically. I know CI maps URL segments to functions (like a Process module), but it also maps URL segments to function arguments (unlike a Process module). I didn't do that because I preferred to keep dynamic arguments as GET or POST vars.

PW1 enforced MVC for processes, and enforced keeping everything in separate files. It had it's benefits, but in my case it was a net loss to time and maintenance compared to PW2's system. PW2 leaves it more up to you how much you want to enforce a pattern. I usually keep my views in the class, but under a function called "render()" ... that's stylistic only. You'll find that most Process modules call upon other modules to provide views, like the Markup and Inputfield modules. (i.e. MarkupAdminDataTable, InputfieldForm, InputfieldText, etc.).

If you want to maintain a view in a separate file, use the TemplateFile class. It works much the same way that a view in CodeIgniter would work, and it's the same class that ProcessWire uses to render template files throughout the site. Though I don't actually do this in any of the Process modules, but here's how you would:

public function ___execute() {
    $view = new TemplateFile($this->config->paths->MyModuleName . "view.php"); 
    $view->set('videos', $this->getVideos()); 
    return $view->render(); 
}

ProcessWire assumes that all "execute" functions return the output that will ultimately be populated in the main part of the template. It includes a couple of helpers in the "fuel" for populating the headline (processHeadline) or breadcrumbs. These are optional -- if you omit these, the breadcrumb trail will be to the current page, and the headline will be the title field from the current page. Very often, this is what you want, so I don't bother with the headline or breadcrumbs until my Process module is up and running and I find it makes sense to add them.

Any function that begins with 3 underscores, like "___execute()" is hookable. If you don't want it to be hookable, then just use the same function name, but without the 3 underscores, i.e. "execute()". ProcessWire doesn't care which version you use. When in doubt, make them hookable. For functions that you make hookable (by preceding with 3 underscores), any other module can add a hook either before or after it. Hooks that run 'before' can modify the function arguments sent to the hooked function. Hooks that run 'after' can modify the return values of the function. Beyond that, hooks can do whatever they want. See the /wire/modules/Helloworld.module for an example of a couple hooks.

For more insight on Process modules, I would first look at the Module interface, defined in the /wire/core/Module.php file. This basically just lists the functions that all modules are required to have. Most are optional, so you'll see them documented, but commented out. As a result, this Module.php file is more for documentation purposes than anything else.

Next look at the definition of a Process module in /wire/core/Process.php. You'll see it's pretty simple and short. It enforces an execute() function, which gets called on a request of /path/to/page/. Any others you create, i.e. executeEdit(), executeSave(), etc., it only calls if it finds "edit" or "save" in the URL. There are no predefined names after the "execute" part, so it could just as easily be "executeHello()" and that function would get called when the URL was "/path/to/page/hello/".

The only other significant thing that Process module does for you is that it looks for a css and js file that follow the same name format (and are in the same dir) as your .module file:

/site/modules/Process/ProcessVideos/ProcessVideos.module
/site/modules/Process/ProcessVideos/ProcessVideos.css
/site/modules/Process/ProcessVideos/ProcessVideos.js

If it finds them, they get automatically included in the admin template's <head> section.

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...