Warning: This page has not been updated in over over a year and may be outdated or deprecated.
videos:managing_static_content
Differences
This shows you the differences between two versions of the page.
Last revisionBoth sides next revision | |||
videos:managing_static_content [2021/11/09 11:32] – created demiankatz | videos:managing_static_content [2021/11/10 15:34] – [Transcript] demiankatz | ||
---|---|---|---|
Line 14: | Line 14: | ||
// This is a machine-generated transcript and will be corrected as time permits. // | // This is a machine-generated transcript and will be corrected as time permits. // | ||
- | :!: Coming soon | + | hello and welcome to this month' |
+ | viewfind tutorial video which is about | ||
+ | managing static content | ||
+ | when i say static content i'm just | ||
+ | referring to the ability to create | ||
+ | custom html pages to present information | ||
+ | within your viewfind instance | ||
+ | or to embed that type of information | ||
+ | within some of viewfind' | ||
+ | displays | ||
+ | viewfinder is of course not meant to be | ||
+ | a content management system and so i | ||
+ | certainly wouldn' | ||
+ | build your entire web presence but | ||
+ | sometimes it's useful to be able to | ||
+ | place a page of custom content into the | ||
+ | context of viewfind and so we provide | ||
+ | some tools to enable you to do this and | ||
+ | to also take advantage of ufind' | ||
+ | internationalization support along the | ||
+ | way | ||
+ | uh when you get viewfind out of the box | ||
+ | it ships with a couple of examples of | ||
+ | static content which are really just | ||
+ | meant to be overridden | ||
+ | as you customize the system uh these | ||
+ | include the ask a librarian and faqs | ||
+ | pages | ||
+ | which show in the footer and just | ||
+ | contain placeholder information | ||
+ | if you click through to them | ||
+ | so | ||
+ | creating these static content pages is | ||
+ | pretty easy uh it's just a matter of | ||
+ | putting templates in a particular | ||
+ | directory within your theme | ||
+ | and then vufine does the rest | ||
+ | let me quickly show you uh where this | ||
+ | lives in the default theme and then | ||
+ | we'll move forward to creating some | ||
+ | content of our own | ||
+ | so if i | ||
+ | go into viewfinds themes directory and | ||
+ | look under bootstrap 3 | ||
+ | in the templates | ||
+ | content directory | ||
+ | you'll see that we have | ||
+ | an | ||
+ | faq.phtml | ||
+ | an asklibrary.phtml | ||
+ | and a couple of other utility templates | ||
+ | that are actually used by the content | ||
+ | display code | ||
+ | but the important thing to take away | ||
+ | here is that if you see a file that | ||
+ | starts with faq | ||
+ | and you go to your browser and add | ||
+ | content slash faq after the base url uh | ||
+ | viewfinder will display that template to | ||
+ | you providing a really easy way to | ||
+ | render custom content | ||
+ | if you also supports markdown so if you | ||
+ | want to create your content using uh the | ||
+ | markdown language instead of php html | ||
+ | templates uh that's available as well | ||
+ | which may be more convenient if you' | ||
+ | working with a content development team | ||
+ | that's less comfortable with coding | ||
+ | because the markdown standard is widely | ||
+ | used | ||
+ | so with that background out of the way | ||
+ | let me do some quick demos and i'll | ||
+ | start by showing you how to create a | ||
+ | markdown based content page in your | ||
+ | viewfind instance | ||
+ | right now we're looking at viewfind' | ||
+ | core boot print three theme | ||
+ | so let's switch to our custom tutorial | ||
+ | template so we're in a better position | ||
+ | to customize some things | ||
+ | i'm just going to switch to my local | ||
+ | config viewfind config.ini file | ||
+ | and i'm going to comment out the | ||
+ | bootprint 3 setting to activate my | ||
+ | tutorial setting | ||
+ | now if i go back to my browser and | ||
+ | refresh | ||
+ | we get to see | ||
+ | the custom tutorial theme that we' | ||
+ | been using in some of these videos | ||
+ | now that we're on our custom theme | ||
+ | creating a new uh content page is as | ||
+ | simple as going into our theme folder so | ||
+ | under themes tutorial | ||
+ | templates | ||
+ | uh we need to create a new folder called | ||
+ | content | ||
+ | since this is the first content page | ||
+ | we're creating | ||
+ | uh and in this content folder | ||
+ | uh we can just create a new file | ||
+ | so as i said earlier the file name will | ||
+ | correspond with the url where the | ||
+ | content will be displayed so i'm going | ||
+ | to call this markdown demo | ||
+ | but the extension of the file will tell | ||
+ | if you find how to render the content so | ||
+ | if i were to end this in dot p html it | ||
+ | would render as a standard php template | ||
+ | but of course i want to demonstrate | ||
+ | markdown | ||
+ | so i'm going to | ||
+ | name the file dot md instead | ||
+ | so now i have an empty file and i'm | ||
+ | going to put some markdown in it | ||
+ | i'm not going to go into any depth on | ||
+ | the markdown standard during this video | ||
+ | because there are lots of tutorials and | ||
+ | cheat sheets out there | ||
+ | but it's widely used you probably run | ||
+ | across it somewhere and even if you | ||
+ | haven' | ||
+ | uh in any case i'm going to start with | ||
+ | pound my title because prefixing text | ||
+ | with the pound is how you create a | ||
+ | heading in markdown | ||
+ | and then i'm just going to put a line of | ||
+ | content i'm going to say this is the | ||
+ | star | ||
+ | markdown demo star to show some | ||
+ | formatting | ||
+ | and i'm going to say here is a | ||
+ | bracket | ||
+ | link | ||
+ | parenthesis and i'm going to link | ||
+ | this to the view find home page just for | ||
+ | fun | ||
+ | and that's it | ||
+ | so i'm saving this file of markdown | ||
+ | now if i return to my browser | ||
+ | and i go to content markdown demo as | ||
+ | part of my viewfinder url | ||
+ | there is my markdown rendered in view | ||
+ | viewfind | ||
+ | also you might notice that the | ||
+ | tab in my browser actually shows my | ||
+ | title | ||
+ | the markdown parser is smart enough to | ||
+ | take top level headings and use those as | ||
+ | the page title for you | ||
+ | and if i were to click this link | ||
+ | it would take me to the viewfind home | ||
+ | page so | ||
+ | it's that simple you can create mark | ||
+ | down to your heart' | ||
+ | it up through viewfind so you can create | ||
+ | institution specific pages custom help | ||
+ | screens whatever you like | ||
+ | i also mentioned earlier | ||
+ | that the content display system supports | ||
+ | internationalization so if your | ||
+ | viewfinder instance supports multiple | ||
+ | languages | ||
+ | you can create multiple versions of your | ||
+ | static content and viewfind will display | ||
+ | the appropriate one based on the | ||
+ | language that's currently active | ||
+ | uh the the way you do this | ||
+ | is simply uh to put an underscore and a | ||
+ | language code | ||
+ | on the end of your file names so i'll do | ||
+ | a quick demo of this as well | ||
+ | i will create a new file called i18n | ||
+ | underscore | ||
+ | en.phtml | ||
+ | so this is going to create a content | ||
+ | page called i18n you know the common | ||
+ | abbreviation for internationalization | ||
+ | uh and this is going to be the english | ||
+ | language version of that and i'm | ||
+ | indicating that with the underscore en | ||
+ | at the end of the file name | ||
+ | uh and this demo i'm just going to do | ||
+ | standard phtml templates i could just as | ||
+ | easily use markdown here it makes no | ||
+ | difference | ||
+ | i'm just showing both versions for | ||
+ | demo purposes | ||
+ | so then i can say in here this is in | ||
+ | english | ||
+ | and since this wouldn' | ||
+ | exciting demo if i didn't have another | ||
+ | language as well | ||
+ | i'm going to create another file called | ||
+ | i18n underscore fr.phtml | ||
+ | for french and i'm going to write in | ||
+ | here this is not in french but we can | ||
+ | pretend | ||
+ | i will save that | ||
+ | so now if i go back to my browser | ||
+ | i need to go to the right browser | ||
+ | uh if i go back to my browser | ||
+ | and i edit my url so that it is content | ||
+ | slash i18n | ||
+ | after the base viewfind url i see my | ||
+ | this is an english message | ||
+ | then if i switch my language to french | ||
+ | this is not in french but we can pretend | ||
+ | it's that simple | ||
+ | i should also uh make a quick note on | ||
+ | how the default behavior works for these | ||
+ | templates uh if you have | ||
+ | a number of languages | ||
+ | but you don't have templates for all of | ||
+ | them so for example if i switch this to | ||
+ | german | ||
+ | it actually says this is in english | ||
+ | the reason for that | ||
+ | is that in | ||
+ | config.ini you're able to set a default | ||
+ | language for your site | ||
+ | and if viewfind is unable to find a | ||
+ | template for the requested language | ||
+ | it will next search for a template in | ||
+ | the default language as a fallback so in | ||
+ | this example german is not available | ||
+ | english is the default language | ||
+ | configured in config.ini | ||
+ | so viewfinder decides to display the | ||
+ | english template | ||
+ | if there were no english template it | ||
+ | would next look to see if there were | ||
+ | simply an i18n.php | ||
+ | template with no language code at all it | ||
+ | would use that next | ||
+ | and only if all of those options failed | ||
+ | would it give up and throw an error | ||
+ | about content being unavailable | ||
+ | in any case that shows you all the | ||
+ | capabilities for creating static pages | ||
+ | in markdown or php and with or without | ||
+ | internationalization support | ||
+ | one thing that uh you might want to do | ||
+ | though | ||
+ | is give one of your content pages a | ||
+ | custom url | ||
+ | uh as you notice by default all of the | ||
+ | content pages have urls with slash | ||
+ | content slash something in them | ||
+ | but | ||
+ | through the magic of the laminas router | ||
+ | system it's not very difficult at all to | ||
+ | give these any url you like | ||
+ | so i'll show you that really quickly | ||
+ | first of all | ||
+ | let's go into the | ||
+ | core viewfinder module so i'm going to | ||
+ | my view find home module viewfinder | ||
+ | and i'm looking at the configuration | ||
+ | here so in my viewfind module i'm going | ||
+ | to the configuration directory and | ||
+ | opening module.config.php | ||
+ | and at the top of this file | ||
+ | are all of the route definitions which | ||
+ | we've talked about in the past but one | ||
+ | of these routes | ||
+ | is called content page | ||
+ | and it is this route which does all the | ||
+ | magic of resolving content for you | ||
+ | so it's a segment based route and it | ||
+ | looks for slash content slash something | ||
+ | when it encounters a match for that | ||
+ | pattern | ||
+ | it calls the content action of the | ||
+ | content controller and passes through | ||
+ | part of the url as a parameter called | ||
+ | page | ||
+ | so this is how | ||
+ | you're able to type in a content url and | ||
+ | have viewfinds code map that to an | ||
+ | appropriate template to display | ||
+ | but if you want to give a different url | ||
+ | to a content page you can simply copy | ||
+ | this route into your local module make a | ||
+ | few small changes | ||
+ | and get the effect you want | ||
+ | so i'm going to do exactly that i'm | ||
+ | going to copy this whole route | ||
+ | and then i'm going to go into my local | ||
+ | tutorial module and into the | ||
+ | configuration | ||
+ | and the module config | ||
+ | so in here | ||
+ | we have | ||
+ | a custom route that we set up in a past | ||
+ | video | ||
+ | and i'm just going to paste in | ||
+ | that content route right above it | ||
+ | uh and the formatting is a little ugly | ||
+ | here but i'm not going to worry about | ||
+ | that right now just bear with me | ||
+ | so first of all | ||
+ | we want to give every route a unique | ||
+ | name because we don't want to override | ||
+ | the existing content page route we want | ||
+ | all of our content to keep working | ||
+ | and if i didn't change this this content | ||
+ | page route would override the core | ||
+ | version | ||
+ | so instead i'm just going to call this | ||
+ | content demo | ||
+ | uh and then | ||
+ | i'm going to go to my options and i'm | ||
+ | going to replace this content | ||
+ | page thing | ||
+ | with the url that i want to use so let' | ||
+ | say we want to show that markdown demo | ||
+ | at a url | ||
+ | called | ||
+ | markdown demo | ||
+ | i can just put that in | ||
+ | uh | ||
+ | because there' | ||
+ | anymore i can remove that constraint | ||
+ | and instead i can go into the defaults | ||
+ | and i can just hard code a page value | ||
+ | here | ||
+ | and this is going to be markdown demo | ||
+ | it's that simple i've created a route | ||
+ | named content demo | ||
+ | it's going to look for | ||
+ | a url that just says markdown demo | ||
+ | and when it encounters that url it's | ||
+ | going to call the content action of the | ||
+ | content controller and it's going to | ||
+ | pass it a page parameter of markdown | ||
+ | demo | ||
+ | which is exactly the same as using the | ||
+ | other route to go to slash content slash | ||
+ | markdown demo | ||
+ | so let me show you if i now | ||
+ | go here and i just put mark down demo on | ||
+ | the end of my viewfinder url | ||
+ | i get to see my markdown page | ||
+ | so in this way you can seamlessly | ||
+ | incorporate static content into your url | ||
+ | structure | ||
+ | as long as you're careful not to collide | ||
+ | with existing urls or route names | ||
+ | so uh | ||
+ | that covers all of the standalone page | ||
+ | content but what about incorporating | ||
+ | this type of content into an existing | ||
+ | page | ||
+ | viewfinder has something called content | ||
+ | blocks | ||
+ | which are currently used on the various | ||
+ | search home pages | ||
+ | to drop in interesting information | ||
+ | so for example | ||
+ | if i just go | ||
+ | to | ||
+ | my search home screen | ||
+ | and i'm going to set this back to | ||
+ | english for a moment | ||
+ | uh you will see | ||
+ | that we have this facet information here | ||
+ | and this is actually being dropped in as | ||
+ | a content block | ||
+ | this is a configurable setting | ||
+ | that you can find in searches.ini and | ||
+ | all of you finds search backends have a | ||
+ | content block configuration so that you | ||
+ | can put different content on each of | ||
+ | their home pages | ||
+ | let me show you | ||
+ | uh in practice here | ||
+ | so if i go to | ||
+ | view finds main config viewfind | ||
+ | directory | ||
+ | and i look at the searches.ini file | ||
+ | which controls the behavior of the main | ||
+ | default solar-based search | ||
+ | near the bottom of this file | ||
+ | there' | ||
+ | and this is where | ||
+ | we configure the content blocks for the | ||
+ | home page | ||
+ | by default | ||
+ | two content blocks are set up one is | ||
+ | called ils status monitor this normally | ||
+ | does not display anything but it will | ||
+ | check to see if your ils is offline and | ||
+ | if it is it will display a warning | ||
+ | message that some functionality may be | ||
+ | unavailable | ||
+ | if you're not using an ils or you don' | ||
+ | want this feature you might consider | ||
+ | commenting this out | ||
+ | following that | ||
+ | there' | ||
+ | is what creates that facet list i was | ||
+ | showing you and again if you don't like | ||
+ | that you can simply turn off this | ||
+ | setting to get rid of it | ||
+ | and you can also | ||
+ | choose from some of the other content | ||
+ | blocks that are listed in the comments | ||
+ | up here | ||
+ | or you can build your own but for today | ||
+ | what i want to show you is a content | ||
+ | block called template based | ||
+ | which allows you to drop static content | ||
+ | onto your home page | ||
+ | in much the same way as you are able to | ||
+ | create | ||
+ | the static content pages i just showed | ||
+ | you | ||
+ | so i am going to demonstrate that for | ||
+ | you right now | ||
+ | so first of all | ||
+ | because | ||
+ | this demo instance doesn' | ||
+ | searches.ini yet | ||
+ | i am going to copy | ||
+ | the | ||
+ | coresearches.ini file into my local | ||
+ | settings directory so i have a place | ||
+ | to do some custom configuration | ||
+ | so i'm | ||
+ | copying from | ||
+ | viewfind home config viewfind | ||
+ | searches.ini into | ||
+ | local | ||
+ | config viewfind searches.ini | ||
+ | and then | ||
+ | i'm going to scroll down here so i can | ||
+ | customize my content | ||
+ | so to turn this on i simply need to add | ||
+ | another content block settings so i can | ||
+ | say content bracket bracket | ||
+ | and the brackets are important because | ||
+ | this is a repeating setting and we want | ||
+ | to be sure | ||
+ | that we don't override the setting | ||
+ | rather than adding to it | ||
+ | and i could say equals | ||
+ | template based which is the name of the | ||
+ | content block | ||
+ | colon | ||
+ | i18n | ||
+ | we just need to give | ||
+ | a template base name | ||
+ | for the content block to use | ||
+ | in this case i'm choosing i18n because | ||
+ | that allows me to be really lazy and | ||
+ | simply copy and paste the templates | ||
+ | that i created for the earlier full page | ||
+ | example | ||
+ | the only difference is what directory | ||
+ | the files go in within my theme | ||
+ | so for | ||
+ | page content i use the content directory | ||
+ | for content block content | ||
+ | i just need to create a different | ||
+ | directory to put my files into | ||
+ | and that directory is | ||
+ | content block with a capital c and a | ||
+ | capital b | ||
+ | and under that | ||
+ | a folder called | ||
+ | template based | ||
+ | so i can now just take my two | ||
+ | i18n | ||
+ | templates | ||
+ | copy them | ||
+ | paste them into here | ||
+ | and make sure that i saved my | ||
+ | configuration properly | ||
+ | it's also worth noting | ||
+ | that the order of the content settings | ||
+ | affects the order of the display so i've | ||
+ | set this up so that the template will | ||
+ | appear | ||
+ | above | ||
+ | the | ||
+ | facet list | ||
+ | and below any ils related messages but i | ||
+ | could move this line around if i wish to | ||
+ | do things differently | ||
+ | and now | ||
+ | i come back here and refresh the page | ||
+ | the message this is in english has | ||
+ | appeared above my list of facets so it | ||
+ | is working and if i change my language | ||
+ | to french | ||
+ | it says this is not in french but we can | ||
+ | pretend | ||
+ | so the template-based content block | ||
+ | follows all of the same rules and | ||
+ | conventions as the full page templates | ||
+ | so you can use the language suffixes on | ||
+ | the file names or not as you prefer | ||
+ | you can use php templates or markdown as | ||
+ | you prefer | ||
+ | it's just a nice way to be able to | ||
+ | quickly and easily embed messages | ||
+ | wherever you need them | ||
+ | the next step | ||
+ | that might be useful would be to have | ||
+ | similar functionality in a | ||
+ | recommendation module so that we could | ||
+ | put messages into search results uh and | ||
+ | as of the recording of this video uh we | ||
+ | haven' | ||
+ | thing but it would be pretty | ||
+ | straightforward to do so so if anyone | ||
+ | has a need for this by all means feel | ||
+ | free to open a jira ticket and we can | ||
+ | get that feature incorporated into a | ||
+ | future release | ||
+ | in any case | ||
+ | thanks for your time and for listening | ||
+ | to this i hope this makes it easier for | ||
+ | you to share information through your | ||
+ | viewfind instance | ||
+ | and we'll have more for you next month | ||
---- struct data ---- | ---- struct data ---- | ||
---- | ---- | ||
videos/managing_static_content.txt · Last modified: 2023/03/28 16:02 by crhallberg