Giter VIP home page Giter VIP logo

movabletype's Introduction

Welcome to Movable Type

Build Status CircleCI Coverage Status

Thank you for choosing Movable Type, the premiere solution for your blogging and website management needs. This file will explain how to get up and running; click on the highlighted sections for more information on that subject.

Before You Begin

Movable Type requires the following applications:

  • Perl 5.16.0 or greater, with its core modules;
  • A web server like nginx, Apache or Windows IIS;
  • Access to a database like MySQL;
  • The following Perl modules:
  • DBI
  • HTML::Entities, a part of HTML-Parser distribution

Consult the CPAN documentation to learn how to determine if a Perl module is already installed and, if they are not, how to install them.

Upgrading Movable Type

If you are upgrading to Movable Type 7 from a previous version, we recommend that you first back up your old installation. Database backup is especially important to restore your system in case of any trouble during the upgrade process. Upload Movable Type 7's files over the same files from the previous version of Movable Type. Access Movable Type as you normally do, and you will be taken through the upgrade process.

Installing Movable Type

Before you install Movable Type:

  1. Upload all of Movable Type's files into a directory or folder accessible via your web browser. We recommend that you separate your published content from the Movable Type executable programs by placing each in a separate directory. Typically, the installation directory is called 'mt' and is located in the root directory of your website or within an existing directory that is already configured to allow CGI script execution.
  2. Make sure that the 'mt' directory containing the uploaded Movable Type files has been enabled to execute CGI scripts.
  3. Make sure that each .cgi file (e.g. mt.cgi, mt-search.cgi, etc.) found in the Movable Type directory has the execute permission enabled.
  4. Open that folder in your web browser -- i.e. http://www.mywebsite.com/mt/.
  5. You should see a Movable Type welcome screen that will take you through the installation process. If the welcome screen does not appear, please consult Troubleshooting Movable Type below.

Troubleshooting Movable Type

Setting up your static web path

Some web servers and configurations do not allow static files such as JavaScript, CSS and image files to be located inside of a directory where CGI scripts are located. If you installed Movable Type into a cgi-bin directory, you may need to relocate the 'mt-static' directory to another web accessible location. Read our documentation on setting up your mt-static directory.

Internal Server Errors

If you receive an "Internal Server Error" message, a configuration change may be required on your web server. Please consult our installation guide.

Finding more help

Need additional information or support? Check out the Detailed Installation Guide.

movabletype's People

Contributors

adeki avatar aklaswad avatar audreyt avatar byrnereese avatar charsbar avatar comewalk avatar danwolfgang avatar daveaiello avatar dependabot[bot] avatar dphillips avatar dqneo avatar fumiakiy avatar hidekanazawa avatar hirata avatar jamadam avatar kaminogoya avatar kazumasaokanuma avatar masiuchi avatar memolog avatar mschenk avatar rmasco avatar sa-chino avatar shmuelfomberg avatar taiju avatar taitetsu avatar uehatsu avatar usualoma avatar xantus avatar yhassy avatar yuji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

movabletype's Issues

Template Tags for Asset and Entry Counts.

For some templates it is useful to have direct access to the number of available pages, entries or assets in a given context.

This issue is part of the upcoming separated PR based on #710

Permalink broken when both 'folder' and 'basename' are set in API Page creation

There's some sort of conflicting condition that occurs when creating a page through the API. For example, say we have a folder with ID 1 with a path a/b/ and we want to create "index.html" in this folder through the API. The following patterns will produce different results:

folder basename resulting folder resulting permalink expected result
a/b index a/b a/b/post-0.html a/b/index.html
a/b a/b a/b/post-0.html a/b/post-0.html
index index.html index.html
a/b a/b/index a/b a/b/a/b/index.html a/b/index.html
a/b/index a/b/index.html a/b/index.html

Ideally the first pattern should work, but it does not. The only pattern that works is if you do not set the folder and set the base name as the full path without the .html extension, but then you can't sort the file into a folder in the admin screen.

NOTE
I'm putting almost 3000 pages into a fresh instance (with a license!), so not using the API is not an option, and the site is going to be intensely difficult to manage without folders.

Indicees on VARCHAR(255) break if charset "utf8mb4" is used with MariaDB

I ran across an issue with the MariaDB/MySQL backend.

The old style VARCHAR(255) breaks the database spec if the utf8mb4 charset is used.

utf8mb4 supports the full uft8 range with character sizes up to 4 bytes.

If the default charset of a database is set to utf8mb4, then the database specification of MT breaks because the maximun size for index columns is 1000 bytes. However, if VARCHAR(255) is specified with utf8mb4 the maximum size of that field would be 1020.

This is a problem if emojis are used, for example in titles, author names, and other user editable meta data. Unfortunately, users love using emojis pretty much everywhere ;)

There are two approaches to fix this:

  1. Reduce the field size to 250 and trim existing data if necessary (would not be a problem here).

  2. Have user editable fields with the 255 length in utf8bm4 and downsize them into 255 2-byte utf8 strings for the corresponding index fields. (not sure if that makes sense).

