• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

How to ignore a missing plug-in?

Participant ,
Jul 12, 2012 Jul 12, 2012

Copy link to clipboard

Copied

I have two plug-ins A and B.

In plug-in A, it just invoke the interfaces defined in plug-in B. There is no class/implement changes the document data, in other words, it matches the condition descripted in the programming guide "If your plug-in does not store data in documents, you do not need to take any special precautions." .

I saved some documents using plug-ins A and B.

And now, i remove the plug-in A in InDesign. There will be "Missing Plug-ins" warning dialog when opening the documents saved before. It requires plug-ins A. What happened?

I tried to add bellowing code in my B.fr, it doesn't help.

resource DirectiveList(1) {

    {

        {          

            IgnorePlugin

            {

               {   

                  kMyAFirstMajorFormatNumber,

                  kMyAFirstMinorFormatNumber

               },

               kMyAPluginID

            }

        },

    }

};

Did i miss anything?

I tried to set the plug-in A to be ignored in code, but the "Missing plug-ins" dialog appears before the responding kDuringOpenDocSignalResponderService, and in kBeforeOpenDocSignalResponderService, i can no nothing because IDocument* is nil at the monment.

It can be resolved by selecting the checkbox "Don't show again for these plug-ins" on the Missing plug-in dialog at the first time.Is there any i can do that in code?

Any suggestion to ignore the plug-in A in code?

---------------------------------------

PS: the IDML cannot help because there is some customize data in my plug-in B which will be lost if using IDML.

Thanks a lot,

AidySun

TOPICS
SDK

Views

2.7K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Oct 15, 2017 Oct 15, 2017

I have never used IgnorePlugin, but this has to be added to the plugin to be ignored. Hence in your case, you need to add it to the plugin A and not plugin B's fr file. The same applies to the ignoretags resource. I would recommend the following

  • Try by adding IgnorePlugin directive to the A's fr file and then test.
  • In order to identify which class or implementation is causing the missing plugin alert, comment out class definitions and implementation definitions one by one and then test. Once ident
...

Votes

Translate

Translate
Guide ,
Jul 12, 2012 Jul 12, 2012

Copy link to clipboard

Copied

Hello,

I think you need to look at resource IgnoreTags ,kImplementationIDSpace and kClassIDSpace.

P.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 12, 2012 Jul 12, 2012

Copy link to clipboard

Copied

Thanks for your reply.

In the plug-in A, there are only some UI related things.

Classes:

     kMyDialogBoss

     kMyActionComponentBoss

Implements:

     kMyActionComponentImpl

     kMyDialogControllerImpl

     kMyDialogObserverImpl

No other classes and implements, all of these don't have any ReadWrite().

Of couse i tried to add them in IgnoreTags, but it didn't help.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jul 13, 2012 Jul 13, 2012

Copy link to clipboard

Copied

PS: the IDML cannot help because there is some customize data in my plug-in B which will be lost if using IDML.

@AidySun – I'm not a plug-in developer, but writing scripts in JavaScript, so I want to ask if you could implement something in plug-in B that would write the customized data of plug-in B to a string and inject it with the JavaScript method insertLabel("KeyString","ValueString") in the document.

This label information will be stored into IDML and is still present, if you open the IDML in InDesign. Then you could extract the string with the method extractLabel("KeyString") and maybe write it back to plug-in B.

Uwe

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
Jul 13, 2012 Jul 13, 2012

Copy link to clipboard

Copied

Thanks Laubender.

What you say can be a practical solution for many cases, but not suitable for my case. Because the  data saved in my plug-in is not independent, it may relate to docboss, workspaceboss or some page items and so on.

The solution i want to find is one that is practical base on the current situation. Just remove the info/data of plug-in A in the document.

E.g. just do some code change in plug-in B and then it can open the document (saved before with both plug-ins A and B) without the missing plug-in dialog.

Thanks,

Aidy

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 13, 2017 Oct 13, 2017

Copy link to clipboard

Copied

I have a similar issue. We regularly get InDesign files from customers that have 3rd party programs. Each time I open one, I have to do a Save As... and overwrite previous. It get's tiring. I want to completely remove and reference to missing plug-ins from all documents. Any thoughts?

Thanks,

David

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 15, 2017 Oct 15, 2017

Copy link to clipboard

Copied

