Leaderboard
Popular Content
Showing content with the highest reputation on 10/11/2014 in all areas
-
Post title kind of says it all. Well, maybe not... Ryan, you have created just about the best gift a web-developer can possibly ask for. Every day so many of us get to open this gift and create something new with it. Your gift compounds and expands exponentially as our work courses through the Internet and brightens the worlds of clients everywhere. ProcessWire helps make all of us bigger, faster, stronger... Not only have you created a great gift for us all, but personally you are a terrific presence: consistent, professional, helpful, patient, creative... In other words, HAPPY BIRTHDAY! Thanks, Matthew23 points
-
Thanks guys! That's very kind of you. I'm officially old now. ProcessWire was also released as an open source project around this time of the year in 2010. While I don't much like having birthdays myself, I do like celebrating ProcessWire's birthday, and looking forward to the big 5-year birthday next year.13 points
-
This module is obsolete and will not be developed any further. Please use the ImageExtra Module instead. Overview This module allows you to add additional informations to an image (for example: title, description, link, orientation and any field you may need). If you want to, you can install FieldtypeImageExtraLanguage to get multi-language support. For more informations have a look at the readme. Installation 1a. Clone the module and place FieldtypeImageExtra in your site/modules/ directory. [OR] 1b. Download and unzip it from the module page. git clone https://github.com/justonestep/processwire-fieldtypeimageextra.git your/path/site/modules/FieldtypeImageExtra 2. Login to ProcessWire admin and click Modules. 3. Click "Check for new modules". 4. Click "install" next to the new FieldtypeImageExtra module. If you need multi-language support, you have to install the FieldtypeImageExtraLanguage module. 5. That's all - no settings are required but possible. Define your custom fields 1. Login to ProcessWire admin and click Modules. 2. Open `Images Extra Inputfield` Settings. The following fields are available by default: orientation - image orientation orientation values - values to use as classnames or identifiers for different image orientations title - image title to use for title/alt tag or/and caption, if empty, the content will be generated from the applications filename description - image description link - image link to internal pages If these fields are not enough for you, you can add any other field (for example _author_ and _location_) by writing it (separated by comma) in the field otherField. If you don't need all custom fields, you can easily disable them. One more exception is orientationValues. Here you can insert identifiers for classnames or similar separated by comma. This values will be available in a dropdown list. Usage 1. Under Setup and Fields create a new field using type `ImageExtra` or `ImageExtraLanguage`. 2. After entering the new field name and label, click Save. 3. Configure it depending on your own needs. 4. Save. 5. Add your new field to one or more Templates. Accessing the value This is no different than accessing the value of any other field. $image = $page->image->getRandom(); echo $image->title; echo $pages->get($image->link)->url For use with TemplateTwigReplace {% set image = page.images.getRandom() %} {{image.title}} {{pages.get(image.link).url}} Screenshots Here is a litte example how to access the new fields: // if there are images, lets choose one to output in the sidebar if (count($page->images)) { // if the page has images on it, grab one of them randomly... $image = $page->images->getRandom(); // resize it to 400 pixels wide $image = $image->width(400); // output the image at the top of the sidebar $sidebar = "<img src='$image->url' alt='$image->description' />" . "<h3>$image->title</h3>" . "<blockquote>$image->description</blockquote>" . "<p>$image->author ($image->location)</p>" . $page->sidebar; }7 points
-
5 points
-
Hi all, This one is special because it's for a project of ours, Erika and mine. http://muesli-cafe.com/ We are starting a crowdfunding campaign to open a breakfast place in Porto where we will serve muesli. This is quite a bold attempt because muesli is not common at all in Portugal and it will take a good communication effort from our part. We will need all the help we can get, if you guys want to contribute here's the project's crowdfunding page http://ppl.com.pt/en/prj/muesli-cafe-porto and you will be all welcome to Porto to taste our delicacies It will be great if we make it4 points
-
Happy Birthday Ryan!! The words Matthew speaks are true. I'm not sure if I'd still want to be in this business if I had never found ProcessWire, and I don't think I could work anywhere now that didn't let me use it. You've spoiled us!4 points
-
This module adds CSV import and export functionality to Profields Table fields on both the admin and front-end. http://modules.processwire.com/modules/table-csv-import-export/ https://github.com/adrianbj/TableCsvImportExport Access to the admin import/export for non-superusers is controlled by two automatically created permissions: table-csv-import and table-csv-export Another permission (table-csv-import-overwrite) allows you to control access to the overwrite option when importing. The overwrite option is also controlled at the field level. Go to the table field's Input tab and check the new "Allow overwrite option" if you want this enabled at all for the specific field. Please consider limiting import overwrite option to trusted roles as you could do a lot of damage very quickly with the overwrite option Front-end export of a table field to CSV can be achieved with the exportCsv() method: // export as CSV if csv_export=1 is in url if($input->get->csv_export==1){ $modules->get('ProcessTableCsvExport'); // load module // delimiter, enclosure, file extension, multiple fields separator, names in first row $page->fields->tablefield->exportCsv('tab', '"', 'tsv', '|', true); } // display content of template with link to same page with appended csv_export=1 else{ include("./head.inc"); echo $page->tablefield->render(); //render table - not necessary for export - just displaying the table echo "<a href='./?csv_export=1'>Export Table as CSV</a>"; //link to initiate export include("./foot.inc"); } Front-end import can be achieved with the importCsv() method: $modules->get('TableCsvImportExport'); // load module // data, delimiter, enclosure, convert decimals, ignore first row, multiple fields separator, append or overwrite $page->fields->tablefield->importCsv($csvData, ';', '"', true, false, '|', 'append'); Please let me know if you have any problems, or suggestions for improvements. Enjoy!3 points
-
3 points
-
IMPORTANT - DO NOT USE THIS FOR A PRODUCTION SERVER This is not strictly a ProcessWire tutorial, except it really is very useful for developing ProcessWire websites. I have just rebuilt my little dev server and it was a right pain - basically, I made the mistake of following a couple of bits of really bad advice. I eventually nailed down the right thing to do in the right order from about three different sources and have decided to write it up. This tutorial will take you through installing a pristine, new version of Ubuntu on an old PC, setting it up to work on your local network (this is NOT a publicly facing server), installing Virtualmin, Samba window shares, and setting up your first virtual server. The main problem I found with the help that I followed, is that no one seemed to link all these install processes together - so a standard install of Ubuntu with Apache would completely mess up Virtualmin and make it all a nightmare. This is a PDF file without screenshots, but to be honest, I am not sure how screenshots of command line is particularly helpful to anyone! Feel free to use this and let me know if it actually worked. NOTE: I am not a sysadmin, so if you find strange errors, you are more likely to find the answer through Google than by asking me - this is just the result of me pulling my hair out for a day or so. I certainly cannot guarantee that this is perfect or even the best way. Installing Ubuntu and Webmin.pdf2 points
-
Ya, those were on purpose. Quite difficult to achieve actually The menu item not getting bold in Firefox it's a problem though. I'm using text stroke because the bold was too strong, and apparently FF is not liking it. I'll look into it, thanks for reporting. That's actually a great way of seeing it, but I confess it wasn't our intention The whole concept of the corporate image revolves around handmade and individually done, thus the random and clumsy nature of all elements. The intention is that the menu also has this analog feeling. Yep, that one escaped my falcon eyes. Fixed now, thanks! I was aware of some problems with the touch, and tried already to fix them. I stopped when I was completely lost in the JS events and had to do other stuff, but will come back to it as soon as I can. Thanks for all your comments guys!2 points
-
To explain another way, $a .= "Hello"; is the same as: $a = $a . "Hello";2 points
-
Lovely site but unlike most i don't particularly like the menu. On mouse hover the expanding works. But on touch devices such as my smart-phone to me it doesn't work that well. Tapping the garbled letters you would maybe expect it to expand, and most of the times it does, but it also takes you to a page you are not even aware you clicked, like contacto or crowdfunding. Sometimes it seems to stop to function altogether. This is on Android 4.4.4 and recent Chrome and Firefox versions. It feels a bit random and unintuitive. I'm not sure a main navigational element should be this 'experimental'.2 points
-
2 points
-
2 points
-
2 points
-
Great site for a special project I really like the video and the lettering.js stuff you did to the menu. But the link to the campaign still doesn't seem to be there?2 points
-
@OrganisedFellow $a = "Hello"; // Assigns the string "Hello" to variable $a. $a .= "Hello"; // Tacks "Hello" onto the string that is already in variable $a. Assignment vs String concatenation.2 points
-
You could also say because of this particular template setup pw lost many advanced devs before even looking further. +1 what joss said. That's where I see PW struggles a lot. Living in between advanced and casual is always a bad idea/decision.2 points
-
When I rewrite my old simple site tutorial, I will be recommending the blank install and then I will take the most logical route so that the html is really staring people in the face. If the HTML is recognisable and familiar, they will have a better chance of understanding what they need to learn. However, I will, as I have done before, make sure that new users realise that this is not what you MUST do, but rather what you CAN do. The problem with tutorials, as with demo installs, is that you have to decide on just one method to avoid confusion - it is difficult to avoid newcomers believing that this is the way they have to do things.2 points
-
There are days where I get a huge great, miserable reminder than I am a composer/writer/advertising bloke, and not a sysadmin, coder or expert anything. Warning: if some bright spark has a solution for this, don't tell me - its too late. Having had a couple of odd problems I decided that I really ought to update php on my little Ubuntu dev box. It is 12.04 with Webmin installed. Turns out that this is not very easy to do - generally, the Ubuntu repositories only let you install the php that comes with your distribution - 12.04 only comes with 5.3. However, I found a neat little tutorial that added a repository so that you can upgrade - it is maintained by some of the debian folk. So, I went and did that. Trouble is, it also went and updated Apache to 2.4 (much to my surprise) and everything went wrong. First of all, Apache wouldn't start. It was complaining about everything. I spent 2 hours reading posts from everywhere and nothing worked. So, I uninstalled it, purged it and reinstalled it. Yep, it started! Except now, it would not recognise ANY of the virtual hosts. I started reading again. I tried creating new hosts in Virtualmin, but Apache did not want to know. I tried manually - still not interested. I read every post out there and tried every trick - but the things they said would be definitely wrong were fine, except the working thing. I tried a couple of other things which included restarting apache. Guess what? It wouldn't start again - gave off the same errors. I had backed up all my sites with Virtualmin, so I tried restoring them to see if I could force it to work. Nothing. So, I have found myself staring at a development server that isn't - serving that is. And, what is more, my meagre knowledge has simply run out, as has my patience. So, I have just double backed up everything - files, MySQL and the rest and I have just downloaded a new ISO of Ubuntu. And with that, I am going to reinstall the entire thing, format all the crap away into PBS Telethon, sort out some partitioning woes I had in the process (my old boot partition was too small, really) and start from scratch. It is not clever, it is not educational and it is a sledgehammer solution - but when you are not the Demon Sysadmin of Fleet Street, sledgehammers might be all you have left.1 point
-
@kongondo, I like the thinking but you never know when an extra X will get added to a size; particularly medium. In other words, I suspect the table would need to accept changes in either dimension. How about simply concatenating the x and y variable to give a key that can then have a simple value stored against it? So you'd end up with a table that had an indexed product page id, an indexed "key" and an "amount" column. The function to make the key would just do something like... function makeKey($size, $variation) { $size = wire()->sanitizer->name($size); $variation = wire()->sanitizer->name($variation); $key = "$size/$variation"; return $key; }1 point
-
I am looking for developer to help create an online scoring/standings system for the sport of Observed Motorcycle Trials. I am new to PW and found it based on my needs of this project. I have created one site so far with PW and I believe it is what I need using Profields and ListerPro. I have an example of a scoring system that is currently being used that uses an old version of Access. The example given is a different league and ours would be slightly different. I would like to create and events page that you could either register for or be added to by an event promotor. There would be a profile page for the competitor that would list his/her standings. Each event would have classes that riders/competitors compete in e.g. Expert, Advanced, Sportsman, Intermediate, Novice. The Rider would turn in his card at the end of the competition and the promoter would put the data into the system. An example of a competition card.(three cards on one sheet for printing) The idea of Motorcycle Trials is to complete a section without putting your foot down. Every time you put a foot down(dab) is a point. Our events usually has 10 sections in one loop and we do four loops for a total of 40 sections. The scoring is 0 for a clean(no dabs) a 1, 2, 3 or a 5 for failing due to a stall, missed marker or other reason. We then add up the scores and lowest points wins his/her class. Tie breakers are broken by the number of cleans. The sport is big in Europe but here in the states it is fairly unknown. You can PM me through this site or even call my Cell toll free in US at (888) 418-5030. Kind Regards, Mont1 point
-
Me again... Will your product sizes be fixed, i.e, always S, M, L? If yes, can your matrix be like this instead? | S | M | L | –––––------------------------ Red | | | | –––––------------------------ Blue | | | | –––––------------------------ Green | | | | –––––------------------------ Black | | | | –––––------------------------ meaning....only add rows with new variants but columns will be fixed...1 point
-
1 point
-
Small update committed for finer control over the overwrite option when importing. The new table-csv-import-overwrite permission allows you to control access to the overwrite option when importing. If a user doesn't have this permission, they won't have the option to choose overwrite. The overwrite option is also controlled at the field level. Go to the table field's Input tab and check the new "Allow overwrite option" if you want this enabled at all for the specific field. So if overwrite is not enabled for each particular table field, it doesn't matter what permission the user has, no-one will have access to it.1 point
-
OK, let me wade in as well @Charger, I don't think there is a module like that. Does this have to be a fieldtype or would a ProcessModule do? i.e. a custom view/page within the admin. The table cells would be input fields that contain any data you want. This is a similar idea to what Adrian mentioned above. The ProcessModule would just be a means of easily entering your data but these would be stored within the fields of your pages themselves. The advantage with this approach is that you could have a table of all your products, then clicking on an edit button/link would bring up the matrix. This would be built on the fly based on the number of your 'child pages'...Anyway, just thinking out loud here...1 point
-
1 point
-
This is not a distro, just a tutorial and definitely not for a production. I would not want to advise on security without serious expertise. As an old friend of mine who really knows what he is doing has pointed out many times, there are a lot of tutorials out there about security written by people who should be shot. (He is subtle like that) I think I will avoid joining that list!1 point
-
Thanks Adrian, your suggestion made the difference! I indeed had not set the parent template correctly. Apparently the underlaying templates inherited those settings. Updating the parent template to add children and create pages then displayed the "copy" button in the tree1 point
-
I love the way the menu works - never seen that done before. Good luck with the project.1 point
-
1 point
-
Happy, happy birthday Ryan! Indeed, you have spoiled us all - ProcessWire has made both myself and my clients very happy. So, thank you! (And drink lots of Beer! Haha!)1 point
-
1 point
-
I was using 2.4 previously. The new version looks more polished and I prefer the CKEditor. My first upgrade and it was super easy. Generally speaking though: the biggest improvement is with the PW documentation. It looks like it is catching up with the actual development of the system...1 point
-
i think it's intentional the links merge when scrolling and i love the effect (the site is about a food that is made of mixed cereals... you know?). great site and big ups (i do love muesli, too).1 point
-
1 point
-
Hello diogo , I've just noticed several things, I don't know if it's on purpose. And if it's just the GNU/Linux versions. When using Firefox 32.0 and Chromium 37 (LinuxMint) - I'll also check on Windows 7 later -, each time I hover the EN (or PT) link the font changes. The same occurs with the top-left menu links. Is it also "normal" that when scrolling down the homepage, for example, the 4 menu links "merge"? It seems to be because of: .collapsed #menu li:nth-child(n+2) { margin-top: -0.97em; } When hovering the "merged" links, they become 4 separated links again. Perhaps the menu links could just become smaller when "Ajude-nos a abrir um novo espaço de pequeno-almoço no Porto. Só temos 86 dias." becomes smaller. Just an idea (but perhaps it's an artistic choice ). In Chromium, the "active" top-left menu link becomes bold, but not in Firefox. Nice pictures!1 point
-
Just a guess - is it possible that the access control settings on the parent template don't allow the publisher role to create children? Does it work as expected for a superuser?1 point
-
@Joss: you should not use the PHP 5.5.9 - it has a buggy GD-lib, (if has a installed one ) You should use one greater than 5.5.11! You should run processdiagnostics when starting with new server setups. This one would have told you everything at once.1 point
-
It strikes me that there are two levels to this. The first is an obvious one. When you create a new page via a pagefield, either the page is opened in a modal ready for editing, or there is a link next to its listing in the page field that allows it to be opened in a modal. I can think of advantages to both. The other one is less obvious and that is the relationship between the the pages listed in the page field and the page that contains the page field. It could be argued that in some circumstances that one is an extension of the other and that maybe there might even be some symbiotic relationship. The most obvious one is with assets like images. If the page field is listing Categories, for example, and the categories have images (category logo/icon, maybe some other images like textures and so on) then when you choose a category for an article, maybe those assets should become available to the article (I know you can browse your way backwards through the system, but I mean more obviously available). There may be other inheritance options available that can be included programmatically and are accessible or optional from the included page/pages too. And being symbiotic, they would work in both directions too. I am not sure where that idea is going, to be honest, but it is just a feeling that this could be taken further as an option.1 point
-
Nice guide if you want to develop on a physical server. A year ago or so I switched to developing on virtual servers set up with vagrant. They're a breeze to setup and you can carry them with you wherever you go. Recently I discovered protobox which makes it quite easy to setup virtual machines with preinstalled processwire, wordpress or whatever else.1 point
-
Update: Today the last of the four sites went online. This last one is by far the biggest one: ~20.000 users, each with profile options which are searchable in this section: http://lu-web.de/lu-links/ (search for "Hannover" for example), additional options are available when "Nach Qualifikationen filtern" is clicked. Also there are eMagazines which are only viewable if the user is logged in and has an active subscription. To sum up: http://schaedlings.net http://kommunaltechnik.net http://beckmann-verlag.de http://lu-web.de1 point
-
Looks really nice! Only saw it on my phone but even there1 point
-
When I started working on my first ProcessWire site I liked that by simply opening the basic-page.php template file (obviously connected to basic-page template), I could instantly see how everything worked. It was easy to start from there, building more complexity and adding those "advanced tricks" if/when needed. Things like delayed output, appendTemplateFile/prependTemplateFile, etc. raise the bar of entry, that's just how it works. They're things you won't simply "get on the first sight". You'll have to dig through other template, config and README files (or docs) to understand what's going on. However you look at it, things that "just magically do something" may be helpful and ease your workload once you understand how they work, but also tend to add to the frustration a new user feels getting used to the system. Personally I believe that the "first dive" into a new system should be as easy and enjoyable as possible. Anything that complicates things is likely to increase the bounce rate.1 point
-
1 point
-
Just wanted to throw in my two cents. If you come at it as a front-end developer that's a complete beginner to CMSs, then PW should be very easy to get going. It's built around working the same way that existing web technologies work… Pages map in the same way that URLs do… Template files are just plain HTML/PHP files… the API is largely the same as a front-end API (jQuery)… and so on. So if you know your basic web technologies outside of CMSs, then you won't find a simpler system than ProcessWire. The problem is most other CMSs don't work that way. So the line gets more blurry when you've become used to the terminology and approach of another CMS, because PW can be quite different. Sometimes you have to unlearn what you know from elsewhere in order to appreciate the simplicity of PW. People are always trying to find complexity that isn't there, especially those that grew up on other platforms. PW is a system that rewards you by being curious. We aim to show you how to fish so that you can catch the big fish. We're not here to catch the fish for you. You don't have to know anything about fishing, but you should know how to yell for help if you fall in the water. And you should be willing to learn by example. I learn best by example, so this is the way I tend to teach too (and I recognize not everyone learns the same way). PW is a CMS and CMF, not a website builder. If you are curious and willing to explore, you'll find it is very simple indeed. Certainly far simpler than even WordPress in creating a custom website. You do have to come from the point of view of "I want to create and have the system adapt to me" rather than "I will create something based on what the system provides." If you already know what you want to create and it's something unique, you won't find a simpler path to get there than PW. WordPress is a different beast, in that it's basically saying "YOU WILL CREATE A BLOG or modify this blog and call it something else." Some people like that underlying structure… "okay, we're starting with a blog, what can we do with it?" Others do not like that underlying structure. Our audience consists of those that want to have a system support their original creation rather than mash up an existing creation. There was a PDF posted earlier that I think hit upon some good points, and I appreciate the effort that went into putting it together. The fictional character being scripted in the dialog is not our target. I can go into specifics if anyone wants me to, but I was definitely left feeling at the end of it that we have to be careful about hand-feeding too much or else we'll start attracting people beyond our support resources. Folks that want the fish cooked and filleted rather than folks learning to fish. Perhaps in time we will want to attract more of the consumer-type audience, but currently I don't know how to support users looking to find all the answers in a sitemap file. Keep in mind that unbridled growth is not necessarily desirable. Most of us don't get paid for most of the work we do here and we do best if we grow in a more healthy manner, attracting more thoughtful designer/developers that are here to learn and also contribute. Obviously the author of the PDF is one of the thoughtful ones (and the PDF is a great contribution), even if his fictional character isn't necessarily, but we'll welcome him anyway. But we will definitely be going through the PDF in more detail to learn and improve from it where appropriate, while keeping our audience in mind. I think we're doing something right, because our audience is growing rapidly. I'm nearly full time on ProcessWire now, and it's still difficult to keep up with everyone. At present, I like that our audience is largely open-minded, curious and thoughtful designers and developers. Somehow we've attracted an incredible quality of people and that's what makes this place great. We could not ask for a better group of people here. I'm reluctant to lead PW towards a website builder direction because I think that's when the quality of the community could go down, as people come looking to eat fish rather than learn, catch some fish, and throw some back. The reality is that part of our long term goals include converting the rather large audience that has outgrown WordPress into ProcessWire users. I'm convinced that we do that by giving them more ProcessWire, and not more WordPress. But at the same time, we always have to keep an eye on WordPress and learn. They've been lucky no doubt, but they are also doing many things right. So we have been and always will be working to make the WP-side of users more comfortable in ProcessWire, while also trying to help them grow by distancing them from the limited WP mindset.1 point
-
Maybe the way is a modal dialog on the templates edit screen that accesses the complete field creation and configuration options and as soon as you save and the modal closes, the field is added to the ASM of fields in the template? Otherwise you could be potentially stuck with needing to go back and edit the field settings.1 point
-
I think more direct workflow would be from template - possibility to create a new field and attach it directly to a template. I mean you pretty much always want to order the field, so you need to be on template view anyways.1 point
-
$parent = $page->parent; $current = $page->id; $overviewchildren = $parent->children("id!=$current, limit=4"); Or maybe $overviewchildren = $page>siblings("id!=$page, limit=4"); Edit: oh and welcome!1 point
-
I forget to check if it is current page. Just add || $p === $page to your if clause and it should work as expected: <?php foreach($pages->find("parent=/illustration, sort=sort") as $p) { if ($page->parents->has($p) || $p === $page) { $class = 'current'; } else { $class = ''; } echo "<li class='$class'><a href='{$p->url}'>{$p->title}</a></li>"; } I know that coding navigation is not the easiest job in the world if you are not experienced coder. I think we should have some more code snippets shipped with demo site or some kind of code snippets area on website. Or FAQ or Wiki...1 point