Bug? Data API v3: GET entries endpoint has inconsistent response

version r.4208 (7.0.1)

Doing the same GET request to /mt/mt-data-api.cgi/v3/sites/1/entries?fields=author,basename will return different responses even if no entries were added or deleted.

Steps to reproduce:

  1. Make an GET request to /mt/mt-data-api.cgi/v3/sites/1/entries?fields=author,basename, take note of the response.
  2. Make the same request again. Look at the response, the same number of items are returned, but the parameters in the items are usually missing or different.

I don't think it's a memcached error because I have disabled memcached and this still keeps happening.

Data API v3: POST /users, user can't sign in

This is for MT version: Movable Type version: r.4208 (7.0.1)
When I create a new user through the v3 API with the correct systemPermissions: ['sign_in_cms'], the user is correctly created, but the user still can't log into the CMS because they get an "invalid login" error. I can bypass this by going through the admin panel and re-saving the user OR manually updating the db table so that the mt_author.author_auth_type = MT, but this seems like a bug.

Steps to reproduce:

  1. POST a request to /users to create a new user with the systemPermission to log into the cms: sign_in_cms
  2. Try to sign in as that user and password to the CMS
  3. BUG: user can't sign in to the CMS
  4. Update the DB table: update mt_author set author_auth_type='MT' where author_name='author_name_i_just-created';
  5. Try to sign in again with that created user , and now the user is able to sign in.

After upgrade 4605 to 4607, a lot of search errors in Nginx logs.

Every time I use the search function or tag search error is shown. The search results are OK.
An example below:

2020/05/15 17:37:56 [error] 861#861: *126285 FastCGI sent in stderr: "2020-05-15T17:37:56 [INFO] --- Start search process. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56 [INFO] Start search_terms. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56 [INFO] End search_terms. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56 [INFO] Start search_terms. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56 [INFO] Start count. at lib/MT/App/Search.pm line 451.
2020-05-15T17:37:56 [INFO] End count. at lib/MT/App/Search.pm line 451.
2020-05-15T17:37:56 [INFO] S" while reading response header from upstream, client: 46.229.168.148, server: seo.g2soft.net, request: "GET /mt/mt-search.cgi?IncludeBlogs=1&archive_type=Category&category=9&limit=5&page=2&template_id=14 HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "seo.g2soft.net"
2020/05/15 17:37:56 [error] 861#861: *126285 FastCGI sent in stderr: "tart load_iter. at lib/MT/App/Search.pm line 451.
2020-05-15T17:37:56 [INFO] End load_iter. at lib/MT/App/Search.pm line 451.
2020-05-15T17:37:56 [INFO] End search_terms. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56 [INFO] Start callbacks search_post_execute. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56 [INFO] Search: query for '' at lib/MT/App/Search.pm line 733.
2020-05-15T17:37:56 [INFO] End callbacks search_post_execute. at lib/MT/App.pm line 3291.
2020-05-15T17:37:56" while reading response header from upstream, client: 46.229.168.148, server: seo.g2soft.net, request: "GET /mt/mt-search.cgi?IncludeBlogs=1&archive_type=Category&category=9&limit=5&page=2&template_id=14 HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "seo.g2soft.net"
2020/05/15 17:37:56 [error] 861#861: *126285 FastCGI sent in stderr: " [INFO] --- End search process. at lib/MT/App.pm line 3291" while reading upstream, client: 46.229.168.148, server: seo.g2soft.net, request: "GET /mt/mt-search.cgi?IncludeBlogs=1&archive_type=Category&category=9&limit=5&page=2&template_id=14 HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "seo.g2soft.net"
2020/05/15 17:37:57 [error] 861#861: *126288 FastCGI sent in stderr: "2020-05-15T17:37:57 [INFO] --- Start search process. at lib/MT/App.pm line 3291.
2020-05-15T17:37:57 [INFO] --- End search process. Use cache. at lib/MT/App.pm line 3291" while reading upstream, client: 46.229.168.148, server: seo.g2soft.net, request: "GET /mt/mt-search.cgi?IncludeBlogs=1&archive_type=Category&category=9&limit=5&page=2&template_id=14 HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "seo.g2soft.net"

Page Folders don't load

Folders stopped loading reliably after a point (we have almost 300 folders/sub folders). I think it's some sort of timeout issue while building the collection, but there are JS load errors as well. This only started occurring as we added more folders. I'm not seeing anything in any of my logs, and the DB connections aren't timing out or anything, so I actually don't have any information other than what I'm getting in the browser. Screen shot for reference:
image

If there's some extra information I can provide please tell me what and how to get it.
I've confirmed this is occurring in 6.3.6 and as a test tried a 6.2 release - both have the same issue.

mtapp:setting dynamic parameters fail

I am trying to add dynamic parameters to control template inside cms:

