This answer assumes that you have basic knowledge in using the Rules module and understand how to use a loop to return all values of a field with unlimited allowed inputs.
(Also, this will only cover reacting on a newly created node.)
So the main issue was that loop variables in rules were not available to me while in "Direct Input" mode BUT were available "Data Selection" mode.
I needed to concatenate all of the file names and file urls for an unlimited value file field and output them in an un-ordered html list in a Long Text field (Filtered HTML).
There may be a better way to do this, but this was currently the only way I could make this work.
1.) Create Extra Fields
Since the Loop variable tokens are not available in Direct Input mode BUT regular Field tokens are, we are going to put the loop variable info into the new fields AND THEN concatenate them.
You will create fields for the following:
- Uploading the files (File Field set to accept unlimited values)
- File Name field (Long text field. It is important that this is set to plain text. I experienced issues when this was not plain text)
- File Path/URL field (Also long text, also plain text for the same reason)
- File List field in plain text (Long text field in plain text. This is the field that will grab all of the concatenated values. It will make sense later. This also needs to be plain text or Rules will not concatenate the values for some reason).
- File List field in filtered html (Long text field with filtered html. This is the field that will be displayed to the users.)
In the above fields, only the very first and very last fields will be visible to the users. The rest should be hidden with the Field Permissions module.
The extra fields are just going to be used by the Rules module.
2.) Create a Loop
Since this file field has unlimited inputs, you will create a loop and select the File field.
I have named the current file in the loop "current_file".
3.) Grab the File name
Within the newly created loop, we will create an action to "Set a Data value". It will grab the newly created File Name field and grab the value of the current file's file name.
Be sure that you are not in direct input mode or the tokens will not be available to you.
4.) Grab the File's URL
This step is similar to the last.
Add another action to "Set Data Value" for the newly created File URL/Path field. Set it to grab data from the current file's file URL.
Once again, be sure that you are not in direct input mode or the tokens will not be available to you.
5.) Concatenate the Values
Finally, in the Plain Text File List field, we are going to concatenate the values.
We first enter in the token that represents the current field and below it, we will add on the current file name and path.
This time, be sure to be in Direct Input mode so that you type in whatever you like:
6.) Add ul tags
Make sure that this is outside of the loop.
Add an action to Set a Data value that adds ul tags around the value.
7.) Put the Concatenated Values into the Filtered HTML field
We are going to add another action to Set a Data value. It will put the value of the Plain Text File list into the Filtered HTML File List field.
The reason two different file list fields were created is because concatenating in a filtered html field does not work for some reason.
8.) See the Results
If all of the steps are followed, you should be given an un-ordered HTML list of each uploaded file that is linked to its file url:
I feel like this 'should' be able to be accomplished in far less steps, but this was the only way I could solve the problem.