Leaderboard
Popular Content
Showing content with the highest reputation on 02/23/2013 in all areas
-
I appreciate your concern, and I'll try my best to clarify. I'm the copyright owner of all code used in these modules (FormBuilder, ProCache). I'm also the copyright owner of the module interfaces and the ProcessWire core. I make a point not to rely on any code I've not written personally or that other people have contributed to. But I think you are looking for clarification on a bigger picture, so I'll instead focus on others that might want to create stuff in ProcessWire. We do not require that all websites and modules produced on top of ProcessWire's framework be free, and I don't know of any tool like PW that does. What I don't want people to be able to do is turn ProcessWire itself into a commercial product or be able to change ProcessWire's license. But I do want them to be able to use ProcessWire in the manner it was intended. ProcessWire is intended and built as a platform to manage and execute modules. I do not support extending ProcessWire itself with anything but GPL v2, but I do support ProcessWire being used as the tool it was meant for, without restriction. Years ago, in talking with other CMS developers for projects much bigger than ProcessWire, they'd suggested to use GPL v2 but make clear that the project encourages and supports an ecosystem that is not against commercial modules (which I've done on several occasions), so that there is no grey area. In fact, ProcessWire's API and architecture reflects this intention. When you build a site or module on top of ProcessWire, you are not extending ProcessWire--you are using it as a tool for exactly what it was designed for. For the sake of our users, I want to be clear that I consider a module running on ProcessWire no different than a website running on ProcessWire–they use the same API and in the same way. This architecture is intentional. And I certainly don't want people to think that their own websites, content, images, assets, etc. are GPL as a result of running on or being delivered by ProcessWire. For others making commercial modules, I am also okay with fees charged for 3rd party modules to be support/service/distribution fees rather than license fees (which is the route I like, though wouldn't require it). I don't support any kind of obfuscation though, and wouldn't list obfuscated modules in our directory. I need to be able to confirm that something is coded with attention towards security before I'd list it in our directory.7 points
-
Okay this was very short notice so it is incredibly rough! But this is for Diogo and all those others wedded to PW http://21stcenturyblues.co.uk/pwdream1.mp3 (Organized, try listening at less than 120db!)4 points
-
Good news, we actually have a working version of the module. When I woke up this morning, I got an email from Horst -- he had built the libraries and had them ready to go. With those, I was able to build most of the rest of it today. We'll probably send it back and forth once or twice to test, and then we'll post a version 1.0 hopefully within the next day or two here!3 points
-
I listen to this song: http://grooveshark.com/s/It+s+Too+Late+Snakehips+Remix/4ZKpcf?src=5 and some others Normally just http://mvsic.net because i'm a coworker on this site/network.3 points
-
most of the time I end up wearing my earbuds for two hours, but forget to turn any music on *edit: Martijn, love that Lollywood song and video3 points
-
The trick with counters is to remove yourself from skewing the count. I find that when writing blog posts I load the page several times and this would increase the count several times. You could go a step further with diogo's code and do this to exclude your account (superuser) from increasing the count: if (!$user->isSuperuser()) { $page->counter += 1; $page->of(false); $page->save('counter'); $page->of(true); } echo $page->counter; Or you could do the same for multiple roles if you have different editors for your site (my example has some fake ones named "news" and "sports" below): if (!$user->hasRole('news') && !$user->hasRole('sports')) { $page->counter += 1; $page->of(false); $page->save('counter'); $page->of(true); } echo $page->counter; Just a thought2 points
-
@OrganizedFellow - fixed @horst - this is on the Mobile template and now you mention it it does seem odd! I can't say I had noticed it before though. It should be possible to change this, but I will check with the devs of the forum software to see if they are rolling out an update anyway as you would think that the desktop and mobile versions should be consistent with topic links.2 points
-
I think this is what it all boils down to. The API actually means you're not altering/editing/refactoring any of the core code of ProcessWire. All modules simply leverage the functionality of the API rather than modify the codebase and I think that helps you get out of those grey areas. Section 2 of the GPL is where a lot of confusion stems from I think, but it refers to modifying the core program (ProcessWire) and your modified work then needing to be licensed under GPL rather than modules. I think these two paragraphs definitely apply to modules since they don't alter core code or copy core functions, but are in fact original works that simply reference the API functions so are exempt from section 2 as far as I can tell: The way I've read this, you aren't required to distribute commercial modules with a GPL2 license and actually shouldn't otherwise others can redistribute them freelyunder GPL2. Looking at the FormBuilder module readme.txt file ryan has wisely not distributed it under GPL. In fact after looking at the code he has gone to some lengths to ensure that all code for FormBuilder is packaged with that module and isn't borrowing bits of code from the source of ProcessWire itself, so as with other modules it simply interfaces with ProcessWire via the API and leaves the source alone. Going back to the last paragraph I quoted at the start of my post, ryan is also quite correct in that you use the API not only when building modules, but also when building the templates for a website and you are not expected to have to redistribute your website under GPL so I don't think it necessarily applies to modules either since you are using the API the same way in both instances (for those that don't know, you could easily recreate the functionality of some modules inside templates and the code would be identical in places - it's just neater having large chunks of code in modules where appropriate). I think my train of thought has arrived at the station. Not sure it all made sense, but from what I understand ryan has been quite clever with the API in that it grants quite a degree of flexibility when it comes to custom modules and licensing.2 points
-
It does seem to be open to some interpretation. The intention is definitely to avoid the interpretation of platforms like WordPress because it seems to have contributed to a very low quality-to-quantity ratio of plugins. It's also segmented their customer base as there are plenty of commercial themes and plugins, but operating off on their own. Though we are a very different tool from WordPress, and I can understand why the WordPress folks interpret it that way in their context… but again the underlying purpose of ProcessWire is different from WordPress. With ProcessWire, I want to support the entire community and am hoping that in the long run this helps us maintain a stronger community and higher level of quality than there is with WordPress. Though don't get me wrong, I do respect a lot about WordPress and it's leadership and the way they've been able to grow. I like the MIT license, but didn't go with it just because I was concerned that others might take ProcessWire and turn it into a commercial project or somebody might start selling ProcessWire under another name. A couple years later now, I'm less concerned about that. Mainly I just want to provide what's best for the users, and I think GNU does that. But I do think it requires understanding what ProcessWire is and isn't. I don't see grey area myself. But if others do and it prevents people from using ProcessWire, then I would consider a more open license like MIT. That's assuming you would consider it for your work with InputfieldFile. You are technically our biggest core contributor.2 points
-
Hello jploch, Welcome to Processwire forum. Just like you, I'm also a designer & I've clients of similar kind like yours. About 2 years ago, I was looking for a CMS which allows me to design dynamic websites but with my own design. I started Drupal(the very first CMS I tried), Joomla, Wordpress and almost 20 other free CMS but I could never get the required control on HTML. But then I started using Textpattern which is really really simple CMS one of the best solution for small to mid sized websites. I'm still using it, its been almost 2 years now. Textpattern is great when it comes to designing, just like Processwire, you have complete control on the design. But when it comes to making something that's out of CMS's limitations, you need a solution like Processwire. I'm just a week old with Processwire and already loving it so much that I'd probably give second thought to using Textpattern to any of my next projects. With Processwire, the possibilities are unlimited, you are never restricted to doing anything. Everything's just perfect, atleast for me it is. This is an honest reply from a designer, I hope this helps you in some way.2 points
-
I know this is an old thread, but it was one of the first results when I searched for 'ProcessWire Object Cache'. I wanted to store a lot of objects in the cache, so I just converted the MarkupCache module to an ObjectCache module. Nothing fancy; it just adds (un)serialize to the get/save methods. But that alone saves me quite a but of time in this project and results in cleaner (less logic) templates. The code is available for free (and at your own risk ) at https://gist.github.com/jkenters/50190892 points
-
Create a field "counter" with type "integer" and set it as "hidden, not shown in the editor" or "always collapsed, requiring a click to open", as you prefer. Put this code on your template: $page->counter += 1; $page->of(false); $page->save('counter'); $page->of(true); echo $page->counter; voilá2 points
-
1 point
-
Hey, guys. After much reading, learning, and experimenting with ProcessWire, I finally have something to show: humblebump.com It's not totally finished - there are some features I want to add - but I feel good shipping it as is and adding as I go. ProcessWire is great because I can add things as I learn. It's really flexible. Thanks for checking it out. Let me know what you think or if anything looks/works strangely.1 point
-
Just finishing a site for someone and deciding to create an editor role. Depending on how many templates you have it can be really long winded to work through them to sort out the permissions! This is a problem common to many systems. On Joomla (which has one of the most cross-eyed systems I have come across) one chap has made it a bit easier by creating a manager that basically creates an editable chart/grid. A ProcessWire equivalent would basically allow you to list all templates for each user group in a grid - templates down the left, permissions across the top. Then, you would be able to change permissions on the grid itself, live updating via ajax as you go. Apart from speeding up the process, it gives a nice holistic view. Another thought is to be able to group templates arbitrarily together, so that permissions changed for one in the group can affect all in the group. This has probably only specific uses for things like complex news sites. Though, that grouping ability might have other uses. Yesterday, I added a new field which I wanted to add to most but not all templates. If I had a group called "article templates" for instance, then there is the possibility to add a field to all templates within that group. To a certain extent, we already have the grouping functionality with tags - though it maybe that we need to use multiple tags because you may want to group templates together in different ways for different reasons. Anyway, two thoughts in one that are aimed at very complex sites. Joss1 point
-
1 point
-
My Chrome use to have Wikipedia favicon on my pw forum bookmark for years (never understood why...). It's no more there, I am all lost.1 point
-
Admittedly I don't use a treeMenu type function all that often myself. I think it just depends on the sites you are building. But I really like the solutions you've mentioned here--very elegant. Perhaps we should have some kind of visit() function like this in the core. Though unless it would be something most people would use, it may belong as a module or library. I'd be curious what other people think. Btw, I thought you might like the planned roadmap for ProcessWire 2.4. I'm hoping to finally get started on the full transition to PHP 5.3 here in the next couple of weeks, after PW 2.3 is final. I'm also going to try and get that alternate module configuration method in there for you, if you don't beat me to it.1 point
-
@Diogo. And if I want jazz, I just have to spin round on my chair and play the piano that is behind me!1 point
-
And achso. With those three you can understand any conversation Genau http://www.jazzradio.com/1 point
-
1 point
-
Joss, I have a good one for you. Genau. You will hear this all the time if you go to Germany1 point
-
@Horst Now, he swore to me that Cool was a German word and we and the Americans had stolen it!!1 point
-
And you have forgotten a per-field basis, which is almost the most useful! I think you have to look at it this way: Global Scope: This is changing read/write/edit/create/copy/own on everything that is page shaped (and not part of admin only) So a user can be given global edit rights (via a user role) and they can edit anything. That is sort of as it is at the moment. Local Scope (or page tree scope) - this is based on template hierarchy as now where the permissions on a template can be modified by a template higher in the page tree. Now, we need to break free! Template Scope - this would be the rights on a template that are exclusive, where-ever they are in the tree. This overrides other settings for that user, but does not affect the hierarchy. Page Scope - this is also exclusive (and there is a module for this) Field Scope - this would be either prevent someone from entering data and/or reading it. However, this might be extended to allow different interfaces (this is possibly only for textarea, but might also be for page field.) So, a registered user might get a very limited TinyMCE, but the editor gets the kitchen sink. Out of these, the first two are the only ones that that need to be managed globally, since the other ones work exclusively. However, as a separate function, it might be nice to list all exclusive permissions belonging to one user group or one user and to be able to either change them in their own grid or change the entire lot for that user or group. Something like that.1 point
-
Okay, just knocking together the very beginnings of the Kickwire profile. It will be very rough round the edges! At the moment, I have bashed around the menu Soma did for me for Bootstrap, so that works (but will need cleaning up a bit more), and I have a gallery function working. erm,,, About it so far Joss1 point
-
Hey Joss, Thanks for your reply. Discussions module looks really good. I checked out liferay.com as well. Since this forum that I'm creating will also include a score like yahoo answers which will be stored for every user and then reflected on his/her profile, I think it's better to create a custom forum using PW's module only. I will give it a try. Thanks again.1 point
-
1 point
-
Omg that happens to me too exactly.. Thought this would be only me. But I gues we are all humans more or less1 point
-
1 point
-
You can drop the get("/") and use just pages find. Or alternatively keep the get, and use children instead of find and drop has_parent. Also you might consider using page object instead of path on tag_seasons, but that really depends about your site... If you are sure that season paths don't change then that is clean and nice.1 point
-
Well to be honest, I'm just collecting all the pieces right now. But I've successfully created login, sign up, profile page & reset password modules, using PW's user module, so, it's something I will keep this thread alive with updates on how I'm progressing.1 point
-
Hi Soma, Looks awesome thanks very much! The Fieldsets without Labels => niiice Hoping to find some time next week for testing - also on IE.1 point
-
This is so common - I do things like this all the time, not just for menus. Does anyone else think this should be part of the core? For now, I wrote a simple flat function: /** * Recursive traverse and visit every child in a sub-tree of Pages. * * @param Page $parent root Page from which to traverse * @param callable $enter function to call upon visiting a child Page * @param callable|null $exit function to call after visiting a child Page (and all of it's children) */ function visit(Page $parent, $enter, $exit=null) { foreach ($parent->children() as $child) { call_user_func($enter, $child); if ($child->numChildren > 0) { visit($child, $enter, $exit); } if ($exit) { call_user_func($exit, $child); } } } With PHP 5.3 you can generate a menu (or whatever else) recursively as simple as this: visit( $pages->get('/menus/main') , function(Page $page) { echo '<li><a href="' . $page->url . '">' . $page->title . '</a>'; if ($page->numChildren > 0) { echo '<ul>'; } } , function(Page $page) { echo '</li>'; if ($page->numChildren > 0) { echo '</ul>'; } } ); Dead simple. I've seen the options for modules etc. that generate menus - they seem to grow out of control with a million options, and my own helpers seem to evolve the same way, and it doesn't jive with the beautiful, self-contained, simple templates you normally get away with in PW. Would it make sense to have a standard visit() method in Page in the core?1 point
-
Thanks this was helpful. Only change I had to make was for this section: <denyUrlSequences> <add sequence="inc" /> <add sequence="info" /> <add sequence="module" /> <add sequence="sh" /> <add sequence="sql" /> <add sequence="\..*" /> </denyUrlSequences> I had to remove the <add sequence="module" /> line. It gave me a 404 for the module section in the admin until I removed that.1 point
-
OK, thanks Ryan, I was led to believe that getting the core out of the root would improve security, but I can see that the htaccess does deal with that. Thanks for a great product, just started yesterday and so far really REALLY like what I see.1 point
-
$f = new Field(); $f->type = $this->modules->get("FieldtypePage"); $f->name = 'mypageselect'; $f->label = 'Select Page'; $f->derefAsPage = FieldtypePage::derefAsPageOrNullPage; $f->inputfield = 'InputfieldPageListSelect'; $f->save(); or $f->derefAsPage = FieldtypePage::derefAsPageArray; $f->inputfield = 'InputfieldAsmSelect'; etc1 point
-
Bought it as well and tested the speed of the delivery of pages through sitebeam.net and all pages now under 0.1 s which is a 10 in their book, so kudos to ryan! Here's a quote from sitebeam.net about what they mean with response time: ====================quote==================================== The response time is usually a measure of the application powering the website (e.g. a Content Management System or webserver) and the power of any servers running that application. Good application performance means webpages feel responsive to users, and the server is more likely to handle higher volumes of traffic. Poor performance will dissuade users and search engines from the site. ==========================end of quote sitebeam================= And the highest score possible is 0.1 sec and that is what all my pages were doing.1 point
-
Hi pogidude There are two: http://processwire.com/talk/topic/693-small-project-walkthrough-planets/ - which will take you very little time and show you the way PW works. From that you will be able to add pages and a structure. http://wiki.processwire.com/index.php/Basic_Website_Tutorial - which is longer and will take you through more of the concepts, but also in a step by step way. You don't need any experience for either, other than being able to install and access the files. @jploch There is no theme system for PW so it would be difficult to import themes like with Wordpress. The problem is that no two sites created with ProcessWire are constructed the same way - the only thing in common, file wise, is they have a home.php file. Some might have very obvious header and footer files, some may take a more delegated approach, some may do a patchwork system with lots of includes while others will use lots of functions. You may be using a bit of a frame work, a lot of a frame work or none at all. You might have every page in the site logically laid out on the page tree, or you may have pages grouped under different branches and then retrieved into your site in other ways. Wordpress dictates the way you put your site together. It has to match the Wordpress structure and if you want to use lots of different JQuery, Mootools or other systems, you really need to have them adapted into a wordpress plugin of some kind. PW does none of that. You are free to design your site however you wish. That is the huge difference that makes PW much more powerful than Wordpress and the resulting websites better dedicated to the client they are designed to serve without the client having to compromise their needs simply to fit the system that they are using. But it does make theming in the way you describe rather problematic - a theme you would create for your site would probably not fit a site I created at all.1 point
-
Well you've come to the right place, because a very high percentage of messages posted here have snippets of code. At least half of the messages I post have at least some code snippet. But we really try to focus on using code snippets to teach, and not so much for copy/paste. The reality is that ProcessWire is quite simple once you have a few basic concepts down. And once you've got them, you won't care about copy/paste, because you'll know how to do anything you could ever want. So our goal here is always to teach you how to fish rather than give you fish. That being said, there are no rules in that regard and all useful snippets are welcome.1 point
-
Hi Philipp, hi Ryan, the idea of Philipp was very inspiring to me. So I have thought a bit about that and came to conclusion that the most common denominator is Email. Every smartphone supports Imagesharing via Email, and also one can put up an Image from DesktopPC. I've put together some php-classes to access POP3-Accounts, retrieve and parse Messages to (first find ) and extract Images. I have uploaded it as a first 'proof of concept'. In this state it retrieves the _first_ image from Message, regardless if it is attached, inline-attached, if it is a Textmail or HTML-Mail or from other MultiPart-Mails. The Subject from Email could be the Title of a Post. Adding Bodytext could be an option, but is not very foolproof with that lot of different Email-Mime-Types, but would be posible with some more amount of coding-time. Interesting Option could be to send Title in MailSubject and a Image-URL in MailBody - fetch the Image from URL and process it. Also sending multiple Images could be possible. - So, as I can do the above stuff by myself, I'm not able to put the ProcessWire-Part together at this time. (Maybe next year, - but not for now ;-) ) My question is: "Philipp, can you provide the code / example for the Import into ProcessWire?" If you like, we can put it together to become it a Plugin Module, maybe? At current state my class provides a array with str-Title and str-Imagedata per Mail. (processing till there is on the fly without using diskfiles) The current Setup can be viewed here: http://biriba.de/pw_pop3/pw_pop3_test.php But, please, no stress-tests! Emailadress is in the top-left corner, you may send a picture by mobilephone to it (around 500 px or smaller would be fine, because all images get scaled down to 320px for the test) and reload the page after a minute or two. Horst1 point
-
I am working on a 200 page content rich Foundation based site (on ProcessWire of course) and it is working well. We have Lots of templates and leveraging lots of the features which made it worthwhile. What is nice is being able to focus on the site IA, the content, then layout, then layering styles on top like icing on a cake. Noticed some bugs, but they are pretty active on the dev side at Zurb. So not to much to worry about. The css from foundation and bootstrap can easily be made more manageable in size by simply including only the sass or less templates you need, based on features you are using. That goes for the javascript as well.1 point
-
1 point
-
Joshuag You might want to look at what I have done (er, am doing) with a bootstrap profile http://processwire.com/talk/topic/2411-bootwire-basic-twitter-bootstrap-profile/ Basically I am creating two - one that has bootstrap installed and then demonstration pages showing how some of the bootstrap elements work in this environment (which is actually straight out of the box, but it is nice to show it anyway) Then the second is the same things with just about everything removed - almost no fields, only a couple of template files, no content, just ready to go and put together so that more up-to-date bootstrap versions can be just dropped in place. The only extras in there is the standard Bootstrap menu system wired into PW and basic demo carousel and accordion files to save people having to mess around with these. So, that is the profile that is really useful to people - the first is just a reference. Joss1 point
-
Joshua, I'd actually like to do a full HTML Kickstart profile for ProcessWire, if that'd be alright with you. Maybe we could collaborate on it sometime?1 point
-
Hey guys, I've created an initial ProcessWire bootstrap repository if any of you want to use it. Try this, branch it out, do whatever you want with it. https://bitbucket.org/thatgibbyguy/base_html5_processwire The features of this bootstrap are: HTML5 Boilerplate Modernizr/HTML5 Shiv Javascript Libraries: Twitter Bootstrap Javascript Library jQuery-1.8.2 jQueryUI-1.9.1 jQuery.fittext.js jQuery.mobile-1.20 jQuery.scrollto-1.4.3.1 retina-0.0.2 CSS/LESS Frameworks: font-awesome (not 3.0 yet) KUBE Grid (in LESS) Twitter Bootstrap Library (in LESS - library.less) Base LESS file (style.less) Key changes to Ryan's initial download are just that I took each one of his calls and abstracted them out as includes. So Ryan's functionality has been abstracted into the following includes: Breadcrumbs -> breadcrumb.inc Page Titles -> pagetitle.inc Random Image -> randomimage.inc Search -> search.inc Sidebar -> sidebar.inc For example, to add the breadcrumbs to your site, simply include it in your markup like so: Also included is Soma's Markup Simple Module.1 point
-
Great idea. Perhaps this could lead to various PW "distros".1 point
-
Hi Martijn I have a very mixed opinion about any Wysiwyg editors - in an idea world I would probably have none, but I am aware that there needs to be some freedom too, and editors supply that. In bootstrap there are some very specific things that are not available unless you use styles. the "lead" style is one and a btn style is another (with what ever variations you want) Generally, the only one I bring out is the Lead style. The other styles I am talking about above are just odd layout things like H1-h6, paragraph line spacing and so on. These can be important, not because the user expects it to be identical, but because they should not be mislead as to the quantity of text - if on the front of the site you have a very open typography style, but in the back end it is very tight, it can be even more misleading. Having got that about right, when I use rich text editors, I often only use a couple of buttons - Bold and Italic, perhaps, or just one or two headings and a style. Basically, it is very, very specific to the use so that the user can see exactly what is expected purely by the lack of buttons around! Joss1 point
-
Joss, thanks for making this. Looks and works great! I've been thinking that we need site profiles that originate in a few of the different frameworks, so this is really a great place to start. A few minor points of confusion I ran into: I can't seem to click to the "About this site" or "About pages" except on the sitemap page. The top navigation only seems to let me get to the "child page example" pages. The prominent "read more" button doesn't seem to link anywhere. I couldn't find an "edit" link/button anywhere on the front-end to case navigating between front-end and admin. Something up with the site settings template (see attached screenshot). I'm thinking those TinyMCE fields might just need to span full width. Though since you've got 3 identical fields, this might even be a good potential use for a repeater? Also on those TinyMCE fields, the text seems to be running up against the left edge for some reason (see screenshot). Not specifically a problem, but a detail I figured I'd mention while I was making this list.1 point
-
The cache is not connected with any page. The only thing that identifies it is the name that you provide for it in the $cache->get('name-of-cache', $seconds); call. It only works for strings. It's intended to cache markup (HTML) per the name MarkupCache. But I don't see any reason why you couldn't serialize an object to a string and cache it with MarkupCache, but you'd have to do the serialization yourself. When the cache is cleared is determined by the duration you specify (in seconds) as the second param to the $cache->get() call. You can also configure it to clear on every page save in the module settings (Admin > Modules > Markup > Cache). There is also a manual cache clear toggle there as well. Modules, templates and core in ProcessWire all use the same stuff, so there's no limits there. You could certainly use it from a module if you wanted to. But get() your cache only when you intend to output it or save it right there, because cache calls can't be nested.1 point
-
Huh, why don't you also use MarkupSimpleNavigation with a little smile You can also include hidden pages if you add the selector "include=hidden". If that helps.1 point