-
Posts
17,231 -
Joined
-
Days Won
1,699
Everything posted by ryan
-
Translatable File and Image Descriptions
ryan replied to Robert Zelník's topic in Multi-Language Support
File and image fields now support multiple languages for the description (in the current PW dev branch). The multi-language capability was built directly in the existing file/image fields, so nothing needs to be installed/modified–they simply become multi-language when you've got language support active. Thanks to stardesign for sponsoring this addition.- 11 replies
-
- 16
-
-
AutoLinks has been updated with the following additions: Multi-language support: You can now specify different sets of terms per language. Max linked terms option: You can now specify the maximum terms that will be linked in a block of copy. Markup for links: It will now let you control the markup for auto-generated links and you can specify different markup for internal and external links. Allowed tags whitelist: You can now specify a whitelist of tags where auto-generated links are allowed. For example, if you didn't want it generating links in headlines, you might tell it to only generate links in paragraphs <p> and list items <li>.
-
Probably not. The Table ProField is good for repeated tabular information. If your user profile needed to include a links, memberships, family members or something like that (each with multiple properties) then the Table field would be good. But the examples you listed all sound like they would still be best kept as separate fields to me. The only exception would be that I think you might potentially benefit from combining Hobbies, Dislikes, and About Me into a single Textareas field (similar to what @peterfoeng mentioned). This doesn't sound consistent with ProFields, or ProcessWire for that matter. If you are setting up a forum, your best bet us to use a forum software. We use IP.Board here and really like it, but there are plenty of other great forum packages that are smaller in scope too (I've heard good things about Vanilla). Also, I wouldn't worry about having too much power when it comes to forum software. Even if your needs are only basic, having a powerful forum software doesn't necessarily make it harder to implement. It just makes it more likely that it'll do what you need it to, when you need it to. The Page fieldtype won't be part of it, as Table isn't actually using Fieldtypes. But some kind of Page reference field will likely be added to Table.
-
Table Use this for tabular data, like rate tables or other things that you might typically represent in a spreadsheet. Use it for situations where you don't need the full-blown flexibility of repeaters, as it's technically more efficient with far less overhead than repeaters. Something like the Events Fieldtype could be very easily re-created via a Table field, but the potential uses are far broader. But for the most part, think tabular data when it comes to the Table field. Multipliers This is good for when you need a range of values (whether text, textarea, numbers, dates, etc.). If you are using repeaters with just one field in them, you might be a lot better off with a Multiplier. Like the Table field, Multipliers are very efficient and low overhead relative to something like Repeaters. Use Multipliers when you need to repeat a single input multiple times, optionally with a min and max number of inputs. Lets say you are building an employee directory, and each employee has between 1 and 3 email addresses. Rather than using 3 separate email fields, you would use 1 multiplier field and specify min=1 and max=3. Repeaters These are infinitely flexible in terms of what they represent, but each row of values is technically a page in the system. As a result, with the flexibility comes significant overhead. This is really only an issue when the quantity of repeater items gets high, or when you have lots (thousands) of pages using repeaters. I recommend repeaters for setting up things like homepage carousels. For example, if you go to the Villas of Distinction homepage, there are 3 separate repeaters in use on that page, each holding a photo, title, description, link. The client can have as many items in each of those sections as they want. Currently it looks like the first repeater as 6 items, the 2nd has 2, and the 3rd has 6. The possibilities of what can be represented with repeaters is endless, but look for potential alternatives when dealing with large quantities (whether large quantities of repeater items, or large quantities of pages using repeaters). PageTable This is one of the ProFields that is available for free (thanks to Avoine sponsorship) on the ProcessWire dev branch. Meaning, it'll be available for everyone to use as part of the core in ProcessWire 2.5. And you can use it now if you don't mind running the dev branch. PageTable has all the flexibility of repeaters, but with lower overhead from the admin/input perspective. Rather than trying to bundle all the inputs on one screen, PageTable shows you a table of items and you click on the item to edit it in a modal window. This enables it to be a lot more efficient from the admin UI perspective. It's also more flexible than repeaters are in terms of where you store your items. PageTable lets you choose where they should live, whether as children of the page being edited, or as children of some other parent page you designate. They might be a little more work to setup than repeaters, but I think that most situations where you need the flexibility of repeaters may be better served by PageTable. PageTable still can't compete with the speed and efficiency of Table or Multiplier, but consider using PageTable anywhere that you might have used Repeaters before. Repeaters and PageTable are fundamentally different from the admin UI/input perspective, so you'd want to compare them yourself to see what suits your individual input needs better. PageTable involves more clicking to create and edit items, making Repeaters potentially faster for entering data rapidly. But PageTable will scale much further in the admin UI than Repeaters will, so I would personally favor PageTable in more situations than Repeaters.
- 105 replies
-
- 45
-
-
Definitely still use for repeaters, but fewer for sure. I think it's all a good thing to have more options, as I expect repeaters will end up being used more for more appropriate situations rather than for everything.
-
We already have a dedicated Inputfield for this: InputfieldCheckboxes. Use that as your selection when creating a Page field, and you'll have exactly what you are talking about (I use it regularly for that purpose).
-
Multiplier and Table can be used as more efficient (and perhaps preferable UI) repeater replacements in a lot of instances. If either Multiplier or Table will serve your needs as well as repeater, they will be able to scale a lot better than repeater. File fields aren't supported by Table at present. I agree with Antti that PageTable is your best bet to replace repeaters for your particular need. While PageTable won't be as fast/efficient as Table, it will still be a lot better than repeaters in that respect. PageTable is actually very simple and I think you'll find it easy to get going without needing to read anything about it. From the API side you are just dealing with a PageArray like any other.
-
ProFields just comes in 1 edition, unlike FormBuilder and ProCache which come in either: Single, Professional, Developer or Agency editions. The ProFields edition is the equivalent of the Developer edition of FormBuilder and ProCache, in that you can use it in as many sites as you develop, for as long as you want to. I figured there wasn't much point to having individual site licenses with a multi-module package because chances are you won't use them all together on one site. It's more likely that folks will use one or some of the ProFields on some sites, and others on other sites. We want it to be a toolbox you've always got available to you when you need it.
-
I updated the wording on the page to just this: "The license to install ProFields and receive support goes to the purchaser."
-
Sorry, I will try to word that better. What it means is that that the license to create new installations goes to the purchaser. If it's purchased on a client's credit card, then they are the purchaser. If you pay for it, then you are the purchaser. The purchaser can put it on any sites that they design/develop (whether for themselves or their clients). If you want to mark it up and charge the client for it, that's fine. It's just that when you buy a product in the store, you are buying support of the product, so we have to know who is the person that gets support. That's all it is.
-
This is not possible, as fields in the Table represent literal fields in a MySQL database table, not ProcessWire fieldtypes. For instance, when you define a radio buttons or select input in your table, you are literally defining a MySQL ENUM field. And when you define a checkboxes input, you are literally defining a MySQL SET field. In this sense, the Table field is incredibly efficient and fast, as there's really no middle layer between your content and the database table. However, if you need multi-language text fields, you'd want the flexibility of either Repeaters, or the new PageTable field (now available for free on the dev branch). All the ProFields are available as of this morning in the ProcessWire store. I agree regarding Joss's voiceover. He heard my other pirate voiceovers and basically said: "step aside son, let me show you how this is done." I wrote a rough script and sent it to him. 30 minutes later, he replied with a voiceover that had everything in the script but majorly improved and with SO much more good stuff. All the funny lines are all Joss. My favorite is the "chuck 'em overboard to let the porpoises nibble on 'em."
-
Good question Alan. Here's a screenshot of the module config screen that I think answers your question. See the two settings at the bottom where you can define the max times to link and the distance required between links. AutoLinks is of course also smart enough not to attempt linking things that have already been linked.
-
Introducing ProcessWire ProFields: Table – it lets you literally define your own Fieldtype! This is one of the most exciting ProFields and it's something very different than any other Fieldtypes. I think it is best described by this screencast (be sure your sound is on): Special thanks to Joss for his great voiceover on this screencast. Please view the video at 720p and full screen if possible. Read more about the Table Field Table is part of the ProcessWire ProFields package now available for purchase in the ProcessWire store.
- 105 replies
-
- 30
-
-
-
Introducing the AutoLinks Text Formatter, part of the ProcessWire ProFields package of modules. What it Does This Textformatter module automatically links your specified phrases/words to your specified URLs. This is an excellent SEO and accessibility tool for creating automatic contextual links with little effort. If there are pages that you commonly link to in your site from your textarea/rich text fields, then this Textformatter can save you a lot of effort, automatically linking to those URLs. Furthermore, contextual links of this sort are also considered especially valuable from an SEO context. Because this module is a Textformatter module, the work it does happens at runtime. That means that this module can easily be applied to existing sites, no matter how large. Usage Example We'll use processwire.com as an example. Throughout processwire.com, we routinely use the terms "API", "selector", "template", "template file", "$page", "$pages" and more. In the past, I've spent a lot of time in TinyMCE manually linking these terms to the appropriate pages, as it is a helpful cross-reference for users. For example, when the term "API" appears, I want to automatically link to the API Cheatsheet page at http://cheatsheet.processwire.com. With the AutoLinks Textformatter module, I can now automatically link to all my important terms from all existing and future body copy. If one of those links happens to change in the future, no problem, as I only have to update it in one place (if at all). The benefits here are a real win win for the users of processwire.com, myself (in time savings) and our performance with search engines that analyze these contextual links. We hope that you find AutoLinks to be a huge benefit to your site(s) and time saver for you and/or your site editors. AutoLinks is available for purchase as part of the ProFields package in the ProcessWire Store.
-
You can multiply any type of field that holds a single value/property. This includes Text, Textarea, Integer, Float, Email, Datetime, Selector and URL. It can also multiply 3rd-party Fieldtypes as well (so long as they are single-property).
-
Similar only in the multi-value aspect. Repeaters are creating a new page for each item, and that page can have any fields. That's incredibly powerful, but also consumes a lot of resources. That's why we don't recommend repeaters in large quantities or other large scale usages. Multipliers on the other hand multiply an existing Fieldtype like Text, Textarea, Integer, Email, etc. (including those that don't yet exist), without any overhead or additional resources. They are incredibly scalable. Like all the ProFields, Multipliers are a tool that enhances things you can already do [with repeaters] by doing them more efficiently and in a more focused way. They are especially desirable those using PW for large scale projects. They may also be preferable from the admin UI aspect in that they don't have to be as flexible as repeaters, so they can stay more focused on the UI side as well. Language text fields (FieldtypeTextLanguage and FieldtypeTextareaLanguage) are multi-property fields. Multiplier can only multiply single-property fields at present (though most Fieldtypes are single-property Fieldtypes). On the core side, Multiplier can multiply: Text, Textarea, Integer, Float, Email, Datetime, Selector and URL. It can also multiply 3rd-party Fieldtypes as well (so long as they are single-property). However, it is technically possible to multiply multi-property Fieldtypes as well, so I am planning to add support for multi-property Fieldtypes in one of the next versions of Multiplier. This would enable you to multiply Fieldtypes like TextLanguage, TextareaLanguage, and MapMarker (and other 3rd party multi-property Fieldtypes). Since there are a whole lot more single-property Fieldtypes, Multiplier is focused on those for this first version.
-
Previously I posted about Textareas. The next field coming in ProFields is called Multiplier. This field lets you take almost any existing single-value Fieldtype, and use it as a multi-value Fieldtype. Single value Fieldtypes are those that store one piece of information at a time, for example: Text, Textarea, Integer, Float, Email, URL, etc. Any of these, and more can be multiplied with Multiplier. Here's a short video introduction to Multiplier. Like with the previous screencast, I recommend upping the quality to 720p and viewing full screen. This one also includes narration, though we're in allergy season here so my voice is a little rough. The next fields I have to tell you about in a few days are: Table, PageTable and AutoLinks.
- 17 replies
-
- 27
-
-
See the FormBuilder or ProCache Dev version, as the plan is to license this in exactly the same way. Since this comes with multiple modules, I don't see a reason to have a single site license because you might like to use one module on one site and another on another site. So I'd rather just license this one as a buy-once use anywhere type thing. These modules won't be part of the core. They are a separate product from ProcessWire in the same way that FormBuilder and ProCache are. However there is one exception: FieldtypePageTable (not FieldtypeTable) is one of the ProFields and this one is being included in the core thanks to a sponsorship by Avoine. I'll be covering more about this Fieldtype soon, but it's already available in the dev branch and a great addition that I think many people will prefer to repeaters. The idea and concept for this field was designed by Apeisa and I think folks will love it. That's good to hear that you think so highly of these modules! But since nobody outside myself has developed a site with these modules, they definitely aren't essential to building a site with PW. Though they are certainly useful and big time savers! The tools essential to building great sites with PW will always be core. Like with FormBuilder and ProCache, the intention with premium modules is to provide time and/or resource saving tools for those that make a living from this and want additional tools to support their work. In addition, purchase of premium modules is a way to support the ProcessWire project as a whole (since we don't take donations). Where multi-language is needed, ProFields are intended to be used with ProcessWire's language alternate field support. Most ProFields involve lots of inputs and it's not practical to multiply those per language the way that FieldtypeTextLanguage does. Though they can work quite nicely in the language alternate context. Beyond language alternate support, Textareas can be used in a multi-language context, but since you define what each component is, you'd be responsible for defining separate components for each of your languages. Meaning, it's not specifically a multi-language field, but you can choose to use it in a manner that supports your multi-language needs. If we find that there are practical ways to expand upon any of the ProFields for further multi-language support, and there's sufficient demand for it, then we'll certain do what we can there too.
-
Yes good point, the volume is a little low on this. I should have normalized it before publishing. I'll try to remember that on the next one.
-
ProcessWire ProFields is new product that will soon be available in the ProcessWire store. It consists of 4 really useful new modules: Textareas (Fieldtype + Inputfield) Multiplier (Fieldtype + Inputfield) Table (Fieldtype + Inputfield) AutoLinks (Textformatter) These modules are currently in beta testing, and I'll be posting screencasts to highlight some of the features of each over the next week or so. To start with, here is a screencast for Textareas: This video includes sound (narration) and I recommend viewing it at a larger size than above (preferably full screen), and bump it up to the 720p resolution so that you can see everything in better detail.
- 16 replies
-
- 37
-
-
FormBuilder is for building one form at a time. While you could fake a multi-page UI with dependencies, or even connecting multiple forms, It sounds like your needs might be more consistent with a survey or application software. I'm not aware of any good non-hosted solutions in this area, but something like WuFoo or SurveyMonkey might be a good one to look at. Google also has a form tool that can populate into their own spreadsheets, and it supports multi-page (and at no cost). Though the forms themselves are pretty limited and not so customizable. Still, they are worth looking at. But I would check WuFoo first.
-
This is specific to any CMS or software you might run on a server (not just ProcessWire). When it comes to the security of the hosting, I prefer something dedicated (VPS or dedicated) so that you don't have multiple websites (managed by other users) sharing the same file system. When you are dealing with a shared file system, you've got more to consider when it comes to the permissions of files and such. You need to make sure that the permissions settings you've chosen for uploaded files and such is not going to give other accounts the ability to change them. You are also likely sharing MySQL instance with other users in a shared environment as well, so there's that matter of resources being shared. You can certainly secure the shared environment just as well as the dedicated one, but it'll take more work and monitoring. Shared hosting environments also represent a bigger prize to hackers, so that seems to be where they prefer to focus their efforts. I would go with a managed dedicated or managed VPS. For example, I think all the servers available from ServInt are managed (I know this one we're on right now is). One other recommendation would be to isolate your software. Don't run WordPress and ProcessWire from the same account if you don't have to. WordPress is always a target, and if you get broken into that way, then you could create problems for everything else running on the same account (this is not uncommon with WordPress at least).
-
While uploading should work form the user profile, the Ajax/HTML5 uploader isn't intended to work on the user profile page. Note that it lacks the "drop files in here" label. I'd consider the non ajax upload a little more secure for a user profile, which may be accessible to someone that doesn't have page-edit access. So ajax/HTML5 upload isn't enabled on the profile editor. On the more technical side, the ajax field capability is a function of ProcessPageEdit, and ProcessProfile isn't built around ProcessPageEdit (since it's intended to be more locked down), so it doesn't inherit that capability. In testing here, image uploading seems to work (without HTML5/ajax uploader of course). I'm testing on the latest dev branch. Are there any other conditions necessary to reproduce the issue?
-
ProCache version 2.0.0 (now in beta, available in the ProCache board) adds these new features: Multi-host support If you've got multiple hostnames pointing at your ProcessWire site, now you can cache them separately. SSL / HTTPS support ProCache will now optionally cache HTTPS requests separately from HTTP requests. Switch to PDO queries Previous versions of ProCache used MySQLi. This new version now uses PDO, consistent with ProcessWire 2.4.0. This improves performance when generating and maintaining caches. Requirements ProCache 2.0 requires ProcessWire 2.4.0 or newer. ProCache 1.x still supports previous versions of ProcessWire.
- 79 replies
-
- 12
-
-
Set Language by Browser Language (only once on startup)
ryan replied to overoon's topic in Multi-Language Support
Thanks for posting the solution you came up with here. One thing I just wanted to mention is that you may be better off using some kind of language gateway or language switcher at the top of the page (something that can be understood by all your target languages) and ensuring that each language version of a page resolves to a different URL (ensuring no 1 URL is serving more than 1 language). My understanding is that Google advises against modifying the output of the request based on the accept_language header, and thus could be an seo concern.