Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/14/2013 in all areas

  1. Hi guys, I'm one of the founders of Webpop, and the main techie behind it. So here's a tool dev happy to explain away. If you have any questions about Webpop I'll do my best to answer them.
    4 points
  2. I thought it might be good to have a place where we can post other good CMSs and transparently talk about their positive aspects and, why not, compare them to PW. This might help PW grow by learning with the others, and hopefully, could even bring those tools devs to explain them to us. This idea came up to me after this discussion, and from realizing that after discovering PW I'm not as curious about finding other CMSs as I was before. I can Imagine that this has also happened to others here, and can never be good to stay in ignorance I almost stopped looking for other CMSs, but there are two that I would like to share for starting: The Secretary -> http://www.secretarycms.com/ (this is a free self hosted portfolios CMS. For a portfolios tool it's quite flexible. The user interface is also nice) Webpop -> http://www.webpop.com/ (It's a cloud CMS that gives complete control over the markup. This one is not free)
    3 points
  3. No problem, access control is always a little hard to get at first glance. You can mix roles and have them granular as you wish. Also took me a while to get it.
    3 points
  4. Just quoting Ryan from another thread here and I think In many ways profiles are possibly THE most important path to growth Although, ironically, the most major users of the system will tend to be people who DONT use profiles, their very existence will probably be how they hear of PW in the first place. The profiles I would see as most important, with that in mind, are (in no fixed order): Ecommerce (demonstrating the full potential of a eCommerce module) Blog (extended version of the one Ryan created with pre-installed things like DIsqus, galleries, Facebook/Twitter, feeds and so on) News/Magazine system that allows for multi-authors, a proper editorial process and editors for specific categories (are user-groups saved in profiles?) Some sort of community system with "communities" or "groups" (depending on how you call them) - each having their own wiki, simple board, blog and so on and the ability to make some or all of it private - completely over the top this one! Extended business/brochure site with very simple "news/blog" system, product/services, gallery and so on. These profiles should be put together in such a way so that different CSS frameworks and designs can be slipped in with ease. (Is that possible?). So not like the way I have been doing it! This little group (with perhaps one or two more) could be good community designed projects. That would achieve two things (with any luck and a following wind): A bench mark standard of profile design that will help others who want to create profiles A handful of trusted an maintained tools to get less technical users off the starting blocks Encourage others to create profiles (where did that third one creep in from?)
    2 points
  5. Thanks for the welcome Can't say I have a lot of time on my hands, but our real time analytics showed a new link sending traffic our way, so thought I would check it out
    2 points
  6. why.not just make custom tamplate for 404 page?
    2 points
  7. Annd who will build this. One big problem (no not again soma) I see and why I havent done any is it will bring in a lot of support an problems. In that one profile may not the way person x needs this and that. Also the way the profile is built may just one way to do it and either too advanced or too simple and could lead to many frustrations and people asking for things they can't build with your profile. It's like buildig a shop that in the end isnt flexible enough because its prebuilt and making it all configurable is hard and ends with being limited at best. I'm not saying dont do it. But just saying why I havent yet. I love PW for the fact it is so simple to build these things from ground up the way I need it. Thats me. But I see a lot of new people building now sites with PW that have no php or coding skills at all before. I think best way is to have better docs and tutorials on how to build a simple blog or portfolio. So to say there isnt really much. This is pw not wp.
    2 points
  8. I myself am a static man - I love Middleman, Jekyll, Stacey & Kirby. I'd really love it if there was some crossover, something where you'd write your website, build it and then upload it having some tiny PHP router for doing tiny bits of runtime changes, like including different files based on $ajax, sending forms, etc.
    2 points
  9. ProcessDateArchiver ProcessWire Date Archiver Process Automatically archives pages based on a Datetime field (e.g. /news/2013/01/03/some-news-item/). Behavior - When you add a page with a specified template, the module will automatically create year/month/day archives for it. - When you change the date in a specified Datetime field, the page is automatically moved to the correct year/month/day archive. - When moving or trashing a page, the module will automatically clean up empty year, month and day archives. How to create an archiving rule 1. Go to the Setup -> Date Archiver screen in the ProcessWire admin. 2. Click on Add New Archiving Rule. 3. Specify the template that should be archived (typically the news-item template). 4. Specify the Datetime field that should be used to determine the date to archive by. 5. Specify the template that should be used for creating year archives. 6. Optionally specify the template that should be used for creating month archives. 7. Optionally specify the template that should be used for creating day archives. 8. Click Add Rule. Tips and tricks - Configure the archive templates that will contain other archives to sort its children by name. - Configure the archive template that will contain the news items to sort its children by the specified Datetime field. - You will improve usability if you dont allow the user to create date archives manually. How to Install 1. Install the module by placing ProcessDateArchiver.module in /site/modules/. 2. Check for new modules on the Modules screen in the ProcessWire admin. 3. Click Install for the Date Archiver Process. Module download: https://github.com/u...hive/master.zip Module project: https://github.com/u...ssDateArchiver/
    1 point
  10. Hi, Is there an easy way to add fields and then assign it to templates besides going through the admin gui? I find it slows down development anytime I think of a new field and have to manually add it then assign it to all the templates I need it in... (would be a nice feature if we could add the field to multiple templates at the time of creating the new field) Looking at the cheatsheet, I see I can see how to set the name, title, and label of a field using $field->name ... etc. checking the advanced tab in the cheatsheet I can see the the the $fields-save() etc... but I'm not really sure how to create a field object or what its structure is like~ does anyone create these via scripts? how do you guys do it?
    1 point
  11. I'm a big fan of Symphony CMS, before coming to ProcessWire this was my muse. There are still many things I greatly admire about the project, one of which is their BEAUTIFUL extensions site.
    1 point
  12. Yes we also discussed on profiles and how well they would serve as starter tools and of course marketing tools. I completely agree with this. And PW profiles make it really easy to build and export a setup (without permission and users). What I think would be best to keep them really simple and see them as kick-starter examples and resources to look at and learn. Ryan's blog profile is a little a different beast and goes very far already, with css framework to change "easily". Also the Skyscraper is a really cool resource that finally is now updated and people love it to see how it's done. Another thing we discussed (antti) is also the possibility to add functionality through modules. By installing them they setup fields and templates needed and builds a basic setup, along with some snippets it would also be possible to have blog, news, galleries etc in one click ready to then adapt. This would allow much more flexibility than just a profile that then misses the blog section and there's no way to install 2 profiles melted together. This is fun to discuss, lot's of possibilities and so few time
    1 point
  13. Hi Soma Oh, I quite agree with that, and I think most developers will look at a profile and say "oh, good, it can do that," and then take their own direction. And that is the best way to use PW. What I am picking up on here is using profiles as a way of promoting ProcessWire and what it can do, and perhaps giving some less developer orientated users a starting point. But it is the marketing advantage from these that I see as most important. As a side issue, if they are created cleverly enough, (like Ryan's Blog Profile) then they become a useful source of snippets! And of course, documentation - well, you know what I think about good docs already, so I won't bore the world again with that!
    1 point
  14. ProcessWire is a native category system, whether by structure or relation. I think the distinction is that we don't call them "categories" or "tags". But "does not have" makes it sound like they aren't part of the plan. When in fact, it's one of the underlying purposes of the system. ProcessWire's grandfather (Dictator CMS) had a category system called "channels" and it took me awhile to realize it, but they were a complete waste of time... The literal channels/categories were immediately rendered useless once the Page reference type entered the scene. I continued using channels on the sites that had started with them, but this antiquated type of category system never felt right again. Today's ProcessWire not only has categories, it has them on steroids. If each business only belongs in one category, and that will always be the case, then categories by structure is a good way to go. Meaning, your structure would be: businesses web-design a1-web ryan-cramer-design accounting acme-financial architecture top-notch-houses dlux-office-design restaurants las-tortillas bread-and-cheese-house If each business can be in multiple categories, then you'd want a structure like this: businesses a1-web ryan-cramer-design acme-financial top-notch-houses dlux-office-design last-tortillas bread-and-cheese-house business-types web-design accounting architecture restaurants Then each "business" page would have a "Page" reference field called "business_type" where the editor can check one or more boxes. Each business would display their types like this: <h2>Types</h2> <ul><? foreach($page->business_types as $t) echo "<li><a href='$t->url'>$t->title</a></li>"; ?></ul> Each business type would display the related business like this: <h2><?=$page->title?> Businesses</h2> <ul><? foreach($pages->find("business_type=$page") as $b) echo "<li><a href='$b->url'>$b->title</a></li>"; ?></ul>
    1 point
  15. Then you would maybe create another role for them with only delete permission and remove the delete permission from the other role. Then assign the "delete role" to the template you want them to delete.
    1 point
  16. As told by Luis and woop, it would be very easy to build this in pw. But if you want to take advantage of tumblr's social features and great interface, you should also consider having a tumblr blog and integrating it with pw. The tumblr API is very easy to use, and makes it very simple to integrate the blog in your own page http://www.tumblr.com/api_docs. There's even a php application that makes it even easier https://code.google.com/p/phptumblr/. Another solution would be to assume that the blog is a different part of the site, and have it on tumblr with a custom domain (ex: blog.domain.com) and in the site's navigation.
    1 point
  17. UPDATE 1.0.2 : Big improvements to Internet Explorer compatibility.
    1 point
  18. The HGTV Dream Home Giveaway sweepstakes has not officially ended yet, as construction is still ongoing at the property. According to the floor plan, the winners will enjoy nearly 4,000 sprawling square feet of living space. The architecture and design is inspired by a traditional cattleman’s ranch, placing one lucky family in the center of the surrounding rivers and mountains. The HGTV architect responsible is none other than Corey Sulum. There are a total of 14 rooms just on the first floor, including four bedrooms, four and a half bathrooms, five roofed decks, an open-air living room plus a laundry room featuring lockers, which are perfect for fishing rods, skis and waders. In addition, there will also be a game room, completely clad in crib framing, and a gourmet kitchen complete with top of the line appliances, ideal for entertaining and accommodating guests. The guest suite offers a perfect view of the surrounding river and mountains, including its own walk out door to the back deck so your guests can enjoy the same captivating sights.
    1 point
  19. DateTime() takes a string argument when creating new object - it takes the very same arguments as strtotime() does. It's a natural date parser, so if you want to tell it that 'this number is a timestap', you have to prepend '@' before it. That means, that you could theoretically do this: $tf = $modules->get('ToolsTimeFormat'); echo $tf->ago('2012/12/24 18:00'); Edit: +bonus tiny english lesson 'learn' is a word you use when you gain information ('I'm learning'). When you give information, the verb is 'teaching' (e.g. "I am teaching you, you are learning from me"). Hope that helps. (as an absolute off-topic, if I ever make a mistake, you are absolutely free to correct me, so I can learn something new )
    1 point
  20. I'm moving here from EE (been there 6 years). Will be spending next few weeks learning the ropes and asking questions. As it's my first post I'd like to shake hands with Ryan - great job Mr.
    1 point
  21. best profile for your site is the crssp profile install the default profile and study it well. then you can make your site grow from there adding structure and functionality
    1 point
  22. 1001 things I love about ProcessWire, but the vision behind it I love the most.
    1 point
  23. Hmmmm??? Sounds like it is going from one note and then down 12 semitones. You do the sound once then copy it and overlap it with a gentle cross fade (you can hear it coming in.) Then you chop it in half and swap the halves over and join it back up again and voila, you have your loop. Because you are being strict about the starting and ending on the same note (this is playing fifths I think), then looping is relatively easily. We used to do this sort of thing on quarter inch tape running at 30 inches per second for high quality. To get the loop working we would run it down the corridor on mic stands across little tape reels. If you were confident about starting tape machines at the same time you could run it through several and therefore get the playback at several points, dub the result onto a new loop and start again. The famous doctor who theme used rather a lot of this, I believe. Joss
    1 point
  24. We have many users that have come over from EE, just like we have many users that have come over from WordPress, Drupal, MODx and Joomla, among other platforms. These users are enthusiastic about ProcessWire and like to share their enthusiasm with friends. Please don't confuse the title of this thread as being something the project is trying to pursue, because it's not. I'm assuming the OP is a current/former EE user that is enthusiastic about PW and wants to share that. We are not actively trying to benefit from changes at EllisLab or trying to pursue EE users. If I were an EE user, I would want what's best for the company behind it and would stick with it. When those changes were announced, I went to the #eecms hashtag to see what all the fuss was about. There were other projects being opportunistic about it (the Perch one was actually kind of cute). We were silent on it. Just because there were current/former EE users talking about ProcessWire does not mean that ProcessWire is trying to pursue EE. EE has nothing to do with any "cause" here. I changed the theme shown on the homepage because users here thought it would be better if it showed exactly what you see when you install, until we get the rotation up. We have several sets that are going to go in there (rotating) and the one that was there previously is one of them. Now that the default admin theme is in there, there have still been folks that say "that looks like EE". I designed that admin theme and can say for certain it takes no inspiration from EE. I really don't know if the other admin theme that was in there takes inspiration from EE or not. But looking through screenshots, it seems like there are similarities and differences. I'm not convinced anyone was trying to copy the look of EE. Design trends and interfaces for similar tasks are bound to bear some resemblances to each other. People need to step out their front door. There is one thing I can be certain of though, and that's that I'm glad people might say "that looks like EE" and not "that looks like Joomla". I was glad to see this. It came along at the right time. If I was an EE user, this would make me a lot less concerned about the changes in support plans. Glad to hear PW and others are being looked at. We are thrilled to welcome any EE users. Still, if folks are happy with everything about EE from the software side (even if a little angry about EllisLab changes in the short term), they shouldn't abandon it. CMSs aren't religions, and it's okay to use more than one. It is curious to me that Blocks gets mentioned despite not even being out. Blocks appears to be built as a platform specifically targeted towards EE users, and that's probably why. The model behind that one is ultimately a paid model. EE itself is inexpensive in the grand scheme of things. Blocks apparently takes that further by just making the core free instead (a little bit of a trap). But the end result is the same: you'll be spending significant amounts of money on either, because both are built around a paid model. They are there for the money. And that's perfectly fine so long as the user understands that. But with EE, at least you are getting an experienced platform, history and track record. My opinion is that EE users looking for a change should look outward (beyond the money model) not inward. One you have your "a ha" moment with ProcessWire, you'd lose all interest in EE or anything like it. But EE users have to be willing to let go of learned complexity, baggage and preconceptions about CMSs in their mind. And not everyone is ready for that. If an EE user either isn't ready or doesn't find what they are looking for by looking outward, then they should instead look beyond the short term angry EE chatter. EllisLab is making long term decisions for the benefit of the company and the software, and it's actually a good reason for those folks that really like it, to stick with it. Individual developers are not going to be the ones paying these $20k yearly support fees, so it shouldn't be an issue. It's the big enterprise clients that will pay those fees, and they'll think it's a great deal relative to their old CMS monsters. What's good for EllisLab will ultimately be good for the people that want to implement and use their software. This is confusing quantity with quality. If quantity is the measurement, then EE isn't there yet either. If it was, I don't think EllisLab would be changing their business model. For better or worse, the EE ecosystem is also built around a money model. That ecosystem rises and falls with a business rather than the product. PW has always been about quality and has never been about quantity. I started this project as the only user for many years. When I put it out there, I intended to keep it going for the long term regardless of how many users we had. We don't get paid here. We do the work because we love it. They may be huge now, but Drupal and Joomla will really have to fight hard to be relevant in the future. They carry a lot of legacy ideas and methodology, and they kind of have to. They can only lose market share from here, so it seems like they are pursuing defensive growth strategies. When a Drupal, Joomla or WordPress developer gets a taste of ProcessWire--and really gets it--they are changed. I think that ProcessWire and systems like it will make it difficult for the likes of Drupal and Joomla to stay relevant in the long term. I'm sure EllisLab sees this too. But EE users should at least feel good that EllisLab is pursuing a growth strategy that seems geared towards growth rather than maintenance. WordPress is not great software either, but we can all learn something from the way they've grown and likely will continue to. I wouldn't trade our ecosystem or software with any of theirs. And for those that measure by quantity, we'll get there too, but we won't be counting. People from EE are totally welcome here. I'm glad you've joined the discussion. But want to be clear we are not hoping to achieve anything in that regard. If our strategy were to pursue users from other CMSs, we wouldn't be pursuing EE -- it only represents a tiny sliver of the CMS pie. We only want to gain users based purely on the quality of our software and community, and the good reputation that accompanies it. This is an open community and we don't control what gets posted. The only reason you see EE mentioned here is because of EE users that are now using ProcessWire. I appreciate their enthusiasm. While I have positive feelings for EllisLab and EE, it is not on the radar here as having anything to do with our project, goals or strategy.
    1 point
  25. ProcessWire will have support contract options available in 2013. I'm still working out the details, but wanted to let you know that option will be there for those that want it. Most of us here don't and won't need support contracts, because we can get pretty much anything resolved in a manner of minutes via these forums. But I would gather that a large portion of PW's user base doesn't actually participate in these forums. I also think that there are companies out there that would feel much better having the insurance of guaranteed support when they need it. Basically, if someone feels they need a support contract, I want to make sure we can accommodate that. I also see this as a way to further support growth of the project. As for EllisLab, I think they may be in a tough spot and trying to find the best way to survive and hopefully thrive. I had heard unsubstantiated rumors on Twitter several months ago that they might make EE free. To me suggested they might not be thriving as a business the way I would have thought. In such a case, change could be necessary in order to grow rather than contract. I have no idea if this is true (it's all guessing), and it's a little hard for me to imagine how they could not be profitable… given that their entire user base pays to use the software. But I don't think they would have made such drastic changes if everything was okay with the business model and finances before. My guess is they were faced with the choice of having to make cutbacks (like staff), stagnate, or make big changes. It appears they opted for big changes and are trying to re-focus their resources towards the high-end. That being the 20% of the audience that can pay the big bucks, at the expense of the other 80% that doesn't pay as well. And have probably accepted the sacrifices that go along with it. For that 20%, these costs are not really that big, and are probably seen to strengthen the B2B commitment (greater cost sometimes feels like greater insurance and less risk). There are other big players out there paying hundreds of thousands of dollars (every year) to companies with products that are inferior to EE. There are more opportunities to grow for them there than there are on the open source side. After all, products like ProcessWire and others are just as capable (and many would say more-so). It's not sustainable and makes little sense in a for-profit business to plan growth competing against a worldwide network of developers working for free. It's hard to grow a business when most of your competition is at least as good, and free. Whereas, I think it makes good business sense for them to carve out some new space where there is opportunity and partnership with bigger players. That's the side where the service matters as much, or more, than the software itself. And they can do well at both. I'm hoping that ProcessWire and other open source CMSs can benefit and grow as a result of changes with EllisLab. But I also hope that EllisLab and ExpressionEngine benefit and grow in the way they want to. Looking at where they are and what they are, it's not hard to understand why they've refocused. Though I say that as an outsider that's not negatively affected by their decision. Regardless of whether you like EE or not, it is in a fairly unique spot in the CMS landscape as a commercial product that is often listed with, and interchanged with, open source products. It's not something that I think could be repeated today, and I've always had a lot of respect for what they've been able to do and the influence they've had. EE is a good software with good people behind it. I'd like to see them do well and think that they will.
    1 point
  26. I see what you mean, I was forgetting about the status settings. Also, I do the same thing with page 'name', but admittedly have never had a problem with a client changing it when they weren't supposed to. But this is all easy to overcome with a module. I think this will accomplish what you want to do. I've also tested this to confirm, so it should work out of the box. As it is now, it'll deny access to editing of name, parent, template, status for everyone except superuser. But I put in variables at the top where you can add additional templates or roles that should fall-back to the default permission checks as if the module wasn't here. One thing I want to note is that PageEdit doesn't perform a permission check before displaying the status checkboxes. However, it does perform a check before saving them. So the user may see them, but they won't be able to change them (which is probably just as good). Code is pasted below, but I'm also attaching the file if you prefer to download it instead: CustomPagePermissions.module class CustomPagePermissions extends WireData implements Module { public static function getModuleInfo() { return array( 'title' => 'Custom Page Permissions', 'version' => 1, 'summary' => 'Starter/example module to enable customization to page field permissions.', 'singular' => true, 'autoload' => true, ); } // names of fields that you want to deny access to protected $denyFields = array('name', 'status', 'template', 'parent'); // optionally specify names of templates that will be excluded from these permission checks protected $skipTemplates = array(); // optionally specify names of user roles that will be excluded from these permission checks protected $skipRoles = array('superuser'); // attach the hook public function init() { $this->addHookAfter('Page::editable', $this, 'hookPageEditable'); } // perform the editable() check public function hookPageEditable($event) { // if editable() already denied access, then don't continue if(!$event->return) return; // if user has one of the 'skip' roles identified above, then skip permission check foreach($this->skipRoles as $name) if($this->user->hasRole($name)) return; $page = $event->object; $fieldName = $event->arguments(0); // if page template is one you want to skip, then we'll return if(in_array($page->template->name, $this->skipTemplates)) return; // if fieldName is one of those listed, we'll deny access if(in_array($fieldName, $this->denyFields)) $event->return = false; } }
    1 point
  27. The stuff that you see in that 'system' tab actually for development of ProcessWire itself. It's not meant for use on sites, and may be dangerous to change stuff in there. Likewise, disabling the settings tab isn't something meant for normal pages, and could potentially cause problems since it was really only meant for specific cases with types descending from Page and not Page itself. But even if it were safe, I think it may not necessarily be a good idea because that Settings tab is intended to be hookable for other modules to add functionality if they deem it to fit better in 'settings' than 'content'. A better way to disable specific settings is to disable access to the features that are in settings, all of which are aware of user permissions (except for 'name'). For instance, if you don't want them to be able to change the parent page, then don't give the user's role access to 'page-move' permission. If you don't want the user to be able to change the template, then use the template's family settings to define what's allowed or limit the users access to just that template. That only leaves the page's "name" as something that can be changed in the settings tab. If someone has access to edit a page, they also have access to edit the name. PW does check for access to edit "name" but the permission system doesn't implement it. Meaning it's currently setup for hooks to implement if they choose to. But this will get implemented once we have field-level permission assignments, which are on the to-do list.
    1 point
  28. This is the way to create template and fields with API: // new fieldgroup $fg = new Fieldgroup(); $fg->name = 'new-template'; $fg->add($this->fields->get('title')); // needed title field $fg->save(); // new template using the fieldgroup $t = new Template(); $t->name = 'new-template'; $t->fieldgroup = $fg; // add the fieldgroup $t->noChildren = 1; $t->save(); // add one more field, attributes depending on fieldtype $f = new Field(); // create new field object $f->type = $this->modules->get("FieldtypeFloat"); // get a field type $f->name = 'price'; $f->precision = 2; $f->label = 'Price of the product'; $f->save(); // save the field $fg->add($f); // add field to fieldgroup $fg->save(); // save fieldgroup All pretty much standard OO one can figure out looking at core and PW modules. But not someone unexperienced would figure out by themself. I think at some point we need to cover these in a documentation.
    1 point
  29. You can assign fields to templates like this: $template = $templates->get("some_template"); $template->fields->add("newfield"); $template->fields->save(); this code is taken from here http://processwire.c...bles/templates/ So, just make an array with all the templates you want the field to be on, and go for it $ts = array("home", "basic-page", "search"); foreach($ts as $t){ $template = $templates->get($t); $template->fields->add("newfield"); $template->fields->save(); } EDIT: the field will be on the last position of each template
    1 point
  30. Hey neil (are you neil?), I'd say go check out the source of configurable modules. The code for building the configuration options is there - you'd only save the fields into db: // this is a container for fields, basically like a fieldset $fields = new InputfieldWrapper(); // since this is a static function, we can't use $this->modules, so get them from the global wire() function $modules = wire('modules'); // Populate $data with the default config, because if they've never configured this module before, // the $data provided to this function will be empty. Or, if you add new config items in a new version, // $data won't have it until they configure it. Best bet is to merge defaults with custom, where // custom overwrites the defaults (array_merge). $data = array_merge(self::getDefaultData(), $data); // showModal field $field = $modules->get("InputfieldCheckbox"); $field->name = "showModal"; $field->label = "Use modal window"; $field->description = "Whether open pages in modal (overlay) window or goes to traditional administration."; $field->value = 1; // providing a "checked" value for the checkbox is necessary $field->attr('checked', empty($data['showModal']) ? '' : 'checked'); $fields->add($field); return $fields; This is from latest AdminBar by @apeisa. You can see the '$field' part, where the field is built. You probably only run $field->save() at the end instead of current $fields->add() and you have just created field via code Adding fields to the template will be probably close to the ->add() call, and I'm totally not sure about reordering them in the templates via code, you might need to play with this a little.
    1 point
×
×
  • Create New...