Dynamic Generation of MXML code

I have a flex application which loads another sub-application.
The parent application has tools which allows the user to add a component to the sub-application and modify some of the component's properties (for eg. when the user clicks on the text box tool in the parent application, a text area component gets added to the sub-application).
Now how can I modify/create-new mxml code for the sub-application reflecting the additions made by the user at runtime?
(This application somewhat immitates what a user gets to do in the design mode in flash builder where the mxml code gets generated behind the scenes. So can I make use of flash builder by implementing some of its methods or extending its classes etc to get the job done?)

Its true that mxml is just a conveniant notation and that's why I feel it is suitable for what I intend to do. All what is really being done here is to save the state of the sub-application swf so that it can be edited again later. So a conveniant notation is exactly what it needed.
For this I do have to create MXML on the fly. However there is no real need to compile it at the same time. This is because running the sub-application would already be a visual representation of the modified mxml, although I do realize that it is not the compiled version of the modified mxml. This would work assuming that the modifications made to the sub-application at runtime translate accurately into mxml to the extent that there would be no difference between the currenlty playing swf file and the compiled swf of the modified mxml. This process would also eliminate the need for repetitive compilation which can ultimately be done once the user chooses to save the changes.

Similar Messages

  • [svn:fx-trunk] 16929: Add a [Mixin] class that will register the required class aliases in the event the mxml compiler generation   [RemoteClass(alias="")] code is not called because an application does not use the Flex UI framework .

    Revision: 16929
    Revision: 16929
    Author:   [email protected]
    Date:     2010-07-15 07:38:44 -0700 (Thu, 15 Jul 2010)
    Log Message:
    Add a class that will register the required class aliases in the event the mxml compiler generation  [RemoteClass(alias="")] code is not called because an application does not use the Flex UI framework.
    Add a reference to this class in the RPCClasses file so it always gets loaded.
    QE notes: Need a remoting and messaging regression test that doesn't use Flex UI.
    Bugs: Watson bug 2638788
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/rpc/src/RPCClasses.as
    Added Paths:
        flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/RpcClassAliasInitializer.as

    Great exercise to document the problem like this.  It got me thinking about how an app with modules would be different from an app that does not use modules.  Solution: I moved the dummy reference of PersonPhotoView out to the main application file (as opposed to being inside the module) and it worked.  I've probably been lucky not to have experienced this problem earlier, because for most other entities I have an instance attached to my model which is linked / compiled with the main application.

  • Dynamic generation of .cex for window classes

    subject :dynamic generation of .cex for window classes:
    Hi,
    I want to generate windows classes (cex export file) with tool
    code. I don't have any problem with non windows attributes.
    But I can't generate windows attributes: the export file contains a
    serialized object but I don't know which object.
    thank you for your help.
    Corinne
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    value="Button_#{myBean.id}"This is perfectly valid syntax.
    But you're talking about "dynamic generation of IDs". Don't you instead mean something like:
    id="Button_#{myBean.id}"?
    If so, then yes, using EL in the ID attribute is prohibited. Also see the TLDDOC [1]. Why do you want to do it anyway? The f:attribute might be more useful for you [2].
    [1] http://java.sun.com/javaee/javaserverfaces/1.2/docs/tlddocs/
    [2] http://balusc.blogspot.com/2006/06/communication-in-jsf.html

  • Dynamic Generation of Back URL

    I opened a tar on the dynamic generation of a back URL because the information on the forums has been incomplete and without solid examples for my needs. They provided the following information:
    "So far I have found a few methods to achieve what you are wanting to do....
    With the plsql web toolkit there is a function called owa_util.get_cgi_env. You can use this to grab many different parameters. You could use this function to reconstruct the actual url that you are on.
    For example, request_protocol, server_name, server_port, script_name, and path_info could all be concatenated to create the original url.
    Or you can also use the owa_util.get_cgi_env function in the called screen to grab the url of the calling url. So essentially the url you want to go back to. This parameter value is called HTTP_REFERER and it contains the complete url. The only issue with this one is that you can not reference it until you are already in the second page. Therefore you could not pass it to that second page when building the page.
    Documentation on the above is included in the 9iAS documentation set since it is part of the plsql toolkit and not specific to Portal. The url to this documentation is:
    http://otn.oracle.com/docs/products/ias/doc_library/1022doc_otn/apps.102/a90101/toc.htm
    I will continue searching for anything specific to Portal and its api's but up to now I have not seen anything specific to this."

    Dear Kishore,
    Write the following code in the wdDoModifyView(...) method..and replace YourModelNode with actuals
    if (firstTime) {
    // Get the reference to the UI rool elemnet
                          IWDTransparentContainer rootElement = (IWDTransparentContainer) view.getRootElement();
    // Set the layout manager to MatrixLayout
         rootElement.createLayout(IWDMatrixLayout.class);
    // Get the metadata of the node
         IWDNodeInfo nodeInfo = wdContext.getYourModelNode().getNodeInfo();
         for (Iterator iter = nodeInfo.iterateAttributes(); iter.hasNext();) {
              IWDAttributeInfo attributeInfo = (IWDAttributeInfo) iter.next();
              IWDLinkToURL LinkToURL=(IWDLinkToURL) view.createElement(IWDLinkToURLclass,attributeInfo.getName() +"LinkToURL");
              LinkToURL.setText(attributeInfo.getName());
                                              LinkToURL.setReference(attributeInfo.getReference());
              LinkToURL.createLayoutData(IWDMatrixHeadData.class);
              // Add the LinkToURL to the UI
              rootElement.addChild(LinkToURL);
    Hope it helps!
    Warm Regards
    Upendra Agrawal

  • Mxml code in script

    Hi All,
    I want to write mxml code (some tags and all) inside <mx:Script> based on some conditions. For example, if the value>10 , i want to display a textbox and if value <10 I want to display image.
    How do we dynamically write mxml code inside script.
    In Java, we use out.println() and write whatever we want but how to do this in Flex.
    Pls suggest

    Thanks everyone for your helpful responses. Now i am facing a problem while adding components. My motive is have a grid on a canvas and i again want to add grid as griditem of the previous grid, i.e, one main grid and all the griditems of this main grid will again contain one grid. For this purpose, i am declaring main grid in class and initializing it inside init(). Now i am calling a function from init() which in turn is going to put grids as part of griditem of the main grid. Please refer to the code below.
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="httpid.send();init();" width="1000" height="800">
    <mx:Canvas>
    <mx:Script>
        <![CDATA[
            import mx.controls.Image;
            import mx.containers.GridItem;
            import mx.containers.GridRow;
            import mx.containers.Grid;
            var maingrid:Grid=null;
            var mainrow1:GridRow=null;
            var mainitem1:GridItem=null;
            var mainrow2:GridRow=null;
            var mainitem2:GridItem=null;
            var mainitem3:GridItem=null;
            var mainitem4:GridItem=null;
              private function init():void{
               maingrid=new Grid();
               mainrow1=new GridRow();
               mainitem1=new GridItem();
               mainrow2=new GridRow();
               mainitem2=new GridItem(); 
               mainitem3=new GridItem(); 
               mainitem4=new GridItem();
              xmlLoaded();
    function xmlLoaded():void{
    var grid:Grid=new Grid();
        var row:GridRow=new GridRow();
        var item1:GridItem=new GridItem();
        var item2:GridItem=new GridItem();
        var item3:GridItem=new GridItem();
        var txt1:Text=new Text();
        var img:Image=new Image();     
        txt1.text='abc';
        img.source='assets/12.jpg';
        item1.addChild(txt1);
        item2.addChild(img);
        row.addChild(item1);
        row.addChild(item2);
        row.addChild(item3);
        grid.addChild(row);   
        mainitem1.addChild(grid);
        maingrid.addChild(mainrow2);
        mainrow1.addChild(mainitem1);
        mainrow1.addChild(mainitem2);
        mainrow1.addChild(mainitem3);
        mainrow1.addChild(mainitem4);
        maingrid.addChild(mainrow1);
         canvas.addChild(maingrid);
        ]]>
        </mx:Script>
    <mx:Canvas id="canvas" />
    </mx:Application>
    The problem is , right now it doesnt display anything but when i declare and initilize maingrid and its rows/items inside xmlLoaded() then it works but it foils my purpose to have only one main grid. Please shed some light on this as to why this is happening.
    Also, can u please suggest how to catch exceptions in flex. I am clueless as everytime a  blank page appears and no error or warning comes.

  • HSDIO Dynamic Generation of Digital Signals on Separate Non-sequential Ports Using the PCI-6542

    I am using the PCI-6542 trying to generate serial data timing on separate non-sequential ports 8, 9 and 16 as shown in the attached Digital Waveform Editor JPEG file
    I would like to be able to send binary data to ports (lines) 8, 9 and 16 without disturbing the other 29 ports on the PCI-6542 board. Looking on various HSDIO examples I don't see the capability of being able to send dynamic generation in binary format to a group of ports or being able to mask out non-timing involved ports like you can in static generation. 
    Was anyone successful in implementing this type of serial binary timing waveforms using the PCI-6542 board.
    Please advise.
    Thanks

    Hi Nycor,
    Outputting your data on lines that you specify is indeed possible on HSDIO cards.  You just need to list the channels you want to use in your Channel List when call the niHSDIO Assign Dynamic Channels VI.  For example, for lines 8, 9, and 16, you would input 8,9,16 into the Channel List.  Order in this list matters, so the first waveform in your file will correspond to line 8, second waveform to line 9, etc.  If your waveforms are out of order in your file, then rearrange the Channel List accordingly.
    One of my colleagues here is actually working on an example that implements this; I believe it may be for an open service request that you have.  I will speak with her when she is done and see if there is some example code we can provide that demonstrates this.  If you have further questions, I am happy to help out here, but you will likely get faster response through your open service request via phone and email.
    Regards,
    Chris E.
    Applications Engineer
    National Instruments
    http://www.ni.com/support

  • Auto generation of Item Code And Business Partner

    Hello All,
    My client want to create Auto generation of Item Code And Business Partner with some prefix value.
    Thanks
    Deepak

    Hi Dipak Patel,
    i created BP code by BP Group use FMS . you can refer code.
    declare @temp as char(20)
    IF $[OCRD.GroupCode] =100
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =100) and (len(CardCode)=8))
    set @temp='C11'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 102
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =102) and (len(CardCode)=8))
    set @temp='C12'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 103
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =103) and (len(CardCode)=8))
    set @temp='C13'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 104
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =104) and (len(CardCode)=8))
    set @temp='C14'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 101
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =101) and (len(CardCode)=8))
    set @temp='V11'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 105
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =105) and (len(CardCode)=8))
    set @temp='V12'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 106
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =106) and (len(CardCode)=8))
    set @temp='V13'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 107
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =107) and (len(CardCode)=8))
    set @temp='V14'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 108
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =108) and (len(CardCode)=8))
    set @temp='V15'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 109
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =109) and (len(CardCode)=8))
    set @temp='V16'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    ELSE IF $[OCRD.GroupCode] = 110
    BEGIN
    set @temp=(select isnull(max(right(CardCode,5)),0) + 1 from OCRD where (GroupCode =110) and (len(CardCode)=8))
    set @temp='V17'+isnull(replicate(0,5-len(@temp)),'')+@temp
    select cast(@temp as char(20))
    END
    thanks
    H2

  • Auto generation of  Item Code

    Hi Experts,
    Is it possible to create auto generation of Item Codes in SAP B1?
    E.g Customer want specific format say ... I000001---- I9999999
    tks,
    SB1

    Dear,
    You posted the same thread twice.
    Check you previous thread for reply :
    Re: Auto generation of  Item Code
    Hope this will help u.
    Thanks,
    Neetu

  • Dynamic generation of form to show table entries

    Dear experts,
    I am aware of how to dynamically program for form generation when the layout static and is already defined in transaction SFP.
    However I have a requirement wherein the form layout is not available . But the form should get generated dynamically and display values from a table in a simple field - value format. ( Just the way SE16 displays table content , the only difference being output should be in a PDF)
    Any pointers how I can progress on this.
    Appreciated your inputs.
    Thank you.
    With regards,
    Sahir.

    How does default checked checkboxes work for checkboxes of type String[]?
    The following code works, but it is for form property of type String, instead of String[]:
    <form-property name="prop" type="java.lang.String" />
    form.set("prop", "true");
    <html:checkbox property="prop" value="true"> // checked by defaultThis is what I tried for type String[], modelling it off the ideas of the above code, but it does not work:
    <form-property name="prop" type="java.lang.String[]" />
    String[] propArray = {"1", "4"};
    form.set("prop", propArray[]);
    <html:checkbox property="prop" value="1">  //should be checked by default, but is not
    <html:checkbox property="prop" value="2">
    <html:checkbox property="prop" value="3"> 
    <html:checkbox property="prop" value="4"> //should be checked by default, but is notWhy does it work for String but not String[]? How do I make it so that they are checked by default for type String[]?

  • Report generation failed----​error code:-1720​5; Access Denied.

    Hi, All
        i have a trouble about report generation.it seems the error happened at the "write UUT report"--this step is teststand report generation'DLL.
        detail:
        An error occurred calling 'Save' in 'Report' of 'NI TestStand 2010 SP1 API'
    Access Denied.. Error writing to file 'D:\program\seq\xxx.xml'.
    The file might be open in another application. If file access is intermittently denied, you should try disabling the Microsoft FindFast utility. 
        error code:-17205; Access Denied.
        locationtep 'Write UUT Report' of sequence 'Single Pass' in 'SequentialModel.Seq'
        How to fix it?
        Thanks a lot.
    BR

    Hm, it looks like the file might be open in another application. If you see that file accesss is intermittently denied, you should try disabling the Microsoft FindFast utility.
    CTA, CLA, MTFBWY

  • Dynamic FIle Name JAVA code

    Hi Guys,
    he requirement is to get File Name as XYZ.ddmmyyyy where as XYZ is constant.
    To achive this I am writing UDF in message mapping with dynamic configuaration below is the code:
    While I was trying to test end to end it is giving Runtime Exception in message mapping. please advice if this code needs correction?
    I have mapped as Source Main Node .....> UDF >  Target main node correct if it is wrong.
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File" , "FileName");
    DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");
    Date date = new Date();
    String  filename =  "XYZ" + dateFormat.format(date);
    conf.put (key,filename);
    return null;   
    Thanks.

    Hi ,
         Please try replacing this line
    DateFormat dateFormat = new SimpleDateFormat("ddMMyyyy");
    with this line
    java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat("ddMMyyyy");
    Hope this solves your problem.
    regards
    Anupam

  • FBL1N with dynamic selection WITHHOLDING TAX CODE is dropping rows

    Using FBL1N with dynamic selection field: WITHHOLDING TAX CODE and noticed that several vendors dropped off the report. Appears FBL1N's filter logic uses LFB1-QSSKZ and not LFBW-WT_WITHCD. Upon examination, I determined that the missing vendors didn't have a WTC assignment (column is BLANK) in table LFB1. Problem is I'm using transaction FK02's WITHHOLDING TAX ACCT tab to assign the WT codes but these rows are written to table LFBW (not LFB1). How is the LFB1-QSSKZ field populated? And why do some of the entries in LFB1-QSSKZ have values while others do not? Would ultimately like to populate the blank assignments with the correct WT code.

    Hi Steve,
    This is due to the limitation due to standard design.
    You can see that a vendor can be assigned to multiple WHT codes and can also have multiple WHT code for a single line item. Hence in FBL1N output it would not be possible to show the WHT code as there is no  one to one relationship.
    You can click on the line item and can then see the WHT information in WHT button. Or alternatively get the data in withholding tax information reports.
    Regards,
    SDNer

  • Dynamic Selections in T-code RSRT2 for Broadcast e-mail

    I have some issue with dynamic inputs for my BI report (created by query designer)...
    Issue 1 :  How I should do for create variants in T-code RSRT2 ?
    Issue 2 :  I want the variant to pick date at least the current system date by default (selection screen). How to make it happen?
    Issue 3 :  Can I use dynamic variant (variant from issue 2)  in Bex broadcaster setting ( T-code RSRT2 )
    Thank you for your replies

    Hi,
    In version 6 u can enhace the particular program...u have the enhance icon behind check icon....
    there u can enhance standard program add ur field in selection screen...

  • Submit syntax for dynamic selections for T-code FAGLL03

    Hi Experts,
    My z report contains following fields in selction screen.
    1 . G/ L account
    2. Comapny code
    3. posting date
    4. Profit Center
    5. layout
    In my z report i used following syntax for passing selection screen values to standard program and getting data.
    This is for T-code FAGLL03
    SUBMIT FAGL_ACCOUNT_ITEMS_GL
    WITH SD_SAKNR IN S_SAKNR
    WITH SD_BUKRS IN S_BUKRS
    WITH %%DYN001-LOW (Profit Center)
    EXPORTING LIST TO MEMORY
    AND RETURN.
    The above syntax is not working for dynamic selection field ( Profit Center), entire Profit center data is fetching from standard program. I want to fetch profit center data based on my z report selection values .
    Expect for profit center field , submit syntax is working.
    kindly provide submit syntax for my above requirement .
    Any suggestions from experts....
    Edited by: PLP REDDY on Nov 25, 2009 8:59 AM

    Indeed it won't work. Instead of passing parameters one by one use
    [SUIBMIT... WITH SELECTION-TABLE rspar|http://help.sap.com/abapdocu_70/en/ABAPSUBMIT_SELSCREEN_PARAMETERS.htm#!ABAP_ADDITION_3@3@]
    Here you add one line per parameter (field KIND = 'P' ) and multiple lines per select options (field KIND = 'S' ). For the latter you need also provide SIGN and OPTIONS, i.e SIGN = 'I' , OPTIONS = 'EQ'
    The lin I gave you will explain it more.
    Regards
    Marcin

  • Dynamically generate JSF Source code in a JSP

    Hi,
    I have a JSP and instead of writing the JSF source Code like:
    <h:inputText
    styleClass="entryInput"
    id="textNumberOfServerMachinesInput"
    value="#{DataAccess.value}"
    valueChangeListener="#{InputValueChanged.processValueChange}">
    </h:inputText>
    manually in the jsp I want the JSF source code to be added dynamically to the jsp.
    So what I want is including a tag in the jsp and this tag generates JSF source code like seen above.
    This source code should then be treated just the way it would be if I had written it manually in the JSP. This means that the dynamically generated JSF code must be interpreted and all Listeners and Beans work just fine.
    How can I make this???

    Hi,
    I have a smiliar problem:
    JSP:
    <h:panelGrid binding="#{fileUploadGrid.panelGrid}">
       <%-- emty in jsp --%>
    </h:panelGrid>The panel should be populated with items the backing bean creates in source code:
    FileUploadGrid.java
    public void setUploadFieldNumber(int uploadFieldNumber) {
        this.uploadFieldNumber = uploadFieldNumber;
        this.refresh();
    private void refresh() {
        if (this.panelGrid == null)
          this.createPanelGrid();
        List children = this.panelGrid.getChildren();
        children.clear();
        for (int i = 0; i < this.uploadFieldNumber; i++) {
          HtmlOutputText out = new HtmlOutputText();
          out.setTitle("Image " + i);
          out.setRendered(true);
          HtmlInputText in = new HtmlInputText();
          children.add(out);
          children.add(in);   
    private void createPanelGrid() {
        this.panelGrid = new HtmlPanelGrid();
        this.panelGrid.setColumns(2);
        this.panelGrid.setCellpadding("1");
        this.panelGrid.setBorder(1);
        this.panelGrid.setWidth("50%");
        this.panelGrid.setRendered(this.isRendered());
    public void setPanelGrid(HtmlPanelGrid panelGrid) {
        this.panelGrid = panelGrid;
      public HtmlPanelGrid getPanelGrid() {
        return this.panelGrid;
    }The backing bean is initialized in faces-config.xml:
    <managed-bean>
      <managed-bean-name>fileUploadGrid</managed-bean-name>
      <managed-bean-class>org.smi.pte.isf.FileUploadGrid</managed-bean-class>
      <managed-bean-scope>request</managed-bean-scope>
      <managed-property>
        <property-name>rendered</property-name>
        <value>true</value>
      </managed-property>
      <managed-property>
         <property-name>uploadFieldNumber</property-name>
         <value>6</value>
      </managed-property>
    </managed-bean>The problem is: although the debug output of the faces framework (I use it along with Tomcat) shows that the in- and output fields are added correctly to the panel, the page remains empty at display.
    Thanks in advance for any help.
    F. Eckhardt

Maybe you are looking for

  • Error while implementing BADI ME_GUI_PO_CUST

    Hi Experts, My requirment is to add a new tab in ME21N screen.We have to implement the BADI ME_GUI_PO_CUST and methods SUBSCRIBE and MAP_DYNPRO_FIELDS will create a new tab.however i have got a problem in method MAP_DYNPRO_FIELDS. i have defined 2 z

  • How Is sdo_geom.sdo_distance calculated in geodetic space?

    Hi, I'm new to oracle spatial -- but very familiar spatial SQL in Manifold GIS. In that package, there are two distance functions, a "distance", which returns the distance in native coordinates, and a "distanceEarth", which is used to return true dis

  • Update Apn data setting for BlackBerry 9800 torch.

    How can I update my Apn data setting on the BlackBerry 9800 torch? Because I am on the AT&T pay as you go plan, but on the pay as you go plan the phone as no mobile network but I have to use the wi-fI because on the 50$ unlimited plan is only talk an

  • Unused paragraphs and character styles in the catalogs?

    How could I delete automatically the unused paragraphs and character styles from the catalogs?

  • Where is the php blog tutorial

    I completed the php blog tutorial and then bookmarked it but now when I go to it it's not there. Does anyone have a link to the tutorial or know where I can find it again as it was a great tutorial.