Leaderboard
Popular Content
Showing content with the highest reputation on 10/12/2012 in all areas
-
Do you get paid for the sites that you would with PW? When you come to the forums to get help, do you limit your questions purely to development work that you are doing for free? I originally developed PW to help us all create better sites in less time, and with more fun. I'm hoping that PW is helping others to be more competitive in all ways, including financially. But recognize that PW did not come into existence on its own. Years worth of time and money has gone into making ProcessWire happen. If you are using ProcessWire to develop sites you get paid for, then you are profiting from ProcessWire. And that's fine with me, no ROI is expected or wanted--I've never asked anyone for anything. But it is disheartening to hear a user make a statement with the implications yours makes. Form Builder is not about making a profit. I don't expect that I will ever make enough on it to offset the actual time investment on it. My hope is that eventually it will be something where the community and myself have split the cost to create. If I wanted a profit, I would go make a Form Builder for WordPress or Drupal where the user base is large enough for that potential to exist. Form Builder is a tool that wouldn't exist if I had to fully self fund it. It's also an experiment to determine if I can reduce my client workload and substitute some of it with ProcessWire-related development that benefits all of us. But I can't substitute something that supports my family with something that doesn't. Form Builder is here to benefit you, not me. If you build sites for a living (or even a hobby) it's going to pay for itself the first time you use it. If you previously spent half a day building a form, now you can spend minutes and get a better, more secure and capable result that can do all sorts of things with the results it collects. Also want to note that Form Builder is something completely different from the original subject of this thread and I don't view them as similar products at all. Likewise, Form Builder is completely different from something like Zend Form or others like it. One does not preclude the use of the other and we should all keep more than one tool in our forms toolbox. I fully support Clinton's project and any others that benefit forms in ProcessWire. Forms are one of the most diverse and important aspects of web development. I feel very confident about the value of Form Builder in your toolbox, so have made it 100% refundable if you find it isn't for you (this type of return policy is pretty rare with digital products).7 points
-
Hey, congrats to every EU member of this forum. We won the "Nobel Peace Prize" Sorry american guys but maybe you sometime will win some kind of Nobel Prize too4 points
-
I have recently become acquainted with ProcessWire and feel extremely lucky to have discovered this Open Source community. I find it truly amazing that something with the quality and flexibility of ProcessWire is available for free. I am blown away by how the community works and contributes. I have been reading the posts on this forum and love how developers are actually helping each other with solutions. Form Builder is a very impressive tool and should be a commercial offering. I had no problem in buying my Developer's license. I also won't have any problem ensuring my clients buy an individual license. It is a great product that is well thought out. It is a definite time saver that quickly provides professional results. I am just glad that Ryan has kept this tool at an affordable price. He even solicits advice from us on making improvements and we don't have to wait long for enhanced capabilities. I applaud the fact that he is being properly reimbursed for his hard work. I like where this project is headed. I appreciate all the other developers who are actively involved. I am thankful everyone provides concise technical explanations in their posts. This allows me to learn more and more each day about ProcessWire.4 points
-
I think commercial modules are appropriate and should be encouraged. I suspect there are a large number of us that utilize Processwire (and other open source products) to make a living. I think collectively we are fortunate (and spoiled) by the myriad of software available at no cost. Processwire has made a massive impact on my productivity and ability to deliver complex products. If Ryan can develop some commercial modules that allow him to spend more time developing PW (and make a profit on all the work he's put into this truly amazing system), I am happy to support that effort — and if there's a place to donate to the cause directly, I'll be glad to do that as well.3 points
-
You knew it but you did it anyway... there are many occasions when it is good to shake things up, but I honestly think you didn't choose the proper place, time or words. Ryan already said on the forum that he plans to dedicate more of his time to PW, and that he just has to compensate the loss of money that it would mean for him and his family. He is not forced to discuss this kind of things with us, but he does, and even asks for the others opinions. Code is as good for selling as any other product or service, and I would say, a very honest choice for taking some profit of such a great work as PW is. And hopefully he does. Maybe this discussion will also interest you http://processwire.c...-in-the-future/3 points
-
@alanfluff Yes, but the OEM version states "Integration with open-source CMS/software" but I agree that the best way to be clear about all this is to directly ask the developers.2 points
-
If you guys see another GNU open source licensed CMS using this, then I'll assume that means we can too. Perch isn't a GNU/open source, so they don't have to consider the issue. If there's a way to make it legal, I'll be glad to handle the dev side of making this Inputfield if others want to chip in to buy the necessary license. But just the fact that it's necessary to buy a license makes me think it's not technically GNU compatible... could land us in hot water to distribute it with PW. Another way to do it would be to make it a commercial module (like Form Builder) where it doesn't come with PW, but you can add it on separately. That way the distribution is controlled in the same manner as Redactor, which would keep it legal.2 points
-
Tom, if this is as good as it looks and it won't let horrid HTML (font tags etc) in (which I'm sure it won't if you're up for it) then I'm good for two more. So if I understand this that means 16 left to find and once found someone cleverer than me to make it a module. So if I continue to understand this then that means PW forever-more has this new editor and no payments needed by me or others to use PW with the editor. Does that sound right? Anyone? Anyone? [channeling Ferris Bueller]2 points
-
Polls fixed. This time it requires logging in via twitter, google+, facebook or linkedin. Using list.ly. Sorry for the confusion, please resubmit your votes.2 points
-
This is a quantity-based vote, so even with a perfect voting system of this type, I would still expect the results to be strongly weighted by community size over any other factor. But it's a real honor to be listed next to these other systems, all of which have been around a lot longer, and are far more known, than ProcessWire. But that puts us at a real disadvantage given our relative age and community size, so I hope that people don't take the ultimate results of this too seriously. But just being listed in this poll is a nice honor for ProcessWire and hopefully a way that more will discover ProcessWire.2 points
-
2 points
-
start the cheerleading then: OEM version, $399: "I'm a developer and I make an open-source product (CMS, service, etc)." Seems that they changed the pricing a bit, previously it was covered by the $199 license. Edit: Perch do have it little easier… price for them is only $199… and their CMS is paid.2 points
-
2 points
-
@ClintonSkakun, thankyou for posting. @AnotherAndrew, ryan is helping users whenever he can. Sometimes I think there are 2 of them. There's a lot of time spend on building the cms, community & modules. PW without formbuilder is fantastic on its own. You don't have to use it. It's good that there are more possibilities. For me buying formbuilder is next to the usefulness also a way to say thank you to ryan.2 points
-
2 points
-
There's another detail that makes all the difference. The fact that in contao, the buttons are aligned to the right, far away from the pages name, makes it much more difficult to identify what line of buttons refer to wish page. is how I feel like by looking at that image2 points
-
Just a quick heads up. This is the last day for nominations (they close at 3pm MT) and voting begins tomorrow morning at 8 AM MT, so check back to see if you've been short listed. From what I can see so far in the nominations, ProcessWire has been well represented so far, so keep getting those nominations in.2 points
-
2 points
-
I wanted to give you a little preview of a new module I've been working on recently: the Form Builder module. This module lets you create simple-to-complex forms and place them in your site without any need for development. In this video we show how we can create, publish and test a simple contact form in less than 5 minutes. Then we take a quick look at a more complex form (already produced). I recommend viewing the full screen + HD 720p version so that you can see it more clearly than in this small forum embed. (note: there's no sound, so no need to adjust your volume) More about the Form Builder The Form Builder has many options for the developer to customize output and create their own themes, markup, etc. But the goal here was to build something that could enable you (or your client) to publish a form in less than 5 minutes, so that's the focus of this video. This tool is literally easy enough for your clients to create and manage their own forms. Or from a developers perspective, it takes something that used to consume hours and makes it happen in minutes. Form results save in the database and optionally can be CC'd to you by email. Result entries and be viewed, filtered by date, and even edited in the admin. You can export results to a spreadsheet as well. I'm working on the ability to export to pages, though that isn't quite ready yet. How the Form Builder will be licensed This module will be individually licensed on a per-site basis for a small license fee. It will also be available for free personal use to established forum members. Basically, I want to see if I can substitute some of my client work to focus on ProcessWire instead. And in order to do that, I need to have an income (I have a family to support). So I thought that building a special tool like this would be a way to make a go of it. A lot of you have asked to make donations to the ProcessWire project, and while we still won't be able to take donations, you will be able to support the ProcessWire project by purchasing and using the Form Builder in your own client projects. So a lot of motivation for this module came from wanting to provide something really special for all that had wanted to support ProcessWire. After a few months of work, I'm pretty happy with how this module has turned out -- it's already saved me tons of time in my client projects. So I'm thinking and hoping you guys will really like it too. I look forward to your feedback.1 point
-
Hi, I just uploaded the first version of the SchedulePages module to Github: https://github.com/f...r/SchedulePages This plugin module allows you to schedule (un)publication of pages. I hope you guys will like it. //Jasper Usage: ====== Place the SchedulePages.module file into the site/modules folder and install the plugin from the admin area. Install/activate the LazyCron module (if you haven't already). This module is part of the Processwire core, but it isn't activated by default. Add the following date fields to your template: publish_from publish_until Note: the fields are already created during the installation of the module That't all. LazyCron will run take care of (un)publishing your pages that have a the publish dates set. It will run on every hour. Please note: LazyCron hooks are only executed during pageviews that are delivered by ProcessWire. They are not executed when using ProcessWire's API from other scripts. Edit: Changed the name of the module and function as Ryan suggested below. Edit 2: Updated instructions. Required fields are now automatically created and from now it runs every hour. Edit 3: Added module dependency. The updated module is on Github1 point
-
I've been working on an experimental module set that adds 2-factor authentication to ProcessWire with the help of Steve Gibson's PPP one-time-pad system. This is split into two modules; a CryptoPPP library that implements the otp system and a 2-factor authentication module that uses it to add 2-factor authentication to ProcessWire. The 2-factor module adds an additional "Login Token" field to the login page into which the authenticating user will need to enter the next unused token from their one-time-pad. Pages from their pad can either be printed out in advance in a credit-card sized format (with codes being crossed out as they are used as shown here) or the required token can be sent to their registered email address so they don't need to print anything out. This second option requires a good email address be present in the user's account in order for them to be sent the token. Email Delivery To set up email delivery go to the 2-factor module's config page and choose "token delivery via email" and save the settings. Next, make sure that every user who will use the system has a valid email address set up in their account. Upon the first failed user login attempt, the required token will be emailed to the user’s email address and they should then be able to log in. Printing Pages From The Pad If you prefer to print the tokens in a handy credit-card sized format then… Go to your profile screen Expand the “PPP Initialisation Vector” field Hit the “Show Token Cards” button to open a new browser window with the next 3 useful cards Use your browser’s print option to print these out Trim them to size and store ...but make sure you print these out before you enable 2-factor authentication on your account. If you cross out your used codes, you will always know which code to use when logging back in -- and if you forget, the first login attempt will fail and the token field will then prompt you with the location of the correct code to use. Why would I ever want to use 2-factor authentication? If your site is only for you or for people you know use good passwords then you probably never will need a 2-factor authentication system. But it has been shown that many users use passwords that are, well, rubbish not very good and having a second factor can be useful in mitigating poor passwords. As the second factor in this system comes out of a one-time-pad system (meaning it will not be reused) then having the user's password leaked or guessed should not compromise their account nor will having someone spy out the token they are using to log-in as tokens are not re-used (well, not for a very long time.) Known Problems You need to hit the save button after you install the 2-factor module to get it to remember the initial settings. (I guess I'm not setting the defaults correctly at present but pressing the button will allow you to move forward for now) Uninstall of the 2-factor module leads to a lot of warnings. Attachments1 point
-
This module creates a page in the ProcessWire admin where you can test selectors and browse page data and properties without editing a template file or a bootstrapped script. Given selector string is used as is to find pages - only limit is added, if given. Errors are catched and displayed so anything can be tested. Pages found with a valid selector are listed (id, title) with links to the page. I was thinking this would be useful for someone new to ProcessWire, but it turns out I'm using it myself all the time. Maybe someone else finds it useful as well. Module can be downloaded here: https://github.com/n...essSelectorTest Modules directory: http://modules.processwire.com/modules/process-selector-test/ Features Edit selector string and display results (and possible errors as reported by ProcessWire) Explore properties and data of matching pages in a tree viewLanguage aware: multi-language and language-alternate fields supported Repeater fields and values Images and their variations on disk More data is loaded on-demand as the tree is traversed deeper Quick links to edit/view pages, edit templates and run new selectors (select pages with the same template or children of a page) Page statuses visualized like in default admin theme Add pagination Screenshots1 point
-
Looks like there are a few other CMS's (including perch) using Redactor WYSIWYG editor. I'm jealous seeing the other kids playing with a toy that I want and don't have. This came up before in another topic, and it sounds like there are possibly some licensing issues. Thought I'd start a topic specifically to discuss this—incase there is any possibility of adding it to Processwire. I don't have enough knowledge about the licensing, or the skills to turn this into a module—but I make a great cheerleader! Wait... that didn't sound right.1 point
-
This page was designed and programmed for Typo3 but then I decided to give Processwire a chance. It was quick and easy to transfer the html-template (which was made by friend) to the Processwire template folder. We kept the Processwireversion because we liked the clean and "simple" administration interface. http://kjr-hdh.de/ The site itself is about a german club for young political parties in our town. (Yes I know, the font rendering is kinda bad on windows) Retrospectively it was the best move to switch to Processwire. I can create templates and fields to fit my needs and most of my sites are not that complex to use Typo3 or another bloated CMS.1 point
-
http://cafe-am-markt-heidenheim.de/start/ The next page we converted to Processwire. Our (oldest) client can now simple change her content without learing HTML or a huge CMS.1 point
-
Maybe this helps: http://support.grabaperch.com/index.php?pg=forums.posts&id=30081 point
-
But there's a difference between integration and distribution. If it was really GNU compatible, then I could take Redactor and make my own version that just changes the name (RyRedactor), and then offer it available for use to anyone for free. At that point, people would no longer have to pay for Redactor. As a result, I think when they say "integration with open source software" they aren't telling the full story. But if we can find an example of another GNU open source software doing it, then we can follow their lead.1 point
-
A solution that removes all doubt over licencing sounds ideal. If it was a chargeable PW Module priced to be very attractive to all-commers then I think this approach sounds ideal.1 point
-
Their OEM license seems to be pretty clear: Integration with open-source CMS/software Integration with products/services for developers, who will then create their own products for the end users But I also think that shipping redactor as a separate module (os or commercial) would be a good idea, just to be on safe waters with PW-core. I have no idea what shipping that kind of software within GPL-licensed software means. Also took a look at their docs. Implementing that would be a pleasure compared to TinyMCE... had once to build a plugin in tinymce and it was a nightmare.1 point
-
I think that URLs will be relative to the requested URL? So if the JS is loaded on page /contact-us/ then the code snippet above would be looking for /contact-us/img/arrow_up.png, which would be incorrect. One way you can get around this is to let PW populate them for you. In your document <head>, add this before any other <script> calls: <script> var rootUrl = '<?=$config->urls->root?>'; var templatesUrl = '<?=$config->urls->templates?>'; </script> Then you'd be able to do this: .scrollUp({location:"right",image_src: templatesUrl + "js/img/arrow_up.png",wait:100,time:300});1 point
-
1 point
-
I am pulling down the existing polls and redoing them with list.ly. Will be back up in a moment. You will need to resubmit your votes. Apologies for the inconvenience. Votes count for the people's choice segment, not for the critic's choice ones. I created two so that community size wasn't a factor.1 point
-
Mike, thanks for setting this up. Glad to see that ProcessWire got listed in the nominations for best open source CMS and best budget CMS! One question that comes to mind as I look at the voting system (WP-Polls) is if it supports any one of these? Require a validated email address. Meaning the vote doesn't count till they submit it and click a link in their email confirming it. Require each vote to be associated with a facebook or twitter account. Require people to include a brief text review (a sentence to a paragraph) qualifying their choice. The reason I ask is because anything that doesn't add some kind of qualification is vulnerable to the same thing afflicting the opensourcems.com rating system, here's more details of the problem. To summarize, these systems (that determine uniqueness by IP and session/cookie) are easily manipulated by proxy servers and blind submissions. Adding a qualifier (like one of the above bullets) drastically reduces or eliminates the problem.1 point
-
1 point
-
Renobird, I don't know what happened either, but yes, this module relies on the DatetimeFieldtype. /Jasper1 point
-
The js is loaded correctly but it fails to find the image? I think somehow you declare the path wrong. Can you show the image call in your js file?1 point
-
Ok, delaying calling save() on the fieldgroups until all fields have been removed works. Thanks for the tip Ryan.1 point
-
From ProcessWire I learned the single quote markup attributes. I love those & never used it before I started to work with PW. For associative arrays i like closing parenthese receive an extra tab & the key => value pares to have 2 tabs. $array = array( "foo" => "bar", "bar" => "foo", ); Now with ProcessWire, I struggle less with php style cause I like the style used in the core & modules.1 point
-
This is another way to accomplish it, perhaps more efficiently: $n = 0; $total = count($page->thingy); foreach($page->thingy as $data) { $n++; $data->isFirst = ($n === 1); $data->isLast = ($n === $total); echo $data->render(); } Your repeater_thingy.php template should now be able to compare against $page->isFirst and $page->isLast1 point
-
Given that we don't know what the user's fields or types will be ahead of time, there isn't really any way to document it with the Page class (that I know of). The function that handles this particular situation (setting a value to a $page->pageref) is FieldtypePage::sanitizeValue(). It is currently documented (with phpdoc) to indicate what it's for and all the values that it accepts and returns. But doesn't say anything like "usually you'd set a PageArray" because I don't think anyone is going to be looking here unless they already know the routes that setting a value to a Page takes. Ultimately, the best way to document this sort of stuff may be outside of the code itself and in online documentation specific to each Fieldtype. I think the cheatsheet is a great resource for this stuff. Though I don't think there's anything specific to the situation we're talking about just because it's one of those things specific to a FieldtypePage. So I think FieldtypePage probably needs it's own manual. That's what we're doing now. But I'm not sure how to communicate to someone that when they set (or get) a value to a Page, a lot of decisions go on behind the scenes. In our particular case of setting a $page->pageref, the path would be this (pseudocode): $page->set('field_name', $somePage); { // if 'field_name' is a custom field confirmed by the page's fieldgroup, use setFieldValue() $this->setFieldValue('field_name', $somePage); { // get the Field object $field = $this->fields->get('field_name'); // let the Fieldtype sanitize the value before setting it to the $page, i.e. convert Page|int|string|array to PageArray $value = $field->type->sanitizeValue($this, $field, $somePage); } } That last line is where the magic happens. The sanitizeValue will accept $somePage in various types, but always returns a PageArray back to the page. If it gets something it doesn't like, then it's either going to throw an Exception or refuse it (depending on what the Fieldtype author thinks is appropriate). Something similar happens when you get() a value from a Page, tough even more behind the scenes: $page->get('field_name'); { // if field_name is a custom field confirmed by the page's fieldgroup, use getFieldValue() $this->getFieldValue('field_name'); { $field = $this->fields->get('field_name'); $value = parent::get('field_name'); // check if it's already loaded if(is_null($value)) { // value isn't yet loaded, so load it $value = $field->type->loadPageField($this, $field); if(is_null($value)) { // if no value then set a default (like blank PageArray) $value = $field->type->getDefaultValue($this, $field); } else { // convert value to runtime type, like array of ints => PageArray of Pages $value = $field->type->wakeupValue($this, $field, $value); } } // if output formatting is on, let the fieldtype modify it for presentation (if it wants to) if($this->outputFormatting) $value = $field->type->formatValue($this, $field, $value); } } I'm not exactly sure how to document this beyond the pseudocode above, or if it even matters. I'd rather people think of it as just setting or getting values and everything works. But it seems like a separate page of documentation for each Fieldtype might help to answer some of the questions.1 point
-
I've done this before and used the method SiNNuT mentioned. Made the navigation with something like this: for($n = ord('A'); $n <= ord('Z'); $n++) { $letter = chr($n); echo "<a href='{$page->url}$letter/'>$letter</a> "; } Then pulled the items matching the letter from the URL segment like this (just like SiNNuT): $letter = strtoupper(substr($input->urlSegment1, 0, 1)); if($letter >= 'A' && $letter <= 'Z') { $items = $page->children("title^=$letter"); echo "<h2>Letter: $letter</h2>"; if(count($items)) echo $items->render(); else echo "<p>No items found</p>"; }1 point
-
I guess you would adjust a function like that to generate your menu so that is outputs links like <a href="/businesses/A/">A</a> <a href="/businesses/B/">B</a> Then you could use url segments and something like $page->children("title^=$input->urlSegment1"); Anyways, just thinking out loud here. Curious as to see what more seasoned pro's think. That function Mats linked to is efficient, even when you've got a lot of children? In MySQL you would do something like: SELECT DISTINCT LEFT(title, 1) as letter FROM mydatabase ORDER BY letter1 point
-
1 point
-
Just did my duties, and it took 5 attempts with recaptcha. But once again human was stronger than evil computer.1 point