I'm planning to migrate my blog from b2evolution to Something Completely Different (to be determined). It's unlikely that I'll use an automated import or conversion utility.
I want to extract all the Permalink URLs and associate them with the post titles, in order to make it easier to create a redirect file.
My old blog will be inaccessible after the conversion, so I won't be able to refer to it.
Is there an easy way to do this? (I could write something by hand with HTMLAgilityPack, but that would take hours.)
Alternately, is there a quick way to create an offline copy of the (dynamic PHP) site with the URLs preserved?
I used WinHTTrack to save an offline version of the site as per #Bartdude's suggestion. The permalinks need some slight massaging (strip prefix and trailing .html, add http colon slashes) but that's not an issue. Similar tools might also work.
Related
I have made a site using html, css and javascript and is only on my local machine and have not put it onto a server yet, but i was wondering if i could use a cms on this site like wordpress? The site is only 5 pages but i have done all the styling myself.
Would i just have to install wordpress to the server and add the files there maybe? Or is there a lot of changes needed to make this work?
I have very little knowledge of PHP but i am a quick learner if that counts for anything.
Thanks for help.
Simple answer: yes
More complicated answer: why?
If your site is only 5 pages, and you've custom designed and built your layout, then I'm not sure what WordPress will add for you.
That said, if you want to add a blog or the like, WP would certainly be nice to have.
If you want to go that route, you have a few options:
use WordPress for everything, using the 5 pages you made as 'pages' inside of WordPress. You'll have to modify what you built for that to some extent.
leave the 5 pages as-is but add WordPress 'next to it' and run the blog/cms content from there. It can look the same, or maybe you want it to look a bit different.
leave your 5-page site as-is, and use WordPress or another CMS product on a separate server. You can set it up as a subdomain and then either install your own, or leverage something like Posterous or Wordpress.com
The short answer to your question is:
it will take some effort, you won't be able to just drop the files and install wordpress and have everything work immediately. With some work, though, it is definitely possible.
If you've done the styling and you want to incorporate that into wordpress you'll have to go through the process of creating your own theme. http://themeshaper.com/2009/06/22/wordpress-themes-templates-tutorial/ Try this site to see what that requires. Alternatively, google "creating your own wordpress theme" or something similar.
It will require some extensive PHP work, but a lot of these tutorials have already done that heavy lifting for you. In any case, it will be worth it for your to pick up some PHP skills, enough to follow along the tutorials.
I had to do this myself and what you can do is integrate your design into an existing design. You could just create your own theme, which takes some time but it is the correct way to do it.
http://yoast.com/wordpress-theme-anatomy/
I knew 0 php and I was able to create my own theme in a few hours. Best of luck.
I'm not sure what you mean "add the files there", I assume you means that use a WordPress-based website to display your site, then you can simple create a page by WordPress and then link this page to your site.
But if you means to create a wordpress theme which based on your existing site, then you can search a tutorial and follow it to create a wordpress theme by yourself. Making a wordpress theme will needs some PHP work, but not complicate, wordpress has very detailed documations and API.
I would suggest using the Umbraco CMS for it. The advantage is that you start with an empty site, add your css, js, and create your own content types, paste in your HTML for the templates, and you're ready to go. It is a perfect CMS for few page sites to larger sites and also has a great community around it, including lots of documentation and screencasts. Templating is done with the Razor syntax, very easy to learn and lots of documentation. You'll need to have a Microsoft-based server to host it and this may be a barrier depending on your hosting scenario.
I have my site done with WordPress. It's been like that for a few years.
Now, I have started to look for other options. WordPress has all these things I don't really need. One option would be static blogging. Generate the content locally and deploy the generated content to web with rsync, for example. There is tools like Jekyll, Hyde and Octopress for this.
But even Octopress seems like an overkill for me. It really feels like that. I don't need all those plugins it comes with. I'm building an image heavy site for myself, just a place where I can put my drawings that I create with my tablet.
So what if I would just manually edit HTML-files, where every file would become "a post" and make an index for them at root of my site? Come to think of it, I could work faster with this type of solution, even compared to Octopress. I could have a blank "post template" as raw html and set it as fill in snippet in TextExpander. In there, I could fill all the details for that html file like the title tag and so on.
I'm not really a coder. I draw things and write stories. In spite of this, I somehow have managed to work my way around with WordPress and recently, with Octopress.
I'm just thinking why Jekyll or Octopress or Hyde or Cactus would be a better fit for me instead of manually editing html files, and calling them "articles" or "posts"?
Thanks for any views or answers.
Why do you want to go to static html?
If you have problems with using too many resources, you should add a caching plugin to your WordPress install and that will help greatly.
Most of the time you still want some "dynamic" functionality that happens every time you add a page. For example you probably want to have a RSS/Atom feed so that people can subscribe to your site. And you want that automatically updated when you add a new page. You probably also want something to generate a sitemap file for the search engines to index it better.
These static site generators are able to do that well, so I would recommend using one.
I am working with a pre-existing zen-cart site has been worked on over the years by multiple teams. Backtracking through all of the teams is not a viable option. Some of the development teams implemented some hacks, one of them being replacing how zen-cart normally creates links, and I am stuck as to how they did it. For example, zen-cart normally links to a product through a link such as the one below:
http://yoursite.com/index.php?main_page=product_info&cPath=67&products_id=823
Instead, this zen-cart installation is doing the following:
http://yoursite.com/item-name-here-p-45-.html?cPath=1_26
I have figured out that the number after p-, in this case 45, is the product ID. However, I am stuck as to what that .html file is actually referencing. I am guessing that it is somehow feeding that data back into the index.php file, and it was done for search engine optimization purposes. The server is using nginx if that makes a difference. I would rather use apache for this site, but I am fine with nginx.
Additionally, there are also links such as:
http://yoursite.com/sitemap.html
but there is no file called sitemap.html on the entire system. However, there is a file called sitemap.xml
For a myriad of reasons, I can't link to the actual site and I hope you fellow developers can understand that. However, if anyone has any idea as to whats going on here, I would be very interested to know. I will provide what other details I can.
I just figured this out, and I want to share my answer for anyone that stumbles upon this. This was caused by something called Ultimate SEO which masks urls with html links to make them more search engine friendly. The reason there are no actual html files involved is because Ultimate SEO creates a .htaccess file that reads the filename from the URL, and converts it to parameters to be passed to a php file. I just simply disabled Ultimate SEO from the zen-cart admin page. Furthermore, Ultimate SEO is something that is used outside of Zen-Cart, so if you are having the same issue I did, this might be it, or something similar.
How do you upload an image with a custom post type in Wordpress without hacking at core files or injecting that multipart thing with jQuery?
The answer depends on what you are going to use to manage those images once they are uploaded. If the upload-and-create-custom-post is all you care about, then you could do it with a trivial plugin.
However, if you want to do the whole management enchilada, then the simplest thing might be to copy the code in wp-admin/upload.php and wp-admin/includes/template.php and make your own changes to that. There are very few action/filter hooks in this code and some of the comments indicate that it goes way, way back. In upload.php there are several SQL statements that have post_type='attachment' hardwired. Changing those should be straightforward. Mercifully, you will probably have only a few changes to make in template.php. As the comment at the top of that file says, "A Big Mess. Also some neat functions that are nicely written." So true.
The one thing you must not do is hack the core files themselves. WP's one-click upgrade is critical to their security fixes.
Several popular CMS's such as Drupal, Wordpress, etc. have an index.php file that is pretty much empty except for a include/require statement that includes some other PHP file (as in one file) containing all of the bootstrap code for the CMS. What is the rationale for this? Why not just move all of the bootstrapping code into index.php if it is doing nothing other than including the bootstrapping code anyway?
I'm trying to build a CMS as an example project to improve my PHP skills, and I'd like to understand what design considerations led them to do it this way. I understand the benefit of breaking up applications into multiple files, but I've never heard of making a file that does nothing but include another one. Obviously there is some benefit, since several major CMS projects designed it this way, but I just can't figure out what it is.
Can someone explain to me the reasoning for this?
In Drupal's case, there are other files that do a similar bootstrap. These typically aren't normal pages, but do serve important purposes. Off the top of my head cron.php, update.php, and install.php do this. I use the bootstrap process at the beginning of custom import scripts, as well as scripts that get called by cron that I don't want to use a hook_cron for.
I can think of two reasons:
When using a product like Wordpress, you sometimes end up adding user hacks to the front controller - say, setting custom constants, specific redirects, or an additional layer of access control, or whatever. An empty index file allows you to add that kind of stuff without disturbing the product's original code.
Having everything in a separate bootstrap creates the possibility of moving all code (including the bootstrap) to a location outside the web root, and include it from there.
Aesthetics mostly. You can have a clean and neat directory structure (outside of webroot), in which bootstrapping files are separated from index.php file. There are probably several of them (vs. one index.php file) and they are doing different things (db init, authorisation).
I also found one or two CMS which start in debug declaration (in order to switch display errors and warnings before including any files, so you can have your errors printed before php includes a file with syntax error, but that's not really a good practice).
I would say this is good design because you can easily change the path to the bootstrap, which makes it very easy to change location of the CMS, if ever necessary.
Another good reason is you could also be running a dev CMS while developing, and roll out new versions with one path change in the index.php.