Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/12/2012 in all areas

  1. I'm currently trying/learning out knockoutjs. http://knockoutjs.com/. A while ago I tried backbonejs which is also very nice but more complicated than knockoutjs. I found the tutorial kinda cool and just wanted to share here. Maybe something like this could be done for ProcessWire Check it out: http://learn.knockoutjs.com/ To try it out and learn I started a Process Module for creating a bunch of pages. So far it's very nice and I will share very soon. Through not sure if it would be a to be officially released module or not. It now looks like the screen. You can choose a parent page, then it will enable "add" button and provide templates that are allowed to use (regarding family setting) or all templates that can be used. After creating the set of pages the button "create pages" will be enabled and you can create them, once done you'll see a list with a link to the parent and the pages you created.
    4 points
  2. Just made version 1.1 of this module available (GitHub). Changes (additions actually) in latest version: Explore properties and data of matching pages in a tree view Language aware: multi-language and language-alternate fields supported Repeater fields and values Images and their variations on disk More data is loaded on-demand as the tree is traversed deeper [*]Quick links to edit/view pages, edit templates and run new selectors (select pages with the same template or children of a page) [*]Page statuses visualized like in default admin theme I'll update the first post in this thread and include some screenshots there as well.
    4 points
  3. Added the Teppo's fix for repeaters!
    3 points
  4. Couldn't agree more with Adam. If what the client wants is exactly what Joomla, WordPress or some other system already has to offer (very unlikely, but possible) that's fine by me -- honestly, I've absolutely no problem with that. Actually most of time it'd be waste of time and money (my time, their money) to reverse-engineer an existing solution. Not to mention that it's just no fun at all. One thing ProcessWire is very good at (and many other systems seriously lack) is flexibility. As a ProcessWire user you can freely discuss with a client what she really needs, throw in wild ideas and if you both agree that those ideas would benefit the client more than some existing plugin/module with tons of unnecessary features, bells and whistles you can just build it -- without any unnecessary hassle and with remarkable ease. This way you're actually selling solutions, not features. Of course with ProcessWire you can also be sure that whatever you build with it is most likely more secure, way more flexible and much easier to maintain than anything you could build with pretty much any other platform. And just for the record, this comes from someone with years of experience maintaining WordPress installations. ("Years of testing", yeah right -- more like "years of hastily fixing bugs by replacing them with new ones.") All that said there are probably situations where you should either consider going with another system or just ditch the case. Sometimes it's just not worth it.
    2 points
  5. 1.) He's using Joomla. He can't understand this. 2.) It's not about the number of features. Actually, the less, the better- are you really using all of them? 75% of them? 50% of them? 3.) Years of testing… Right. (come on. If anything has 100% of code years-tested, it's probably outdated) 4.) Want to do it different way than your precious module? Yea, fuck you. [This is 95% applicable for WP/drupal as well) --- With building on huge CMS + modules, you end up doing a lot of compromises, which I'm not willing to do. And those are also the bad compromises, the ones users see (unlike e.g. Rails, which makes do stuff his way, but output and experience are in your own hands) --- Ultimately, I'm not selling my clients my ability to stick modules together. I sell the best possible website (in terms of Bussiness Goals and UX) I can create.
    2 points
  6. Very simple discussion board using pw pages as topics and replies. It means that you can use the great API with your discussions also. This is VERY tiny in features, but I am open to suggestions. I want to keep this small, since there are plenty of great php based forum software around, and this tries to nail much simpler needs. What this does currently is: Multiple forums on site Multiple topics on forum Only logged in users are allowed to post Admin stuff is handled true pw-admin (everything are just pages) Replies and topics are tied to user accounts Current shortcomings: You cannot change markup easily You cannot change text / date formats etc (waiting for PW 2.2 for this) How to install Make sure you run the very latest version of ProcessWire 2.1, at least this commit or newer. Download the file from github and copy it to /site/modules/Discussions.module Go to admin -> modules and "check for new modules". After that click Install on "Discussions" It creates 3 fields and 3 templates for you. But it doesn't create 2 required template files - you need to get your hands dirty. Create two new template files: discussions-forum.php and discussions-topic.php Edit your new templates and add this line to both of those: echo $modules->get("Discussions")->render(); Create a new page and give it template: discussions-forum You probably want to add Markdown Extra textformatter to your discussions_message field. (Ryan, how to do this from install script?) That is pretty much it. It will look ugly as hell, so you really want to add & edit some css (very basic starting point provided below) /* DISCUSSIONS -basic styling */ #discussions { position: relative; width:100%; overflow: hidden; } .discussions-reply, .discussions-form { padding: 20px 0; border-bottom: 1px solid #ddd; clear: both; overflow: hidden; } .discussions-form { border: none; } .discussions-information { float: left; width: 20%; overflow: hidden; } .discussions-author { font-weight: bold; display: block; } discussions-datetime { font-size: 0.9em; color: #666; margin-bottom: 1.5em; } .discussions-message { border-left: 1px solid #eee; padding-left: 3%; margin-left: 2%; width: 74%; float: left; } .discussions-form label { display: block; } .discussions-form textarea { width: 90%; } #discussions .discussions-message p, #discussions .discussions-message table, #discussions .discussions-message ul, #discussions .discussions-message ol { margin-top: 0 !important; } /* Pagination */ .MarkupPagerNav { margin: 1em 0; font-family: Arial, sans-serif; overflow: hidden; } .MarkupPagerNav li { display: inline; list-style: none !important; margin: 0 !important; } .MarkupPagerNav li a, .MarkupPagerNav li.MarkupPagerNavSeparator { display: block; float: left !important; padding: 2px 9px; color: #fff !important; background: #2f4248; margin-right: 3px; font-size: 10px; font-weight: bold; text-transform: uppercase; } .MarkupPagerNav li.MarkupPagerNavOn a, .MarkupPagerNav li a:hover { color: #fff; background: #db1174; text-decoration: none; } .MarkupPagerNav li.MarkupPagerNavSeparator { display: inline; color: #777; background: #d2e4ea; padding-left: 3px; padding-right: 3px; } This was very fast to code (I estimate 6 hours, certainly under 8 hours). I consider this version as a alpha, not tested that much (well, it works on my computer ) and I do wanna add some features and get feedback (how it works, any security issues etc). All feedback is welcome.
    1 point
  7. This module creates a page in the ProcessWire admin where you can test selectors and browse page data and properties without editing a template file or a bootstrapped script. Given selector string is used as is to find pages - only limit is added, if given. Errors are catched and displayed so anything can be tested. Pages found with a valid selector are listed (id, title) with links to the page. I was thinking this would be useful for someone new to ProcessWire, but it turns out I'm using it myself all the time. Maybe someone else finds it useful as well. Module can be downloaded here: https://github.com/n...essSelectorTest Modules directory: http://modules.processwire.com/modules/process-selector-test/ Features Edit selector string and display results (and possible errors as reported by ProcessWire) Explore properties and data of matching pages in a tree viewLanguage aware: multi-language and language-alternate fields supported Repeater fields and values Images and their variations on disk More data is loaded on-demand as the tree is traversed deeper Quick links to edit/view pages, edit templates and run new selectors (select pages with the same template or children of a page) Page statuses visualized like in default admin theme Add pagination Screenshots
    1 point
  8. Description A ProcessWire module to add some classes to your body tag. That will give you a better control of your CSS. Basic Usage Add this code into the class of your body tag: <?php echo $modules->get("BodyClass")->bodyclass() ?> So your body tag should look like this: <body class="<?php echo $modules->get("BodyClass")->bodyclass() ?>"> Custom usage <?php echo $modules->get("BodyClass")->bodyclass(array('page_id' => false, 'template_name_prefix' => 'templatename-')) ?> Default options array( 'page_id' => true, // bool (default true) return the page id 'page_id_prefix' => 'page-id-', // string (default 'page-id-') prefix for page_id 'parent_page_id' => true, // bool (default true) return the page id of of parents 'parent_page_id_prefix' => 'parent-page-id-', // string (default 'parent-page-id-') prefix for parent_page_id 'template_name' => true, // bool (default true) return the template name 'template_name_prefix' => 'template-', // string (default 'template-') prefix for template_name 'browser_info' => true // bool (default true) return some browser informations (os, browser, browserversion) ); Project Page on GitHub www.yesjoar.com
    1 point
  9. http://www.fmmhindusociety.com/ This one is the first website I have created with ProcessWire for non-profit organization. As I have mentioned in my one of the post that this website is hosted under windows platform which has IIS7 as web server. Thanks for checking out.
    1 point
  10. One other interesting thing I noticed is that we've risen a lot on Google for the term "Open Source CMS". Looks like we are now on page #2 of the results (which is a major improvement), right below SilverStripe and Symphony, but above Umbraco. Then again, Google changes these things up a lot, so your results may vary.
    1 point
  11. Sure, I'll be glad to share any numbers I have access to. Here's a graph showing traffic growth since the project started. Currently we get 500-1000 visits a day, depending on the day. We may be quite small in terms of traffic still, but our trend is upward. Other than WordPress, it appears that most other well-known CMSs are trending downward in terms of search volume.
    1 point
  12. Ok, it might be that repeater has it's own RepeaterPageArray. Not time to see source if there is slice available, but you can always loop through the links and put them into two different arrays.
    1 point
  13. http://processwire.c...pi/arrays/page/ array_slice no good. Try $p->links->slice() Actual array_slice isn't working because PageArray is not actually a php array, it's an object.
    1 point
  14. Something I just recognized. When a page is unpublished, and I hit enter on a text field, the form get's submitted and page is published. This is kinda bad, as user isn't maybe aware of it. Maybe some dialog alert would be good way? Ideas?
    1 point
  15. We should probably setup a separate Module development forum, perhaps as a subforum of the Modules/Plugins forum. I will plan to do this as soon as there's time to go through and organize all the threads into the right place.
    1 point
  16. Image/file fields aren't extendable by default, but you can create new extended image field. And repeater is of course one possibility... but if you don't need description field for anything else, then I think it is just fine to use it for the url.
    1 point
  17. Technically the only module groups built-in are those that start from a base class: Process, Inputfield, Fieldtype, Textformatter, ModuleJS. The headlines you see in the Modules list are runtime grouping of the first word in a modules' class name. Conveniently, this works with our our base-class module groups, but it does also extend to other modules with similar naming conventions. For the most part, I think it's better not to use one of the base class names for your module unless it extends that class. In the future, we may want to offer other types of runtime grouping options like: modules related by dependency, autoload modules, etc. Related modules in a group may have different naming conventions by need (like a related module set that has it's own Process module, Fieldtype and perhaps others) -- these aren't expected to appear together in the modules list.
    1 point
  18. ProcessWire is happy to run in a subdirectory or further. But it is not designed to share databases with any other product. While you may be able to do it (assuming no table name conflicts) I don't recommend it for ProcessWire or any other software... just as a matter of good security.
    1 point
  19. While at it make the ->first() also work as ->first.
    1 point
  20. "Custom coding" might be as simple as this: <?php if ($user->hasRole('subscriber')) { echo $page->body; } else { echo "<p>To read full document, you need to login (or register)</p>"; echo $page->shortContent; }
    1 point
  21. Thanks apeisa, I got the site 'done' over the weekend (enough to show it could be done, anyway). It was an absolute breeze (apart from my daft cockup), and your modules are very impressive. Don't know if the site will ever go live, but if it does, I'll post a link.
    1 point
  22. Thanks for this! Love the integration with the API.
    1 point
  23. Good job, nice and clear, easy to use
    1 point
  24. One more step you have to do. Go to Setup->Templates. Click on 'home' template. Click on 'Access'. Give the 'Edit Pages' access to the newly created role. You can also give other access if you wish as per the new role.
    1 point
  25. Roles are actived per template basis, so take a look at your home template and access tab. PS: Welcome to the forums!
    1 point
  26. Thank you both, this is very helpful. I appreciate your help and LOVE ProcessWire!
    1 point
  27. I read it - I've read it every time, never occurred to me to post there. Sounds like the place to go for support as a user of a module. It does not say "development" anywhere in there. "Questions, answers and support for ProcessWire module development" would have had me posting there
    1 point
  28. reading through this, fron the UX standpoint, your best option might be to create admin module, that will be in the main navi, like 'add person'. when you open it, it shows you firstname lastname fields, and when you submit that, a new page is created, with name and title created programatically. for the edit/delete actions, nothing changes (and you seem to have figured those out)
    1 point
  29. +1 to findRandomInterval() Also, agree with Mindplay here - a great addition and many times more useful than "total random"!
    1 point
  30. How about findRandomDelayed() or findRandomInterval() ?
    1 point
  31. I don't see any reason to add more settings that are totally irrelevant or purely aesthetic for 99% of projects. Urls with trailing slashes look nicer (imo) and work nicer (like Ryan explained). Overthinking and overconfiguring each possible option is certain way to bloat. Page that isn't allowed to have sub-pages might be allowed to have sub-pages later on. Also the family tab settings are only for admin usage - children are possible through API. So I wouldn't tie any code breaking functionality on that setting and assumption.
    1 point
  32. WillyC is right! How could I missed it So you can do: $form->setMarkup(array( 'list' => "<div {attrs}>{out}</div>", 'item' => "<div {attrs}>{out}</div>" ));
    1 point
  33. To make it even shorter, you can also do this (specify path to category): $posts = $pages->find("parent=/posts/, category=/category/events/"); Or this (specify title of category): $posts = $pages->find("parent=/posts/, category.title=Events"); To take it further, you could replace "title" above with any field present on the category template and match based on that. But I think 'title' or 'name' are probably the most common ones. If your 'category' field only exists on your posts, then technically, you could leave out the "parent=" part. Though a more specific selector tends to scale better than a less specific one (like if you re-use your category field in another template). So I do think it's worthwhile to keep it, or use $pages->get('/posts/')->children('...') like in your example. In PW 2.3 (dev branch), you can now do this as well, which would be the shortest possible alternative: $posts = $pages->find("category=events"); The above is matching the page's name field. Since there is no slash in the value "events", it assumes you are talking about the page's name rather than path or ID.
    1 point
  34. Not sure. I think it's either a children's game or has something to do with MS Office, or both.
    1 point
×
×
  • Create New...