Leaderboard
Popular Content
Showing content with the highest reputation on 01/31/2014 in all areas
-
Hello, I want to tell the other children something: The "Green Monster" is really just a young man! I am 8 years old and also know ProcessWire. My father writes a lot on ProcessWire.5 points
-
Hey guys,I posted the anouncement almost everywhere I could, I think he might be able to get us up! as coming from Expression Engine, I do believe that this is the next future "ee"5 points
-
Whether we win or not today, guys, you've done an awesome job! Respect all round. Much appreciated... Either way, I see no way that PW will not be packaged by BN...they will do it....(just my take..)...signing off now...4 points
-
And by fishing, I mean the sort with a line, hook and dinner attached to the end. http://harlestonanglingclub.co.uk/ I haven't done any of the content this time - it is all the clients work directly onto the site, including any images. It is mostly a pretty straightforward website with a few bits and pieces. They can change the main header image as well as the large site background image. They can manage the slideshow of course. There is a link system with categories that automatically generates a list of places that also sell tickets. Repeater fields are used for things like the ticket prices tables. The fixture list is a bit of fun and thanks to various people here for helping with that a few months ago. It automatically sorts into Years, then months, then days. Graphically, all I did was create their main header banner and a map on the contact page. Since the "management" have a pretty dry way of writing, my main concern was to give the site a lot of air and openness to try and take away from that a little. The site was built with Bootstrap 3 in about two days or so. It has taken nearly three months to get the content sorted out I had one amusing issue. When I uploaded to their host (having persuaded them to upgrade from the Zeus server they were still on), I discovered that the page name for the admin I had chosen, happened to be one of a pile of aliases the hosts use for their control panel. So I could not login. Oops. Thankfully, changing the page name in the database solved the problem.3 points
-
Hi mlcb, welcome to processwire. A lot of beginners questions, like you are asking now, have already been answered in the forum. Just go through the forum channels to see if your questions are already answered there. http://processwire.com/talk/topic/4173-grouped-forum-posts-links-articles-tutorials-code-snippets/ What makes PW so different from other cms'es is that with PW you can directly use any html, css, php, etc, experience you already have. This is not the case with the other cms'es out there, where you have to learn their rules first before you can use them. In other words, PW can be used by both designers and coders even with little html and css experience. With PW you can make your own templates and fill them with your own api calls. Which brings me to what you have to learn with PW and that is it's powerfull api, http://processwire.com/api/ Feel free to work with wordpress, joomla, drupal, etc, so that you can compare them with PW and make your own conclusions. That is what I have done and made me see the open potential that PW has compared to the others. I wouldn't start with something so ambitious like that. Start with the tutorials first, learn the api and then work your way up.3 points
-
3 points
-
If interested in further developing your php skills, some handy tips I have received/learned from the pros in these forums include.. var_dump gettype - this will tell you the data type - object, array, etc. exit - this will allow you to go get some coffee ;-) - instead of smashing your head against the wall! (kidding!) Happy coding!3 points
-
Greetings, Hey Peter, I know what you mean! It's part of my routine to express -- out loud -- how much I love ProcessWire. I say it quietly to myself, I say it in forums, and I say it to clients. You mention your kids in the same context as ProcessWire. Well, my five-year-old daughter knows about ProcesWire already, or at least the amazing community we have here. She regularly enters my office, sees me on the PW forum, and asks to see that "green monster" that shows up on the forum pretty regularly. You came here from WordPress. Many of us have come here from various other systems. I suffered with Joomla for a couple of years prior to ProcessWire. But we're all glad to have arrived here now. Thanks for posting, Matthew3 points
-
Dear Ryan, After wrestling with a WordPress installation at work, I have come to even more deeply appreciate ProcessWire. Like I tell my children, "If I love (PW in this case) any more, I'll melt." So that's a quotable quote. "If I love ProcessWire any more, I'll melt." Not only does ProcessWire purge the cache of the home page and the parents of an edited or added article, it also refreshes the cache on the paginated section pages. WordPress does not do that, with the W3TC plugin, or the WP Varnish plugin (according to our WordPress person.) At http://significatojournal.com, I've set up paginated section pages of articles, and tonight I tested the template caching option: "Clear cache for the saved page and parents (including homepage)" After testing adding an article, the paginated section pages correctly moved the last article on the page to the next page, and shuffled the next pages as well. When I deleted the test article, the section pages all shuffled back. Zowie. For this WordPress installation, we'll have to revise one of the plugins to do that. Have I said I like ProcessWire? Kudos, Ryan, and all the Brilliant, Genius Contributors! Peter2 points
-
Yep it works, just make sure you're not connected to the Wlan when voting2 points
-
If you guys didn't vote with your handy, try that one out.2 points
-
2 points
-
Just received an email with these great news. Following the recent acquisition of Jilion by Dailymotion, their main product SublimeVideo is now for free2 points
-
2 points
-
Sorry for the slightly wrong steer. You should try is_object. But you'll also need things slightly different as well. This should work: function mymaketable($pageid){ $out = ''; $current_page = wire('pages')->get($pageid); $out .= "<table class='table table-striped'>"; foreach($current_page->fields as $field){ $items = ''; if (strpos($field,'DMCstats_') !== false) { if(is_object($current_page->$field)){ $out .= "<tr> <td>{$field->label}</td><td>"; foreach ($current_page->$field as $f) { $items .= "{$f->title}, "; } $out .= rtrim($items, ', '); }else{ $out .= "<tr> <td>{$field->label}</td> <td>{$current_page->$field}</td> </tr>"; } } } $out .= "</table>"; echo $out; } EDIT: just made a few fixes - I think it should be spot on now!2 points
-
HelperFieldLinks Just got a new module working that is only visible to superusers, and is handy for when developing a site, or investigate someone elses. 1. It adds a shortcut link to all fields on page in the backend. The link name equals the field name, so on very large complex sites with lots of fields, it can help to quickly see what name the field has. 2. It also adds a shortcut to the used template (in the template select field under "Settings" tab). They appear on bottom right corner of the field. Any suggestions for a better module name and general feedback is welcome. ProcessWire Modules Directory: http://modules.proce...er-field-links/ Direct github download: https://github.com/s...elperFieldLinks1 point
-
Please read this first as this is very similar to what I currently do: http://www.sitepoint.com/forums/showthread.php?1183418-Using-git-with-a-CMS-for-version-control-and-deployment. What I want to do with multiple machines I see all this talk about using the cloud with your local dev. environment and linking your local server to it so that you may edit and work on your files across multiple computers. I too am even contemplating this workflow and see why it’s so popular. However, it just seems like an extra step when there is Git available. Tell me if the workflow I am considering makes sense or not please. Although I have been researching for the four days, I am still new to Git and command-line, but I have become familiar with it over the weekend and really want to use a command-line/Git workflow. I have always developed sites the old-fashioned way (code, ftp, rinse, lather, repeat). Here is what I am contemplating: Develop locally in the default installation of WAMP. Commit files into Git local repo which my WAMP would be instructed to reference for it's "www and data" directory Push local repo to hosted private repo (Bitbucket) Pull hosted repo into live production server (not automatically since I want full control over when) If on another computer, pull / clone from Bitbucket and repeat My thinking is this could work with multiple computers as well, thus eliminating the need for Dropbox since the hosted repo will always have the most current version anyway. If I wanted to work on the site on another computer, couldn't I just clone the repo? The only hiccup I see is having to export/import the database each time. However, I am sure there is a way to automate this as well? I am interested in trying to come up with a way to keep the CMS's and it's database in sync as well. Is it possible to use the method I describe above? I’m curious to hear your thoughts and suggestions. Thank you very much for your time and knowledge. I would love to start a discussion on this because I really want to implement a better workflow, especially using Git with CMS's and if possible, it's databases.1 point
-
Hi all, My team has built a few ProcessWire sites, and we LOVE it - it is now our go to CMS. However, we have come up against the same issue on each site and wonder if/how any of you are managing it. I don't think the issue is entirely specific to ProcessWire, but due to the structure of the way PW stores data it may require an answer that only applies to PW. It's the issue of keeping a staging site database in synch with a live site. To illustrate: we start developing a new section, or modifying the functionality of a current section. All the while the client is making content changes on the current site, and in so doing changing the data in many different tables. Is there an approach, other than manually noting which tables have changed during our update, that people are using to manage this situation? With WordPress, for example, all of the content ends up in one big table, the structure of which doesn't change, so updates aren't that tricky. With PW data and structure being intermingled, it makes it a bit more tricky to manage. I'd really appreciate knowing more about how people manage this, even if it's just confirming that there isn't a better way than doing it manually. Thanks.1 point
-
A couple of relevant posts: http://processwire.com/talk/topic/4367-using-page-renderoptions-and-template-cache/ http://processwire.com/talk/topic/5394-page-renderfilename-confusion/1 point
-
Omg omg, we are going to actually win guys, this is all amazing !1 point
-
Huge thanks to those of you that have been working so hard on this and spreading the word. The support we're seeing here is really awesome, well beyond all dreams. There's only a couple hours left in the contest, but we are currently the closest to them that we've been all day.1 point
-
Download TextWrangler or BBEdit and 'zap gremlins'. Be sure your files are saved in UTF-81 point
-
There are a few different ways to do this, including htaccess rewrites, but this code from willyc is a good option: http://processwire.com/talk/topic/1799-routes-and-rewriting-urls/ A few other posts worth reading: http://processwire.com/talk/topic/4847-redirect-in-htaccess/ http://processwire.com/talk/topic/3275-hide-parent-page-from-url/ http://processwire.com/talk/topic/4521-how-to-customize-urls/1 point
-
Well, this will get you the full url to an image if you know the page id and its name: 'http://' . $config->httpHost . $config->urls->files . $page_id . $image_name Does the app know the url root to the page so you can build up the url to the image like that? Presumably this will never change, so you can hardcode it as: http://www.mydomain.com/site/assets/files/ and then append the page id and the image name. Maybe I am missing your point though.1 point
-
Adrian, what about just using the Pagefile::rename function from a hook after Pagefile::install ? I may not be understanding the issue in full. But couldn't you just do something like this: public function hookAfterPagefileInstall($event) { $pagefile = $event->object; $pagefile->rename('filename.' . $pagefile->ext); }1 point
-
Your IP already voted for this application, not you. Funny system, if my router renews the IP with the internet provider I can vote again, but in exchange, the new owner of my old IP can't. Today I'm working at the library, so I'm free to vote again. Soon I will make a coffee break and might as well take the computer to have yet another vote. Yes, clever voting system this from Bitnami...1 point
-
I will answer only one question. For webdevelopment / programming there should be one language and one language only. From the past till now, it was mostly english, so now we should use english. The community here is formed around interests ( rather then geological environment ) so we need a tool to communicate. This tool is english. If the past was different, and all programming started in spain for the first years, this community was talking spanish probably. I consider using any other language then english bad practise. I don't like when people using German, Dutch, Spanish, Chinese or any other language then english in programming or writing their comments. That said, I'm Dutch i'm bad with languages even bad with the Dutch language. --- <qoute>To my mind it is essential that the website's content is automatically displayed in the user's browser language as long as the website is offered in that language.</qoute> This is one of the things I really disagree. My girlfriend is from Czech, she has a Czech version of her browser/windows. Google honours those 'language settings', so for me it's almost impossible to work with her computer and I don't know how to turn it of. Every question and click google respond in Czech, i'm totally lost with her computer. It's doesn't matter for google if I chose google.nl or google.com or google.de I think the only language 'switch' that can be made is through domain name, as domain name is choosable for the visitor. Why doesn't Google trust the user here?1 point
-
Fantastic - works like a charm. I'll keep this function handy for other projects. I've just got to slowly read through it so i'm sure i understand it all. Thanks1 point
-
Is this OK that I am (laughingly) complaining a bit about another CMS? It's a pub and that's where people do that, right? I took on a WordPress project after 7 years of no WordPress. No surprises: exact same level of frustration. After admiring the built-in "Press This" bookmarklet feature for a few seconds, I was amazed to see these dashes holding the conceptual page model together. With sortable columns, dashes start to fly everywhere! Everyone gets a dash. After looking that over, I had a back-and-forth discussion on "where is the posts page? Maybe this page should be the posts page" and it was making me feel like I had wandered back into the asylum. I pitched ProcessWire as a backend for this project, but it unfortunately it was a decision for a different team. It's also weird how there's nothing even close to, say, $input->get->foo in WP. You have to head on over to functions.php and start writing a filter so you can capture that stuff if you need it. Oh well. I'm thankful to have learned enough PHP from ProcessWire that I know what to look for and can work around a lot of stuff that they recommend you install plugins to fix.1 point
-
Haha Similar experience from here: my six year old son recently asked his mom "did you know that dad has a friend called Ryan, who lives in USA?"1 point
-
@adrian, that config is a monster you know ok added style to overwrite max width of popup. Pushed an update with some translations added1 point
-
Hmmm, You could easily do this with a very simple module, no? E.g. make use of Soma's latest jQuery Data Tables helper class (with Ajax goodness, etc) or PW inbuilt MarkupAdminDataTable. I'll post a link to a short demo video here and some code in Github to show you how simple this can be accomplished..... Edit: added video demo code: Will upload soon....it is very rough code, a proof-of-concept... ;-) As you can see from the video, a couple of things could be improved! Uploaded here The code here is so trivial it shouldn't even be upped to Github. However, I hope this helps to show newbies that PW is dead-easy!..even for PHP newbies like me! Pete, sorry to hijack your thread1 point
-
There you go. Pushed a new version to GitHub and updated modules directory + opening post accordingly. Changed the name to Admin Save Actions (though the damage has been done). Don't know how this affects those trying to update the module via ModulesManager - probably you need to remove and reinstall the module, sorry for that. Added "edit next sibling page" as described in some of the earlier posts. Basically does what Kongondo's version does too - a bit different route though. There's also a config option to set a safety net for this: option will not be show if there are more siblings (defaults to 100). Option is not shown also when there is no next sibling available (root page or last visible and published page under this parent). @Martijn: I didn't go for hidden/unpublished pages at this time. But I'm thinking of modifying this a bit so that when the edited page is hidden/unpublished also siblings are searched with "include=all". Do you think that would be logical?1 point
-
A couple of PW modules: https://github.com/jdart/FieldTypeRate https://github.com/apeisa/CommentRatings Also some other relevant forum posts: http://processwire.com/talk/topic/2126-rudimentary-5-star-rating-system/ http://processwire.com/talk/topic/3630-need-slight-variation-on-existing-module/ Hope something in those is helpful.1 point
-
It minimizes the images the same way thumbnails (e.g. ->size(120,60)) are generated. The image takes the trip to minimize.pw and returns. So the first time, your page loads you will notice the longer page loading speeds. After that, the minimized image is served from your disc. It takes around 15seconds to compress 5MB PNGs to 1.3MB PNG or to compress two 6MB JPGs to 3MB JPGs. The next milestone for the module is a feature where it will replace the image directly after upload - so the minimized version will be the only version on your disc and the performance should be better. Another plan includes an async method to send the images back "behind" the scenes - but only if there is a need for such a function.1 point
-
Ah just read end of post again.. mobile. So just to clarify. This hook only modifies the url returned from a $page->url. Not handle the request of that url. You only half way there. To catch that url which doesn't exist you would need enable url segments on home template and write a handler in template file. Check for first segment and if a name found render that page instead. For any other you throw a 404.1 point
-
Remember boilerplate from the modx days but never got my hands on it. Deserves a pw profile with boilerplate to download.1 point
-
Templates -> Filters -> Show System Templates : look for "admin" template. Edit and go to -> "URLs" and look for https etc.1 point
-
Ok there you go. Just added a new module to ModulesManager 2.1.0. You'll just need to update the ModulesManager, after that you'll find the new module ready to install. Modules Manager Notification 0.1.0 Sends out update information for installed modules to an email This module required LazyCron core module installed Note this is something you want to run like once a week When the lazy cron is running the request will be blocked for a few second, this is currently due to how the lazy cron works. Maybe we will be able to optimize this in future. After install you need to define the interval, an recipient email, subject and optional a "from" email address. There's also a checkbox to activate/deactivate the module running the lazy cron job. Note that this requires someone to hit your website (or admin) to get executed, so interval times can vary. It will then refresh the module feed from modules.processwire.com on your installation and check for new modules. If any found it will send out an email notification to the email specified in the form of: Found following updates for installed modules: Module: TextformatterHannaCode v0.1.4 Found new version available: v0.1.5 More infos at: http://modules.processwire.com/modules/process-hanna-code/ –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Module: InputfieldCKEditor v1.1.3 Found new version available: v1.1.4 More infos at: http://modules.processwire.com/modules/inputfield-ckeditor/ –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– It will also save a notification log modulesmanager_notification_log.txt with an entry when the lazy cron was executed in your site/assets/logs/ folder.1 point
-
I don't think you can use the user pages to use access control for front end. User pages are special pages and I think not meant to be used as viewable pages on the front end anyway. Since you're speaking of front end users, you just get the users the members "can view" according to some "virtual" rules and use API to list their profiles using a dedicated page/template. I.e. /users/profile/xyz and use urlSegments to control the listing. On front end you're free to check for access and do what is needed to show or hide stuff. You member role would also be just a guest role with only view access since they won't need or have admin access. So it's up to you to control that in your templates. Just a dummy example. if($user->hasRole("member")) { $members = $users->find("roles=member"); .... } else { echo "Sorry, you're not allowed to view."; }1 point
-
I have used a lot of time with this issue. The bigger and more complex sites we build, the more "ad hoc" UA is needed. Defining access on "who can access/edit news" is not relevant when your site has 20 news archives for different groups. Or when you want to create new "workgroup" and choose who can access that. Of course all these can be build custom, but it is lots of work and PW doesn't provide anything as a base for that. I have module baking that solves this very issue. It has basic functionality already made and it for most parts bypass the template based UA totally. This is by intention very simple at this first stage: just view and edit rights and user that belong to groups (one user can belong to many groups). Not sure about the licensing yet, I might release this as a commercial module, but also happy to transform it to a open source project for community (if you guys feel this is promising). Ryan has seen the code and we did hit one core problem: circular reference. My module requires page field that many times references itself. This creates problems in certain situations: actually only when page is saved but no changes is made. It is not ready yet, but the basic functionality should be there. I have build this few times already and always from different angle. I believe this is the most simple one (see the find hook that has been the problem in those previous modules). Anyways, I know at least Teppo and Nik have been interested in this, so here we go: https://github.com/apeisa/UserGroups/1 point
-
Maybe we can make the base color adjustable. A single line of CSS or a line in $config. Here are the only PW blue, green or black versions: I wouldn't make the topic more complicated than it is. We can right now customize the admin theme and write modules. This discussion is good, because we ould create some interessting ideas for future modules - build for the backend of PW. The idea of a blank admin theme is great. This could be layed out as a kit to develop your own admin theme. (In addition, PW could ship with a theme created on top of this blank master).1 point
-
Hi and welcome to PW. Simply set up a new permission called: page-publish and make sure that is checked for the admin user's role and unchecked for the others.1 point
-
SImply replacing a file with the same filename isn't usually a good idea because browser caches may not recognize it as a new file. Not to mention, the filename may have significance for the document, containing version numbers or the like. Basically, a replace by filename has a lot of drawbacks. You need a reference separate from the filename. In ProcessWire, that reference can be a page (for single file fields), or tags (for multiple document fields). For document centric sites, I usually have a dedicated space where file links go, rather than trying to manually link them in rich text editor fields. For instance, a sidebar with links to the files. If I need the links in body copy then I'm going to use a Hanna code there... but prefer to isolate file links to a dedicated and consistent space. If I want to list all the files on the current page with the tag "application" then I'll do this: <h3>Application Files</h3> <ul class='files'><?php foreach($page->files->findTag('application') as $file) { echo "<li><a href='$file->url'>$file->description</a></li>"; } ?></ul> If I want to pull all files with the tag "2013" (current year) from a page /shared/files/ then I'll do this: $year = date('Y'); $files = $pages->get('/shared/files/')->files->findTag($year); if(count($files)) { echo "<h3>$year Files</h3><ul class='files'>"; foreach($files as $file) echo "<li><a href='$file->url'>$file->description</a></li>"; echo "</ul>"; } If I have a page that I always want to print a link to the latest application form, rather than using tags, I might keep an individual page dedicated to that file (with a single file field) below my /shared/ page. $app = $pages->get('/shared/latest-application/'); if($app->file) { echo "<p><a href='$app->file->url'>Download latest application</a></p>"; } Any of this code could work just as well in a Hanna code as it could in a template file. The point here is to abstract files away from filenames, to pages or tags (at least on large document centric sites). This scales well, prevents possibility of broken links, and is simple and foolproof for the client.1 point
-
Ok, got it - and I have to say once again: "Thanks, Soma!" Here the thread and the post with the solution: http://processwire.com/talk/topic/1272-new-page-nav-in-admin/?p=11276 The important part is the setting of the moduls permisson: public static function getModuleInfo() { return array( 'title' => 'Import Tabelle als CSV', 'version' => 103, 'summary' => 'Import CSV files to create ProcessWire pages.', 'singular' => true, 'autoload' => false, 'permission' => 'page-edit' ); In this way the modul is editable by a non-superuser and can be accessed through the top navigation.1 point
-
This does work: $("#Inputfield_roles_37").prop({ checked: "checked", disabled: "disabled" });1 point
-
There's no "easy" way. There this new module by Ryan, http://modules.proce...eldtype-concat/ but that isn't for this case and use in find(). But you could find the pages and foreach the resulting PageArray, then cycle them and calculate the prices and store them to the page temporarely. Then sort by that property. For example: foreach($products as $p) { $p->endprice = $p->price + ($p->price / 100 * $p->vat); } foreach($products->sort("-endprice") as $p) { echo $p->endprice; } You could make a module that creates a function to $pages, so you could use $pages->findProducts();. Or have an php include with functions that you can use the above with a simple call like "echo getProductsList();" in your templates1 point
-
Good points. The #1 idea sounds interesting and I like where you are going with that, though I don't think it's safe to consider the meta data independent from the content to the point where it would be safe to version them separately. The recorder modes (#2 & #3) would be great if it weren't for the issue of primary keys you mentioned, but maybe there are places where it could still work. I think that anything that involves merging two versions of the same site has to treat the other's data as totally foreign. Things like IDs have to be thrown out unless you are giving all ID generation authority to one or the other. Personally, I have never seen this as a particular problem to be solved because I've never seen the ability to do it, never expected to be able to, and not sure I could ever trust it if it existed. Nevertheless, I'm enthusiastic about exploring the possibility. But I'd be scared to death of having to provide support for such a feature. Something that I've got a higher comfort level with are specific import/export tools. For instance, a tool that enables me to connect my PW install with another, and browse the fields, templates and pages. Then I can click on "import" and have that field, template or page(s) created on my system too. If there's some matter of meta data to be resolved (like a new page reference with non-existing parent), then I know it then and there and can adjust my import sequence accordingly. If I'm modifying data rather than importing, then I can have the opportunity to see and confirm what's going to happen before it takes place. If we're talking about going between two servers that can't talk to each other, then copy/paste of JSON data from one to the other in the developer's browser is another way to accomplish it. This process seems more supportable because the individual site developer still has some ownership over what's happening.1 point
-
I always just copy the files, dump the DB, and import with phpmyadmin on the new server, then update /site/config.php to point to the server's DB. But if there's some suspicion about an incompatibility with the server, I'll try to install a blank/default-profile copy of ProcessWire just to make sure it works (and I'll delete it afterwards). Sometimes I have to do a recursive update of the permissions of /site/assets to make it writable, but rarely. I need to get this actually built into the TinyMCE module so that people don't even have to think about it. +1 on the todo list.1 point
-
Ryan, Many thanks for this module, I just used it to add 436 users. There were a small handful of things that weren't initially clear, so I detailed them below for anyone else trying to import users. If you plan to import passwords, you need to open the module and add FieldTypePassword to $fieldtypes protected $fieldtypes = array( 'FieldtypePageTitle', 'FieldtypeText', 'FieldtypeTextarea', 'FieldtypeInteger', 'FieldtypeFloat', 'FieldtypeEmail', 'FieldtypeURL', 'FieldtypeCheckbox', 'FieldtypeFile', 'FieldtypePassword', // add this line ); Since users are pages and all pages require a title, your CSV will need to have a title column. In my case, I duplicated all the usernames into that column — so name and title are the same. In order for title to show as a connection option during your import, you need to add the title field to the user template file. To do this, go to: Setup > Templates (open the filters area at the top, and choose "show system templates". Select the user template and add the title field. One other thing to note, be sure to have a roles column in your CSV with roles for each user. I forgot that during my first test import and all the users were set to guest. You should be all set to import your users.1 point