<mtapp:setting
                        id="<mt:var name="name" escape="html">"
                        label_class="top-label"
                        label="<mt:var name="label" escape="html">"
                        hint="<mt:var name="hint" escape="html">"
                        show_hint="<mt:var name="show_hint_custom" escape="html">">
                        <input id="name" type="text" name="<mt:var name="name" escape="html">" value="            <mt:var name="value" escape="html">" />
 </mtapp:setting>

variable show_hint_custom is passed to a template with a correct state ( 1 or 0 )
app:setting is setting always 1 for variable even variable has 0
the same thing is happening to required attribute.

is it bug? or there is workaround?

GPL version

Where to get the previous open sourced version under GPL?

How to use build_file callback

According to this page, there's a build_file callback:
https://github.com/movabletype/movabletype/blob/f02afa4e1ed554ebc3c265d3856fb09e1666eb00/lib/MT/Callback.pod

When writing an MT plugin that is triggered by that callback, how should the callback be used? For example, this in my config.yaml doesn't seem to work:

callbacks:
 build_file: $MyPlugin::MyPlugin::method_to_call_after_build_file

Is this a bug? When I create an entry and publish it, it doesn't seem to call my plugin. Same for updated and editing an existing entry.

Plugin development opbject_types author

It looks all plugins that have extnesion to a author object failes with error durning an upgrade:

Can't call method "password" on an undefined value at lib/MT/App/Upgrader.pm line 122.

plugins with:
config.yaml
object_types: author: extended_field: string(255)

this is seen with latest version like cannot extend table... but it read plugins data as data already exist.

Has to Reset Password to Login

I upgraded to 6.3.6 and now every time I login, I have to reset password. I've even set the password using mySQL:
update mt_author set author_password = encrypt('YOURPASSWORD') where author_id = 1;

and it still doesn't work.

CGI Won't Run on Ubuntu Server

Every time I try to run the CGI to install the site it just loads up the file but never runs it, I have tried to install it four different times.

not sure if this is on Ubuntu's side or not. some help would be nice

Need for greater flexibility of URL handling in templates

Most URL templates allow only relative (to the current page) or absolute (protocol, host etc.) links.

It would be nicer if template designers have more control over the generated URLs without touching the odd translate functions.

Instead, it would be nice to allow protocol-relative and host-relative paths in all URLs passed to the templates.

  • protocol-relative URLs make it easy to run http and https version of the same site without modification of the rendered HTML. Instead of publishing links as http://example.com/xx/yyyy/index.html, the link would be just //example.com/xx/yyyy/index.html. When switching protocols, the entire site remains functional without the need of maintaining the a separate site.

  • host-relative URLs start with omit the host part of the URL and start with the site root. This is extremely helpful if running the same site under the different URLs (e.g., www.example.com and example.com). Host-relative URLs would transform http://example.com/xx/yyyy/index.html into /xx/yyyy/index.html. This makes stylesheets and javascript links much nicer and shorter.

This is part of separating the features of #710

Large ifs break entry saving (edit_entry.tmpl)

Hello,

I am currently trying to have different edit_entry.tmpl pages in the dashboard and I'm trying to put the logic into a large file:

edit_entry.tmpl:

<mt:if name="blog_id" eq="4">
## original content of edit_entry.tmpl 
<mt:elseif name="blog_id" eq="20">
## original content of edit_entry.tmpl 
</mt:if>

For testing purposes I have put the original content of edit_entry.tmpl into both cases (since apparently mt:include loses the current scope) and I have noticed that when you create a new entry, entries for the blog_id listed first in the if (4 in the case above), wont save. New entries for the blog with the id 20 will save normally.

Nothing particular happens besides that. It will show the "saved successfully" message, but all the custom fields are empty.

Sites and Entries under the menu won't show any items

Sites and Entries under the menu won't show any items when CGIPath and StaticWebPath domain names are different in mt7.
After I moved CGI into the site, the items are shown. This has allowed me to see the list temporarily.

CGIPath domain name : mt7.youre.space
StaticWebPath domain name : newlog.youre.space

mt7-001

mt7-002

Requierd list content field in Content Type is not requierd

リスト型のコンテンツフィールドを必須項目として作成したとき、コンテンツデータ作成画面で未入力状態でデータが保存・公開ができてしまう。

日本語でごめんなさい。

再現方法

コンテンツタイプの画面
スクリーンショット 2024-01-09 18 01 54

データが作成できてしまった画面
スクリーンショット 2024-01-09 18 04 06

スクリーンショット 2024-01-09 18 04 31

DataAPI responses can't be cached

$app->set_header( 'Cache-Control' => 'no-cache' );

I'm using Varnish as a reverse-proxy and would like to cache API responses, but can't because of this Cache-Control: no-cache setting. Is there a reason why the DataAPI is forcing no cache?

Should I do a PR so that this is controlled by an app config like $app->config->HeaderCacheControl or get rid of completely?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.