I have never used IgnorePlugin, but this has to be added to the plugin to be ignored. Hence in your case, you need to add it to the plugin A and not plugin B's fr file. The same applies to the ignoretags resource. I would recommend the following

  • Try by adding IgnorePlugin directive to the A's fr file and then test.
  • In order to identify which class or implementation is causing the missing plugin alert, comment out class definitions and implementation definitions one by one and then test. Once identified, add the corresponding classid or/and implementationid to the ignoretags resource and you should be good to go.

One of the above suggestions would work for you.

Note that in order to test always create a new document with the plugin loaded, save it, then remove the plugin and reopen the document. Old documents with absent or different ignore settings may still result in missing alert. In other words even when you have added the ignore functionality to your plugin, the documents created henceforth using the plugin would not show the missing alert, however the older documents would still show the alert.

Hope this helps to get you move ahead.

-Manan

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 16, 2017 Oct 16, 2017

Copy link to clipboard

Copied

Manan,

I don't know if Aidy is still viewing this 5 year old discussion, but perhaps you can help me (an end user, not a developer). Is there a way to remove a reference to a missing plug-in from an InDesign document?

Thanks,

David

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 16, 2017 Oct 16, 2017

Copy link to clipboard

Copied

Hey David,

Apologies i did not look at the date of original posting of the discussion, it popped up in the list of queries so i replied on it. Well for the issue you are facing without any development support on the original plugins, the only way out is opening the document exporting it out as IDML and then re save it as INDD, this is a cumbersome process which i suppose would not be ideal for you. Another thing could be to write a script that does a batch save of INDD files present in a folder, you could find pieces of such a script on the internet and integrate it to get it to work for you.

Hope this helps.

-Manan

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 20, 2017 Oct 20, 2017

Copy link to clipboard

Copied

Manan,

Thanks for your reply. You're right, the IDML process would be cumbersome. Adobe has a dialog box about missing plug-ins, and forces users to Save As... (each time the document is opened) I'm disappointed that they don't have a check box to eliminate plug-in data.

David

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 23, 2017 Oct 23, 2017

Copy link to clipboard

Copied

Hi David,

I have created a plugin to strip missing plugin info from the documents, you can try it out at the following location

https://github.com/Manan-Joshi/inexutils

Currently its available only for CC2017 MAC, let me know your thoughts on the product. You will have to Save As only once, the first time you save the document after ignoring the missing plugins using my inexutils plugin and then you are all set to go.

Thanks,

-Manan

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 23, 2017 Oct 23, 2017

Copy link to clipboard

Copied

Manan, that is truly helpful!

Are you in on the upgrade-or-perish trajectory that Adobe demands of its external developers? Meaning, is this target InDesign version -- 2017, Mac -- the only one for which you have a working developers' platform? I gave up trying to keep both my Windows and Visual C versions updated to coincide with Adobe's That Year's State of the Art Development Environment around CS3 (for which I wrote exactly 1 (One) succesfully working plugin).

If you are not: what other combinations of version and platform are you able to handle?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 23, 2017 Oct 23, 2017

Copy link to clipboard

Copied

Thanks for the response Jongware, well the next platform/version that i would be targeting is CC2017/WIN.

Well the plan is to support future versions of InDesign as setting up the development env. for the new version is inevitable.

For the older versions i can cater to the following

On WIN:- CS4 and above till CC2017

On MAC:- CS5.5 onwards till CC2017

I don't have a working setup for CC2018 so that would take sometime atleast for MAC. However all this depends on the usability and interest folks have on this solution, if someone is interested in an older version i can spin that up else i would prioritise to CC2015 and above version for now.

Let me know if you have any other queries.

I surely agree that maintaining a dev. env. for all the myriad combinations of InDesign version and platforms is a pain but that is something a plugin developer has to live with, so far i am holding on to these old versions, lets see how far till i can hold

-Manan

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Oct 24, 2017 Oct 24, 2017

Copy link to clipboard

Copied

You can use IContentMgr to suppress the warning of missing plug-ins.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Oct 24, 2017 Oct 24, 2017

Copy link to clipboard

Copied

Not if you are a regular end-user.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 23, 2017 Oct 23, 2017

Copy link to clipboard

Copied

Manan,

That's fantastic!

I just need to test it a little, and I will return for a star.

Thanks.

David

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Oct 20, 2023 Oct 20, 2023

Copy link to clipboard

Copied

LATEST

This is the only plugin remover method that works. I have contacted Manan and procured a license for the latest InDesign CC and it works as advertiswed! A true lifesaver. ATTEMPTING SAVES TO IDML AND BACK HAS NEVER BEEN RELIABLE. PERIOD. He also offers a trial  so you can try it out. Couldn't be happier.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines