Structured Content Types - Technical Architecture
Todo
Update to current version
Content Types
DIY Legal Solution
The primary content type for structured content is the DIY Legal Solution. This defines the problem and is the container for all of the other components, like questions and solutions.
A DIY legal solution should describe:
the problem the person may be facing
any options that may be used to resolve the problem, from inaction to resolutions
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (name) |
Title field |
1; required |
Name of the legal problem |
Subtype |
Text field |
unlimited |
A more specific type of the legal problem. For example, ‘being evicted from public housing’ under the problem “being evicted” |
Description |
Text area |
1,required |
Content description |
Meta Description |
Text area |
1, required |
Current meta description |
Disambiguation Description |
Text area (plain) |
1 |
A short description of the item used to disambiguate from other, similar items |
Identifier |
Hidden |
Node UUID |
|
Introduction |
Structured Text |
Unlimited |
Provides an introduction to the legal problem covered by the DIY Legal Solution |
Stage |
Text field |
1 |
The stage of the legal problem, if applicable. For example, pre-filing, post- filing/pre-trial, trial, etc |
Navigational IA |
Term reference |
unlimited, required |
Navigational IA taxonomy used for drill downs |
Legal issues |
Term reference |
unlimited, required |
Current legal issues field |
Primary legal category |
Term reference |
1, required |
Current primary legal category |
Primary level 2 category |
Term reference |
1, required |
Level 2 term from navigat- ional category |
User type |
Term reference |
Unlimited |
Used to cause a problem to appear on user-centric landing pages |
LegalCode |
Paragraphs: Legal |
unlimited required |
Legal code from standard coding systems |
LifeAreaAffected |
Term reference to Life Areas |
unlimited required |
The area of a person’s life that is affected by the legal problem. |
Possible solution |
Entity reference |
unlimited required |
Entity reference to Legal Solution that may help a user with this problem |
Primary prevention |
Entity reference |
1 |
Entity reference to legal solution that may prevent the legal problem |
Secondary prevention |
Entity reference |
1 |
Entity reference to legal solution that may prevent the legal problem |
FAQ |
Entity reference |
unlimited |
Entity reference to Legal Question content related to the problem |
RelatedResources |
Entity reference |
unlimited |
Entity reference to legal content. |
RelatedProblems |
Entity reference |
unlimited |
Entity reference to Legal Problem |
Citations |
Paragraphs |
unlimited |
Citations in support of the legal problem |
Image |
Image |
1 |
Image to associate with node |
legal position |
List |
1, required |
Current field_legal_position |
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
editorial notes |
Long text |
1 |
Space to leave notes |
word count |
Integer |
1, automated |
Words in the introduction |
page views |
Hidden |
1 |
Note
The related resources will automatically pull the name, last modified (last internal revision date), last reviewed (last expert review date), url, and content format as additionalType in exporting the schema.
Legal Solution
The Legal Solution content type is used to contain the details of each option a person may have to resolve a related problem. A solution may be tied to more than one problem. For example, filing for Chapter 13 bankruptcy may be a solution for dealing with credit card debt and for dealing with medical debt.
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (body) |
Title field |
1 |
Solution title |
Alternate name |
Text field |
1 |
An alternative name for the solution |
Description |
Text area |
1,required |
Content description |
Meta Description |
Text area |
1, required |
Current meta description |
Disambiguation Description |
Text area (plain) |
1 |
A short description of the item used to disambiguate from other, similar items |
Legal issues |
Term reference |
unlimited, required |
Current legal issues field |
Primary legal category |
Term reference |
1, required |
Current primary legal category |
Identifier |
Hidden |
1 |
Node UUID |
url |
Hidden |
1 |
Website url for the node |
solution type |
Term reference |
1 |
Reference to solution types |
legal forms needed |
Entity reference |
unlimited |
Reference to legal forms |
information needed |
Text field |
unlimited |
|
legalDifficulty |
Text area |
1 |
Explanation of the legal difficulty involved |
faqs |
Entity reference |
Unlimited |
Entity reference Legal Question content |
estimated time required |
Duration |
1 |
|
eligibilityRules |
Paragraphs |
unlimited |
Text blocks |
jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
negate jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
helpful organizations |
entity reference |
unlimited |
Helpful organizations content type |
legal organiza tions |
entity reference |
unlimited |
reference to organization (group) |
howTos |
Entity reference |
unlimited |
Reference to a legal how to |
result |
Paragraphs |
one |
Text blocks |
citations |
Paragraphs |
unlimited |
Citation block |
legal position |
List |
1, required |
Current field_legal_position |
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
Legal Question
Single question; packaged within an FAQ in a legal problem or legal solution.
Note
General questions related to solutions should be added to the Legal Solution but questions specifically related to how the solution affects a problem should go in the Legal Problem. For example: When am I eligible for a second bankruptcy? would go in the bankruptcy solution but Can I save my house if I file for bankruptcy would go in a foreclosure-related problem.
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (body) |
Title field |
1 |
Question title |
Accepted Answer |
Paragraphs |
1 |
Text block paragraphs |
Suggested Answer |
Paragraphs |
unlimited |
Text block paragraphs |
legal position |
List |
1, required |
Current field_legal_position |
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
Description |
Text area |
1,required |
Content description |
Meta Description |
Text area |
1, required |
Current meta description |
Legal issues |
Term reference |
unlimited, required |
Current legal issues field |
Primary legal category |
Term reference |
1, required |
Current primary legal category |
Annual updates |
Term reference |
unlimited |
Current annual updates field |
Author/SME |
Entity reference |
unlimited |
Current author/SME field |
jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
negate jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
Last reviewed |
Date time |
1 |
Current last reviewed field |
Last revised |
Date time |
1 |
Current last revise field |
Legal Forms
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (formName) |
Title field |
1 |
Form title |
FilledOutWith |
Paragraphs |
unlimited |
FormPrep Program paragraphs |
formUse |
Text area |
1 |
Explanation of how/when the form is used |
legal position |
List |
1, required |
Current field_legal_position |
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
Description |
Text area |
1,required |
Content description |
Meta Description |
Text area |
1, required |
Current meta description |
jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
negate jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
Legal issues |
Term reference |
unlimited, required |
Current legal issues field |
Primary legal category |
Term reference |
1, required |
Current primary legal category |
Last reviewed |
Date time |
1 |
Current last reviewed field |
Last revised |
Date time |
1 |
Current last revised field |
Legal How-to
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (Name) |
Title field |
1, required |
Title |
prepTime |
duration |
1, required |
|
performTime |
duration |
1, required |
|
totalTime |
duration |
1, required |
Prep time + perform time |
stepSections |
paragraphs bundle |
unlimited |
Reference to step sections |
supply |
text field |
unlimited |
Things needed to complete the how-to |
tool |
text field |
unlimited |
Tools needed to complete the how to |
yield |
text field |
one |
The quantity that results by performing instructions |
legal position |
List |
1, required |
Current field_legal_position |
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
Description |
Text area |
1,required |
Content description |
Meta Description |
Text area |
1, required |
Current meta description |
Legal issues |
Term reference |
unlimited, required |
Current legal issues field |
Primary legal category |
Term reference |
1, required |
Current primary legal category |
Annual updates |
Term reference |
unlimited |
Current annual updates field |
Author/SME |
Entity reference |
unlimited |
Current author/SME field |
jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
negate jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
Last reviewed |
Date time |
1 |
Current last reviewed field |
Last revised |
Date time |
1 |
Current last revised field |
Legal Step
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (Name) |
Title field |
1, required |
|
Step information |
paragraphs bundle |
unlimited |
Directions or Tips bundle |
legal position |
List |
1, required |
Current field_legal_position |
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
Description |
Text area |
1,required |
Content description |
Meta Description |
Text area |
1, required |
Current meta description |
Legal issues |
Term reference |
unlimited, required |
Current legal issues field |
Primary legal category |
Term reference |
1, required |
Current primary legal category |
Annual updates |
Term reference |
unlimited |
Current annual updates field |
Author/SME |
Entity reference |
unlimited |
Current author/SME field |
jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
negate jurisdiction |
Paragraphs |
unlimited |
Coverage area paragraphs |
Last reviewed |
Date time |
1 |
Current last reviewed field |
Last revised |
Date time |
1 |
Current last revised field |
Note
There is also a position property in the legal steps in the schema. This is computed in the step sections paragraph bundle in the How-to and not stored directly in the steps. This will allow for step re-use.
Helpful Organization
Note
ILAO already has organization profile data that should be used for any organization in our system. New entities should only be added to reference organizations that are not legal services providers within our Organization platform.
Fields will be hidden when an Organization is included.
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (Name) |
Title field |
1, required |
|
Description |
Text area |
1 |
|
Address |
Address |
1 |
|
Area Served |
Paragraphs bundle |
unlimited |
Coverage area |
1 |
|||
Telephone |
Text field |
1 |
|
Contact |
Paragraphs bundle |
unlimited |
|
content managem ent tags |
Term reference |
unlimited |
Current content management tags |
request to be translated |
Boolean |
1, default to No |
Should translation be requested |
mark translation as outdated |
Boolean |
1, default to No |
Existing field mark as outdated |
Last revised |
Date time |
1 |
Current last reviewed field |
Paragraph Bundles
There are a number of paragraphs bundle created to support the content entities in the schema:
LegalCode, used in LegalProblem
FormPrepProgram, used in LegalForms
Step section, a holder for steps in Legal How-to
How to directions and tips, used in Legal Steps
CoverageArea, used in Legal Solution, Organization
TextBlock, used in various text output where we need more control over structure.
Contact point
Paired markup to pair a WYSIWYG item with a plain text with footnotes version
Legal Code
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Code value |
Text field |
1 |
|
Coding system |
Text field |
1 |
Form Prep Program
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
name |
text field |
1 |
Name of the form prep package or Easy Form |
url |
link |
1 |
link to the form prep |
formPrepProgram |
term reference |
1 |
Reference to the form prep programs taxonomy |
Legal Step Sections
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Title (Name) |
Title field |
1, required |
Title or heading for section |
Include title? |
Boolean |
1, required |
Include title in API feed? |
Steps |
Entity reference |
unlimited |
Reference to legal steps |
Note
There is also a position property in the steps section in the schema. This is computed in the How To and not stored directly in the steps.
How To Directions & Tips
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
How-to Type |
Select |
1, required |
Tip or Direction |
Body |
Paragraphs item |
1, required |
Paired markup |
referencedUrls |
Links |
unlimited |
Links included in markup |
Note
There is also a position property in the schema. This is computed in the How-to and not stored in the database.
Structured Text Block
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Heading |
Text field |
1 |
|
Body |
Paragraphs bundle |
required unlimited |
Paired markup |
List |
Paragraphs bundle |
unlimited |
Item list bundle |
Paired Markup
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Body |
Hidden |
unlimited, required |
Clean version of body with markup |
Body with markup |
Text area |
unlimited, required |
WYSIWYG |
Structured Item List
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Item List Order |
Select |
1, required |
ascending, descending, or unordered |
Item List Elements |
Paragraphs bundle |
unlimited, required |
Paired markup |
Coverage Area
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Administrative area |
Select |
1, required |
Country, state, city, postal code |
Counties |
Term reference |
unlimited |
Region taxonomy |
Cities |
Term reference |
unlimited |
Region taxonomy |
Zip codes |
Term reference |
unlimited |
Region taxonomy |
Countries |
Country |
unlimited |
Defaults to United States |
Contact Point
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Contact type |
Text field |
unlimited |
|
Area served |
Paragraphs bundle |
unlimited |
Coverage area bundle |
1 |
|||
Telephone |
Text field |
1 |
|
Hours |
Hours field |
unlimited |
|
Products Supported |
Text field |
unlimited |
Type of service or product offered through the organization. |
Citation
Field |
Type |
Cardinality |
Description |
|---|---|---|---|
Citation |
Text field |
one |
Citation text |
URL |
Link |
one |
Link to citation |
Taxonomies
life areas (used in legal problem)
solution types (used in legal solutions)
form prep programs (used in Legal forms)
Technical Notes
We can use DrupalCoreMailMailFormatHelper::htmlToText($string) to render plain text with urls as footnotes from the with markup fields.