Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/05/2013 in all areas

  1. ProcessWire Skyscrapers Site Profile This is the profile for the skyscrapers demo site as seen at: http://processwire.com/skyscrapers/. This site profile release also coincides with some upgrades to the Skyscrapers site. The updates were to re-do many of the template files to make them easier to read, convert some classes to functions (easier for folks to understand), and convert the maps to use the FieldtypeMapMarker module. The main differences from the live site are that this profile excludes most of the photos and skyscraper text. Only the photos taken by me are included. This is to ensure we aren’t distributing any text or photos in case the license ever changes to something other than Wikimedia Commons. I can change the text/photos on my skyscrapers site, but can’t on any sites someone else sets up with this profile, so figure it’s better to play it safe. Requirements ProcessWire 2.3 OR ProcessWire 2.2 dev branch (2.2.12 or newer) ZIP How to install Get the latest version of ProcessWire 2.3. At the time this text was written, ProcessWire 2.3 wasn’t yet released, so if that is still the case you’ll want to get version 2.2.12 or newer from the dev branch. Before running the installer, replace all the files/directories in the /site-default/ directory of ProcessWire with those from this site profile. This includes the following: /site-default/config.php /site-default/install/ /site-default/modules/ /site-default/templates/ [*]Now run the installer to complete the installation. Template details The template files in the profile take the approach of populating variables that are output within a main/shared markup file. This is different from the basic profile that ProcessWire comes with. Specifically, make note of the following files: /site/templates/_init.php – This file is automatically included before any template file is executed. We use it to initialize the variables we populate and include a shared library of functions. /site/templates/_out.php – This file is automatically included after any template file is executed. In our case, we use it to contain our main markup that also outputs the variables we populated. /site/templates/includes/functions.php – This is where we are keeping a shared library of functions, most for generating skyscraper list markup. /site/templates/*.php – These are the site’s template files, each named consistently with the page(s) they represent. The primary focus of these files is to populate the $content variable that is output by _out.php. The use of _init.php and _out.php are something new to ProcessWire 2.3. These are specified in the /site/config.php: $config->prependTemplateFile = '_init.php'; $config->appendTemplateFile = '_out.php'; Use of this new feature is optional. We’ve used it in this profile because it reduces the amount of redundant include() code necessary in each of our template files. Download Skyscrapers Profile at GitHub or download ZIP file Skyscrapers Profile at modules.processwire.com Remember that you must have ProcessWire 2.3 (or 2.2.12 dev branch) or newer to install this profile.
    14 points
  2. The forums have been re-ordered and re-categorised in what we hope is a more logical setup. The idea is that the first set of forums introduces new users to what's going on, shows off some sites that have been built in ProcessWire as well as what's on the horizon. The second set is all about support - the aim is that newcomers will be guided to the first three forums in their search for a solution to a particular problem before posting it in the General Support forum. The remaining forums in that section tend to fall under more advanced features and contain more advanced questions as a rule. The final set of forums is Off Topic. There is a new Dev Talk forum for non-ProcessWire-specific discussion which frees the Pub forum up a bit more for general chat. Hopefully that all makes sense - the topics in the Pub have been split where appropriate into the Dev Talk forum.
    12 points
  3. Hello there, well, it's my first time working with ProcessWire and I simply love it - I've used Joomla, Wordpress, Drupal, WolfCMS and Typo3 before but somehow ProcessWire was the perfect choice for that kind of page. So I decided to rebuild the website of my Goju Karate club here in Germany. It's not responsive or anything special but I just wanted to present it. There's still some work to do (fix the background image on the right for lower resolutions), but basically it should look OK on 1280+ resolutions. http://www.esv-karate.de Long time since my last private web project. I also have to say that I'm not a professional web designer. In work life I'm a web developer (Oracle) so don't be shocked if you don't see anything innovative . Regards Seuche
    4 points
  4. ProcessWire will have support contract options available in 2013. I'm still working out the details, but wanted to let you know that option will be there for those that want it. Most of us here don't and won't need support contracts, because we can get pretty much anything resolved in a manner of minutes via these forums. But I would gather that a large portion of PW's user base doesn't actually participate in these forums. I also think that there are companies out there that would feel much better having the insurance of guaranteed support when they need it. Basically, if someone feels they need a support contract, I want to make sure we can accommodate that. I also see this as a way to further support growth of the project. As for EllisLab, I think they may be in a tough spot and trying to find the best way to survive and hopefully thrive. I had heard unsubstantiated rumors on Twitter several months ago that they might make EE free. To me suggested they might not be thriving as a business the way I would have thought. In such a case, change could be necessary in order to grow rather than contract. I have no idea if this is true (it's all guessing), and it's a little hard for me to imagine how they could not be profitable… given that their entire user base pays to use the software. But I don't think they would have made such drastic changes if everything was okay with the business model and finances before. My guess is they were faced with the choice of having to make cutbacks (like staff), stagnate, or make big changes. It appears they opted for big changes and are trying to re-focus their resources towards the high-end. That being the 20% of the audience that can pay the big bucks, at the expense of the other 80% that doesn't pay as well. And have probably accepted the sacrifices that go along with it. For that 20%, these costs are not really that big, and are probably seen to strengthen the B2B commitment (greater cost sometimes feels like greater insurance and less risk). There are other big players out there paying hundreds of thousands of dollars (every year) to companies with products that are inferior to EE. There are more opportunities to grow for them there than there are on the open source side. After all, products like ProcessWire and others are just as capable (and many would say more-so). It's not sustainable and makes little sense in a for-profit business to plan growth competing against a worldwide network of developers working for free. It's hard to grow a business when most of your competition is at least as good, and free. Whereas, I think it makes good business sense for them to carve out some new space where there is opportunity and partnership with bigger players. That's the side where the service matters as much, or more, than the software itself. And they can do well at both. I'm hoping that ProcessWire and other open source CMSs can benefit and grow as a result of changes with EllisLab. But I also hope that EllisLab and ExpressionEngine benefit and grow in the way they want to. Looking at where they are and what they are, it's not hard to understand why they've refocused. Though I say that as an outsider that's not negatively affected by their decision. Regardless of whether you like EE or not, it is in a fairly unique spot in the CMS landscape as a commercial product that is often listed with, and interchanged with, open source products. It's not something that I think could be repeated today, and I've always had a lot of respect for what they've been able to do and the influence they've had. EE is a good software with good people behind it. I'd like to see them do well and think that they will.
    4 points
  5. This case study relates to the topic here: http://processwire.c...ndpost__p__8988 about creating an archive of 'stories' about how PW has helped in relevant real life scenarios. Website: http://www.ray-dale.com RayDale Multimedia Ray Dale is a multimedia designer. His portfolio website was 2 years old as of March 2012 and in need of a refresh. He found that the content management for his website was more time consuming than he wanted and the website was generally slow in performance and complex to update. Ray needed: A website that could showcase his latest work with separate portfolio content types The ability to show lots of images and videos in each section Complex interlinking between each portfolio item - where each item would belong to a number of simultaneous categories To be able to publish a number of pages under various sections on the website To have a condensed navigation structure - not over-facing the user with navigation A blogging space that was easy to update To gain complete control over the HTML, CSS & JS markup and therefore the design of the website The ability to take more control over the admin experience - without using a host of plugins - so that the CMS could be used for clients to make their lives easier Speedy performance - even if a shared hosting platform were used Good site security The previous solutions Ray was previously using Drupal as a content management system. Drupal is a great system, it’s incredibly flexible, it can be made faster and using template overrides, almost complete control can be taken of the HTML and CSS output. However, the process to achieve any of this is time consuming and clunky from a web designer / front end developer perspective. Drupal was also going to require a number of plugins to be installed to achieve a lot of the required functionality. Ray tested migrating his website over to WordPress. WordPress is another fantastic blogging system with light CMS functionalities. WordPress is generally easier to use than Drupal and a lot of control over the HTML & CSS markup can be delivered - in a much easier manner than Drupal. However, WordPress is still light on CMS features in the admin system. This means that it is difficult without either using a lot of plugins or custom php development (using the WordPress API) to have custom content types and fields. The decision to use ProcessWire Having searched around for an alternative to Drupal and WordPress - revisiting other CMSs that Ray had also previously used - Ray eventually landed on ProcessWire having read about it on a forum. Right from watching the initial video produced by Ryan Cramer (the creator of ProcessWire) Ray was intrigued by the possibilities that ProcessWire seemed to offer - effectively solving all of the issues currently faced. To summarise ProcessWire offered: Custom content types in the admin Custom field types in the admin Good control over media uploads A simple to use admin system A neat and simple API for custom frontend / backend development A customisable admin experience The ability to have a custom admin url Complete control over HTML markup Good security with flood control A powerful and flexible templating system (that was also simple) Ray was extremely impressed by the features that ProcessWire offered, however, many CMSs look great until you actually start using them - where the unnecessary complexities, weak architecture and terrible, bloated functionality often start to appear. The functionality seemed so promising that a gamble was taken to build the Ray Dale Multimedia website - with very little time now available - to ProcessWire and test how it performed. Building the website Having built the original Ray Dale Multimedia website in Drupal, then converted to WordPress before deciding to gamble on ProcessWire - Ray now had very little time left to build his portfolio website. As a testament to the ease and speed of using ProcessWire - he was able (with a little help from articles in the forum) to rebuild the Ray Dale Multimedia website in two days of effective full time development. This included all of the content creation and learning the new system - with the inevitable (but surprisingly smooth) learning curve. Enabling complete control over output ProcessWire allowed Ray to write HTML and CSS without any of the interference you get from other CMS systems. So, Ray was able to use the following frameworks of his choosing: HTML5 boilerplate jQuery Modernizr Masonry A customised version of the 960 fluid grid system PrettyPhoto for lightbox images Less - to create minified CSS Though it must be said that literally anything can be used as ProcessWire makes no assumptions on the frontend - even on the Javascript framework. Quick and easy API One really pleasant surprise was the jQuery influenced API that ProcessWire offered. For example you can use php queries such as: $pages->find("selector"); $pages->get("selector, path or ID"); to find content in the system - you can even filter your queries by template type, fields attached to that item, etc. You can even use a range of selector operators. The API effectively works as a super powered and infinitely more flexible alternative to the WordPress loop. Cross referencing pages easily Complex cross-linking between portfolio items was needed so that capabilities, technologies and services could be linked to each item. It was easy to create a taxonomy system that worked the exact way required once the fundamental concept of how pages work in ProcessWire was understood. Building navigation that works Unlike a lot of CMSs that work effectively as ‘bucket systems’ - meaning that content is separate from any kind of structure or hierarchy by default in the system - whereas everything in ProcessWire is a page and arranged hierarchically. Whilst this may seem strange and restrictive to some used to the aforementioned ‘bucket systems’ - it works incredibly well and enables you to build navigational structures that are easy to plot a current location in. It is also something easy enough to break away from if you want a more ‘bucket’ type system. For example, in Drupal and WordPress it can be very difficult to highlight the navigation on a website if you are using custom content types. Try using custom post types in WordPress and keeping your navigation tracking which page the user has landed on - it’s extremely difficult without a fair bit of custom development (this is true as of the time of writing - WordPress 3.3.1). Because ProcessWire uses a structure and hierarchy by default - this structure makes building navigation that can track the current page very simple. Easy / flexible admin system The admin system in ProcessWire was easy and fluid to use, logical and stable. The admin system can also be overridden with templates (there are already some great community contributed templates). Modules used Whilst ProcessWire has a number of contributed modules from a thriving and helpful community - absolutely no additional modules were needed. All functionality on the website was achieved from a vanilla version of ProcessWire. Performance Another area of importance was the performance of ProcessWire. Again, Ray found this aspect to be well covered with built in caching capabilities that were thoughtfully included ‘out of the box’. The caching was simple to enable on templates and fields. The memory footprint of the Ray Dale Multimedia website was a third of that of Drupal on the same website without using addon caching plugins. Challenges The only real challenge faced was understanding that ‘pages are everything’ in ProcessWire. You build categories, taxonomy, articles, blog systems with the ‘page’ (and any fields it contains) being the basic building block for all of this. ‘Pages’ in ProcessWire can be attached to templates and injected with fields to enable the creation of literally anything conceivable. However, understanding this concept takes a little work for people used to other CMSs such as Drupal, WordPress and Joomla. However, in context - and compared to other systems - this learning curve is still fairly easy. There are so many other time savers that this learning curve becomes negligible. The other area that Ray had to understand about ProcessWire was that there aren’t any template system paradigms that exist in Drupal and WordPress. Other systems have parent and child templating systems with default parent templates that can be leveraged, however, because ProcessWire makes no assumptions on how you are going to build a project (being a true framework) you currently need to create your own template files. This is made easy by good documentation on the ProcessWire website and a decent set of ‘starter’ template files that come as part of the default install. Conclusion ProcessWire was an absolute dream to work with. Ray found it to be very stable, well thought out and hugely flexible. So much so in fact, that Ray has decided to standardise on using ProcessWire for upcoming web design projects. The flexibility and simplicity of the admin system, combined with power in frontend development that ProcessWire provides is something that Ray found to be liberating and more importantly ‘best in its class’.
    2 points
  6. I'm a Toronto-based web designer and developer. Tinacious Design is my ProcessWire-powered website and it includes my web design and development portfolio and information about my services. See the website here: TinaciousDesign.com The back-end uses a modified version of the Moderna admin theme. I also posted a video on Vimeo showing the behind-the-scenes process of adding a new portfolio item.
    2 points
  7. Before ProcessWire: After ProcessWire: Errm... wait, does that mean ProcessWire is the Precioussssssssssssss?
    2 points
  8. Greetings lenoir, If you run it that way, you replace the image. That's fine, but you could also use a CSS filter to change it to sepia when the image is rendered. There are still some cross-browser issues, but check here for info -> http://blog.teamtreehouse.com/css-filter-effects There is also a nice JQuery method for doing this -> http://css.dzone.com/articles/html5-image-effects-sepia With either of these methods, you could easily run it right inside your template. Thanks, Matthew
    2 points
  9. ProcessWire Concatenate Fieldtype Fieldtype that concatenates the values from one or more other fields at runtime. The value can contain additional formatting and/or words as needed, which you define in your Concat field settings. Example Problem: Your system has a first_name and last_name field, and you want to have a separate full_name field composed of first_name and last_name, without redundancy. Solution: You would create a new Concat field, click the details tab, and enter "first_name last_name" (the fields you want to concatenate) in the settings. Other Potential Uses Having a field that combines the value of two or more others, without the redundancy of separately stored data. Defining a custom “label field” for select boxes, like those used with the Page field. Defining a custom label for your Page List that includes your own formatting. Defining an alternate variation of a text field that uses a different text formatter. Considerations The value for this fieldtype is generated at runtime and thus no data is stored in the database. This is good because there is no duplication. However, it also means that you cannot directly query a Concat field from $pages->find(), for example. If you happen to change the name of a field being used in a Concat field, you will have to update the name in your Concat field settings as well. By design, Concat fields do not inherit the text formatters of the fields they concatenate. You define these separately with the Concat field. Because this is a runtime-generated field, there is no Inputfield associated with it. How to Install Install the module by placing FieldtypeConcat.module in /site/modules/. Check for new modules on the Modules screen in the ProcessWire admin. Click Install for the Concat Fieldtype. How to Create a Concat Field Under Setup and Fields create a new field using type Concat. After entering the new field name and label, click Save. Click the Details tab and enter one or more field names. Separate them with whatever spacing and punctuation is appropriate. Optionally choose one or more Text Formatters. If you are not sure which, “HTML Entity Encoder” is a good default to use. Save. Add your new field to one or more Templates. How to access the value of a Concat field This is no different than accessing the value of any other field. If your Concat field has the name “full_name” then you would output its value like this: echo $page->full_name; Download PW Modules Site: http://modules.proce...eldtype-concat/ GitHub: https://github.com/r...FieldtypeConcat
    1 point
  10. A very simple tip, but that might be useful for someone that didn't think of it... This is what I usually do if I want to change something on a live site. if($user->name!='diogo'){ // live code }else{ // my new code } Like this I'm the only one that sees the changes. More examples: // test new javascript. do the same for styles <?php if ($user->name!='diogo'){?> <script src="<?php echo $config->urls->templates?>scripts/main.js"></script> <?php }else{?> <script src="<?php echo $config->urls->templates?>scripts/main-dev.js"></script> <?php }?> // test new head file if($user->name!='diogo'){ include(head.inc); }else{ include(head-dev.inc): } and so on... edit: corrected the first block by Nik's suggestion
    1 point
  11. com.gratlatons To forum for ocre 20.000 massages
    1 point
  12. Have a look at those sad panoramas at http://panorama.philippreiner.de/ It's just a little idea I've had this afternoon. I wanted to post easily from my iPhone to a Processwire installation without using the admin backend* (*= Because I have to login, navigate to the site, click through pages,...) I'm using the tumblr iOs App to post to a Tumblog. (Screen) . Now I'm using apeisas Data Import to get the data from the Tumblr API . I'm using the old v1.1 API because the XML is easier to fetch. The posts are now saved to PW Because I wasn't able to programm a better solution, I'm downloading the images from the URL stored in a field to the original images field. I can now use the PW image functions. Now I can use them as normal pages, do the simple template and start posting. Only problem, the images from tumblr are resized down to 1280px on the long edge. Also, the site is responsiv and the images are loading with lazyload using a <noscript> fallback for older browsers.
    1 point
  13. http://aneventapart....daptive-content Long - just over an hour, but fascinating video presentation from An Event Apart. But much of it could be a description of why to use ProcessWire (although it's not about PW). Much of the presentation will resonate with PW users.
    1 point
  14. Hey all, I think it would be nice if the MarkupCache module could automatically expire specific caches when specific templates or pages are saved. This would allow us to cache heavy parts of a page for a very long time (or forever), and it'll only need to re-create the heavy part if its content has changed. It would also make sure no out-of-date content is shown. Advantages over the normal page cache are: - The normal page cache needs to re-render the whole page, this only needs to re-render the part that has changed (performance). - The normal page cache does not work with CSRF forms. I've coded a little proof-of-concept and I would like to hear if you guys have any suggestions or improvements. It works as following: Say you want to cache a news slider on the homepage: <?php if ( ! $data = $cache->get("HomeNewsSlider", 604800)) { // ... generate markup which uses the news-item template in $data ... $cache->save($data); } echo $data; ?> Then u would somehow configure the MarkupCache to expire the "HomeNewsSlider" cache when a page has been saved with the "news-item" template: This is how I have implemented it at the moment, but maybe someone has a better idea? I've also added a more convenient method (the begin() and end() methods) for caching markup: <?php if ($cache->begin("HomeNewsSlider", 604800)): ?> <h1><?=$page->title?></h1> // ... some other markup ... <?php $cache->end(); endif; ?> The module will start buffering the output when calling begin() and it'll save the buffer to the cache when calling end(). If the cache is available the begin() method will output the cached data. This way you wouldn't need to render all output to a $data variable. Hope u guys have some feedback or other/better ideas MarkupCache.module
    1 point
  15. Hello everyone, I'm new to ProcessWire, and (this may sound cliché but) it's awesome... I've only used it for 3 days and already modified some of the admin UI for ease of use and configured a toolbar. Today I was creating a module but I'm not really PHP-saavy, so when I got this error, I was pretty much stuck: Fatal error: Cannot instantiate abstract class Inputfield in C:\xampp\htdocs\processwire\wire\core\Fieldtype.php on line 79 This module uses the integer inputfield and the page inputfield, I noticed that on Fieldtype.php, line 78 says: "// TODO make this abstract" so I'm wondering if that could have something to do with the fact that it's not working or if there's something wrong with my code. Thanks in advance. //Nicole
    1 point
  16. Erika needed a simple website to showcase the books that she designed. I think this is as simple as a book showcase can get http://diplom.erikagrafika.com/ There are lots of transparent PNGs to be shown at the same time (transparency because of the shadows and cut corners), to make them smaller I found an amazing tool http://pngquant.org/. No kidding, this tools can cut the size of a "saved for web" transparent PNG to half. I love how you can use it in a bunch of directories at the same time from the terminal, but if you only need it for a few pictures and don't want to mess around with the terminal, this online tool uses exactly the same process http://tinypng.org/. edit: I must have messed up the title, can someone entitled change it to "diplom.erikagrafika.com"?
    1 point
  17. There are another 3,000+ posts since that graph so I think it's still following that upward curve
    1 point
  18. Thank you guys for quick response and warm welcome. There might be a bug with path!= selector. Little additional question. I want to get say five closest siblings (which would be two prevs, self and two nexts OR if the page is first then it would be self and four nexts etc). Is there any shortcut for this logic in the API? Anything like ->closest(5) or at least ->next(2)? If not please consider it a feature request as it feels like common logic required.
    1 point
  19. You can say sort=random, both for database operations ($pages->find/get) and PageArray operations (find/get/sort). See https://github.com/r...Finder.php#L490 and https://github.com/r...Array.php#L681. I tried that "path!=..." selector out and was able to reproduce the problem as described.
    1 point
  20. Having a repeater field called "rep" on my home template I added this to template file: echo $page->rep->getRandom()->name; ... and on each page load it echoed the name of one random item. Actually tested it with both 2.2 and 2.3 and neither had any problems with this. So, what exactly is your code doing / not doing when it doesn't seem to work?
    1 point
  21. 01. If you go to templates and then urls, Should page URLs end with a slash? Set the radio button to no. 02. Then go to your page with the CSS template, go to the settings tab and let the name of the page end with .css. This way you could create pages with names linke: styles.css or default.css
    1 point
  22. I am currently in the process of setting up a site with ProcessWire and pretty much the only alternatives for me were ExpressionEngine and WordPress. WordPress just isn't built for anything but blog posts (I am aware of the 'custom post types' but it's a real pain requiring tons of hacks) and while I used to be a fan of ExpressionEngine it's just not a good fit if you don't have $ to spend. There are excellent add-ons for EE but I'd need quite a couple of them to get the same functionality that PW provides (Playa versus multiple related pages/PageArray in PW, Matrix versus Repeaters in PW). Additionally the limitations of the free version (e.g. the discussion forums being missing) and the license fee kicking in as soon as I try to monetize a site in any way kind of make me hesitate building the kind of "Let's see how this works out" projects that I often mess with on EE. I am not sure whether the concept of EE served as an inspiration or blueprint for PW, as they are really quite similar but as others have pointed out in this thread, the whole transition should be super-easy as a lot of the site building blocks are the same. Even if you didn't intend to do so (and I don't think so at all), you have created quite the 'ExpressionEngine killer' here... and eventually the word will spread. That said, ExpressionEngine is a great product and I hope EE (the product), the community and EllisLab keep on going strong. And if you can afford it and your customer feels better about using a 'commercial' product backed and supported by a company, definitely go for it. From what I have seen so far the EE backend still seems more 'pro' and if you use the right add-ons, a couple of parts are more convenient and polished. (That won't stay like that forever though.)
    1 point
  23. Sorry, I just have to point this out: don't you have the blocks here the wrong way around? Everyone probably gets the point and corrects this automatically though - as you did with the latter examples yourself . Unless they just copy and paste the first snippet and go from there...
    1 point
  24. While I'm not in the camp that wants my URLs to go outside my site structure, I can see that it's a need some may have. And you've brought up a very good solution here--we could accomplish this pretty easily. SEO would not be a problem because the module that would implement the solution would hook into the Page::path function to ensure that it's reflecting the alias rather than the original. It would also not be a stretch to have the module perform a 301 to the alias when the page is accessed at the original URL.
    1 point
  25. Height auto is the magic.
    1 point
  26. Thanks for testing. I'll upgrade the dev branch here.
    1 point
  27. Netcarver, thank you for the kind words, that makes my day. Though I think you give me way too much credit. It's the community here and the people like yourself that make it great.
    1 point
  28. Here's what I'd share: Connect with other creatives. Graphic designers, photographers, marketers, etc. If you feel like you are not at the top of the list of great web designers, that's normal. But imagine how the average print designer feels about their own web design skills. Talk to those people. Many of them already have many clients who could use websites that work. Instead of spending your time cold-contacting people you want to work for, cold-contact people you could work with. (see above) They will see the value you bring into their business. Hire a business consultant, if you can. I hired a retired tech executive. His advice has saved me from making really dumb decisions, and helped me make some really important, yet difficult decisions. I have a notebook full of this stuff. Stay in the game. Don't give up on it and call it a crappy career just because you haven't been able to develop the skills yet. Lawyers are told to take 7 years to get established. Web designers might not even need that much time! But it does take some time. Take care of yourself. You will run into stressful situations. Be sure to do the things that keep you healthy. Get exercise, eat healthy food, spend time with people you care about. Avoid: Late working nights, mind reading (guessing that your clients hate you or think you're too expensive), and meetings with people you aren't interested in working with. Plan your next day every night if you can. Ask yourself what is going to happen tomorrow that will push your 5, 10, 20 year goals ahead. This is a great way to relieve stress and help you sleep better too. Provide value to your clients. Solve their problem. If the solution is a different web designer who's cheaper, tell them that. If the solution is some cheap third-party blogging platform, tell them that. If the solution is exactly what you do, give them estimates for "small, medium, large" and let them decide how much money they want to spend. Don't drop off a solution at the door. Stay with them. Offer to stick around for the first 6 months their new website is live, and handle some of their blogging or other updates. Offer to meet with them and review their analytics. They will need your help. They don't want to fail. Write about what you are doing. Keep a blog somewhere too. Share your thoughts online. Be nice to other web designers. Anyway, about what we do: This is a great way to make a living. Keep at it. Edit: You don't have to work for an agency. You can do this on your own. I've never worked for an agency except as a student, and I thought the agency model had some pretty obvious weaknesses in terms of output. I've had a couple agencies hire me to be their web guy's web guy, which sort of points at the problem. But you can also work alongside agencies (i.e. client pays you both separately), which has brought me great results.
    1 point
  29. Teppo is way too slow, always second FORUM PROTIP that I spied from Soma: quickly post something, then edit it few times. You'll win every time!
    1 point
  30. MODx is a great tool. No doubt. However when I compare the code and work required get things done in it versus PW, PW comes out ahead as a winner for the types of sites my shop builds. We are busy converting three content heavy sites from MODx. These were due for upgrades from MODx Evolution. There are another dozen that will be in the switch over queue before too long. I worked with MODx Revo and deployed a few sites on it, but honestly there was a lot of extra overhead and a new API to convert our custom modules (snippets) to. I could not justify the work to upgrade as I did not see enough benefits. Clients will pay for new features, just usually not for the coding required to update the backend. I felt a sense of dread, instead of excitement, when I heard the news of MODx V3. The API has completely changed once already and I was not excited to start over again, again. Not knocking MODx here, built some well performing sites with it. Even donated $. I wish the team continued success. I decided to keep looking around for a better solution. I have used EE, Drupal, Wordpress, Pyro CMS, and a few others. Each with different strengths and weaknesses. Luckily came across PW. Lurked for a while, kicked the tires, built a few mockups. Discovered that all the things I typically need to do, are simple calls to the API, and some logic coded in PHP. Everything is an extension of the API. The front end, the back end. I love the whole concept of leveraging the document tree, getting parents, siblings, children, and the whole ancestry easily through the API. This matches with the type of highly structured sites I usually build. The selector logic make it simple to pull content from wherever it lives. I can park any kind of structured content wherever I see fit. Usually the CMS interferes with the IA. Not with PW. The PW API is very clean and so is the logic. I am very productive with it so far, and it has exceeded my expectations. The content editors like the backend and find it easy to work with and publish / update content. PW has moved front and center in the shop and will be the basis for most all CMS projects going forward. No going back. Kudo's to Ryan and the forum participants, who are generously sharing here. Welcome to PW.
    1 point
  31. You could also do this: $events = $page->siblings->remove($page)->slice(0,3); but this may be better: $events = $page->siblings("id!=$page, limit=3");
    1 point
×
×
  • Create New...