Leaderboard
Popular Content
Showing content with the highest reputation on 04/09/2014 in all areas
-
EDIT: This is obsolete, as of the fix is already in the dev branch 2.4.2, so better you fetch a new PW-Version from there ------------------------------------------------------------------------------------ Hi, I have added an UnSharpMask method to the attached ImageSizer.php that allow sharpening with the buggy PHP versions too. It is an implementation in pure PHP and doesn't use the buggy imageconvolution function from GD. But transparent png's even do not work nicely and get skipped from sharpening. And please, first test it before dropping into a production site. SO, if you want try it, here it is:5 points
-
You use PHP 5.5.x ?? Look here and above: https://github.com/ryancramerdesign/ProcessWire/pull/436#issuecomment-39912911 EDIT: PHP 5.5.9 and 5.5.10 are with buggy GD-libs. Try to avoid them, switch to 5.5.11+. I have send a pull request for ImageSizer to the dev branch to skip sharpening (imageconvolution) when running on this php versions.5 points
-
You draw this: -Home -- Stallions ---- Stallion 1 ---- Stallion 2 ... -- Broodmare ---- Broodmare 1 ---- Broodmare 2 ... -- Colt ---- Colt 1 ---- Colt 2 ---- Colt 3 I suggest: Home | +-- Horses ( enable urlSegments ) | +-- Name of the horse (add a Page field, [Stallions, Broodmare, Colt, etc..]) +-- Other horse +-- And another horse +-- etc. domain.de/horses/stallions/ -> stallions is a urlSegment, vallid segments are the ones from the Page field4 points
-
Can't remember even talking about the Modules Manager, but I guess talking about the ability to install modules from the backend in 2.4 may have come across as that to a long-time user. By the way, the talk led to German web dev/design magazine Screenguide asking me for an article about PW, so more exposure for PW in German(y) coming up. I'm not sure when that issue's coming out. Might be May or June.4 points
-
I am sure many of you here will appreciate this: Sorry, can someone move this to pub?3 points
-
3 points
-
Not sure if you already got this, but just to be clear: you don't just "receive" one or more results, you explicitly ask for either of those. A get() will return one result that you can use directly, even if the selector you use would return more, and a find() will return an array that you have to itterate through, even if the result of that select is only one page.3 points
-
The poem was originally by Richard Krogh The Oxford English Dictionary was started at Mill Hill School in a shed in the grounds (just by where I was brought up) And the reasons that it seems so confused is actually quite intentional. When the language was first rationalised, like many languages there were lots of very different spellings of the same word, depending on the origin of the writer (not the word) or the local dialect distortion or just a thousand spelling errors. The compilers had a choice - set a spelling style in stone and thus alienate huge numbers of writers, or look for evidence of the most common spelling in each case. They chose the latter, so bough and cow may sound the same despite different spellings, but they reflect what was most used in each case and not bloody mindedness of the dictionary editor or even the strict lineage of the word. Just to confuse things a little more, English has the largest vocabulary of any language in the world - by miles! It is also one of the most concise (by syllable count and grammar and therefore sentence length), though the Scandinavians on here will no doubt point out that their languages can be shorter. However, this is probably a direct result of them having a thousand words for "can we hurry this up and get inside; I am bloody freezing!" Such is the effect of climate on language...... (PS: Surprisingly, the British do not have a thousand words for rain, but we do have a thousand ways of complaining about it)2 points
-
@Ralf. The main thing here is first to deal with the parentage issue. The rest - description, owner, price, birthday, etc. are simpler. They are just fields that you can have in the horses template. The pedigree can either be single page fields, or you can create your Page's Tree to reflect pedigree as you've shown in your first post. Just to repeat, about clickable, like Martijn said, you can enable and disable that. So, in a nutshell - ALL horses must have a page in the backend (in your admin...i.e. as children of the page "horses" who is a child of "home") BUT not all of these horses pages' will be viewable in the frontend. For such, you will not output their links to the pages and if your web visitors try to enter the address to that non-clickable horse manually (phew! - that was long!) - they get a nice 404 page not found . if you don't know a horses parents, there's the Null Martijn suggested...2 points
-
You always can make a checkbox to enable a horse. Don't make a link to a horse where that checkbox is not set. And if a horse is accessed by URL, you can throw a 404 if the checkbox is not set. There are more possibilities here2 points
-
By the way, if you have too many horses to choose from in the page fields (and also to minimize mistakes), you can instead have two templates for the horses: "male-horses" and "female-horses". Then force the page fields "father" and "mother" "Template of selectable pages" to use these templates respectively.. This also helps if you want to output say, only the male horses, etc...You get the idea2 points
-
Building up on above....even more verbosity...!!! (last one, I promise!! - I got carried away ) We have single page select fields for each horse, i.e. "mother" and "father". And here we go...We let PW do all the donkey work (excuse the pun!)....PW will find the titles of this page's page fields and the titles of the page fields of those other page fields, etc, etc... echo '<h5>First Generation</h5>'; echo 'My name is: <strong>' . $page->title . '</strong><br>'; echo '<hr>'; echo '<h5>Second Generation</h5>'; echo 'My Mother is: <strong>' . $page->mother->title . '</strong><br>'; echo 'My Father is: <strong>' . $page->father->title . '</strong><br>'; echo '<hr>'; echo '<h5>Third Generation</h5>'; echo '<h6>Maternal</h6>'; echo 'My Maternal Grandmother (mother-mother) is: <strong>' . $page->mother->mother->title . '</strong><br>'; echo 'My Maternal Grandfather (mother-father) is: <strong>' . $page->mother->father->title . '</strong><br>'; echo '<h6>Paternal</h6>'; echo 'My Paternal Grandmother (father-mother) is: <strong>' . $page->father->mother->title . '</strong><br>'; echo 'My Paternal Grandfather (father-father) is: <strong>' . $page->father->father->title . '</strong><br>'; echo '<hr>'; echo '<h5>Fourth Generation</h5>'; echo '<h6>Maternal</h6>'; echo 'My Maternal Great Grandmother (mother-father-father) is: <strong>' . $page->mother->father->father->title . '</strong><br>'; echo 'My Maternal Great Grandfather (mother-father-mother) is: <strong>' . $page->mother->father->mother->title . '</strong><br>'; echo 'My Maternal Great Grandmother (mother-mother-father) is: <strong>' . $page->mother->mother->father->title . '</strong><br>'; echo 'My Maternal Great Grandfather (mother-mother-mother) is: <strong>' . $page->mother->mother->mother->title . '</strong><br>'; echo '<h6>Paternal</h6>'; echo 'My Paternal Great Grandmother (father-mother-father) is: <strong>' . $page->father->mother->father->title . '</strong><br>'; echo 'My Paternal Great Grandmother (father-mother-mother) is: <strong>' . $page->father->mother->mother->title . '</strong><br>'; echo 'My Paternal Great Grandfather (father-father-father) is: <strong>' . $page->father->father->father->title . '</strong><br>'; echo 'My Paternal Great Grandfather (father-father-mother) is: <strong>' . $page->father->father->mother->title . '</strong><br>'; The above will give you something like this... Midnight Run 1. First Generation My name is: Midnight Run 2. Second Generation My Mother is: Fairy Tale My Father is: Nostalgia 3. Third Generation Maternal My Maternal Grandmother (mother-mother) is: Angel My Maternal Grandfather (mother-father) is: Lucky Luke Paternal My Paternal Grandmother (father-mother) is: Seasons My Paternal Grandfather (father-father) is: Big Grey 4. Fourth Generation Maternal My Maternal Great Grandfather (mother-father-father) is: Bonnie My Maternal Great Grandmother (mother-father-mother) is: Blue My Maternal Great Grandfather (mother-mother-father) is: Breeze My Maternal Great Grandmother (mother-mother-mother) is: Dancer Paternal My Paternal Great Grandfather (father-mother-father) is: Stop That Train My Paternal Great Grandmother (father-mother-mother) is: Puzzle My Paternal Great Grandfather (father-father-father) is: Xmen My Paternal Great Grandmother (father-father-mother) is: Rosie2 points
-
2 points
-
2 points
-
This man Martijn is a clever man.....Let me attempt to expound on what he has said......Warning verbosity!! You do not need those 14 fields (to cover both maternal and paternal roots - 7 each). Consider this as an family tree. If you follow a branch, it will lead you to other branches, etc. In ProcessWire, there is something called chaining....Let's say you have a horse called "Midnight Run". You only need to know the parents to make a complete tree. Why? Because, in the parents pages, they will also have Page Fields which will contain their parents. So, "Midnight Run" has a mother called "Fairy Tale" and a father called "Nostalgia". Both "Fairy Tale"and "Nostalgia" have their own pages. In their respective pages, their parents are selected (via page fields). For "Fairy Tale" let's call them (her parents) "Lucky Luke" (father) and "Angel" (mother). For "Nostalgia", the father is "Big Grey" and the mother is "Seasons"....and so on it goes...."Big Grey", "Seasons", "Lucky Luke" and "Angel" also have page fields with parents selected, etc. Up to the 4th generation. So....2 points
-
You only need to know the parents to make a tree. As their parents have parent to and so on2 points
-
On a template named 'horse' add two fields with the type of Page. (both Single page) Name one field 'father' and the other 'mother'. ( Allow new pages to be created from field?, Set to yes ) I advice you you use Page autocomplete (not installed by default) as horse lovers know all the horses by name Make both fields required (force the editor to fill it in), but then you have to create one "Null Horse". the selectable parent of the 'horse' is always 'horses', The Null Horse is a Page with template horse and it's not an existing horse. When they don't know their parent(s) they can select the Null horse. When the Null horse is reached it's end of the tree. // Structure for horses, all on the same level home | +-- horses (horses template) \ +-- abram (horse template) | +-- betty (horse template) | +-- cinderella (horse template) | +-- dromedary | +-- etc..2 points
-
Which Module do you use? MarkupRSS ? I don't know if this helps, but at least it's try-able I updated Ryans MarkupRSS module as there was an issue with date & I added the ability to use enclosures. MarkupRSS is not yet updated in the core, but you can get the updated version with the link below. MarkupRSSEnhanced.module ( be aware that this one has a slightly different name )2 points
-
I have recently used this code to create CSV, works great. // array, with for each row an array $array = array( array('val 1 - row 1', 'val 2 - row 1', 'val 3 - row 1'), array('val 1 - row 2', 'val 2 - row 2', 'val 3 - row 2'), array('val 1 - row 3', 'val 2 - row 3', 'val 3 - row 3'), etc... ); $out = ''; $handle = fopen('php://temp', 'r+'); // temp read/write file-like wrapper foreach ($array as $line) fputcsv($handle, $line, ',', '"'); rewind($handle); while (!feof($handle)) $out .= fread($handle, 8192); fclose($handle); echo trim($out);2 points
-
Here's a video of a module we're working on that I thought you guys might like. The module, Lister, provides a different type of Page List than the tree that you usually interact with in ProcessWire. It gives you a table of pages with customizable columns, filters and actions. Rather than try to explain what it does, I figured I'd show you. This module also uses a new (soon to be released) Inputfield invented by Apeisa, developed by me, and sponsored by Avoine, called InputfieldSelector – it's what you see on the configuration screen as well as the Filters tab. I recommend bumping up the size/quality to 720p so that you can properly see everything. The video has no sound... I tried to do one with narration, but that didn't work out.1 point
-
1 point
-
I would like to present to you our (the Agency I work for) so far largest Processwire project, that I've built. We've launched it a few month ago, but I had allways forget to post it here. It is a campaign-website of various food-processing companies, located in the northern Germany. The purpose of the site is to present diverse jobs, apprenticeships, traineeships and study programs, which are avaiable in the companies to a wide crowd of young people. On this central point the companies can show how versatile the opportunities in the food-processing industry are. The site is not responsive, but has an alternative Mobile View, which will be displayed, if a "Mobile"-Device/User Agent is identified. Finally, one more big thank to teppo, for his essential advice to make the scaled images happen. foodstarter.de1 point
-
Foundation5 - I need to display additional fields after the body field which is declared as $body. But also in the list of children which is a function. Basically I am stuck again! - text input and area fields seems to be working fine, but selects are painfull. Maybe there is a function to grab selects and turn them into values to use in arrays? Anyway... In my basic-page.php is this code, which combines children list with $body: if($page->numChildren(true)) $body .= renderBodyNav($page->children); When I place my field after this code - it will be displayed under the children list (if it has any) and not directly after the $body variable. When I place my field in between - it will display, but only IF it HAS children. The function itself is this and displays the list with title and summary fields: function renderBodyNav(PageArray $items, array $options = array()) { $defaults = array( 'class' => 'body-nav side-nav', 'fields' => array('summary','myselect'), 'dividers' => true ); $options = array_merge($defaults, $options); return renderNav($items, $options) . renderPagination($items); } I can't simply put the single-select page field 'myselect' in the array, because it will just return ID. And the renderNav function (that is combined with the previous one) and displays as sidebar is this, where I also need additional fields: function renderNav(PageArray $items, array $options = array()) { if(!count($items)) return ''; $defaults = array( 'fields' => array(), // array of other fields you want to display (title is assumed) 'class' => '', // class for the <ul> 'active' => 'active', // class for active item 'dividers' => false, // add an <li class='divider'> between each item? 'tree' => false, // render tree to reach current $page? ); $options = array_merge($defaults, $options); $page = wire('page'); $out = "<ul class='$options[class]'>"; $divider = $options['dividers'] ? "<li class='divider'></li>" : ""; foreach($items as $item) { // if this item is the current page, give it an 'active' class $class = $item->id == $page->id ? " class='$options[active]'" : ""; // render linked item title $out .= "$divider<li$class><a href='$item->url'>$item->title</a> "; // render optional extra fields wrapped in named spans if(count($options['fields'])) foreach($options['fields'] as $name) { $out .= "<span class='$name'>" . $item->get($name) . "</span> "; } // optionally render a tree recursively to current $page if($options['tree']) { if($page->parents->has($item) || $item->id == $page->id) { $out .= renderNav($item->children("limit=50"), array( 'fields' => $options['fields'], 'tree' => true, )); } } $out .= "</li>"; }1 point
-
Thanks Horst, your commit works great for 5.5 Dazzy, try Horst's commit and you can keep 5.5.1 point
-
Is this possibly the issue: https://processwire.com/talk/topic/6077-reduced-image-quality-of-images-added-to-image-fields/1 point
-
@ Martijn I´not sure but i think I understood Home | +-- Horses ( enable urlSegments ) | +-- Name of the horse (Template "horse") +-- Other horse (Template "horse") +-- And another horse (Template "horse") +-- etc. And this are the Fields in the Template "horse"? - a Page field, [stallions, Broodmare, Colt, etc..] - a Page field -> horse_father - a Page field -> horse_mother - a Checkbox -> enable or disable a link to this horse - and each a Text/Textarea Field for description, owner, price, birthday, etc. But the first Question it run through my head with this solution is that at the end of the day I have one categorie "horses" with I don´t know 500+ Pages. How can the prospective editor quarrels this mass and taking care not to lose the overview? In my first thoughts I handle this with 4 Categories (Stallion/Broodmare/Colt and a hidden "selects_for_pedigree"). Now I understood the Power from your solution and ask me is there a way to handle it with 2 Categories ? - One for the OWN_horses (Categorie "Horses" from above - with all horses that have a fullfilled Page OR Checkbox = enabled) and - One for the selectable_for_pedigree horses (with also the template=horse but the checkbox = disabled and nothing else in it as the title) The benefit should be a small (~100), manageable number of pages in Categorie 1 (where the editors are weekly) and 400-500+ Pages in the other categorie which is only used for the pedigree. Some additional Questions: a) Is there a possibility that in the backend search (for the fields "Mother" and "Father") to carry out not only one category but over two or more categories? Could I do that with for example the Template? b) When later a new horse born, the mother-tree is clear I have it on the site but how is the "right way" to capture the Pedigree Data for the father-tree (when the horses not yet in PW)?? 1) New Page - paternal grandfather (with the name of his parents) 2) New Page - paternal grandmother (with the name of her parents) 3) New Page - Father (with the autocompletion function for his parents because Step 1 and 2) 4) New Page - new born horse .... => Result 4 Steps for 1 new horse OR is there a way in PWs Backend that this 4 Steps can be done in 1?? Again big thanks to Martijn and kongondo!!!1 point
-
Having been a creative for around 35 years, I have always worked on the two stage process. 1. Think of an idea 2. Get on with it. If I do get stuck it is on number one as delaying on number two would get me fired. One trick for not getting stuck on number one - when your client briefs you down the phone tell them immediately what your first thoughts are to get a reaction. 9/10 they will like your gut reaction and the one time they don't you have at least eliminated one route.1 point
-
Hi totoff, I guess it's not really a secret. I used to run a webagency and I'm used to crazy deadlines. So, no i was not working 24/24 at all. I dont know if this method would work for everybody, but here is how I work : - Give yourself a deadline - Spend 1/8 of the time allocated to plan ahead the project, the data structure, the features. - Use tools, libraries, frameworks you know by heart, and learn one new tool ( no more no less ) at each project. Small tool for a small project, bigger tool for bigger project. - If you run into a bug, give yourself 10min and/or 5 tries max to find the reason of the bug (the reason, not the solution). If not found, don't get stuck, wait the next day. - Don't optimize before going to prod. Wait 24h after going to prod to see bottlenecks, then add one day to fix performance issues ( same thing : only tools you know, learn one new every time ) - Use a good css/js library / framework. - Rely carefully on third party plugins : try to stay the master of your markup. - Work with repeatable design so your css will be repeatable and modularized. - Be the one who design the site : so you can balance difficulty - To do list, to do list. Plan the next day at the end of the day. - If you have the budget, use QA services ( like http://crowdsourcedtesting.com/ ) - Know the market you're coding for. Don't kill yourself for under represented browsers. - Use a laptop, so you can code anywhere ( when you have an idea, etc... ). - Practice, practice, practice1 point
-
1 point
-
with speck one catches the mouse, so maybe this is it.... However good you all have fun. Sorry for the typo!1 point
-
WWF sponsors a number of projects to track wildlife with satellite tags - this Processwire/Google Maps tool lets the public follow along in nearly real time. There are 6 different species and over 40 individual animals. http://wwfgap.org/tracker/ This is the second iteration using Processwire - it was a delight to work with. Feedback welcome!1 point
-
Thanks for the Leaflet recommendation! Google Maps is an enormous pain sometimes, so I'm happy to try something new. Maybe for version 3.0!1 point
-
You need to have been brought up in th sixties with a festival loving older brother - any colour becomes visible1 point
-
I have several ideas in mind for directory-based websites, and came across ProcessWire in my search for a starting point about a year ago. There are several good WordPress themes that are commercially available, but all the ones I've seen have various limitations that would preclude their use for what I have in mind. As a starting point for experimenting with ProcessWire, I had access to a list of churches and used that to develop a map-based directory here: Baptist Blue Book. The central issue for me was the map interface, and how to handle a reasonably large number of listings (~6,000) in that view (Most of the WordPress themes I had come across restricted the map view to a certain city, which I suspect was to limit the number of markers that had to be loaded.) A few notes: I'm using Ryan's Form Builder to accept suggestions for new listings. I liked having the packed solution for this, and the ability to control what happened to those submissions on the back end (e.g., the ability to hold them in a queue for review rather than posting immediately to the site). The church pages are subdivided by state (e.g., Directory > Texas > [church name]) by using a script to push a new listing to the proper sub-directory once it's approved. In hindsight, this may be an overly limiting approach, particularly for adapting it to international use, but once I had started on that path I needed to stick with it and focus on other issues. For the map view, a separate script pulls the latitude, longitude, and page-id from all listings and caches that in a JSON file. When the Map page is viewed, that file is retrieved and used to generate the markers. The content for the popups is only loaded as needed to minimize bandwidth. (Side note: I'm using MapBox for this, along with Leaflet and the MarkerCluster add-in.) All in all, I've been very pleased with the flexibility of ProcessWire, as well as the helpfulness of the community. I've also noticed several directory-type sites listed in the showcase, so I'm wondering if it might be useful to develop a module tailored to that application (or is each one so unique that this would not be feasible)? Any comments or feedback would be welcome. Brian1 point
-
So would this make sense then Soma? // $user is initially the user at time of page load // ... some code $users->setCurrentUser($u); $user = $users->getCurrentUser(); // ... carry on using $user as normal Unless maybe you could do $user = $users->setCurrentUser($u) but I don't know as I've not tested any of this - just thinking out loud.1 point
-
I needed to update this module as I needed the enhanced functionality. ( putting images, audio etc in the RSS ) my tip: Love ProcessWire1 point
-
<quote>pasting in snippets from all over the internet</qoute>, makes good gremlins.1 point
-
@pwired If you are learning about programming/developing then do invest time in learning some quality tools as you'll use then a LOT. Getting a good development toolchain and workflow setup will repay you many times the investment you put in up front. One thing you don't wan't to screw around with is a sub-par editor like notepad that doesn't even let you chose the character set to save a file in especially if you are pasting in snippets from all over the internet with diverse character encodings. You will waste your time and ours if you continue down that road. Do yourself a favour and learn something powerful like vim, textmate, sublimetext2 or one of the better IDE editors.1 point
-
This has come up already... Module config doesn't work with language fields. Since its stored as json and you are actually using inputfields here not fields. Look at LanguageSupportPageNames how it can be done. Apart from that your code would be wrong. It's InputfieldTextareaLanguage with inputfield type InputfieldTinyMCE.1 point
-
Is the mbstring extension for PHP loaded ? // If this function tells something like: Unknown function 'mb_strlen' // Then multibyte support is not funtioning/enabled <?php mb_strlen("test"); ?> Why the hell they have invented tabs in browsers ? This answer belongs in an other tab and in an other other topic (dumb me)1 point
-
Truth be told, I didn't fill in the code, because I'm not an expert with PW yet and have to look everything up in the API and cheat sheet. Here's an attempt at the code, however It's untested and probably won't work as is. It should get you started though. It won't take long for other users to correct any of my mistakes or provide additional help. //Assuming template is called keywords and field is called counter... //do something if we have q in the url (q=searchstring) if(!empty($input->get->q)) { $keyword = $pages->get('template=keyword,name='.$input->get->q); if($keyword) { //update the count $keyword->counter = $keyword->count + 1; $keyword->save(); } else { //create a new page $p = new Page(); // create new page object $p->template = 'keyword'; // set template $p->parent = $pages->get('/keywords/'); // set the parent, you can also use ID $p->name = $input->get->q; // give it a name used in the url for the page $p->title = 'My New Page'; // set page title (not neccessary but recommended) $p->counter = 1; $p->save(); } } Saving pages is discussed in more detail here: https://processwire.com/talk/topic/352-creating-pages-via-api/ Dave has an excellent point and doing this will increase sales. We used soundex I think. Sounds like wasn't available at the time. It's also worth mentioning that sometimes you're pay per click marketing dollar will go further when bidding on commonly misspelled keywords, because your competitors haven't thought to do this (if they had the cost per click would be high). There's no point in picking just any misspelled word. You want to make sure a lot of people are searching with the misspelling and that the cost per click is low. We used to even bid on our competitor's business names so that when their loyal customers would search for them our site would be right below them in the sponsored results. There's also a difference between "business name" and "businessname.com", which people commonly type into the search engines instead of the address bar. We used to bid on our business name and domain name for this reason. We made sure we were in the sponsored results and first several results of the organic search results.1 point
-
Just to add a little to sshaw's comments, logging search queries in that kind of way can also help identify searchers' commonly misspelt words. I used to work for an online sports retailer and one manufacturer (Daiwa) was commonly misspelt as 'Diawa'. It makes no business sense to return no search results on a simple misspelt query such as this. A simple preg_replace() can fix obvious user errors like this, but a more elegant solution using, for example, mySQL's 'SOUNDS LIKE', searching your stored search history can quite easily be used to generate suggestions like google does ('Did you mean "Daiwa"?').1 point
-
There you go, Julien http://www.foodloversdiary.com/good-stuff/my-kind-of-food-the-bow-tie-duck-review/1 point
-
If you wanted to take this further... Set up a template called searched_words (or whatever) Add an additional field called count (number field) template: searched_words fields: title, count in _init.php (enable this in config.php) write a few lines of code to grab the search keywords if they exist. //do something if we have q in the url ($q=searchstring) //check to see if the searchstring is already in the database //if it is just increment the count field //if it's new add a new page and set the count to one The advantage here is being able to pull out all of your searched words and phrases ordering by count. You'll want to know which words are more heavily searched, because it means your users aren't finding what they are looking for. I used this technique when I was a CTO for an online retailer. It helped us understand which products we needed to carry, the language our users preferred (e.g. sneakers or shoes), and it illuminated our blind spots (e.g. if a lot of people were searching for privacy policy, we knew we either needed to add a privacy policy or make it easier for our users to find if it already existed).1 point
-
Do not go down that road, it is a dark and miserable path where fellow travelers seek to fill your pages with a contagion of confusion and dismay. Aside from the occasional notion of "oh, this might actually work", you will find yourself subject to the chains of their template systems. At the end of the day, though your site may work, you may cringe at the mere mention of changing anything in it. And it only gets worse as your projects become more involved. (Speaking from experience.) Stay here, it's nice here.1 point
-
Exactly! One thing at a time. In PW things are not tied together like in other CMSs, this is what makes it so flexible. You will learn faster if you focus on the content. Test with a blank page, you'll see it's fun. And once you know how to print in that blank page exactly the parts of the content you want, it will be so easy to take any responsive theme and apply it to your site1 point
-
I wonder if your day-to-day computer is like mine - stuffed to the brim with software that I tried once, forgot what it was and never got round to uninstalling it. I sometimes through my lists and think "I wonder what that did?" I also have a downloads full of mystery zips - I definitely downloaded them for something at sometime, but cant remember what. This is not helped that I have managed to keep a lot of my archives going from the mid nineties - some of those bits and pieces are probably freebees from the front of mags that are for windows 3.11 ..... Pity my memory is not quite as good.1 point
-
@ryan since I am quite happy with PW 2.4 I kindly ask if there is any progress for the multi-language-image-description-field? I tried to make it by myself but it goes too deep in the sourcecode so that I decided to keep my hands off.1 point
-
The easiest way is by infected third-party applications. Also on Bower or Composer, its possible, that compromised packages can be delivered. I have currently identified no scenario targeted at Process Wire, rather it is one of my personal programming rules. Just do not make it possible. Asset files belong in the template folder. This approach I have always in development, regardless of platform or environment. I have some clients who work with sensitive data, and the safety requirements are very high. Therefore, this is my natural data schizophrenia.1 point
-
1 point