Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/20/2014 in all areas

  1. I didn't take any offense from the MODX tweet. I saw it as a bit of a compliment to be recognized and mentioned by them, even if that wasn't the purpose of the tweet. It's nice to be on the radar at least. I've always seen MODX as one of the big guys. When you are a relatively small project, this kind of thing is good press. They've got a lot of followers and some people that didn't know about ProcessWire may now know about it. They know that. So long as they aren't saying bad things about us, then I'd see it as a friendly mention. But then the context and scale settled in. As nice as it is to have any mention, a single tweet from them could essentially kill us in any kind of competition like this (they've got 4k+ followers). That realization got me a little down yesterday as I realized all the hard work of saml and others to get out the vote could be wiped away with a single tweet from them. Hundreds or thousands of people voting for one thing to vote against another, many perhaps not even knowing what either is. That was my fear, luckily that hasn't played out. But I'd like to thank Jeroen, Mary and others that were looking out for the project here. I honestly don't think MODX had any bad intensions (and ElasticSearch deserves recognition), but it is really awesome just to know that people are looking out for the project like this.
    6 points
  2. Hi folks. This is Jay from MODX. I am the one who composed the offensive tweet. My sincere apologies for the bad form. It was not intended to be an attack on Processwire in any way, however, it is now obvious it would be interpreted as such. I had written a few tweets and scheduled them in HootSuite in support of Elasticsearch (a project we're using on some of our site properties). As Processwire are the ones to beat, it was intended to be a call to action for folks supporting Elasticsearch. No excuses. I would have been equally appalled by someone appearing to attack MODX. Keep rallying the troops, PW deserves to be in Bitnami, for sure.
    6 points
  3. Just for the record; I, a MODX Ambassador, don't agree with this tweet at all. Already told the MODX core team not to do this again. I love both MODX and ProcessWire and hate tweets like these. These two CMSs should work together to improve both products and not start fighting each other...
    6 points
  4. I just did this random query over 45k pages and don't see any slow down. $pa = $pages->find("template=basic-page, sort=random, limit=4"); With 43k pages random query time: 0.0474 With 720 pages random query time: 0.0326 Almost as fast as a $pages->count()
    5 points
  5. @kongondo yes. chalk it up to a brain fart. @dazzyweb. Already done: http://note.io/1mk7juA Best of luck, though it doesn't look like you'll need it. One suggestion from my experience campaigning for MODX though was consistency makes a difference. Ask on your social spaces at least once every other day. Many people will not see one tweet/+post/FB post etc. It really made it happen for us. PW obviously has an active and supportive community. Cheers, all.
    5 points
  6. I'm new to PW as well, but here goes.... pages This is how I understand it at the moment. The biggest conceptual shift is moving away from the idea that pages are web pages. In PW they are more than that. Pages hold data, so think of pages as more like records in a database. Exactly what data the page has depends on the template the page is using. When you create a new page, the first thing you do is choose a template for the page. templates. (1) Templates keeps track of what data items will be stored with each page eg name, position, phone etc. Each template uses one or more fields, and you decide which fields when you create the template. (These fields can be changed later on, if you wish, but obviously deleting a field will also lose the data associated with that field ). The data is collected when you fill in a form on the admin panel for each staff member, or if you already have a lot of data you can import the data as a csv file using the Import Pages from CSV module, You can have as many templates as you like, and fields can be re-used in multiple templates. (2) the template usually has a php file of the same name in site/templates that manages how the data is displayed. The template php file is where the code goes to produce a simple vanilla display of data, or can get as fancy as you like with tables, tabs, and whatever collection of whistles and bells you like. Each template has access to the $page variable that comes with PW, which can be used to refer to each item of data (ie the fields in the template) on your page, using syntax $page->myvariable to refer to the data in the field. eg If the page had a field first_name, then echo $page_>first_name would print the first name of the person associated with the page. Ryan explains it really well at http://processwire.com/talk/topic/43-template-tutorial/ (3) templates are created from admin>setup>templates>new template. This is where the fields are connected to the template (and to pages using the template). The php file manages the display of the page. It doesn't seem to matter whether you create the php file and import it into templates first, of whether you create a template first without a matching file and ad the file later. To display a page for Fred Nurk, you would have a page using a template with fields for name, phone and whatever else you want to record, and a template php file, with the same name as the template. If your template was called staff, you would also have a file staff.php, in site/templates. If the page for Fred was under a subdirectory called employees, and the title field was used for his name, then the page could be viewed at yoursite/employees/fred-nurk/ fields fields are containers for information. Fields need to exist before they can be added to a template. Fields are created from admin>setup>fields.new field. Each template has a mandatory title field, which is used to when a page is displayed in the pages directory tree. It's also usually used to build the url address that will be used to view the page. Getting information in a page from other pages You can get information into a currently displayed page from another PW page, by using the $pages variable and any selector that seems appropriate. There a number of different selectors that let you locate a particular page or group of pages by a wide range of criteria. The API section on Selectors is a must read and reread.(It's a lengthy page full of essential information and I found it took a while to take it all in - it might be worth printing it out ) The selectors take all the pain out of querying the database .For example, selectors might be used to set up a loop through each of the staff member pages (remember pages are like database records) and generate a list of phone numbers on one page. If you're keeping things like skills on separate pages, then you can use a selector to get information about the skill, and add that to your page on Fred Nurk. In your template php file you would use a selector to locate a page or group of pages, eg $myfoundpage=$pages->get(some selection criteria) or $myPagesArray = $pages->find (some selection criteria), and then you have access to all the fields associated with $myfoundpage through its template. If the template for $myfoundpage has a field for pet_name, then $myfoundpage->pet_name will give you the pet's name. It you want to get really fancy, you can display entire multiple pages inside one master page, using the render method of a page (it comes with that $page that is built into eachPW page.) echo $pageA->render(); echo $pageB->render; echo $pageC->render; would display the contents of all three PW pages on the one browser page. Or you might set up a master/child type of page, where the contents of the bottom part of the page are changed through an ajax call depending on what actions are taken at the top of the page. You'll probably get the idea pretty quickly by getting in and having a go. I'd suggest using a really simple template and going through Ryan's mini tutorial on templates at the end of this post The tutorials section of the forum is a pretty good place to start as well. There's also the wiki
    5 points
  7. If you go to Admin>Setup>Fields and then edit the field with the tinymce Inpufield Type, there is a tab called "Input". On there you have the TinyMCE advanced configuration options. In the valid elements part replace "-p" with "#p". This will allow empty p tags. This should also pad the empty paragraph with a non-breaking space but for some reason TinyMCE seems to replace them with a regular whitespace. some more info here: http://processwire.com/talk/topic/4204-stop-tinymce-from-removing-entities/ and here http://www.tinymce.com/wiki.php/configuration:valid_elements
    4 points
  8. MODX is the only big CMS project that has taken the time out to participate in our community here (Mark, Shaun, now Jay, and maybe others), and all have been positive forces here. A year or two ago, Shaun, one of the MODX core developers (at least at the time), took out the time to chat with me on the phone, do some code review and provide some valuable open source tips and suggestions. No other big CMS projects have been as supportive or taken an interest in ProcessWire like MODX has. They have always been friendly to ProcessWire and I've always viewed the MODX project as like a big brother to our project. These connections are why I see any mention on Twitter in a friendly manner. Though I genuinely appreciate those who responded to the tweet and were looking out for us either way. Had it been from some other CMS project where we didn't already have these connections, it might be different. But this all reinforces to me what a great community we have here.
    4 points
  9. Hi Wilsea, Impressive summary of your initial take about the ins and outs of PW. Thanks. A few things need clarification: Pages - interesting further reading here by Joss It is important to understand the distinction between templates and template files. Templates do not have to have a template file with the same name as the template; you can tell PW you'll be using a different name. E.g. a Template called "Nit" can be associated with a Template File called "Picking". Template Files and not Templates display your data (in the fronted) Templates do not need to have a Template file Advanced template and template file approaches - classic thread by Soma and others. $page->first_name: in this case, there is a field on that page called first_name. If there isn't PW will complain very loudly Yes, fields are reusable. Some people get confused by this (not you). So, to further clarify, what it means is that you can add a field to as many different templates as you like and each of them (the field) will be a different instance of the field. It is important to add that removing fields from a template only removes the field's instance in that template and not in others. Also, you can't delete a field that is in use by any template. You can override the label of a field on a template by template basis (i.e. the instance of the field) For those who want to dig deeper: Each field (not each instance of the field) is actually a table in the PW database. The table will be named "field_field-name" (e.g. field_email). Each field instance is a row in that field's table Title field is not mandatory The only mandatory field in PW is Name. In the default install that ships with PW, Title is designated as a Global Field, hence required in all templates, hence its omnipresence. Hence, apart from name, in PW, all fields are custom fields. The name field is used to build the URL ...btw, the name and title of a page can be different Good job though! Cheers/k
    4 points
  10. @ryan, No worries at all. I am happy to join in. It seems Processwire has one of MODX's best attributes, an awesome and supportive community. Keep it going! All the best, Jay
    2 points
  11. A quick find in files for 'random' shows (in PageFinder.php): if($value == 'random') { $value = 'RAND()'; and else $query->orderby("$value", true); So it does seem to use ORDER BY RAND(), which is pretty slow when dealing with a lot of rows for the reasons you already mentioned.
    2 points
  12. You can filter them already enter "new version". About updates: The only thing would be using lazy cron to trigger something, that refreshes cache and looks for new versions. I can take a look at how exactly. Shouldn't be too much work. I like the idea. I think it's not something I want to use, cause most of the time updates to modules aren't really necessary to always update. Only if there's a security fix or other fix. Also some updates or more critical updates shouldn't be done on a live productive site anyway. What I also see possible is a general feed from modules.processwire.com one could subscribe to with updates.
    2 points
  13. I don't see any malice here - just a playful comment that only references PW because we are leading in this little race. If it had been someone else, then PW would not have been mentioned. Certainly not worth beating up the MODX chaps over - probably a nice enough bunch!
    2 points
  14. Apart from that: Elasticsearch deserves beeing picked, too. It's an awesome piece of software.
    2 points
  15. I'm proud to announce a "major" update to 2.0.0. I spent most of the weekend to make some changes, that makes it more convenient to browse, download, update, install and edit module from within ModulesManager. Change log 2.0.0 added jQuery DataTables to list modules. This enables convenient browsing with pagination, live search filter and sorting. State saving via cookies is enabled so if you come back it shows the table how you left it. added iframe modals for download, update, edit and install links. So you can now install modules without leaving the ModulesManager page. This is using Magnific lightbox by default, if installed, otherwise it will take the older Fancybox. some more translations added Update Note: This version requires you to install JqueryDataTables module before you will be able to use the new 2.0.0. I hope I haven't forgot something on the way. My tests so far went well and everything still works as before, just a little more awesome Thanks and enjoy the rest of the weekend.
    2 points
  16. PW has very flexible UA management. Most of the sites can get the exact needs fulfilled after little clicking. But when you need to scale it in horizontal way: ie. adding ten different news sections, each with same templates but managed by different group of people, PW doesn't make it too easy (since UA is tied to templates). Also roles&permissions&template access is a combination, that at least we cannot leave to our clients (it's way too complicated for your average editor) - it means that UA management have to be done by us. This is fine on small scale, but some of our sites are pretty heavy on UA: biggest site has over 800 user groups and many times we do have something like 50 000 users importet (these sites are not build on pw today, but hopefully they will be). So we need to have simpler UA that our clients understands and can use on daily basis. That will also mean less granular control, but easier to manage. Lucky for us, PW has hook system in place, that is flexible enough to allow hooking to UA also. Few months ago I started building module to add two features for PW: -user groups (user can belong to more than one group) -page based permissions based on groups (so you can say: this page and it's children can be edited by groups A + B and viewed by groups A + B + C I first thought that I should release this as a paid module, but after showing this current early version to Nik and Teppo (I knew they had similar needs) and when they showed interest in development I wanted to make this a community project (this is gonna be thousand times better than just me building it alone). So lot's of progress is coming and of course everyone is invited to collaborate. Be it ideas, comments, testing, use cases etc.
    1 point
  17. jQuery DataTables 1.9.4 This module adds the great jQuery DataTables plugin for use in ProcessWire. You can load the module in the admin from any of your module using: $this->modules->JqueryDataTables; This will load the module and add CSS and Javascript from DataTables. This mostly would be used by a custom admin Process module. Note: Loading this module will just attach the necessary files to the admin. To use it you would need to add your own jQuery scripts and init the DataTables with something like. $("#mytable").dataTable(settings); For more informations on the DataTables options and API refer to http://datatables.net/ Download: http://modules.processwire.com/modules/jquery-data-tables/ https://github.com/somatonic/JqueryDataTables I included only the necessary files, and removed examples and docs from the package. NOTE: To avoid confusion, THIS module has nothing to do with my ProcessDataTable module for ProcessWire! ProcessDataTable was a proof of concept integrating it in a admin page. It included the jQuery DataTables plugin, but unfortunately it may wasn't a good way to. JqueryDataTables is a special js module like Fancybox. It is a "integration" of the jquery plugin for developers to use datatables in their modules. It won't be loaded unless you do so. An example would be the ModulesManager. They can coexist if you will.
    1 point
  18. Ok there you go. Just added a new module to ModulesManager 2.1.0. You'll just need to update the ModulesManager, after that you'll find the new module ready to install. Modules Manager Notification 0.1.0 Sends out update information for installed modules to an email This module required LazyCron core module installed Note this is something you want to run like once a week When the lazy cron is running the request will be blocked for a few second, this is currently due to how the lazy cron works. Maybe we will be able to optimize this in future. After install you need to define the interval, an recipient email, subject and optional a "from" email address. There's also a checkbox to activate/deactivate the module running the lazy cron job. Note that this requires someone to hit your website (or admin) to get executed, so interval times can vary. It will then refresh the module feed from modules.processwire.com on your installation and check for new modules. If any found it will send out an email notification to the email specified in the form of: Found following updates for installed modules: Module: TextformatterHannaCode v0.1.4 Found new version available: v0.1.5 More infos at: http://modules.processwire.com/modules/process-hanna-code/ –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– Module: InputfieldCKEditor v1.1.3 Found new version available: v1.1.4 More infos at: http://modules.processwire.com/modules/inputfield-ckeditor/ –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– It will also save a notification log modulesmanager_notification_log.txt with an entry when the lazy cron was executed in your site/assets/logs/ folder.
    1 point
  19. Did you first go through this post: http://processwire.com/talk/topic/4491-unable-to-log-into-processwire-website/ Did you try erasing the login admin and password directly in the database table called field_pass and replace them with a known hash from another processwire install ? You can do a fresh processwire install and setup admin = admin and password = 12345678 then copy the hash from the tables in the database and put them in the database tables where you can not login. If that doesn't help then try these posts: http://processwire.com/talk/topic/1736-forgot-backend-password-how-do-you-reset/ http://processwire.com/talk/topic/4011-cannot-login-to-admin-area/ Is the php version on the new hoster a higher version ?
    1 point
  20. It's not only about "updates" it's about conveniently search download and install modules. It's also not about core features updates. Latest Additions is always the one on top, sorted by "Added". User favorites is not in feed, but likes, which is shown already. I'm working on a ModulesManagerNotification module for ModulesManager that you can install if you like and specify the lazy cron interval. Just need to test a little more.
    1 point
  21. Thanks for the comments kongongo. Joss's post on pages is a gem. I did a little bit of editing to try to make it clearer that it's the template files that control the display and not the templates. Thanks for pointing out that the template files didn't have to have the same name as the templates - bit of an aha moment there. One template for the viewed page, another for the page to be printed. Back to the API...$pages have a template property, and templates have a filename property (and lots of other properties too). That thread about advanced use of template starts to make more sense now. I recall reading in a post somewhere that PW is addictive. They were right. I'm hooked.
    1 point
  22. Your code seem not to make any sense. 1) Please can you explain to me what the variable $image in the first line should hold. (and what it actually holds) 2) and what do you want to do with a loop in the second line? (and where does $images come from?) You should go step by step. FIrst you should inspect the first line of code. If this does what you expect / want, go on with the next step. And really, you should _read_ the doc kongondo has you pointed to, once or twice more.
    1 point
  23. Make sure the image field is called imageK1. If so, this should work: foreach($pages->get("/leistungen/dekoration/")->imageK1 as $image) { echo "<img src='{$image->url}'>"; }
    1 point
  24. I'm not sure I can follow but want to mention an easy way current PW version has You could use .. echo $widgetpage->render(); .. In the widgetpage you then have a $options array with some things in it. $options["pagesStack"] // an array with the page from where the widgetpage is rendered. You can also use some options on render() echo $widgetpage->render("custom_template.php", array("somevar" => "a value")); Then your widget page is rendering with the custom_template.php and will also have the custom var $options["somevar"]
    1 point
  25. Sorry I was busy with my internship. So I haven't replied for a while. What do you mean, how I render everything? I added a hook and then used methods from the module to echo the result from those methods. I'll try and update this more but I am very busy finding a job atm (anyone in Zwolle area? please? )
    1 point
  26. http://processwire.com/api/fieldtypes/images/
    1 point
  27. Greetings, In the end, it will turn out to be good (though unintentional) press and attention for ProcessWire! And it is good to see friendly connections between ProcessWire and ModX. It's so easy to have bad relations in the virtual world, but so much better for everyone to build each other up. I have voted often already. Thanks, Matthew
    1 point
  28. I would create each one of those attributes as a Page, and use a Page reference field (multiple) to store them (perhaps named "boden"?). In the admin interface, this could be represented by multiple checkboxes, or AsmSelect (for example). So you would create Pages for all of those (FLIESEN, STEIN, TEPPICH ...) under a certain parent, first. Once you have that list, you can leave it alone. Then for each item that references those as a 1, you just add the relevant page to your "boden" field.
    1 point
  29. I am really impressed. Thank you very much! Just a small idea: I would love to have an easy option to filter the list to show only those modules which are installed and need an update. <dreaming> And if there was a weekly reminder mail about outdated modules (like Drupal does it), my live as admin would be even easier. </dreaming>
    1 point
  30. Thanks jaygilmore. Your vote would be appreciated
    1 point
  31. Sure. Just no need to mention PW that way. Not the nicest way to ask people to vote, is it?
    1 point
  32. I would just use random sort: $pa = $pages->find("template=basic-page, sort=random, limit=4"); findRandom is more for in memory or image arrays. As for the cache. No they won't get through, that's the purpose of cache. You could load them via ajax and inject them, after all they're at the bottom nobody will see they're loaded after.
    1 point
  33. Thought I should actually put the demo up on my site: http://foundation5.stonywebsites.co.uk/
    1 point
  34. Been voting for Processwire on Bitnami since November so great to see some traction at last and processwire at the top. My only reservation is that each month since I requested Processwire to be listed on Bitnami contest is that there seems to be some funny business at the end of the month. I found that on the last day or so of the month that suddenly hundreds of votes come in from nowhere on one or 2 of the applications in the contest. I am sure it is all legit though. Just get ready to bring in the troops on the last couple of days.
    1 point
  35. Just in case anyone was wondering why I've been silent for the last week, it's because I've been away on vacation, so have a lot of catch up to do here (didn't have internet access while I was gone). Just got back last night, and it seems my hands have to re-learn how to type. When I click on "view new content" I have 9 paginations of unread messages–ouch. This is probably going to take me a week to get through, especially with the Christmas holiday here. But I've been anxious to get back into the swing of things here and looking forward to getting focused on PW 2.4 now. Because I'm behind on the messages here, if there is anything urgent that you know of waiting on me, please reply or PM me and I'll make sure to get those right away. Thanks to all of you for taking good care of the forum while I was gone. Also Merry Christmas / Happy Holidays to everyone.
    1 point
  36. So I have a simple question. I am doing something very wrong I guess, I have two issues. Issue 1. When I go to hover over the thumbnail in the images field, it breaks. Not really sure what is going on here, but I can live with this issue. (found solution to this one.) Issue 2. I can't figure out how to pull the thumbnails, if they exist into my template. I am currently using this: <ul class='gallery'> <?php foreach($page->images as $image) { $thumb = $image->size(500, 400); echo "<li class='gallery-item'>"; echo "<a href='{$image->url}' class='albumImageLinks fancybox-button' rel='fancybox-button'>"; echo "<img class='gallery-image' src='{$thumb->url}' alt='{$thumb->description}' /></a>"; echo "</li>"; } ?> </ul> However, I want to pull a thumbnail if it exist for certain images which I need to crop using your module. I have tried everything in the directions, but I keep getting errors involving eq. Sorry I am not the best at php. ------------------------------------------------ Solved my problem: for people in the future here is the code that worked for me: <ul class='gallery'> <?php foreach($page->port_images as $image) { $thumb = $image->getThumb('thumbnail'); echo "<li class='gallery-item'>"; echo "<a href='{$image->url}' class='albumImageLinks fancybox-button' rel='fancybox-button'>"; echo "<img class='gallery-image' src='{$thumb}' /></a>"; echo "</li>"; } ?> </ul> Also you need to create a thumbnail settings that matches what you were going to use for the size parameters. For me I was using 500/400, if you describe these settings, they are defaulted, then you can crop to the size you need for specific pictures, the rest are center cropped, which is exactly what I needed! Thanks for this fantastic solution for cropping images!
    1 point
  37. Thanks guys, glad you like what you see so far. The product will be relatively simple in the first version (like what you see in the video), but I'll continue to expand it to be more and more capable. Things like multi-page forms, double-post URLs (like for Salesforce integration), multi-language forms, publish to pages and more are already planned and getting attention. But much of the direction will also come from what the audience wants most. Making themes is really easy. You just go here to do it. Then click "download" theme. Rename the CSS file included in the theme to jquery-ui.css and place it in /site/modules/FormBuilder/themes/[your-theme-name]/. Copy the /images/ directory that comes with it too. I'll include more detailed instructions with it, but just wanted to get across how simple it is to theme it. That's all assuming that you decide to even use jQuery UI for theming. You can certainly disregard jQuery UI output entirely and style it yourself with your own CSS. But I prefer the quick and easy Themeroller for most cases. Also, if you are using Datepicker or asmSelect inputs in your form, then you'll probably prefer jQuery UI css as I think it would be less fun to style those things manually. The Form Builder uses the same Inputfields as ProcessWire, so you can download more input types (like Soma's color picker, for example).
    1 point
×
×
  • Create New...