WordPress - add Database driven tables - wordpress

I'm just trying to move one of my old php sites to wordpress. As part of the site I have 'top tables' e.g. top 10 cars, listing their features etc. At the moment that all comes from a database and the HTML is generated from the data.
So if a car soon gets a hybrid engine I just check that in the database and my web site table updates to reflect that.
This all works fine. I just don't know where to start when trying to implement something like this in wordpress. I want to keep the WP header, footer, nav... and put my table in to the content area.
Someone recommended simply copying the current generated HTML in to a new post and editing the HTML when anything changes, this sounds like a quick solution but there must be a better way of doing this.
Ideally I would want to keep my current data input pages (and separate database) for all of this 'table data' and present the out put as a post.
If anyone can point me in the right direction (key words I should search for, a guide) that would be great.

Depending on your usecase, you'll usually want to use a static page template:
http://codex.wordpress.org/Page_Templates
Or shortcodes:
http://codex.wordpress.org/Shortcode_API

Related

How to insert html not from database and not using the iframe?

I wish basically to store my pages or product long descriptions in txt or html files in folders, not in database.
Is there any simple and easy way to do so, instead of iframe which does not work quite well and does not even display the content in the page code so it is not indexed by search engines as it should.
I've read about web components html imports but that seem to be so much complicated and does not really satisfy my needs.
I have not found any plugin to do so, maybe there is one.
I know I wish to make wordpress flat file cms, but maybe there is some new easy way to simply insert pages from anywhere but database might be via shortcode or just an url.
I put it in tags, should say more clear, it is about wordpress on host. As it stores all pages and data in database and I realized bigger database is slower it works. I use caching plugin but I also wish to speed up admin panel and dynamic uncacheble content. My idea is to slim down the database as much as possible and in my woocommerce store most of the data is long description. So the best way would be to inject the long description via shortcode that would take html content from anywhere else but database. I need html, not just some text to insert. This way I would cache these product pages anyway but the database would stay way slimmer and all the dynamic content would go way faster.
In PHP you can use the function file_get_contents, which will display the contents of a file (but not parse it as PHP, which is more secure for obvious reasons).
So you could try something like this if you wanted to account for a page not found message:
function example_get_content($file_url){
if(file_exists($file_url)){
return file_get_contents($file_url);
}
else{
return 'Sorry, this page could not be found'
}
}
And then in your template use
echo example_get_content('http://example.com/my_text_file.txt');

trouble with creating a breadcrumb in asp classic

I need advice on how to do breadcrumbs in asp classic
I have a company detail page - the thing is it could have been gotten to by a number of ways - through a area or through a list of categories and then companies
I want to show the breadcrumb that this user came to it
(and the same page can be gotten to in many ways)
I tried to build a session variable but if a user clicks the back key then it messed it up
any ideas?
When you design your site you need to work out, in your own mind (best to use a pencil and paper), just how the site links together and which pages can be considered to be related. I know this sounds pretty grey, but this is more a design principal than set in stone.
Word is a good tool to work this out. Flick into Outline View and use this to build up the structure. The arrows on the ribbon at the top left allow you to indent and outdent your structure, and the markers at the beginning of the line allow you to drag and drop sections from one place to another.
Once you're happy about the structure you can update your pages to contain the stepped breadcrumb. Unless you have heavily automated pages that change their structure vastly, or a site that is very fluid (changing it's structure frequently), I would simply hard code the breadcrumb in using an unordered list (<ul>).
It gets more complicated for Classic ASP if you want to be able to automate the breadcrumb. Firstly you'd need to decide what type of automation you want to use; for instance XML, like the .NET version, or a global.asa string/array version, or something that's read from your database... The list goes on.
If you still find it difficult to get around the user's landing page train of thought, try using the search page on a site like the NHS Data Dictionary, or even try navigating using the links on the left. The breadcrumb for this site is in the top banner - watch what happens when you switch between different links.
Hope this helps, but remember there's no right or wrong way to code up your links, it simply depends on the application or site you're creating.

Drupal - Newbie - Need some help in finding content

It seems a very simple job but really been tough to perform.
All i need is to edit a content but i cannot find it inside the cms which says "Commerce Kickstart"
The page address of the content is like this:
https://website.com/abc/def-ghi
When i select Content>Manage Content from the top header bar (after logging in as admin the top bar appears) then it shows lots of pages to edit but i couldn't find that particular text inside any of them.
So i decided to download the mysql db and search for the text using notepad++ but i found several instances and i guess its all from some cache table.
I put so many hours on finding this easiest task but failed.
Any advices?
Thanks!
Do the pages have content within them?
When you are on the Content Overview page just click on edit and see if there is anything in them.
From what I can infer you are using Commerce Kickstart and this probably implies that you might need to edit the product instead. Just answering from the top of my head.

