Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/12/2015 in all areas

  1. I have observed clients having issues knowing which "New" button to use, but I'm not sure how this could be made more intuitive. It would be interesting to hear some different ideas. That said, the page tree is very intuitive, in my opinion. Most CMSs require you to do a two step process: create a page in some sort of massive "content bin" and then create a menu item that links to it. Usually the interface for creating the item is far less elegant than PW's page tree. In my experience, PW is a breath of fresh air for clients. You do have to put in some effort if you want to make the experience as seamless for clients as possible. In my opinion, the "Family" settings for templates is not optional. You really need to put the time in to set these-- Clients shouldn't be able to create a blog entry or news article outside of the blog or news section. That's just asking for trouble! Also, you can do a lot by setting access/permissions on your templates. You can prevent certain pages from being modified, while still allowing access to modify their children by giving the child templates different access settings. You can also lock pages. I really recommend playing around with some of these settings and logging in with your editor permissions to test them out until you get things fool-proof.
    4 points
  2. The latest 99Lime website, http://www.yucatanliving.com. Everything you ever wanted to know about living and experiencing life in the Yucatan. This was a huge project with a ton of different sections and templates. With Processwire we created a very large site with a lot of different content types and information without making the administration complex. We are very happy with how this project turned out and our clients love it! Processwire rocks the casbah! Shoutout to: Orlando world's most awesome processwire dev. Notable features Galleries Categories Search Advertising page /es Getting started 100% responsive Polls Event lists Custom Calendar of Events Module Custom Advertising Modules 404 Dynamic CSS colors Users and profiles. A few details. Over 1600 articles 20 templates A ton of Fields HTML KickStart jQuery Custom roles ProcessWire Modules used Custom CRON Module FieldTypeColorPicker FieldTypeConcat FieldTypeFontIconPicker Map Marker ProFields FieldTypePoll FieldTypeSelect Form Builder Migrator WordPress Migrator Batcher JumpLinks Comments Manager ListerPro New Comments System Video embed for YouTube/Vimeo Custom-built Advertising platform module. Custom-built Recurring Calendar module. Jquery Modules used Remodal ImageLightbox Sticky-kit BxSlider FitVids Jquery-Touch-Swipe-Drag
    3 points
  3. I think most of your issues are gone when you understand a little more about processwire. I would suggest to install a 'play install' where you can mess around and are allowed to break anything without issues. Especially take a look at permissions and roles and all template settings. 1. New pages. solution: Set your family settings right in the admin. 2. Overview. Again family settings & give examples and explanation at field level. 3. Clutter in the tree structure. Put settings in /processwire/settings/ folder (Don't forget te set access for settings folder) 4. User error risks. Setup proper permissions and it's solved. 1. Buttons. Already there (parental relation in template settings) PS: How do I create "apps" nav items a left menu (example)? Create a page under /processwire/
    3 points
  4. Just short from mobile....;-) Processors provide all option to create a simple user interface....build for every specific project separate.... Just some points on this to search some reading stufff...may I link it later.. - family tab settings - template permissions - make intensive use of the "add new" button....my clients log in after two months and click just....add new select article/page/document... - even create a simple administration dashboard is easy like creating a template for the backend....there are some modules on this topic... - its even possible to change the process of the "pagelisttree" to use Lister pro module ......much more option on this and every turn is on the one who use and setup the system for the client.... ;-) Regards mr-fan
    2 points
  5. Look into using Babun, which is a pre-configured Cygwin: http://babun.github.io/
    2 points
  6. Quickly toggle your checkboxes with extra action buttons via AJAX. The module adds functionality to InputfieldCheckbox so you can toggle the checkbox fields in the extra action buttons intruduced in ProcessWire 2.6.5 via AJAX. Github Page Download Link Requirements This module works only for ProcessWire versions later than 2.6.5. How to Install 1. Copy the files to /site/modules/ProcessQuickToggle/ 2. In your admin, go to Modules > Refresh for new modules. 3. Click the "Install" button next to "Process Quick Toggle". Usage Go to any checkbox field you want to enable quick toggle feature for. Setup > Fields > my_checkbox_field. There in the Input tab you should see an Enable Quick Toggle field. After you check it you will see some fields that you can fill based on your needs. Then save the field. Now there should be an extra button for every page that has this field in the Pages tree. Features Supports template contexts. Supports core FontAwesome icons. Any kind of feedback is appreciated.
    1 point
  7. 1 point
  8. I would also like to add to what thetuningspoon posted. The bigest problem that I have observed with develpopeing any application is where users not knowledgeable in the technology request more and more 'one-click' solutions to the tasks they wish to perform. I'm not knocking these users at all -- We all started with no understanding (and we should never forget that). I personally, however, do not think it is the correct approach to modify PW in this manner. It is a framework upon which we as developers build an application, and subsequently a simple-to-use interface. I only ever intend to expose the PW administration to any of my clients that are qualified, otherwise, I will construct an interface for them to use. As developers, our target audiences have a wide range of skills; from no skill at all, to the skill levels seen from the members of this forum (excluding myself). Although PW is presented as usuable by skill levels between this range, I think the responsibility lies with the user to learn the platform we recommend (assuming we pick the platform that best fits their capability and functional requirements). If they are unable or unwilling, then they might want to stick with - *shudder* - wordpress. Being new to ProcessWire myself, I am learning more and more about its capabilities, and my capabilities using it, as my framework of choice. Does PW fit every requirement? Of course not. But, in my humble opinion, it is the most robust and developer-friendly CMF I have found.
    1 point
  9. Did you change anything to the FieldtypeComments.module besides replacing some class names? Neither sleepValue() nor getDatabaseSchema() seem to have any reference to a new rating field, that should get saved. Edit: If this is your first time working with Fieldtypes I'd suggest looking at the FieldtypeEvent module. It's very well commented to serve as kind of tutorial for creating / modifying these.
    1 point
  10. While this is most of the time right it's not working in this case. You can only hook the path function for all pages, but not for single instances. Edit: Link to Ryan's statement about the fact: https://github.com/ryancramerdesign/ProcessWire/issues/1108#issuecomment-95933754
    1 point
  11. If you get stuck, feel free to share some of the code and I'm sure we can help.
    1 point
  12. Here you've the statement from Ryan about this: https://processwire.com/talk/topic/580-encrypted-urlsegment/?p=4652 @Evan Most likely you're tags will be created as pages, therefore they'll already have a pageName. Just use this as urlSegment and you're good to go. If you want to use the new options fieldtype you could instead use the value|Label syntax. E.g: A german tag "Männer" would could get the name "maenner" (Page) or be defined as option like this: "1=maenner|Männer". Both would work for this url: example.com/tags/maenner/
    1 point
  13. OK, I’ll do. This is the typical procedure when I create a website: I consider way too many edge cases ;-)
    1 point
  14. Muse spits out the most horrendous code. On the site I worked on I ended up taking a screen grab and starting from scratch. Probably not want you want to hear but it made (for me at least) for a site that had code I knew back to front.
    1 point
  15. Following this discussion I forked the module and added a new option: Always use “Publish From Date” field to store publishing timestamp If the new option is set to “Yes”, the publish_from field is automatically filled with the current timestamp in case a page is published manually. This way the publish_from field always contains a page’s publishing date – even if there was no scheduling via the publish_from field. This mimics the publish date field behavior of WordPress and is extremely handy if you use the publish_from field in a blog’s front end template. I made a pull request: https://github.com/formmailer/SchedulePages/pull/8
    1 point
  16. I know this may be more of a "Pro" feature right now, but PageTables could really sport the AJAX editing option like ListerPro, maybe even just for enabled fields. In some cases the PageTable might be quite narrow where only a small select option should be editable and a field with a more spacious inputfield should not be editable.
    1 point
  17. lol creating a topic by going to sub forum, couldn't resist when i saw the Jon Snow image, it means "you know nothing"
    1 point
  18. WOW! Just to answer myself; all of the above can easily be covered. Just don't use the render(); method. Step 1: fetch your menu data and store it in an array: $footermenu_items_json = $pages->get('name=footer-menu')->menu_items; // this is the menu page in menu builder, could also be fetched with the ID $footermenu_items = json_decode($footermenu_items_json, true); Step 2: use that array to build your custom markup: if( count($footermenu_items) > 0 ){ $out = '<ul class="nav-list">'; foreach($footermenu_items as $item){ $url = ($item['url']) ? $item['url'] : $pages->get($item['pages_id'])->url; $target = (1 == $item['newtab']) ? 'target="_blank"':''; $out .= '<li class="list-item"><a href="' . $url . '" class="list-item-link" ' . $target . '>' . $item['title'] . '</a></li>'; } if( $user->isLoggedin() ){ $out .= '<li class="list-item"><a href="' . $pages->get('name=login, template=login')->url . 'logout/' . '" class="list-item-link">Logout</a></li>'; } else { $out .= '<li class="list-item"><a href="' . $pages->get('name=login, template=login')->url . '" class="list-item-link">Login</a></li>'; } $out .= '</ul>'; echo $out; } Just make sure to var_dump the array somewhere to get an idea of what info is stored in there for the nested levels, etc. This is really neat. For me it's the best of both worlds - I can easily create and maintain menus in the backend, but can still fully control the output in the template. Thank you!! cheers, Tom
    1 point
  19. $page->listings returns a PageArray and PageArray::find doesn't work out of the box with pagination. Either set the start/limit/total values manually or use $pages->find() or $page->children(). Both of those will set these values automatically. Edit: Quick hack around. $listings = $page->listings->find("limit=2"); $listings = $pages->find("id=$listings");
    1 point
  20. I know this thread is old, but with the new Log viewer that Ryan just set up, I have started putting the following just before the body close tag (in main.inc or foot.inc or wherever needed so it is on all pages): if($user->isSuperuser()) echo '<iframe width="100%" height="200px" src="'.$config->urls->admin.'/setup/logs/view/debug/?modal=1"></iframe>'; Then whenever I need to log a variable or output of a function etc, I use the following in my template file: $log->save('debug', $problem_variable); If you need to output an array, json_encode is quite a nice solution: $log->save('debug', json_encode($array)); This will give you (as superuser) a panel showing the "debug" log output (which shows latest entries at the top) at the bottom of your site - very handy
    1 point
  21. Ok sorted it out. You can't use multiple or | with name field in a selector, since name it's not a text field like others. So to make it easy you would have to first check if there's one with "name" found or check for further fields. Here's a working code with some notes you would have in your home.php at the top. if(count($input->urlSegments) > 1) { // not more than two segments throw new Wire404Exception(); } if(count($input->urlSegments) == 1) { // sanitize to make sure it's valid page name $seg1 = $sanitizer->pageName($input->urlSegment1); // search for name since name can't be used with or "|" multiple field selector $found = $pages->get("parent=/landing-pages/, name=$seg1"); if($found->id) $session->redirect($found->url); // if page with name of url segment not found search alternative fields.. $found = $pages->find("parent=/landing-pages/, short_url=$seg1")->first(); if($found->id) $session->redirect($found->url); // if we reached here, nothing found, throw a 404 throw new Wire404Exception(); } In case you want to leave at the short url and not redirect, you could just render the found page and exit: if($found->id){ echo $found->render(); exit(0); } In case you got questions just ask.
    1 point
×
×
  • Create New...