I have configured the module, including the activation of text format filter - "CKEditor Link filter".

Example Situation:

I have a Fruit page that needs to link to the Apple page.

First, I Create the Apple page titled "Apple" which is located at {mysite.com/node/2} with custom URL of {mysite.com/apple}

Then, I edit the Fruit page, and create an "internal link" using the title of "Apple"; which creates a link to {mysite.com/node/2}. Upon saving, the link filter causes it to display as {mysite.com/apple} instead of {mysite.com/node/2}. This is what I want to happen. :)

Issue:

The problem arises if I need to change the URL of my Apple page. (ie. a title change requiring URL updating)

Editing node 2, I change the title from "Apple" to "Banana". Pathauto changes the custom URL to {mysite.com/banana}. However, on my Fruit page, I still have a link going to {mysite.com/apple}, which is now "page not found".

If I edit my Fruit page, the link still goes to {mysite.com/node/2}, and simply re-save, without any changes, updates the link to {mysite.com/banana}.

Is it possible to have this process automated, so I don't have to tediously re-save all my pages that were linking to my old Apple page?

Does anyone know how to bulk update (re-save) content?

CommentFileSizeAuthor
#3 disable_cache-1400100-3.patch475 bytesanrikun

Comments

temiller’s picture

Issue summary: View changes

Separated content for easier reading.

anrikun’s picture

This process is automated by core upon each cron run. That is, your link will only stay broken until the next cron run. So if you have properly configured cron to run every hour or less, you do not have to care about this.

drupaleye’s picture

After running cron run manually, the changed target links is not updated in links set with CKEditor Link.
However - when resaving the page/node containing the link, the link is updated with the new target path (no cron run needed for this here).
If you have pages a,b,c,d,e linking to page f, and the page f url is changed. It seem cumbersome to resave pages a,b,c,d,e (and even remember where those links are placed)
Are there any settings to look for or a way to fix this?

Using:
Drupal 7.15
CKEditor Link 7.x-2.2
CKEditor 7.x-1.9
Pathauto 7.x-1.2
(cron is set to run every 3 hour - but i did a manual cron run to test this)

anrikun’s picture

Version: 7.x-2.2 » 7.x-2.x-dev
Category: support » bug
StatusFileSize
new475 bytes

You're right, it seems that D7 does not regularly flush cached texts any more! I guess we need to find another solution. Here's a quick fix but it is definitely not a viable solution as it disables the filter cache.

anrikun’s picture

Status: Active » Closed (won't fix)

After doing many searches, I came to the conclusion that there is no viable way to fix this bug in CKEditor Link because of how texts are now cached in D7:

  • Cached texts are not regularly cleared any more. They are permanent!
  • The Field module hijacks cache_filter. Because of this, it is nearly impossible to know where text is going to be cached from within check_markup(). Actually, cache_filter is almost not used any more.

So for now, here is the best solution to deal with this issue:

  • Install Redirect
  • Check Pathauto settings: make sure Create a new alias. Delete the old alias. is checked under Update action
  • Every month or so, trigger a drupal_flush_all_caches()

When features like below get introduced, it will become possible to address this issue in CKEditor Link:
#8000: Filter contexts (and fix some small issues in filtering)
#226963: Context-aware text filters (provide more meta information to the filter system)
#1830958: Provide more meta information to the filter system

anrikun’s picture

Issue summary: View changes

fixed headers