Find every instance of a CSS id/class across a whole site

Before making a CSS change that might possibly have unintended consequences, what's a good way to find where else on the whole site (not just this page) that id or class is used? (It doesn't have to be exhaustive, and semi-manual processes are ok, too.)
For a bit of context, it's a Joomla-based site with a lot of content, and I'm not yet familiar with most of it. The id in question has a two letter name, and I have no idea where else it might be used. I don't have direct access to the server for any grep-like approaches.
The only technique I can think of is using Stylish to make an obvious change to that one selector, and browsing the site for a bit to see where it pops up.
The easiest way would be a local grep, but since you don't have access to the server, try downloading it locally using wget:
wget -r -l --domains=http://yourdomain.com http://yourdomain.com
That'll recursively retrieve pages from your domain to an infinite depth, but only following links to pages within your domain.
Once it's on disk, do a local grep and you're golden.
I use unused-css.com for this sort of thing. You simply put in your webpage, and it will look through the whole site (incl. login) and give you the CSS that you actually are using.
I've found it to be 95% correct - but it only doesn't pick up on things like some CSS browser hacks and some errors (ie. the CSS only displays after an error), so it should work fine for this.
You could also check the original template (assuming the template is a commercial one) to see where the id perhaps should be (they usually lay everything out in their demo template), but unused-css won't tell you exactly where it is used, only if it is or not. For that, I'd start with a view-source -> find on the major pages, and then try other mentioned solutions.
Get the whole site's source tree into an IDE like NetBeans or Eclipse and then do a recursive search for id="theid" on the root folder.
If this is not possible, how are you updating the CSS?
Assuming you don't want to do the grep approach:
Is the ID in question appearing in the actual content area of the page, or in the 'surrounding' areas? If it seems like it's not part of the content, but rather appears in a template, you could search the template files for it. As you're updating the CSS, I'm going to assume you can at least get a hold of the template files. Many text editors/IDE's will let you do a 'global search'. I'd load the template files in TextMate (my texteditor of choice) and do a "search in project" for the particular ID.
That will at least give you a semblance of an idea of where in the site that ID shows up. No, it won't be every 'page', but you'll know what kind of page it appears on (which, with a CMS, is really what you're after).
If the ID in question appears in the content, that is, it was hand-entered by content creators, you'll have to go another route. Do you have access to the database? If you can get a dump of the database (I think Joomla! is MySQL based), you can open the sql in something like Sequel Pro and do a search in the content records for that ID.
This is not actually as hard as it sounds. First place to look the index.php file for the template. This file should be pretty small without a ton of code unless the template is from a developer that uses a template framework. If the ID is in there, then it will show up on every page in the website since this is the foundation that every page is built on.
If you don't find it in there, then you need to determine whether it is displaying in a module position or in the component area. You should be able to tell the difference by looking at the index.php file from the template.
If it's in a module position, then the ID should only show up in instances of that particular module.
If it's in the component area, then it should only display in any pages being created by the component. That does leave the possibility of it affecting many elements you don't want changed. But there is a solution for that. you can use the page class suffix in a menu item to add a unique id/class to the page you want to change (depends on your template). With that unique suffix you can create a specific selector that will only affect the pages you want to change.

Drupal Site Index - not crawling through "Blocks"?

I created a "View"* in Drupal to grab all the content and essentially make a site map, but I realized that it doesn't have an option to grab content from the Blocks I have created. Does anyone have an idea if I can even do that?
If not, should I essentially make each block a page so that it can crawl through the pages? I worry that this will end up becoming unmanageable in the end... What are some other options/work arounds? My end goal is to make a site map - maybe I am making this too complicated?
*To make my view I did:
Administration->Structure->Views->Add. Then I made it a page, called it "site-index", and made it "show Content of type All" (with tagged field empty). Then I chose "Content: Title" for my Fields and my Filter Criteria is set as: "Content: Published (Yes):" - That way, it will grab the titles of my web pages.
Thanks, and please reply if further clarification is needed!
Apologies if I'm wrong but I think there might be a bit of confusion over terminology here. In the context of a view Content means nodes, not all HTML content on the site. Your view will return a list of all published nodes, which are essentially the pages on your site.
On a normal sitemap (if there is such a thing) you would only link to full pages, not to parts of pages like a block, they are essentially used to provide a hierarchical overview of your site to aid navigation for users and, probably more importantly these days, search engines (you can submit an XML sitemap to the major search engines instead of this but that's really for another question).
Rather than doing this yourself I'd actually recommend you download and install the Sitemap module which will do all of the work for you, as well as arranging the content in their respective hierarchy.

Resources