Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/07/2014 in all areas

  1. I am sure some of you must have noticed my stumbling around in the dark while getting used to the ProcessWire system. Someday I hope to emerge as a user who brings more to the table than just silly newbie questions. I am sitting down with a mug of really good coffee so I thought I would offer my feelings and reactions to ProcessWire thus far… Quick background: I am a photographer with a long history in photojournalism and commercial work. I have also enjoyed doing web work for years. I built quite a few static sites before searching for a CMS system that felt like home. I must have tested about a dozen or so before spending some real time with Wordpress and then MODx. I liked Wordpress but the template system was awkward for me to me customize. I then found MODx Evo. I stuck with Evo for years and found it very designer friendly. I am not a code developer at all but Evo allowed me the flexibility to design static test pages using clean HTML and then create my Evo template from that foundation. MODx uses a system of combining placeholder code using Chunks, programmed Snippets and Template Variables (TVs) for dynamic forks in the road. Forgive me: I have never been well versed in web tech jargon. One of the features (or liabilities) with MODx is that it uses its own template language. When you deploy a Snippet you need a Snippet “Call” to set parameters on how the Snippet will function. Usually you would need a special template for the Snippet as well. This process is not totally intuitive and has its own learning curve. Then along came the entirely new branch of MODx called Revolution, or Revo for short. Revo was more powerful but also more complex. The nice thing with Revo is that you could spend more time away from the root folder or using an FTP client to upload and install Snippets. The Package Management system is a powerful means of installing and updating the various Snippets and plugins. Updating these building blocks in Evo is more of a pain; manual copy and paste effort required. What I did not like with Revo is that much of the placeholder and template syntax changed from Evo. The changes were subtle but deadly if you confused the two. The main issue I have with Revo is how slow the Manager (admin) system is. The amount of stuff (very techie term here) in Revo is overwhelming. Some of my clients who used the Revo Manager sporadically would always forget how to do things. To be honest I would have the same issue on occasion. With MODx we had Evo, then Revo, then the whole cloud system and now MODx III. It sort of gets confusing. To counter this the forum now has a zillion sections that cater to all the MODx project branches. But I find doing a search on my issues or questions revealed some confusing links to information that focuses on a different branch or is outdated to the system I am working with. I guess this last year was a difficult year for MODx: growing pains and money, etc. The whole technology of Revo, the Cloud and the loss of some of its main core programmers (Shaun McCormick) has created some signal-to-noise-ratio issues. Last year was a terrible year for me personally as well. The joy of buying a new project house was crushed by the death of my father and my only sibling (in South Africa) in the space of just four months. Coming out of this fog I sought of stumbled on some interesting chatter about MODx users switching to ProcessWire. The rest of this quick moving journey has been interesting to say the least. My reaction to PW has been filled with both initial confusion and admiration. I thought my not knowing any PhP was going to be a deal breaker. I sort of had initial writer’s block with the blank page. The PW installation would go well, but then what? But after playing around with several local test installs I can see how liberating and powerful the PW API, the template system and Fields really are. I am slowly picking up some basic use of PhP statements. Doing so is more valuable and efficient than the MODx learning curve with it’s proprietary template syntax. I suspect my working knowledge of the PhP that will make using PW easier will only grow with time. That is my hope for sure. The thing I like about the PW Admin is the speed and the whole weight of the backend. Compare the jQuery Admin to the heavy, heavy MODx Revo Manager and there is no contest. It works better on the iPad as well. My clients have commented on how much “stuff” there is in the Revo Manager. I can’t wait to show them how fast and simple the PW Admin is by comparison. One of my issues is letting MODx go. The community has been great. I cant tell you all how much I admire and appreciate folks like Susan Ottwell, Bob Ray, Jay Gilmore and countless others. Susan has over 20,000 posts on the MODx forum. Just about all of them are consistently helpful and insightful. Being a heavy forum contributor can lead to one’s becoming impatient and suffering from burnout, but Susan’s helpful attitude has been amazing. But my heart tells me that I am better suited to learning ProcessWire rather than the awkward mix of MODx Evo and Revo that I have been using to this point. I think I am also trying to duplicate some MODx procedures when I work with my PW test projects. I think that time will be on my side as I become more comfortable doing things the “ProcessWire way”. Anyway, I am not sure where I am going with this, I just wanted to offer my $.02 and to say how grateful I am with all of you who have shown patience with my initial learning. Cheers, Max
    4 points
  2. We just launched a new PW 2.4 site: mbci.mb.ca, this is another responsive (bootstrap) site built using my module Spex. The homepage is one of our first attempts at what we internally call "long scrollies", we used the jquery plugin waypoints to accomplish the effect that can be seen there. Using waypoints has really opened up a new realm of possibilities, especially when combined with stellar.js to create parallax effects. Other than the long scrolly homepage, in terms of neat features there's a filterable ajax calendar page using the fullcalendar library: http://mbci.mb.ca/events/ There's also a matching Magento for taking applications to the school where we used an extension called Dynamic Product Options from the unfortunately named company Itoris, that was pretty neat.
    2 points
  3. Thanks for the replies. I decided to purchase the Form Builder. I'm not sure if I'll use it anytime soon, but I feel it's important to put a bit of money back into PW if we can manage it. I think I'll have a look into creating a few functions soon to tidy up my code a bit. I've just spent the last few days reformatting my initial sloppy code. But I'm still loving it. This is the longest time I've spent doing any kind of programming since Amiga E on the er, Amiga.
    2 points
  4. I think the thumbnail image you see in the admin when editing the page is the 100x100 automatically generated image you're seeing. That only shows if your images field has the thumbnails checkbook ticked.
    2 points
  5. Thanks for sharing this and sorry for your losses. It's always interesting to read about initial reactions to ProcessWire -- it's a great system, but surely there's always room for improvement, and in this regard it's good to have folks with experience from others systems around too. I've never used MODx myself, all I know about it is what I've read from this forum.. and when someone mentions "evolution" or "revolution", I instantly think of Harley engines
    2 points
  6. Author of JShrink here (I found you guys in my web logs). I thought I'd pop in and say hello, and talk about JShrink a bit. I originally made it as a drop in replacement for JSMin, because JSMin is technically not open source (it has the "do no evil" license, so projects that take open source seriously, such as Debian, won't bundle projects with it). Since then I've made improvements on speed, added additional features like support for conditional comments and license preservation, and have really put work into the test suite itself. Ryan Grove, who originally ported JSMin to PHP, has officially dropped the JSMin project and is referring people to JShrink on the Github page for it. Yesterday, after several years of being in the "beta" phase, I launched the JShrink v1.0 to make the API official and stable. On a tangental note, I also maintain a caching library called Stash that may be useful to you.
    2 points
  7. This is a very simple module that I put together for @Zahari Majini from a PM request. It allows you to enter a URL to a YouTube or Vimeo video in a specified field and when you save the page, it will grab thumbnails for the video and add them to a specified images field. Check the module configuration options for: the field(s) to search for videos name of the video images field which thumbnail(s) you want grabbed whether to grab the first available or all available thumbnails based on those that you list As always, an feedback for improvements is very welcome! Modules Directory: http://modules.processwire.com/modules/process-get-video-thumbs/ Github: https://github.com/adrianbj/GetVideoThumbs
    1 point
  8. Hi! Just finished my first module This module adds a new "Google-Analytics" Page in your Admin-Panel and displays various Statistics from a Google Analytics Account. It uses the JQuery plugin "jqplot" to display the charts. Github: https://github.com/w...GoogleAnalytics Modules directory: http://modules.proce...ogle-analytics/ Features Visits by Date (Chart) General Statistics about Visits (Total visits, Visit duration, New visitors, Returning visitors etc.) Demographics: Countries, Cities, Languages System: Browsers, Operating Systems, Screen Resolutions Mobile: Operating Systems, Screen Resolutions Pageviews by Date (Chart) Top Content Traffic Sources: Keywords, Referral Traffic by Domain and URI Choose a default date range displaying statistics: last 24 hours, 2 days, 1 week, 1 month etc. Custom date range by setting a "start date" and "end date" Requirements Google Account and Analytics Account A Project in the Google APIs Console cURL Installation 1) Create a Project in the Google APIs Console: Create a new Project in the APIs Console: code.google.com/apis/console/ Under Services, enable the Analytics API Under API Access: create an Oauth 2.0 Client-ID Give a Product Name, choose "Web-Application", Domain doesn't matter Enter a Redirect URI to the GA-Page in your Processwire Installation: http://yourdomain.com/processwire/google-analytics/ Notes: The redirect URI must exactly match with the URL from the new "Google Analytics" page in Processwire. Open the Page and copy the URL from the address-bar (localhost does work too!) The project created in the APIs Console can be reused for every Processwire installation using this module. You just have to enter more redirect URIs 2) Install the module: Place the module's files in /site/modules/ProcessGoogleAnalytics Install the Module via the Admin-Panel Enter Client-ID and Client-Secret keys from the created project in the module config Load the newly created page "Google-Analytics" and click on the button "authenticate" Grant the module access to the Analytics Data Choose a Google Analytics account (Domain) from the dropdown Done: You should see the statistics. Check out the module config options for further customization In order to let other users see the Google Analytics page, you must give their role access to the "ga-view" permission. Ps. Processwire is awesome and so is this community!
    1 point
  9. I missed the XML sitemap generator that I used in a previous CMS so I built my own module to achieve the same functionality. This module outputs an XML sitemap of your site that is readable by Google Webmaster Tools etc. I've generally found that it reduces the time it takes for new sites and pages to be listed in search engines using one in combination with Webmaster Tools etc (since you're specifically telling the service that a new site/new pages exist) so thought I may as well create a module for it. The module ignores any hidden pages and their children, assuming that since you don't want these to be visible on the site then you don't want them to be found via search engines either. It also adds a field called sitemap_ignore that you can add to your templates and exclude specific pages on a per-page basis. Again, this assumes that you wish to ignore that page's children as well. The sitemap is accessible at yoursite.com/sitemap.xml - the module checks to see whether this URL has been called and outputs the sitemap, then does a hard exit before PW gets a chance to output a 404 page. If there's a more elegant way of doing this I'll happily change the code to suit. Feedback and suggestions welcome On a slightly different note, I wanted to call the file XMLSitemap originally so as to be clearer about what it does in the filename, but if you have a module that begins with more than one uppercase letter then a warning containing only the module name is displayed on the Modules page, so I changed it to Sitemap instead which is fine as the description still says what it does. File can be downloaded via GitHub here: https://github.com/N.../zipball/master
    1 point
  10. I'm sure this is a great module, I haven't tested it but thanks for your work. I have two concerns with the module's approach though: 1. The Twig templating engine should be stand alone/a seperate module, which is not autoloaded. The TemplateTwigReplace module then should load the Engine and work with it, this way other modules can use the Twig Engine by loading the stand alone module as well without running into any issues. 2. warning: extensive use of the word "logic" =) I think the whole purpose of Twig is to sperate presentation from logic, so it should only be used for simple logic. Replacing the whole template system with Twig makes it necessary to write all logic (e.g. selecting data, merging data et al) in Twig templates which make them almost equally ugly as php templates with much logic in them. I think a better way would be to use regular php templates as controllers, have them do some heavy logic lifting and then pass data to Twig views which should only be concerned with outputting/formatting strings and iterate through loops and so on. PS: oh, and thanks, I was having problems with passed PW data to Twig so I looked at your code and discovered Page::$issetHas = true;. I then found out that Ryan implemented that feature after @porl had the same problems while coding his Twig module, so thanks to Ryan too =)
    1 point
  11. A simple way is to use a "members" page with url segments. This page would be a normal page on the frontend, but would accept segments with the user names www.example.com/members/username. In your template you would do something like this: $username = $sanitizer->name($input->urlSegment1); // make sure the user input can be a page name $userPage = $pages->get("template=user, name={$username}"); // get the user with this name if(!$userPage->id) throw new Wire404Exception(); // if this user doesn't exist show the 404 page echo "<p>the name of this user is {$userPage->title}</p>";
    1 point
  12. It's right there in the cheatsheet OK, so your turn to beat me this time!
    1 point
  13. Thanks to Soma, we have this: http://cheatsheet.processwire.com/
    1 point
  14. echo $page->createdUser->name; Adrian beat me to it...OK, so am slow...nothing new there
    1 point
  15. Photowebmax: I recognize a lot in what you write and I'm sure others will also. Yes, first we are human and second we are a designer/coder. Modx, well, loved evo but ran away from that frankenstein cms revo. Yes I have to give the modx forum credit, especially to Susan Otwell. She helped countless people on the forum and also helped modx a long time ago when they were in trouble. Thanks to pw I finally fell in the process of becoming a php coder. Making websites has the advantage of making new contacts/friends world wide.
    1 point
  16. But in sublime you can set whatever you want to certain highlighting - which is also readable. I now use google profile because it's one of the more clear ones. Unless you use php strings...
    1 point
  17. looking forward to checking this out soon. The servers I use at work don't have ImageMagick, so I have to carve some time at home.
    1 point
  18. Never really hear of MODx, except in this forum. But I have been playing with so many php scripts and cms over the last year, and I suddenly came upon Processwire. Sure, in the beginning it's a strange learning curve to dive into. Global naming conventions would be nice when learning some software package, but is really a utopia. It took me around a month to learn about page vs pages, find vs get, and especially the API/cheatsheet and profiles. Thankfully on this forum there are many contributors that reach out and help. Meanwhile I get to learn PHP as well. And yes, of course there are always things you miss or are not clear. But so far, I am building a great website with just basic knowledge of PW which I had never done using any other software. If someone mention about another software, I will read it being curious, but skip using it any way. PW for me is so complete and easy and I doubt if I ever turn to other software. Also a good thing about PW is that it's solid. No errors (unless you make them yourself). Not if you update, use a profile, or a module (so far). There is really only you, building the way you want, making layout how you want. And certainly not a hundred or more coders uploading whatever profile/module the want. There's a great team behind it all.
    1 point
  19. Uploaded version 0.1.7 to github - added handling for gamma correction when gamma reading seems to be not available. With some versions of Imagick the function getImageGamma() returns 0 for all images. Don't know why, but have changed the code to asume a Gamma of 2.2 in those cases.
    1 point
  20. It's probably that
    1 point
  21. 1 point
  22. Yet another way to check for guests only is with $user->isLoggedIn()
    1 point
  23. This one is really tricky. If you do something like letting them create their own fields in the normal PW way then you will quickly have thousands of PW tables (one for each field) but even if you tried to do something like a normal DB table with all fields in one table and they add fields in a normal DB method (you'd need to build a nice interface for this) you would still have a table for every group. You almost need a custom fields table for every groups field info to go into (label, fieldtype and which group the field belongs to) and another table to store the values. You're limited on what fields you could offer there (the value field would be text or varchar) so you would have integer, text and so on but not image or file. That's just me thinking out loud, but something like this has the potential to get out of control very quickly.
    1 point
  24. Jonathan, Nice work! I'm not having the flicker issues Teppo mentioned here, it might be a browser issue? In taking a quick look around, the only thing I noticed is on some of the inner pages the red block headers repeat a lot. It starts to get tiring on the eyes pretty quick to read white on red, and makes some of the denser pages a tad overwhelming visually. Perhaps finding a way to pull back in some areas? 2 second modification via the inspector to illustrate: I made the headers in the middle grayscale instead of red. Gray may not be the right choice — but you get the idea. Just my opinion of course. I really like the site overall.
    1 point
  25. I'm on mobile and at my parents door waiting to finish this answer to ring. Just wanted to thank for your text and tell you that it told me a lot about mode, a system that I don't know, but respect. I'm sorry for your losses.
    1 point
  26. Hi and welcome to Processwire. Sounds like you've dived in and are having a good play around. The fun thing with PW is there's never one particular way to do things, and you can use it as a framework and bend it to your will. Looking forward to reading more from you. Enjoy the journey
    1 point
  27. After using pw for a while now, same experience here. In the beginning pw surprised me how easy you can take your first steps with php. Then, only after making websites, you're gonna find out how powerful the pw api is.
    1 point
  28. Great to have you here Guru and I think you summed up perfectly why we all love ProcessWire - it's just an incredible tool that allows us to do what we want and in many different ways. Your appreciation for what Ryan (and contributors) have created here will grow as you realise its true potential
    1 point
  29. If you set the textarea to content type html, in the field settings, PW will take care of it. If you set the textarea to content type html, in the field settings, PW will take care of it.
    1 point
  30. $pageArray->has($page); http://processwire.c...er=has Also it doesn't matter if you add duplicates as PW will remove them anyway.
    1 point
×
×
  • Create New...