Leaderboard
Popular Content
Showing content with the highest reputation on 01/01/2015 in all areas
-
As someone who has been using WP, Joomla and Drupal before Processwire, to build a variety of websites across industries, here's my take on this: Wordpress is good as a one time solution to the problem. Problems can occur when a client comes back to you, 2 years after you have developed the website, asking for additional functionality. Example, please add woocommerce to the site. This means the website needs to be upgraded to the latest WP version; the theme will surely break after the upgrade and would need to be fixed; you then add woocommerce and theme it anew to fix the site. This is as good as redoing the whole thing. The same problem exists in Joomla and Drupal too to a greater or lesser degree The issue of creating a custom solution for the client, as @joss has mentions above, exists with Joomla and WP. You are always working around modules, plugins and code to create. The result is always an inelegant solution. Eg: This content piece comes from modules/ widgets. That piece comes from content area. The other page comes from K2 and so on. The content on a page comes from different places on the backend with most of these systems and that's counter-intuitive. Clients will find this difficult to understand without some practice. PW is so much more elegant, easier and intuitive for both the developer and the user. Everything can be made logical and sensible in PW. The biggest problem is bloat caused by too many plugins: bloat in code, bloat in css, bloat in js. Drupal is a beast. WP and Joomla, don't lag behind. Followed by breaks caused by plugin/JS incompatibility and the time required to fix these in these systems. I recently trained a client on a system built with PW. It took all of 20 minutes. For WP, I have to gives a long lecture on posts and pages and the difference between them. I have to explain widgets and demonstrate which elements in a page come from where. As mentioned elsewhere in this forum, WP/ Joomla/ Drupal are safe bets for clients. One way to explain the benefits of PW perhaps is to demo the client a test site which you have and ask him/ her to poke around, or guide the person through it in all of 20 minutes. Perhaps you could have a WP site too to contrast the ease of PW. That should seal the deal.5 points
-
What made you leave WordPress in general Response: We had to leave WordPress because we spent majority of our time fixing issues stemming from either WordPress or 3rd party codes such an example was the infamous Jetpack spin.js it kept breaking my Dojotoolkit codes. Like one of the authors here mentioned you never know what to expect when you upgrade a plugin it was nerve-wrecking. sometimes while trying to debug a site the moment you set WP_DEBUG to true you'd be amazed about the amount of sheer errors in 3rd party plugins. Personally I've read codes that make me scream in error. The biggest issue why we left WordPress was that it was extremely difficult to do simple things in WordPress if you need to create a form and save the action, you need to call ridiculous hooks and actions. It became depressing it was this moment we decided to move to something as we need to expand to something lean, modular and adopts PHP 5 Standards. How you discovered PW Response: Thanks to my Google-Fu however the first time i searched "WordPress Alternative" it referred me to a site called CMSCritics a site am very much familiar with but never gave it a thought. Processwire was on the list but i will be honest i simply skipped it because I was searching for anything "MVC" at that point. I wanted something similar to Zend and Yii so the moment I saw Pages API, I simply skipped it and checked others out however it was either others were tied to XYZ Frameworks or terrible documentation. Till i came across another specific CMSCritic article. Wordpress vs Processwire. you see seeing Processwire on the list wasn't enough but this article explained my pains in WordPress and showed how easily they overcame it in PW. What sold me was the ease you could easily write PHP CLI PW Codes. That was the moment I decided to call my client and say 'Hey we found our framework" What you like about PW Response: The Admin Interface is just Superb especially the Reno Theme, but What i love most about PW is this e.g wire('ModuleName')->doSomething() and Module Dependencies, I have experience with Zend and Yii and PHP 5 Codes and the beauty about this is that. I can build my Modules upon existing Modules meaning PW becomes lean as we don't need to re-create the same code, we can simply leverage on others. Those coming from Composer will understand what this means. I also love the fact that PW Templates are simply php files. I love the concept of injecting Data Containers into the pages. This reminds me of Dojotoolkit Templates and Data so I was hooked with this. Any client feedback you've had where a client too moved from WP to PW Response: Sadly no because am 2 months into this, but my website is being re-built into PW, but I have showed our Client the backend and the ease of code, She is a developer too so she's extremely excited about it because we've had sleepless night about WP for the past 3 years. Hope this helps3 points
-
Most Marketing people I meet have heard of WordPress. It seems I'm repeatedly being asked if I "do wordpress?" when I meet new clients and start talking about content management. Without knowing exactly why their project would be better suited to a more accomplished CMS, most marketing people simply reach for WordPress because "thats what everyone uses right?". It's a challenge we all probably face. In 2015 I'm trying to strengthen my reasons for clients to be more "open" with their CMS choice and at least consider other options. With that in mind, I am wondering how many members here are ex WordPress? I'm trying to get a rough ideas of numbers and some brief stories too. If you have a moment and you came to PW from WP, could you write a few lines about: What made you leave WordPress in general How you discovered PW What you like about PW Any client feedback you've had where a client too moved from WP to PW If you'd prefer to private message me about this, please do.Just to be clear, I'm not looking for a general WP bash here or to create some kind of flame war.2 points
-
2 points
-
Hey Happy new Year Everyone! Hope that all your wishes and PW related ones comes true2 points
-
It could be something like that: if($design_technique instanceof PageArray) { // create array for collecting output $outItems = array(); foreach($design_technique as $test_skill) { // array collecting categories $alreadyFoundCategories = array(); foreach($test_skill->design_skill_category as $example) { // is already processed, so skip this one if(isset($alreadyFoundCategories["{$example->title}"])) continue; // add it to the list $alreadyFoundCategories["{$example->title}"] = $example->title; // collect for output $outItems[] = $example->title; } } // create the output $import_skill .= " > " . implode(" / ", $outItems); } You can shorten this by using an associative array for $outItems and drop collecting items in $alreadyFoundCategories. Also I'm not really sure on wich level the items reside you want avoid to be collected twice. So you have to experiment with this snippet. if($design_technique instanceof PageArray) { // create array for collecting output $outItems = array(); foreach($design_technique as $test_skill) { foreach($test_skill->design_skill_category as $example) { // collect for output $outItems["{$example->title}"] = $example->title; } } // create the output $import_skill .= " > " . implode(" / ", $outItems); }2 points
-
2 points
-
Hi kongondo, Thanks for the quick reply and the welcome. I had actually already read the topic that you mention, and this is what prompted my need: I would like to save a "stock" field for each product, but this field would have to be calculated each time a stock movement is saved, and calculating this field is precisely what takes so much time. In the meantime, I continued looking into the problem, and I think that I came up with a solution with the following module: class PagesSum extends WireData implements Module { public static function getModuleInfo() { return array( 'title' => 'Pages Sum', 'version' => 1, 'summary' => 'Adds a $pages->sum($selectorString, $fieldName) function to sum the value of a specific field over a list of pages selected by a selector string.', 'singular' => true, 'autoload' => true ); } public function init() { $this->addHook('Pages::sum', $this, 'sum'); } public function sum($event) { $selectorString = $event->arguments(0); $fieldName = $event->arguments(1); // Find all the pages associated with the selector string $pageFinder = new PageFinder(); $idQuery = $pageFinder->findIDs(new Selectors($selectorString), array('returnQuery' => true)); $idQuery->set('orderby', array()); $idQuery->set('groupby', array()); $idQuery->set('limit', array()); $stmt = $idQuery->execute(); $idArray = $stmt->fetchAll(PDO::FETCH_COLUMN); // If no pages were found, return 0 if (count($idArray) == 0) { $event->return = 0; return; } $idString = implode(',', $idArray); // Get the table name for the given field name $field = $this->fields->get($fieldName); // If no field with this name is found, return 0; if (!$field) { $event->return = 0; return; } $tableName = $field->getTable(); // Run the SUM query $sumQuery = new DatabaseQuerySelect(); $sumQuery->select("SUM(data)"); $sumQuery->from($tableName); $sumQuery->where("pages_id IN ($idString)"); $stmt2 = $sumQuery->execute(); list($total) = $stmt2->fetch(PDO::FETCH_NUM); $event->return = $total; } } In my tests, it is about 60 times quicker to calculate the sum with the function $pages->sum($selectorString, $fieldName) than looping over the pages (for about 12000 pages). I would appreciate any feedback, in case there are any other optimizations to be achieved, or any errors I haven't thought about. And I hope that this might maybe be useful to others too!2 points
-
Hey all I recently resolved a problem displaying relational category information (see here). I now have another challenge using similar code. I have set up a sort of 'breadcrumb of categories' for certain items. It refers to these templates and fields: design_skill_categories.phptitle design_technique.phpdesign_skill_categories (a Multiple Page field referencing design_skill_categories.php) title readings.phpdesign_principle design_technique (a Multiple Page field referencing design_technique.php) psychology_topics The following code works great when there are only a few items selected in the design_technique field: $subject = ''; if($page->psychology_topics instanceof PageArray) { foreach($page->psychology_topics as $test) { $subject = " > " . $page->psychology_topics->implode(", ", "title"); } } if($page->design_principle instanceof PageArray) { foreach($page->design_principle as $test) { $subject1 = " > " . $page->design_principle->implode(", ", "title"); } } //design_skill_category to show for each design_technique $design_technique = $page->design_technique; if($design_technique instanceof PageArray) { foreach($design_technique as $test_skill) { $import_skill .= " > " . $test_skill->design_skill_category->implode(" / ", "title") ;} } if($design_technique instanceof PageArray) { foreach($page->design_technique as $test) { $subject2 = " > " . $page->design_technique->implode(", ", "title"); } } $reading_category = "<p><strong>Subject:</strong> " . $page->reading_categories->title . $subject . $subject1 . $import_skill . $subject2 . "</p>"; if($reading_books instanceof Page) { $content = $reading_category; } When there are only a few techniques, this is the output I get (which is just what I want): The basic format is 'level one sorting > level two sorting / separated by backslashes > level three sorting, separated by commas'. However, when a page using the template readings.php has several techniques associated (field: design_technique) that in turn have several categories (field: design_skill_categories), it doesn't work. See below: In the second example, my system is broken and changes to: 'level one sorting > level two sorting / related to design_technique 1 > level two sorting / related to design_technique 2 > level two sorting / related to design technique 3 > level three sorting, design_technique 2, etc'. I would like to alter my code so that all the categories (field: design_skill_categories) related to all of the techniques (field:design_technique) display in between a beginning '>' and an end '>', and each category only displays once. Do any of you know a way to write the code to achieve this? I hope I have been doing things the long (and probably hard) way, and that someone has a relatively easy solution. *crosses fingers*1 point
-
@Joss, like I said the best way to sell PW, is to demo a test backend/ front-end website with a client and allow him/ her to play with it. If they say they like WP, then they will know better when they use PW. Most of the fear in folks is in the mind and this is the best way to tackle it. There are other things that systems such as WP have going for them though: >> An ecosystem of themes and theme designers/ developers which make for selling templated websites and lowering costs >> An extensive set of plug and play plugins which too lowers costs >> Entire verticals such as schools, doctors, restaurants, hotels, etc, covered via plugins/ themes >> An extensive and exhaustive set of 3rd party integrators and vendors for virtailly anything you want to do with it >> Sheer number of users, developers, clients who add so much weight to swing opinion in WPs favor >> Tutorials, how tos, ebooks, marketers who recommend it in/ as part of their work Hopefully, as PW matures and more agencies and professional embrace it, we should see installation profiles, recipes and plugins adding to make the system popular. I am not sure whether theming can be done in advance like the other CMSs in PW, because everything is custom-built within it. The alternative is to package themes with the an installation profile itself. Drupal themers such as themesnap do this already. We will have to deal with these issues, should they come up, effectively with whatever logic we can summon. Well, the other way of looking at all this is there is opportunity in PW to create all this for many of us:-)1 point
-
The easiest way to do that is: $fieldsToIgnore = array('title'); $fields = $refPage->getInputfields(); foreach($fields as $f){ if (!in_array($f->name, $fieldsToIgnore)){ $form->append($f); } }1 point
-
ChiefPundit, I like your point about updating Wordpress and breaking themes. It is so important that the true CSS/HTML structure of a Processwire site has nothing to do with the Processwire API. you just add the API to it. I must admit, I haven't quite got the workflow right yet, but I like the theory that you could use any tool like Dreamweaver or Edge Reflow or anything else and work live on the site on a dev server. That is something that possibly needs to be explored more when promoting PW with specific howtos.1 point
-
I'm very much in Joss' boat here - for me, PW is a true all-rounder, ready for anything. I stumbled upon PW a few years back when I was looking for a system that allowed me to seamlessly work with multiple content-types. This was my big issue in my search. I used WordPress for about a year. In that short time, I found myself judging it more often that I would judge anything. I say that without the intent of throwing flames. Since my career in web development began, I'd been looking for a great platform on which to do great things. As time went on, I found various different options - of course, like with most things, they all did at least one thing good to suit my needs. Problem was, it was only partial - no system before PW did what I wanted it to do the way I wanted it done, and in a seamless and effortless (no, I'm not lazy) manner. I had stumbled onto PW before - back in the 2.0 days, but I didn't like the interface, at all. I believe it was 2.4 that changed the interface (it's design; UI, specifically) - it was at that point that I fell for it. I'm now at the stage where I can't look back. PW does everything that needs to be done, and then some. And it does it in an elegant way. This is what I was searching for. WordPress didn't do that for me. Joomla didn't do that for me (granted - I didn't use Joomla for very long at all). Nor did Drupal. Granted, those are all beast systems - but they are advertised that way - in a way, that can make them quite scary. Bolt, a reasonably new system, did most of what I wanted, but it's very limited, and, as such, should probably only be used for small sites. PW is more of a beast than the big three above to me. The silent beast. I'm sure you all know what I mean. I'd also like to ask something: I see more and more, around the internet and mostly in forums, that developers seem to choose their CMS based on what CMS the client wants. I find that quite interesting, because I've never had that experience. I have small and medium sized businesses in my portfolio - a decent amount of them quite knowledgeable in the web development field - and none of them asked me to use a specific CMS. They all just say, "use what you wish, as long as it gets the job done." So I ask, is this common elsewhere in the world? And if so, how do you deal with it?1 point
-
So we had this awesome little fireworks display right outside our building. That said, they were ten minutes early. Hehe! But quite nice nonetheless.1 point
-
You can find already arguements in former posts about wp. Anyway the last two I keep in the back of my mind just in case a discussion comes on the table with a client: 1. wp as a cms today became popular for the wrong reason => blogging. wp never started as a cms/cmf. it was then modified in an "easy does it" system for blogs, websites, shops. But the wp "easy does it" way never made it a solid system but a plug-in way. Just ask that client if he did a google on wp breakdowns. But I admit, this arguement can end in a personal discussion with the client defending wp. In that case I switch to arguement 2: 2. unlike how wp came to be, pw has a solid core because it was designed for cms/cmf in the first place. with pw the client will never have a problem finding somebody maintaining his website. Not every coder/designer/admin understands the wordpress way of how doing things, but every coder understands pw's api - every designer understands pw's front and every client understands pw's admin because of it's unique "-page-" tree. 3. So in the end, which has already been discussed before, would a client hand out his website to a plugin way of doing things with a bad wp reputation already - or to a solid designing way of things. Many times clients are not even interested in this and so you have to confront him to make this choice: after all, we are doing business with a client where choices have to be made and time is money. 4. The client can't make a choice ? Then tell him: "I am ready, when you are mr. client" Leave your business card, say he can call you anytime, and walk out with respect. It will leave an impression that with pw he is dealing with quality. 5. You can use this scenario also with marketing people. And then again it is not that wp is flooding the market. How many clients out of 10 start talking about wp ? In my experience stiIl only very few but that may vary of course. I still don't see it as a competition or serious. .1 point
-
Took a little bit to get the 'if else' syntax correct but it does exactly what I need. Thanks again for your help!1 point
-
I have used both Wordpress and Joomla for client sites in recent years and the reason I look to ProcessWire is the same for both - if I am to develop fully a solution then addresses both a client's technical and editorial needs and also their brand and their presence (from the advertising point of view) then I need to move as close as possible to the blank piece of paper as a starting point - it probably says as much for me being an old advertising bloke as anything else Processwire allows me to do that where as both WP and Joomla restrict me before I even start by determining what my content should be and how it is managed. Again, from the front end point of view with both Wordpress and Joomla, I find I either fight to get a decent template out of them or I am trying to bend an existing one. With PW I have complete freedom - so much so that I have now developed my own personal SASS development framework. But the main selling point for me and what I have been telling potential clients is that PW is a TRUE business class CMS, and as they have business needs, that should be their number one criteria. By the way, I don't make comparisons with Wordpress, I just present it as a fait accompli and simply speak about the functionality and the final presentation. It is only when they login that they even know it is something called processwire.1 point
-
Peter: I was CMS Made Simple Core dev until now, long story. Then we started looking new system with my partner and tested over 40 systems? Didn't first find suitable for our needs and i almost started building my own and then we found this, which architecture is closest what i had in mind myself. Plus whole ideology behind this system seems close enough what i would prefer. We maintained similar blog for CMSMS that Teppo maintains for you guys, dunno what will happen to that in the future, you can check that in here if you want http://www.i-do-this.com/ And thank you Now i gotta hurry for party, so check you guys later, have a good one1 point
-
Thanks for the answer Pete. I figured out this already and you can actually change process of home to point down the admin, which redirects you down to the admin, no matter what. Was looking for way to by pass PW bootstrap ProcessPageView and inject admin directly, but that didn't work, so i assume it was actually intended as it is. Anyways system looks awesome no matter what. Have a good new year change.1 point
-
1 point
-
with a combination of Lister Pro, admin custom pages, and admin custom files you can really extend the backend.. check out some of those modules and also maybe some of the tutorials. i used dashboard on one project, but then when listerpro came out, it got to be so easy to make custom listings of processwire objects (because you can filter on anything), that the dashboard was no longer necessary, in that case; the only thing i ended up having on my dashboard that i couldn't do with lister was a calendar; but turned out they didn't need it anyway; i would still use dashboard if i wanted to include a page in the admin with charts, calendars, feeds, and other items that couldn't be represented in the lister; however with admin custom pages, you can make any page you want in the backend; the dashboard was helping out with getting it to be the first page loaded when you login;1 point
-
I think your PHP version is not sufficient enough. It need to be > 5.3.8.1 point