US20040217985A9 - System and method for editing web pages in a client/server architecture - Google Patents

System and method for editing web pages in a client/server architecture Download PDF

Info

Publication number
US20040217985A9
US20040217985A9 US10/186,541 US18654102A US2004217985A9 US 20040217985 A9 US20040217985 A9 US 20040217985A9 US 18654102 A US18654102 A US 18654102A US 2004217985 A9 US2004217985 A9 US 2004217985A9
Authority
US
United States
Prior art keywords
web page
editing
data
web
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/186,541
Other versions
US7287227B2 (en
US20030023632A1 (en
Inventor
David Ries
James Curran
Original Assignee
VE Enterprises LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VE Enterprises LLC filed Critical VE Enterprises LLC
Priority to US10/186,541 priority Critical patent/US7287227B2/en
Publication of US20030023632A1 publication Critical patent/US20030023632A1/en
Assigned to VE ENTERPRISES LLC reassignment VE ENTERPRISES LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CURRAN, JAMES A., RIES, DAVID E.
Publication of US20040217985A9 publication Critical patent/US20040217985A9/en
Application granted granted Critical
Publication of US7287227B2 publication Critical patent/US7287227B2/en
Assigned to RIES, DAVID reassignment RIES, DAVID ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VE ENTERPRISES LLC
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Definitions

  • the invention disclosed herein relates generally to editing electronic documents and other data. More particularly, this invention relates to systems and methods for editing data provided by web sites or the like on a computer network.
  • Simpler sites generally known as static sites, comprise a set of associated files such as image files and text files that contain HTML formatted text. These files are provided “as is” in the form of a web page when requested by a consumer.
  • More complicated sites generally known as dynamic sites, utilize processes on the server to alter, create, or aggregate files and often non-file data such as that in databases. The results of these processes are sent in the form of a web page when requested by the consumers. In typical dynamic sites, no one file on the server contains the web page.
  • providers' site creators design and engineer the site architecture: navigation, branding, layout, client script and, for dynamic sites, the server-side processes.
  • providers infrequently change these architectural elements. Frequent changes to the site are often necessary, but these are changes to text, images, links and other “content” contained within the architecture.
  • These content edits are typically driven by daily business needs and, because they do not change the site architecture, would not generally require specialized skills. Typically, however, because the content is intermingled with the architecture, it is necessary to use specialized skills or tools.
  • Desktop authoring tools such as Microsoft FrontPageTM and Macromedia DreamWeaverTM, typically allow an author to: 1) create a new file or retrieve a copy of a file from the server via FTP; 2) edit the file contents; and then 3) transfer the file via FTP to the server, replacing an existing file with the edited file if appropriate. They assist in the editing process with many specialized tools and interfaces for creating HTML and script and for previewing the files locally.
  • Some of these tools offer a WYSIWYG (What You See is What You Get) interface which assists authors with the technical difficulties involved in the editing process by allowing them to edit in a word-processing-like style: authors type and use toolbars to edit rendered web pages, while the WYSIWYG-enabled tool rapidly creates the HTML and re-renders it.
  • WYSIWYG What You See is What You Get
  • the server In order for the client to retrieve and update files, using current desktop authoring tools, the server must allow the client read/write access to the server file system. This creates security, privacy, and corruption issues.
  • Remote authoring tools provide an alternative content authoring paradigm to desktop authoring tools.
  • Remote authoring tools typically take one of three general forms: pre-made form-based administration tools such as Trellix Web ExpressTM and Yahoo StoreTM; custom made form-based administration tools; or content management systems such as VIGNETTETM or INTERWOVEN TEAMSITETM.
  • remote authoring tools comprise a password restricted web site on the same server as the web site to be edited.
  • the tool contains areas corresponding to all anticipated editing needs of authors.
  • Authors log in to the tool and navigate to an appropriate form.
  • a form to change the title of an article on a web site article list may comprise a text input box labeled “Article Title” and an associated submit control labeled “Update Title”. The form is submitted to the server where server-side scripts process it and execute the edits.
  • Remote authoring tools advantageously prevent clients from accessing the server file system. Also, because remote authoring tools reside centrally on the server, they can edit and process dynamic site components, set user and group level permissions, and implement other features involving multiple clients.
  • Pre-made administration tools require providers to create or alter their site to fit the tool. Typically this means creating the site within the tool's template-based site-building component, and may be impractical for providers with existing sites.
  • Custom administration tools are built to support a specific web site and often take as much time and more technical skill to build and modify as the web sites that they are designed to administer.
  • Content management systems are more flexible than pre-made administration tools without requiring the build efforts of custom administration tools. They require providers to build their site within a complex but flexible system and/or deeply embed the tool within the site. In addition to the time and technology required to implement and support these complex tools, they typically require providers to integrate the tool into the processes used to provide the web site.
  • the invention provides for client side editing of structured documents, e.g., web pages, provided by one or more servers, e.g., web servers, and server side modification of data used by the one or more servers to provide the structured documents in accordance with the client side editing.
  • Clients display the structured documents using viewing software or viewers, e.g., for web pages, a browser, and edit the displayed documents using logic (or software) provided by the invention.
  • the invention also provides data associating an editable portion or portions of web pages displayed by the clients with data that is used by the one or more servers to provide the web pages.
  • the viewing software may be software for displaying structured documents available independently of the invention, for example for use with web pages, a browser such as MS Internet Explorer, or in the case of other structured documents, other currently available viewing software.
  • This viewing software is used by clients to display structured documents that are editable in accordance with the invention, as well as structured documents that can only be displayed by the clients because those clients do not have the inventive editing logic or are not authorized to use it.
  • the same editable structured documents can be supplied to all clients, and displayed the same by all clients.
  • clients with the inventive editing logic can edit the displayed documents.
  • structured documents including the associating data are displayed the same by a client having the editing logic, either while editing or simply displaying the structured documents, and by clients without the editing logic which simply display the structured documents, i.e., the existence of associating data in a displayed structured document is transparent unless the document is being edited.
  • the invention provides methods, systems and software for client side editing of structured documents as described herein.
  • One method performed in accordance with the invention edits structured documents provided by a server to clients having viewing software for displaying the structured documents.
  • This method comprises: providing a structured document; providing data that associates at least one portion of the structured document not comprising the entire structured document with data used by the server to provide the structured document; at a client having structured document editing logic and the structured document, using the viewing software, user input and editing logic, displaying and editing the structured document; at a client provided with the structured document and not having the structured document editing logic, displaying the structured document using the viewing software; and using the data that associates at least one portion of the structured document with data used by the server, modifying the data used by the server in accordance with the editing of the structured document performed by the client having editing logic.
  • Editing logic may be provided that is executed by the client's viewing software, or independently thereof.
  • the same server may be used to provide the structured document, the associated data and the editing logic, and to modify the data stored in the at least one data store in accordance with the editing of the structured document, or different servers may be used to provide all or some of that functionality.
  • An embodiment of a system provided by the invention displays structured documents in a client/server computer system that includes a plurality of clients each having viewing software for displaying the structured documents and at least one server for providing structured documents to clients.
  • the inventive system comprises: data that associates data in at least one portion of the structured document not comprising the entire structured document with data used by the at least one server to provide the structured document; editing logic; and software for modifying the data used by the at least one server to provide the structured document in accordance with the editing of the structured document performed by a client having editing logic.
  • clients with the editing logic edit structured documents displayed by the viewing software in response to user input.
  • the system may include more that one server provided as discussed above, and the viewing software may execute the editing logic as discussed above.
  • the invention further provides a computer program embodied on a computer-readable medium or media for editing structured documents provided by a server to clients having viewing software for displaying the structured documents, that includes data, logic and software as described above.
  • editing logic may be selectively provided to clients, and clients having editing logic may not be authorized to edit a particular document or to edit at all.
  • the invention may also determine whether a client has authorization to edit the structured document displayed by that client, and if so, providing the editing logic or permitting the client to edit the structured document, or particular document, only if the client has authorization.
  • Authorization for accomplishing the foregoing may be provided to the clients in the editing logic, or separately, by the server or other sources.
  • Software and techniques for authorizing clients to perform a particular function or to access a particular document or function are known to those skilled in the art.
  • the structured documents may be provided as a result of accessing, processing and/or aggregating data from at least one data store.
  • FIG. 1 For embodiments of the invention contemplate a method for editing web pages provided by a web server to clients having browser software the comprises providing a web page to clients, providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one of one or more files comprising logic processed by the server, one or more non-file data stores, and more than one file used by the web server to provide the web page and selectively providing web page editing logic to clients.
  • the method contemplates using the browser software, user input, and the editing logic, to display and edit the web page.
  • the web page is displayed using the browser software.
  • the stored data is modified in accordance with the editing of the web page performed by the client provided with the editing logic.
  • providing the web page may comprise a web page whose complete content is not stored as a complete file or a web page that does not comprise data added for the purpose of encapsulating or describing editable data within the web page.
  • the present invention also comprises a method for editing web pages provided by a web server to clients having browser software that comprises parsing the web page to identify at least one editable portion of the web page comprising at least one of two HTML tags and at least one HTML tag with one string of text not contained as part of the at least one HTML tag presenting the contents of the at least one editable portion of the web page to a user in an editable format, and receiving as input edits to the at least one editable portion of the web page.
  • An alternative embodiment of the invention comprises parsing the web page to identify at least one editable portion of the web page, presenting the contents of the at least one editable portion of the web page to a user in a WYSIWYG editable format, and receiving as input edits to the at least one editable portion of the web page.
  • the method may alternatively comprise providing, in addition to the editable portion of the web page, data to identify at least one of a type of editable portion identified, rules pertaining to the editing of the editable portion, and data sources used by the web server to provide the editable portion of the web page.
  • the method may instead or additionally comprise providing additional data relating to at least one of one or more data stores relating to the web page and rules relating to the editing of the web page and providing GUI elements to present predefined options to create or modify one or more of the at least one editable portion of the web page.
  • the data stored in the at least one data store may include data stored in one or more of the following: one or more files, one or more databases, one or more structured documents, and one or more volatile server memories, and/or may include data executable by at least one of a client and a server.
  • the structured document may include data that describes or encapsulates content.
  • the data stored in the at least one data store may be provided in the structured document or separately from the structured document. In or with the editing logic, additional data may also be provided relating to at least one of the structured document, one or more data stores relating to the structured document and rules relating to editing of the structured document.
  • the associating of the data stored in the at least one data store may comprise logic and/or rules.
  • the invention has particular application to editing of web pages, e.g., HTML, WML, and HDML.
  • the invention is not limited to editing of web pages and has application to editing of other structured documents, e.g., XML, SGML, XHTML and VML.
  • XML XML
  • SGML SGML
  • XHTML XHTML
  • VML VML
  • FIG. 1 is a block diagram presenting a configuration of software and hardware components according to one embodiment of the present invention
  • FIG. 2 is a block diagram presenting a configuration of client and server side components according to one embodiment of the present invention
  • FIG. 3 is a flow diagram presenting processes for configuring the invention on a web server or stand-alone server according to embodiments of the invention
  • FIG. 4 is a flow diagram presenting a process for browsing, editing and saving changes to a web page according to one embodiment of the present invention
  • FIG. 5 is a flow diagram continuing the process for browsing, editing and saving changes to a web page according to one embodiment of the present invention
  • FIG. 6 is a flow diagram presenting a process of editing a web page according to one embodiment of the present invention.
  • FIG. 7 is a flow diagram presenting a process for saving changes made to a web page according to one embodiment of the present invention.
  • FIG. 8 is a flow diagram presenting a process for dynamically generating data control dialog boxes for use in editing web pages according to one embodiment of the present invention
  • FIG. 9 is a screen drawing presenting a web page displayed to a client
  • FIG. 10 is a screen drawing presenting a web page identifying editable portions of the web page.
  • FIG. 11 is a screen drawing presenting text entry controls within a dialog box for interaction with an editing client.
  • FIG. 1 presents multiple configurations of the hardware and software components for editing a web page or data store providing a web page according to embodiments of the present invention.
  • Content hosts 102 and 110 which may be web servers, deliver multiple types of static and dynamic web pages to workstations 132 and 140 over a network 146 .
  • the network 146 may be any public or private local or wide area network, e.g., the Internet or a corporate LAN.
  • the network 146 as presented in FIG. 1 is common to all the components presented, the network 146 may comprise a plurality of interconnected disparate networks such as cable, telephone and other high speed data networks.
  • the system and method of the present invention is applicable to web page delivery systems 102 and 110 that utilize static or dynamic processes to provide web pages.
  • a web server 102 may utilize static processes to provide web pages to clients.
  • web server software 104 receives content requests from client workstations 132 and 140 over the network 146 . Although most web traffic conforms to the Hypertext Transmission Protocol (http), the present invention is easily adaptable to alternative transmission protocols.
  • http Hypertext Transmission Protocol
  • the web server software 104 accesses a file system 106 that stores the web page or pages 108 identified by the request.
  • the web server software 104 may access a remote file system 130 resident on a data server 126 over the network 146 for delivery to a requesting client 134 or 140 .
  • web servers 110 may utilize dynamic processes to provide web pages to requesting clients 134 and 140 .
  • workstations 132 and 140 transmit web page requests to a web server 110 where they are received by web server software 112 .
  • Files 118 which comprise a combination of markup code and program logic, are maintained in a file system 116 .
  • Active Server Page and Java Server Page technologies developed by Microsoft and Sun Microsystems, respectively, are two popular methodologies for processing files to dynamically generate web pages.
  • the web server software 112 employs middleware software 114 in order to process files to dynamically generate web pages 118 .
  • the middleware software 114 is instructed to retrieve a given dynamic file 118 from the file system and interpret or compile the contents to produce output web pages that may, for example, comprise markup language code.
  • the middleware software 114 may be instructed to retrieve data from a local database 120 or from a database 128 located on a remote data server 126 from over the network 146 depending on the program logic or parameters passed to the middleware software 114 with the request.
  • the dynamic file may call other server side components required to produce the output content.
  • the web server software 112 receives a request for static file
  • the static file is retrieved from a local or remote source for delivery to the requesting client or clients, thereby bypassing the middleware software, although the middleware software may be used to execute the request, depending on the particular configuration employed by a given institution.
  • Workstations 134 and 140 request web pages from the web server 102 and 110 through the use of a browser or client viewer application used to request and display the web page (not pictured).
  • a browser or client viewer application used to request and display the web page (not pictured).
  • One example is MICROSOFT INTERNET EXPLORERTM, although other types of web browsers and client viewing applications fall within the scope of the invention.
  • Workstations 134 may be any general purpose personal computer executing one or more of any number of commercially available operating systems, such as MACOS, MS WINDOWS, and UNIX/LINUX.
  • client workstations fall into two general categories: non-editing clients 132 and editing clients 140 .
  • Non-editing 132 clients use browser software (not pictured) to render web pages provided by web server software 104 and 114 using static and dynamic processes.
  • An editing client 140 is provided with editing logic and data 144 that enables functionality to edit web pages displayed by the browser.
  • Editing clients 140 request a login web page that may be created using static 108 or dynamic 118 files. Passwords, user identifiers, or other unique login information is supplied by the editing client 140 through the user of the browser application 142 , which is passed to the backend application logic 138 or 124 . Depending on the particular configuration of the present invention that is deployed, the backend application logic may reside on a dedicated server 136 or may be maintained on a web server 110 that is providing web pages to requesting clients.
  • the backend application logic 138 or 124 transmits editing logic and data (“edit mode”) 144 that is run within the browser application and used to allow web pages to be edited directly within the browser application 142 .
  • Edit mode 144 comprises a content frame and triggers the content frame to request and render the home page for the web site.
  • An editing client 140 may request web pages from a web server 104 and 114 like any other non-editing client 134 according to one or more of the manners described above. The requested web page is presented through edit mode's content frame.
  • Edit Mode 144 comprises a graphical user interface (GUI) that is presented to the user within the browser application 142 . Specifically, a control is provided to enable or disable the editing functionality of the present invention. As is explained in greater detail herein, the party who is responsible for editing the content page inserts data referred to herein as “hooks” or “hook data”, which are used to identify editable areas within a web page. When the editing client 140 instructs edit mode 144 to enable the editing functionality of the present invention, edit mode 144 examines the received web page to identify each of the hooks contained therein.
  • GUI graphical user interface
  • edit mode 144 is capable of identifying each discrete editable portion of a web page.
  • the web page in the content frame is re-rendered with additional parameters and data supplied by edit mode 144 to visually indicate editable content.
  • Editable portions of the web page are edited directly in the content frame that is displayed by the browser application 142 .
  • the editing client 140 uses edit mode 144 to edit the web page, the changes are immediately made and presented to the user where appropriate.
  • the browser application 142 is Internet Explorer (“IE”). Where IE is so instructed by a transform script setting a portion of a web page's ContentEditable property to “true”, edits can be made directly into the rendered page (WYSIWYG edit).
  • Edit mode 144 assembles the edits that have been performed by the editing client 140 , as well as the corresponding hooks that define each edited area, and submits the data to the backend application logic 138 .
  • the backend application logic 138 analyzes the hooks to determine the proper data store that must be modified with the updated value. Given changes submitted by edit mode 144 are made to the appropriate data sources, and the success report sent to edit mode. Edit mode 144 triggers its content frame to re-retrieve the web page from the web server. It is rendered by the browser application 142 and presented to the editing client 140 .
  • backend application logic resides on a server, which may also be the server providing the web pages, depending on the specific configuration of the invention that is deployed.
  • Backend application logic is herein referred to as the edit brain 202 .
  • Edit brain comprises a number of server-side application components 204 , 206 , 208 , 210 and data stores 212 , 214 , 216 , 218 to securely provide editing clients with the ability to edit web pages within a browser application. Editing clients initially request a web page comprising login controls from a given server hosting the edit brain.
  • Login data e.g., username and password
  • Login data is transmitted to the edit brain 202 for processing by a process referred to herein as login brain 204 .
  • the login brain process extracts identification parameters supplied by the editing client for verification against user and security data stored in both a security data store 212 and a user data store 214 .
  • the edit mode assembler component 206 dynamically creates the edit mode editing logic 222 , provided to a given verified requesting editing client.
  • the edit mode assembler also extracts data from a site configuration data store 216 .
  • This data store 216 maintains global configuration data used by both the client and server side application logic including, but not limited to, the web server domain and start page, an image upload directory, the name and location of the client side edit mode components, the web server's physical root address, information describing data sources used by the web server and associated access information.
  • ftp information may be maintained in the site configuration data store 216 to allow given edit brain 202 processes access to web pages.
  • the site configuration data store maintains data specific to each web server. The edit mode components are delivered to the editing client and executed within the browser application.
  • Also comprising the edit brain 202 is a process referred to herein as the save brain processes 208 for allowing an editing client to save edits made to the web page displayed in the editing client's browser application.
  • edits and associated hook data are passed back to the save brain 208 from the client side edit mode components 222 .
  • the save brain uses these data to perform lookups on the hook data store 218 , which is used to correlate hook data with one or more given data stores where data identified for editing resides.
  • a process referred to herein as the dynamic dialog brain process 210 is also provided to allow the edit brain 202 to dynamically generate dialog boxes, which are presented to an editing client by edit mode 222 for the manipulation of data. In this manner, business rules associated with particular data may be enforced by the server as opposed to being distributed among each of the editing clients.
  • each set of hooks “describes” the data it circumscribes, such as identifying a data source. More abstractly, the hook data may be viewed as any set of logic or third party data that describes portions of a web page not comprising the entire web page. For example, each hook could be based on a known structure of a content site whereby knowledge of the structure imparts knowledge of the type of content located in a given area of the site structure.
  • associating data is provided separately from the web page, such as by including a structural profile of the web page that indicates the editable and non-editable areas of the page.
  • the associating data may comprise rules based on common structures in the web page or by many other techniques known to those of skill in the art, such as through the use of the node-based Document Object Model typically provided to by browser, which may be used to describe areas in a specific web page.
  • hook data may be embedded within HTML style comments provided as part of a web page.
  • the syntax may be as follows: ⁇ !—VE:X:Y:Z—>.
  • the hook is preceded by an HTML start comment delimiter (“ ⁇ !—”).
  • ⁇ !— This is followed by a hook type (“X”) and a hook identifier (“Y”).
  • the third parameter of the hook (“Z”) may be a bit value indicating whether the hook is the start or end of the editable portion of the web page encapsulated by the hook.
  • the hook is closed with an HTML end comment delimited (“—>”).
  • Table 1 HTML start comment delimiter
  • hooks may comprise hook specific parameters or values for inclusion in dynamic web pages as presented in Table 2.
  • the dynamic web page is delivered to the requesting editing client with data specific to the requested page as shown in Table 3.
  • Edit mode 222 comprises the client side application logic, which is a collection of application logic and data executed within the browser application executing on an editing client's workstation.
  • the application logic and data of edit mode 222 may be described as falling to three general categories: GUI 224 , processing 246 , and the content frame 232 .
  • the GUI components 224 comprise a plurality of both graphical and off-screen controls presented to the editing client, thereby allowing for editing of portions of the web page within the browser application.
  • the main GUI component 224 is the toolbar 226 , which is presented within the browser application window as a plurality of graphical controls as is well known to those of skill in the art.
  • toolbar GUI components may include formatting controls such as bold and font controls, dialog driven controls such as to enter URL or similar network address information, menus, and controls to enable and disable the editing functionality of the present invention.
  • the GUI components 224 of edit mode 22 also include a set of off-screen hidden elements 228 .
  • Hidden elements 228 are graphical controls that are not displayed until they are required by the editing client, typically in response to the occurrence of a given type of action. These off-screen elements 228 include controls such as static menus and dialog boxes, e.g., color charts, context menus, and link creation dialog boxes.
  • a hidden dialog frame 230 is also provided.
  • the hidden dialog frame 230 is a container used to display GUI elements that are requested from the edit brain 202 during the editing process, e.g., a dialog dynamically generated by the dynamic dialog brain 210 . These elements 230 can exchange data with the edit brain 202 without unloading edit mode 222 from the browser application's memory space.
  • edit mode further comprises processing application logic and data 246 .
  • Data maintained by edit mode comprises both configuration data 234 and user specific data 236 .
  • configuration data 234 comprises selected data extracted by the edit mode assembler 206 from the site configuration data store 216 .
  • edit mode 222 must trigger the content frame 232 to load a web site start page upon delivery of edit mode to the editing client, which is defined in the configuration data 234 for a given web site.
  • user specific data is maintained for use by other edit mode components 222 .
  • Processing application logic and data 246 also comprises one or more scripts 242 .
  • Script code for example, JavaScript and VBScript, allows functionality to be automated at a editing client's browser application.
  • the script 242 is deciphered by an interpreter that is typically distributed as part of the browser application, although an interpreter may also be transferred to the editing client upon request according to an embodiment of the invention.
  • Exemplary scripts include a save script 238 , which initiates the save process in conjunction with application logic resident on the server, and a transform script that identifies hooks within a web page and transforms the web page to indicate editable portions within the web page.
  • a hidden save frame 244 is provided in order to exchange edit data between edit mode 222 and the edit brain 202 without unloading edit mode 222 from the browser application's memory space.
  • the third general category comprising edit mode 222 is the content frame 232 .
  • the content frame 232 operates to present web pages for interacting, browsing, viewing and editing, which is performed directly within the content frame 232 .
  • the edit mode assembler 206 delivers edit mode 222 to the editing client, the content frame is initially blank.
  • Data comprising the configuration data 234 defines the start page for the web site with edit mode triggering the content frame to retrieve the start page.
  • each web page is rendered by the browser application and presented within the content frame 232 as per a non-editing client's use of the web site.
  • the backend application logic and data may be hosted on the same physical server hosting the web pages managed by the back end application.
  • FIG. 3 presents methods of installing and initializing the visual edit application both where the backend application logic is hosted on the server hosting the web server software and where the backend application logic is not hosted on the server hosting the web server software.
  • a user with administrator or similar privileges on the server hosting the web server installs the edit brain on the server, step 304 .
  • the installation process of step 304 may be implemented through the use of automated installation scripts such as those that are well known to those of skill in the art. As described in FIG.
  • step 306 empty data stores are generated to maintain security, user, web site configuration, and hook data, step 306 .
  • web site configuration data is supplied and stored in the site configuration data store, step 308 .
  • the edit brain is installed and initial configuration is complete, steps 304 , 306 and 308 .
  • a hook is created to identify an editable portion of a web page, in addition to providing the edit brain with indication of the type of content identified by the hook, step 310 .
  • Data is also added to the hook data store to enable the edit brain to identify the type of data encapsulated or described by the hook and enable updates to the web page or data store in response to edits generated by an editing client step 310 .
  • the hook data is added to the appropriate location within the web page, step 312 .
  • the process of generating hook data 310 and placing hooks within web pages at desired locations to identify editable portions of a web page 312 is repeated for each editable portion on each web page comprising the web site.
  • the web site or similar administrator must also set security details to restrict access to the editing functionality of the present invention vis-a-vis the web site, step 314 .
  • user data including usernames and passwords, is maintained in appropriate data stores; each user has all or none access based on the presence of their username and password in the data stores maintained by the edit brain.
  • it is advantageous to maintain security data by creating access groups whereby each group allows varying levels of access to advanced editing functionality provided by the invention. In this manner, the administrator is capable of restricting access with extremely fine granularity, e.g., allowing editing clients access to only certain hook types that are enumerated in the security group to which the editing client belongs.
  • the backend application logic resides on a different server from that used to host the web server software.
  • the backend application logic is capable of concurrently providing editing functionality to a plurality of web servers.
  • the server hosting the web server is not also hosting the backend application logic 316 , there is no need to install the edit brain and generate data stores because the backend application logic and data is maintained by a third party.
  • the administrator of the web server prepares site configuration data, step 318 , typically supplying details such as the address of the web site domain and starting web page, an image upload address, the root directory where the web server is maintained, as well as FTP information.
  • FTP information allows the edit brain to access the file system on the web server where web pages and other data are maintained.
  • the web page author or web site administrator defines hooks by adding hook data to the hook data store and generating one or more corresponding hooks, step 320 .
  • Each web page comprising the web site is analyzed to determine editable portions and appropriate hooks are inserted to encapsulate the editable content, step 322 .
  • This process 320 and 322 is repeated to identify all editable portions of each web page comprising the web site.
  • User groups are created to define varying levels of editing privileges and associated with user records created and maintained in the user data store, step 324 .
  • FIG. 4 One embodiment of a method for operating embodiments of the system presented in preceding figures is illustrated in FIG. 4.
  • an editing client navigates to a login page in order to log into the editor for the web site, step 402 .
  • the login brain receives login information provided by the editing client via the login page and performs a validation check, step 404 . Where the login brain is unable to validate the login information provided by the editing client against user and security data maintained by the edit brain, an error message is returned and the editing client is provided with a subsequent opportunity to provide valid login information, step 402 . If the login brain is able to validate the provided login information, step 404 , the edit brain assembles the edit mode components, which are delivered to the editing client, step 406 .
  • the browser application executing at the editing client's workstation receives and loads the edit mode components, step 406 , and edit mode triggers a request from the content frame to retrieve the start page from the web site, step 408 .
  • the GUI components of edit mode are loaded into the browser application's window, the given web page from the web site is loaded into the content frame, and edit mode parses the user action, step 410 .
  • edit mode prompts the editing client to save any edits, if appropriate, and logs the user out of the system, step 414 . Processing ends and edit mode is unloaded from the browser, step 416 .
  • step 410 Where a browse command is received from the editing client, step 410 , for example, the editing client selects a hyperlink from a page, program flow is directed to step 412 where the browser application responds to the specific navigation control that is selected. For example, the browser reacts to a browser back command differently from a browser forward command or selection of a hyperlink.
  • the request is passed to the web server, which returns a web page that is responsive to the command supplied by the editing client, at which point edit mode and the browser continue to parse received user input, step 410 .
  • One action parsed for is an indication from the editing client to edit the web page loaded in the content frame, step 410 .
  • an editing client selects a control provided to enable the editing of the web page directly within the browser application, step 418 .
  • Edit mode analyzes or parses the web page loaded in the content frame to detect the presence of hooks within the web page, step 420 .
  • Security data regarding the editing client is retrieved and a check is performed to determine if the client has permission to edit one or more selected portions of the web page, step 422 . Where the editing client does not have permission to edit any of the editable portions of the web page, an error message is displayed in the content frame communicating the error state, step 424 .
  • edit mode executes the transform script to modify the web page in order to indicate editable portions of the web page and activates appropriate interface elements, step 426 .
  • a first user action parsed for is a request for an inline edit.
  • an insertion point is placed in the text and the editing client is free to modify the text.
  • Edit mode re-writes the markup as the edits are entered by the editing client, which is re-rendered to display the editing changes, step 504 .
  • edit mode continues to parse user input for an actionable event, step 502 .
  • Edit mode also parses for controlled editing whereby business rules enforce the validity of data values entered by editing clients.
  • dialog boxes responsive to the specific edit command received from the editing client are generated and presented on the editing client's workstation as part of edit mode's GUI, step 506 .
  • the editing client edits data through the dialog, which maintains data integrity and business rules, and edit mode continues to parse user input for an actionable event, step 502 .
  • other triggers may be parsed by edit mode whereby miscellaneous functionality is executed, step 508 , and processing returns to step 502 .
  • edit mode composes an update message comprising the save data (the edits made to the web page) and the hooks associated with each of the edits performed.
  • other information available at the editing client is included in the update message, e.g., a web page URL and other parameters.
  • the update message is transmitted over the network from edit mode at the editing client to the edit brain, specifically, to the save brain for further processing, step 512 .
  • the save brain receives the update message and updates the web page or data store used by the web server to provide the web page based on the hooks comprising the update message and the save data associated with each of the hooks, step 514 .
  • the save brain transmits a response back to edit mode indicating the success or failure of the update process, step 516 .
  • step 518 A check is performed on the response message to determine whether the edits were successfully saved in the web page or one or more data stores used by the web server to provide the web page, step 518 . Where the update has failed, step 518 , edit mode communicates this state to the editing client, for example, by displaying a save failure web page in the content frame or in a modal dialog box, step 320 . If, however, the response message indicates that the save was successful, step 518 , edit mode triggers the content frame to reload the web page for the web site, which should reflect the edits made to the web page previously viewed by the editing client, step 522 . Regardless of the success or failure of the save process, step 518 , processing is directed to step 410 where edit mode or the browser continues to parse user input and execute functionality responsive to the input.
  • step 414 edit mode prompts the editing client to save if appropriate.
  • a save process generally analogous to steps 510 , 512 , 514 , and 516 is executed.
  • edit mode is unloaded from memory and the process completes, step 416 . If the editing client browses away from the web page that is currently being viewed or edited, processing returns to step 412 where the navigation control selected by the editing client is executed and the browser loads the web page responsive to the selected navigation control.
  • FIG. 6 A flow diagram presenting a more detailed example of the web page editing process is presented in FIG. 6.
  • the editing process typically begins with the user logging into the editing system, step 602 .
  • the edit brain assembles software components required for operation of edit mode, step 604 .
  • the edit mode components are received by the browser application or similar content rendering system and executed in memory, step 606 .
  • Selected software components of edit mode issue a request to the content frame, triggering the content frame to issue a request to the web site for the web site's starting web page, step 608 .
  • the address used to request the starting web page from the web site is defined in configuration data derived from a data store on the server and delivered along with the edit mode software components.
  • the editing client With edit mode installed in memory and the web site's starting web page loaded in the content frame, the editing client is free to browse the web site as would any non-editing client in a manner well known to those of skill in the art, step 610 .
  • the editing client may enable the editing functionality provided by the invention, step 612 .
  • the editing client enables the editing functionality by selecting an “edit” button presented via edit mode's GUI.
  • edit mode In response to enabling the editing functionality, step 612 , edit mode analyzes the web page displayed by the content frame and, based on the presence of hooks encapsulating portions of the web page, visually transforms the web page to reveal an editing interface, thereby displaying editing controls based on the hooks, step 614 .
  • a given edit is made to a portion of the web page and confirmed by the editing client through the edit mode GUI, which triggers a save process, step 624 .
  • the save process compiles the edits made by the editing client, in combination with data comprising the hooks that encapsulate the edited data, into an update message that is transmitted to the save brain process on the visual edit host, step 626 .
  • the update message may also comprise additional client side data, such as the web page URL and other web page parameters.
  • the message is inserted in to a hidden save frame and transmitted to the save brain process.
  • the save brain executes the update by modifying the data store used by the web server to provide the web page in accordance with the edits provided by the editing client, which may include file system access, FTP transmission, database access, etc., step 628 .
  • the save brain transmits a response to edit mode upon completion of the update indicating the success or failure of the operation, step 630 .
  • Edit mode triggers the content frame to reload the web page from the web server, thereby presenting the edited web page to the editing client, step 632 .
  • the save process presented in FIG. 5 is built on in the flow diagram of FIG. 7, which provides a more detailed embodiment of the save process.
  • edit mode's save process When an editing client saves edits made to a web page within the browser application, edit mode's save process generates an update message comprising one or more edited portions of the web page to be saved, as well as the hooks associated with each piece of data, which is transmitted over the network to the edit brain's save process, step 702 .
  • the save brain receives the update message and extracts the data contained therein for analysis, step 704 .
  • the save brain parses the hook identifier from the key and retrieves associated hook data from the hook data store and security data from the security data store, step 708 .
  • the key/value pair itself is all that is required in order to enter the edits made to a given portion of the web page by the editing client.
  • step 708 the save brain determines, based on the security information, hook identifier, and user information from the update message, whether the editing client has access to perform the editing action, step 710 . Where the editing client does not have sufficient access privileges, processing returns to step 706 and the next key/value pair is analyzed. If the user has sufficient access privileges, the save brain determines the hook type from the retrieved key or hook data, step 712 . It should be noted that hook types that are trapped for by step 712 are exemplary and not meant to be limiting. It should be clear to one skilled in the art that other data that may be used to identify content types in an analogous manner to the hooks and hook data. A listing of exemplary hook types and descriptions can be found in Appendix A.
  • the save brain retrieves the web page via FTP, HTTP or from a local file system (as dictated by the site configuration data) using the file location identified in the hook data or additional data provided by the editing client, step 714 .
  • the save brain searches the web page for the identified hook and replaces the portion of the web page encapsulated by the hook with the value associated with the current key in the update message, step 716 .
  • the edited file is rewritten to its source location by the access method dictated in the site configuration data, step 718 , and the next key/value pair is processed, step 706 .
  • the save brain parses the primary key value to determine the database or other data store maintaining the dynamic text from the key/value pair, step 720 .
  • the save brain generates a SQL update statement comprising hook data retrieved from the hook data source, e.g., table name, primary key column, column(s) to return for result set, etc., the primary key value, and the value from the key/value pair in the update message, step 722 .
  • the save brain possibly in connection with a database management system, executes the generated SQL code against the data store, step 724 , as dictated by the site configuration data, e.g., a relational database management system.
  • the next key/value pair is processed, step 706 .
  • the save brain may also identify other defined hook types comprising the update message in order to handle other editing functionality, step 712 .
  • the save brain parses values the key/value pair and generates SQL code or other instructions as is appropriate, step 726 .
  • the save brain executes the generated instructions upon defined data store. Alternatively, the save brain may pass instructions off to external update services for processing. The instructions are executed, step 726 , and the next key/value pair is processed, step 706 .
  • a check is performed to determine if additional key/value pairs exist in the update message that have not been processed by the save brain, step 706 . If all the key/value pairs comprising the update message are processed, the save brain compiles a success report, step 728 . Where appropriate, the success report may include redirect or other follow up message defined by the hook data, which is sent in a response message to edit mode, step 730 , for potential further client side processing.
  • the edit brain comprises functionality whereby data control dialogs are dynamically generated for presentation to the editing client in response to certain data editing requests, thereby allowing for centralized enforcement of business rules at the server.
  • FIG. 8 presents one embodiment of a method for receiving requests for dynamic dialogs for presentation to an editing client in response to a dialog request from edit mode, step 802 .
  • the dynamic dialog brain process of the edit brain receives the dialog request and extracts the information contained therein, step 804 .
  • the dynamic dialog brain further parses the hook identifier from the dialog request and receives associated hook data from the hook data store and security data from the security data store based on the identify of the editing client, step 806 .
  • a check is performed to determine if the editing client requesting the dynamic dialog in order to edit a portion of the web page has appropriate access to the functionality requested, step 808 . Where the editing client is not a member of a group with sufficient access privileges to edit the data controlled by a requested dynamic dialog, step 808 , an access denied message is sent to edit mode for presentation to the editing client, step 810 . Edit mode may present this message in any number of ways known to those of skill in the art. If the editing client has sufficient access privileges to access the data controlled by a requested dynamic dialog, a primary key value is parsed from the dialog request where appropriate, step 812 .
  • the dynamic dialog brain determines the hook type from the hook data, step 814 , and performs an appropriate action responsive to the hook type. It should be noted that hook types that are trapped for by step 814 are exemplary and not meant to be limiting. It should be clear to one skilled in the art that other data that may be used to identify content types in an analogous manner to the hooks and hook data.
  • the dynamic dialog brain generate a SQL select statement, step 816 .
  • the SQL select statement may comprise the primary key value, as well as components of the hook data, e.g., table name, the name of the column designated as the primary key, the column to return as the result set, etc.
  • the generated SQL select statement is executed against the data store used by the web server to provide the web page, as defined by the site configuration data, to retrieve the current value encapsulated by the hooks defined in the dialog request message, step 818 .
  • a GUI dialog control is generated for presentation to the editing client whereby the editing client may modify the value(s) contained in the data store, step 820 .
  • the dynamic dialog brain generates a SQL select statement based on the primary key value and hook data, step 822 .
  • the SQL select statement is executed against the data store, as dictated by the site configuration data, to retrieve one or more current values and all appropriate reference values, step 824 .
  • a GUI select one control e.g., a drop down list or radio button group, is generated for presentation to the editing client with the current selected value presented on the web page indicated through the control's interface, step 826 .
  • the hook type evaluates to other identifiable hook types
  • the data values are parsed from the request and used to generate SQL or other instruction code as is appropriate given the evaluated hook type, step 828 .
  • the instructions are executed upon one or more identified data stores, or alternatively passed off to other local or remote processes for execution.
  • the result received from the execution of the SQL or other instruction code is used to generate a selection or editing GUI control as is appropriate given the evaluated hook type.
  • completion logic is generated using the hook data and sent to edit mode.
  • completion logic may comprise logic to facilitate execution of the editing transaction performed by the editing client.
  • the generated GUI controls and completion logic is sent to edit mode for presentation to the editing client, step 832 .
  • the editing client uses the GUI controls, the editing client performs edits to portions of the web page and indicates completion of edits capable of being performed with the current GUI controls, step 834 .
  • the completion logic registers the edits performed by the editing client and registers the edits with edit mode, step 836 . Where appropriate, edit mode marks up the web page in content frame with edits made by the editing client for presentation.
  • edit mode closes the dialog, step 838 .
  • FIGS. 9 through 11 a series of screen drawings are presented that illustrate embodiments of a graphical interface of the present invention.
  • FIG. 9 presents a web page 908 , which when delivered by a web server appears identical to both editing and non-editing clients, e.g., the same web page is delivered to both classes of clients.
  • the web page 908 is presented to the client, either editing or non-editing, in the context of a web browser 902 .
  • an editing client is accessing the web page 908 from the presence of a graphical toolbar 904 comprising several editing controls is provided with the browser 902 only to authorized editing clients.
  • the editing client decides to edit a portion of web page, he or she selects a checkbox 906 to enter edit mode, which executes the transformation script within the browser 902 to reveal the editable portion or portions of the web page 908 .
  • FIG. 10 Upon selection of the edit mode control, various modifications are made to the web page and graphical controls as shown in FIG. 10.
  • Selection of the edit mode control 1002 allows an editing client to create or modify editable portions of the web page 1006 . Editable portions of the web page 1006 are graphically presented to the editing client, thereby allowing edits to be made directly within the web page 1008 .
  • the editable portion of the web page 1006 comprises text, which may be modified by selecting text and supplying text data, which may also comprise highlighting text for modification or deletion 1008 .
  • entry into edit mode 1002 by an editing client provides access to editing tools in the graphical toolbar 1004 , thereby allowing advanced formatting of editable portions of the web page in addition to other functionality described above in detail.
  • the screen drawing of FIG. 11 builds on the screen drawing of FIG. 10 by presenting text entry controls within a dialog box 1102 .
  • This technique allows business rules to remain centralized for all editing clients.
  • the particular dialog presented in FIG. 11 allows for modification of a record in a database containing a URL, title, and archive flag.
  • a first text entry control 1004 is provided that allows modification of the tile text that is displayed on the web page.
  • a second text entry control 1006 is provided that allows for the editing client to supply a URL or address that is associated with the title text.
  • the authoring client may select a “done” control that displays the changes within the web page.
  • the database records are updated to reflect the changes.
  • Hook_Type Name Comments 100 Static used to describe text in a file 110 Dynamic Text Area used to describe text in a data base cell 120 Select One used to describe output generated from resolving a one-to- one relationship between a primary entity and a reference table 130 Select Multiple used to describe output generated from resolving a one-to- many relationship described by a primary, reference and join table 131 Select Multiple (ordered) same as above with a sort order field in the join table 150 Add Entity used to describe the insertion of multiple pieces of data into several cells, rows, and/or tables which together create a new logical entity. E.g. a new employee with first name, last name, departments, and etc.
  • sub hooks of hook_type 200- 240 are created to describe each piece of data
  • 155 Edit Entity As above, but used to edit rather than create multiple pieces of data at once 210 Plain Text subhooks for 150, 155 211 Text Area subhooks for 150, 155 212 Integer subhooks for 150, 155 213 URL subhooks for 150, 155 215 Boolean subhooks for 150, 155 216 Date subhooks for 150, 155 220 Select One subhooks for 150, 155 230 Select Multiple subhooks for 150, 155 231 Select Multiple (ordered) subhooks for 150, 155 240
  • Hidden Value subhooks for 150, 155 160 Delete Entity A collection of Delete Instructions (hook_type 160) which can be executed to remove an entity described by one or more rows or columns in one or more table 260 Delete Instruction subhooks for 160 171 Image Upload & Insert 174 Delete a File 180 Edit Non-Displayed Entity 280 Entity Column subhooks for 180

Abstract

A method for the editing of web pages by selectively providing editing logic and data that associates portions of the page with data sources used to provide the portions. Identical pages are provided to both editors and non-editors, preferably by retrieving and viewing the page in a browser. The editor can use the editing logic to edit the displayed page. The invention uses the associating data in order to update data sources used to provide the web page in accordance with the edits. The use of associating data by the invention supports functionality that allows for updating of a wide variety of data sources with potentially complex relations to the provided web page.
In preferred embodiments, the editing logic provides WYSIWYG editing within editable portions of the displayed page, GUI elements to assist authors in the writing of HTML and performing other editing tasks, and server-created dialogs which can structure editing of specific portions in order to enforce business rules or data integrity.

Description

  • Applicant hereby claims the benefit of provisional application No. 60/302,145, filed Jun. 29, 2001, which application is hereby incorporated by reference in its entirety into this application.[0001]
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. [0002]
  • FIELD OF THE INVENTION
  • The invention disclosed herein relates generally to editing electronic documents and other data. More particularly, this invention relates to systems and methods for editing data provided by web sites or the like on a computer network. [0003]
  • BACKGROUND OF THE INVENTION
  • In recent times, the Internet has gained universal acceptance. A global network connecting millions of computers, the Internet is now the “ultimate” place for interaction between providers and consumers of information based services. Currently, an estimated 560 million people are online (roughly 9% of the world population) and roughly 147 million web sites are provided on the Internet. [0004]
  • Consuming is extremely easy: with an Internet connection and a freely available browser, even novice consumers can interact with provider web sites. Providing web sites, on the other hand, requires specialized skills. Individuals typically use a class of tools known as desktop authoring tools, such as Microsoft FrontPage™ and Macromedia DreamWeaver™, or another class of tools known as remote authoring tools, such as Trellix Web Express™ and Yahoo Store™. Businesses typically hire professional web site companies or developers. [0005]
  • Provider's sites vary in technical complexity. Simpler sites, generally known as static sites, comprise a set of associated files such as image files and text files that contain HTML formatted text. These files are provided “as is” in the form of a web page when requested by a consumer. More complicated sites, generally known as dynamic sites, utilize processes on the server to alter, create, or aggregate files and often non-file data such as that in databases. The results of these processes are sent in the form of a web page when requested by the consumers. In typical dynamic sites, no one file on the server contains the web page. [0006]
  • During the web site creation process, providers' site creators design and engineer the site architecture: navigation, branding, layout, client script and, for dynamic sites, the server-side processes. Typically, once the creation process is complete, providers infrequently change these architectural elements. Frequent changes to the site are often necessary, but these are changes to text, images, links and other “content” contained within the architecture. These content edits are typically driven by daily business needs and, because they do not change the site architecture, would not generally require specialized skills. Typically, however, because the content is intermingled with the architecture, it is necessary to use specialized skills or tools. [0007]
  • Two current content editing paradigms are referred to as desktop authoring tools and remote authoring tools. [0008]
  • Desktop authoring tools, such as Microsoft FrontPage™ and Macromedia DreamWeaver™, typically allow an author to: 1) create a new file or retrieve a copy of a file from the server via FTP; 2) edit the file contents; and then 3) transfer the file via FTP to the server, replacing an existing file with the edited file if appropriate. They assist in the editing process with many specialized tools and interfaces for creating HTML and script and for previewing the files locally. Some of these tools offer a WYSIWYG (What You See is What You Get) interface which assists authors with the technical difficulties involved in the editing process by allowing them to edit in a word-processing-like style: authors type and use toolbars to edit rendered web pages, while the WYSIWYG-enabled tool rapidly creates the HTML and re-renders it. [0009]
  • In order for the client to retrieve and update files, using current desktop authoring tools, the server must allow the client read/write access to the server file system. This creates security, privacy, and corruption issues. [0010]
  • Because current desktop authoring tools retrieve, edit, and update entire files, restricting edits to content portions of files is often a difficult task: for example a content editor cannot easily be restricted from editing architectural elements of files that contain intermingled content and architecture. This exposes the site to corruption during each editing session. [0011]
  • Editing dynamic sites using current desktop authoring tool is also difficult. Editors may need to trace the origin of the web page content from several files. Additionally, they must understand the scripting languages and the interaction they dictate between the HTML that they control and other files, processes, and data in order to change the resulting web page. Typically, server-side processing cannot be executed on the client machine and it is impossible to preview edits. Additionally, desktop authoring tools cannot access or edit non-file data sources which are common on dynamic sites. [0012]
  • Remote authoring tools provide an alternative content authoring paradigm to desktop authoring tools. Remote authoring tools typically take one of three general forms: pre-made form-based administration tools such as Trellix Web Express™ and Yahoo Store™; custom made form-based administration tools; or content management systems such as VIGNETTE™ or INTERWOVEN TEAMSITE™. [0013]
  • Typically, remote authoring tools comprise a password restricted web site on the same server as the web site to be edited. The tool contains areas corresponding to all anticipated editing needs of authors. Authors log in to the tool and navigate to an appropriate form. For example, a form to change the title of an article on a web site article list may comprise a text input box labeled “Article Title” and an associated submit control labeled “Update Title”. The form is submitted to the server where server-side scripts process it and execute the edits. [0014]
  • Current remote authoring tools require editors to make edits to the web site from within an interface which is not the web site. Typically, in order to change a web page visible in the browser, an editor must leave the page, enter the remote authoring tool, select and complete the correct task forms, and then return to the web page to view the changes. Some content management solutions allow editors to edit within what appears to be the web site as provided to consumers, but this is accomplished only by deep embedding in that process, as mentioned below. [0015]
  • Remote authoring tools advantageously prevent clients from accessing the server file system. Also, because remote authoring tools reside centrally on the server, they can edit and process dynamic site components, set user and group level permissions, and implement other features involving multiple clients. [0016]
  • However, current remote authoring tools either require great resources to implement or impose great limitations on the architecture of the web site they administer. [0017]
  • Pre-made administration tools require providers to create or alter their site to fit the tool. Typically this means creating the site within the tool's template-based site-building component, and may be impractical for providers with existing sites. [0018]
  • Custom administration tools are built to support a specific web site and often take as much time and more technical skill to build and modify as the web sites that they are designed to administer. [0019]
  • Content management systems are more flexible than pre-made administration tools without requiring the build efforts of custom administration tools. They require providers to build their site within a complex but flexible system and/or deeply embed the tool within the site. In addition to the time and technology required to implement and support these complex tools, they typically require providers to integrate the tool into the processes used to provide the web site. [0020]
  • BRIEF SUMMARY OF THE INVENTION
  • The invention provides for client side editing of structured documents, e.g., web pages, provided by one or more servers, e.g., web servers, and server side modification of data used by the one or more servers to provide the structured documents in accordance with the client side editing. Clients display the structured documents using viewing software or viewers, e.g., for web pages, a browser, and edit the displayed documents using logic (or software) provided by the invention. The invention also provides data associating an editable portion or portions of web pages displayed by the clients with data that is used by the one or more servers to provide the web pages. [0021]
  • The viewing software may be software for displaying structured documents available independently of the invention, for example for use with web pages, a browser such as MS Internet Explorer, or in the case of other structured documents, other currently available viewing software. This viewing software is used by clients to display structured documents that are editable in accordance with the invention, as well as structured documents that can only be displayed by the clients because those clients do not have the inventive editing logic or are not authorized to use it. [0022]
  • In accordance with the invention, the same editable structured documents can be supplied to all clients, and displayed the same by all clients. However, only clients with the inventive editing logic can edit the displayed documents. Thus, structured documents including the associating data are displayed the same by a client having the editing logic, either while editing or simply displaying the structured documents, and by clients without the editing logic which simply display the structured documents, i.e., the existence of associating data in a displayed structured document is transparent unless the document is being edited. [0023]
  • The invention provides methods, systems and software for client side editing of structured documents as described herein. One method performed in accordance with the invention edits structured documents provided by a server to clients having viewing software for displaying the structured documents. This method comprises: providing a structured document; providing data that associates at least one portion of the structured document not comprising the entire structured document with data used by the server to provide the structured document; at a client having structured document editing logic and the structured document, using the viewing software, user input and editing logic, displaying and editing the structured document; at a client provided with the structured document and not having the structured document editing logic, displaying the structured document using the viewing software; and using the data that associates at least one portion of the structured document with data used by the server, modifying the data used by the server in accordance with the editing of the structured document performed by the client having editing logic. [0024]
  • Editing logic may be provided that is executed by the client's viewing software, or independently thereof. [0025]
  • The same server may be used to provide the structured document, the associated data and the editing logic, and to modify the data stored in the at least one data store in accordance with the editing of the structured document, or different servers may be used to provide all or some of that functionality. [0026]
  • An embodiment of a system provided by the invention displays structured documents in a client/server computer system that includes a plurality of clients each having viewing software for displaying the structured documents and at least one server for providing structured documents to clients. The inventive system comprises: data that associates data in at least one portion of the structured document not comprising the entire structured document with data used by the at least one server to provide the structured document; editing logic; and software for modifying the data used by the at least one server to provide the structured document in accordance with the editing of the structured document performed by a client having editing logic. As discussed above, clients with the editing logic edit structured documents displayed by the viewing software in response to user input. [0027]
  • The system may include more that one server provided as discussed above, and the viewing software may execute the editing logic as discussed above. [0028]
  • The invention further provides a computer program embodied on a computer-readable medium or media for editing structured documents provided by a server to clients having viewing software for displaying the structured documents, that includes data, logic and software as described above. [0029]
  • As mentioned above, editing logic may be selectively provided to clients, and clients having editing logic may not be authorized to edit a particular document or to edit at all. The invention may also determine whether a client has authorization to edit the structured document displayed by that client, and if so, providing the editing logic or permitting the client to edit the structured document, or particular document, only if the client has authorization. Authorization for accomplishing the foregoing may be provided to the clients in the editing logic, or separately, by the server or other sources. Software and techniques for authorizing clients to perform a particular function or to access a particular document or function are known to those skilled in the art. [0030]
  • The structured documents may be provided as a result of accessing, processing and/or aggregating data from at least one data store. [0031]
  • Other embodiments of the invention contemplate a method for editing web pages provided by a web server to clients having browser software the comprises providing a web page to clients, providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one of one or more files comprising logic processed by the server, one or more non-file data stores, and more than one file used by the web server to provide the web page and selectively providing web page editing logic to clients. At a client provided with the web page editing logic and the web page, the method contemplates using the browser software, user input, and the editing logic, to display and edit the web page. At a client provided with the web page and not having the web page editing logic, the web page is displayed using the browser software. Using the data that associates at least one portion of the web page not comprising the entire web page with stored data, the stored data is modified in accordance with the editing of the web page performed by the client provided with the editing logic. Alternatively, providing the web page may comprise a web page whose complete content is not stored as a complete file or a web page that does not comprise data added for the purpose of encapsulating or describing editable data within the web page. [0032]
  • The present invention also comprises a method for editing web pages provided by a web server to clients having browser software that comprises parsing the web page to identify at least one editable portion of the web page comprising at least one of two HTML tags and at least one HTML tag with one string of text not contained as part of the at least one HTML tag presenting the contents of the at least one editable portion of the web page to a user in an editable format, and receiving as input edits to the at least one editable portion of the web page. [0033]
  • An alternative embodiment of the invention comprises parsing the web page to identify at least one editable portion of the web page, presenting the contents of the at least one editable portion of the web page to a user in a WYSIWYG editable format, and receiving as input edits to the at least one editable portion of the web page. The method may alternatively comprise providing, in addition to the editable portion of the web page, data to identify at least one of a type of editable portion identified, rules pertaining to the editing of the editable portion, and data sources used by the web server to provide the editable portion of the web page. Furthermore, the method may instead or additionally comprise providing additional data relating to at least one of one or more data stores relating to the web page and rules relating to the editing of the web page and providing GUI elements to present predefined options to create or modify one or more of the at least one editable portion of the web page. [0034]
  • The following describes various embodiments of data provided or used in accordance with the invention. The data stored in the at least one data store may include data stored in one or more of the following: one or more files, one or more databases, one or more structured documents, and one or more volatile server memories, and/or may include data executable by at least one of a client and a server. The structured document may include data that describes or encapsulates content. The data stored in the at least one data store may be provided in the structured document or separately from the structured document. In or with the editing logic, additional data may also be provided relating to at least one of the structured document, one or more data stores relating to the structured document and rules relating to editing of the structured document. The associating of the data stored in the at least one data store may comprise logic and/or rules. [0035]
  • The invention has particular application to editing of web pages, e.g., HTML, WML, and HDML. However, the invention is not limited to editing of web pages and has application to editing of other structured documents, e.g., XML, SGML, XHTML and VML. Because of the invention's particular application to web pages, the description below focuses on web pages with the understanding that where appropriate the description applies to editing of structured documents other than web pages.[0036]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention is illustrated in the figures of the accompanying drawings which are meant to be exemplary and not limiting, in which like references are intended to refer to like or corresponding parts, and in which: [0037]
  • FIG. 1 is a block diagram presenting a configuration of software and hardware components according to one embodiment of the present invention; [0038]
  • FIG. 2 is a block diagram presenting a configuration of client and server side components according to one embodiment of the present invention; [0039]
  • FIG. 3 is a flow diagram presenting processes for configuring the invention on a web server or stand-alone server according to embodiments of the invention; [0040]
  • FIG. 4 is a flow diagram presenting a process for browsing, editing and saving changes to a web page according to one embodiment of the present invention; [0041]
  • FIG. 5 is a flow diagram continuing the process for browsing, editing and saving changes to a web page according to one embodiment of the present invention; [0042]
  • FIG. 6 is a flow diagram presenting a process of editing a web page according to one embodiment of the present invention; [0043]
  • FIG. 7 is a flow diagram presenting a process for saving changes made to a web page according to one embodiment of the present invention; [0044]
  • FIG. 8 is a flow diagram presenting a process for dynamically generating data control dialog boxes for use in editing web pages according to one embodiment of the present invention; [0045]
  • FIG. 9 is a screen drawing presenting a web page displayed to a client; [0046]
  • FIG. 10 is a screen drawing presenting a web page identifying editable portions of the web page; and [0047]
  • FIG. 11 is a screen drawing presenting text entry controls within a dialog box for interaction with an editing client. [0048]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • With reference to FIGS. 1 through 8, embodiments of the invention are presented. FIG. 1 presents multiple configurations of the hardware and software components for editing a web page or data store providing a web page according to embodiments of the present invention. Content hosts [0049] 102 and 110, which may be web servers, deliver multiple types of static and dynamic web pages to workstations 132 and 140 over a network 146. The network 146 may be any public or private local or wide area network, e.g., the Internet or a corporate LAN. Although the network 146 as presented in FIG. 1 is common to all the components presented, the network 146 may comprise a plurality of interconnected disparate networks such as cable, telephone and other high speed data networks.
  • The system and method of the present invention is applicable to web [0050] page delivery systems 102 and 110 that utilize static or dynamic processes to provide web pages. A web server 102 may utilize static processes to provide web pages to clients. web server software 104 receives content requests from client workstations 132 and 140 over the network 146. Although most web traffic conforms to the Hypertext Transmission Protocol (http), the present invention is easily adaptable to alternative transmission protocols. Upon receiving a web page request, the web server software 104 accesses a file system 106 that stores the web page or pages 108 identified by the request. Alternatively, the web server software 104 may access a remote file system 130 resident on a data server 126 over the network 146 for delivery to a requesting client 134 or 140.
  • In addition to static web pages, [0051] web servers 110 may utilize dynamic processes to provide web pages to requesting clients 134 and 140. In a dynamic configuration, workstations 132 and 140 transmit web page requests to a web server 110 where they are received by web server software 112. Files 118, which comprise a combination of markup code and program logic, are maintained in a file system 116. Active Server Page and Java Server Page technologies, developed by Microsoft and Sun Microsystems, respectively, are two popular methodologies for processing files to dynamically generate web pages.
  • The [0052] web server software 112 employs middleware software 114 in order to process files to dynamically generate web pages 118. At run time, the middleware software 114 is instructed to retrieve a given dynamic file 118 from the file system and interpret or compile the contents to produce output web pages that may, for example, comprise markup language code. When interpreting the dynamic file, the middleware software 114 may be instructed to retrieve data from a local database 120 or from a database 128 located on a remote data server 126 from over the network 146 depending on the program logic or parameters passed to the middleware software 114 with the request. Furthermore, the dynamic file may call other server side components required to produce the output content. It should be noted that method for optimizing the delivery of dynamic files, such as pre-compilation of dynamic files, are well known to those of skill in the art and may be employed in conjunction with the present invention. Where the web server software 112 receives a request for static file, the static file is retrieved from a local or remote source for delivery to the requesting client or clients, thereby bypassing the middleware software, although the middleware software may be used to execute the request, depending on the particular configuration employed by a given institution.
  • [0053] Workstations 134 and 140 request web pages from the web server 102 and 110 through the use of a browser or client viewer application used to request and display the web page (not pictured). One example is MICROSOFT INTERNET EXPLORER™, although other types of web browsers and client viewing applications fall within the scope of the invention. Workstations 134 may be any general purpose personal computer executing one or more of any number of commercially available operating systems, such as MACOS, MS WINDOWS, and UNIX/LINUX.
  • As contemplated by the present invention, client workstations fall into two general categories: [0054] non-editing clients 132 and editing clients 140. Non-editing 132 clients use browser software (not pictured) to render web pages provided by web server software 104 and 114 using static and dynamic processes. An editing client 140, however, is provided with editing logic and data 144 that enables functionality to edit web pages displayed by the browser.
  • Editing [0055] clients 140 request a login web page that may be created using static 108 or dynamic 118 files. Passwords, user identifiers, or other unique login information is supplied by the editing client 140 through the user of the browser application 142, which is passed to the backend application logic 138 or 124. Depending on the particular configuration of the present invention that is deployed, the backend application logic may reside on a dedicated server 136 or may be maintained on a web server 110 that is providing web pages to requesting clients.
  • Once logged into the system, the [0056] backend application logic 138 or 124 transmits editing logic and data (“edit mode”) 144 that is run within the browser application and used to allow web pages to be edited directly within the browser application 142. Edit mode 144 comprises a content frame and triggers the content frame to request and render the home page for the web site. An editing client 140 may request web pages from a web server 104 and 114 like any other non-editing client 134 according to one or more of the manners described above. The requested web page is presented through edit mode's content frame.
  • [0057] Edit Mode 144 comprises a graphical user interface (GUI) that is presented to the user within the browser application 142. Specifically, a control is provided to enable or disable the editing functionality of the present invention. As is explained in greater detail herein, the party who is responsible for editing the content page inserts data referred to herein as “hooks” or “hook data”, which are used to identify editable areas within a web page. When the editing client 140 instructs edit mode 144 to enable the editing functionality of the present invention, edit mode 144 examines the received web page to identify each of the hooks contained therein. As each hook identifies the start and end point of an editable portion of a web page, as well as providing information regarding the editable portion itself and parameters required to edit the portion, edit mode 144 is capable of identifying each discrete editable portion of a web page. The web page in the content frame is re-rendered with additional parameters and data supplied by edit mode 144 to visually indicate editable content.
  • Editable portions of the web page are edited directly in the content frame that is displayed by the [0058] browser application 142. As the editing client 140 uses edit mode 144 to edit the web page, the changes are immediately made and presented to the user where appropriate. According to one embodiment of the invention, the browser application 142 is Internet Explorer (“IE”). Where IE is so instructed by a transform script setting a portion of a web page's ContentEditable property to “true”, edits can be made directly into the rendered page (WYSIWYG edit). Edit mode 144 assembles the edits that have been performed by the editing client 140, as well as the corresponding hooks that define each edited area, and submits the data to the backend application logic 138. The backend application logic 138 analyzes the hooks to determine the proper data store that must be modified with the updated value. Given changes submitted by edit mode 144 are made to the appropriate data sources, and the success report sent to edit mode. Edit mode 144 triggers its content frame to re-retrieve the web page from the web server. It is rendered by the browser application 142 and presented to the editing client 140.
  • A more detailed breakdown of the specific components that comprise the backend and client editing logic and data according to one embodiment of the present invention is provided in FIG. 2. As described in FIG. 1, backend application logic resides on a server, which may also be the server providing the web pages, depending on the specific configuration of the invention that is deployed. Backend application logic is herein referred to as the [0059] edit brain 202. Edit brain comprises a number of server- side application components 204, 206, 208, 210 and data stores 212, 214, 216, 218 to securely provide editing clients with the ability to edit web pages within a browser application. Editing clients initially request a web page comprising login controls from a given server hosting the edit brain. Login data, e.g., username and password, is transmitted to the edit brain 202 for processing by a process referred to herein as login brain 204. The login brain process extracts identification parameters supplied by the editing client for verification against user and security data stored in both a security data store 212 and a user data store 214.
  • Where the login brain determines that the editing client has supplied parameters identifying him or her as a valid user of the system, a call is made to a process referred to herein as the edit [0060] mode assembler component 206. The edit mode assembler 206 dynamically creates the edit mode editing logic 222, provided to a given verified requesting editing client. The edit mode assembler also extracts data from a site configuration data store 216. This data store 216 maintains global configuration data used by both the client and server side application logic including, but not limited to, the web server domain and start page, an image upload directory, the name and location of the client side edit mode components, the web server's physical root address, information describing data sources used by the web server and associated access information. Where the server hosting the backend application logic is not the server hosting the web server software, ftp information may be maintained in the site configuration data store 216 to allow given edit brain 202 processes access to web pages. Furthermore, where the edit brain provides editing functionality to multiple web servers, the site configuration data store maintains data specific to each web server. The edit mode components are delivered to the editing client and executed within the browser application.
  • Also comprising the [0061] edit brain 202 is a process referred to herein as the save brain processes 208 for allowing an editing client to save edits made to the web page displayed in the editing client's browser application. As is explained in greater detail herein, edits and associated hook data are passed back to the save brain 208 from the client side edit mode components 222. The save brain uses these data to perform lookups on the hook data store 218, which is used to correlate hook data with one or more given data stores where data identified for editing resides. A process referred to herein as the dynamic dialog brain process 210 is also provided to allow the edit brain 202 to dynamically generate dialog boxes, which are presented to an editing client by edit mode 222 for the manipulation of data. In this manner, business rules associated with particular data may be enforced by the server as opposed to being distributed among each of the editing clients.
  • In order for [0062] edit mode 222 to identify editable portions of a web page, editable portions of a web page must be identified by a web page author through the use of hooks and associated with a data source. In addition to identifying editable content, each set of hooks “describes” the data it circumscribes, such as identifying a data source. More abstractly, the hook data may be viewed as any set of logic or third party data that describes portions of a web page not comprising the entire web page. For example, each hook could be based on a known structure of a content site whereby knowledge of the structure imparts knowledge of the type of content located in a given area of the site structure. Alternatively, associating data is provided separately from the web page, such as by including a structural profile of the web page that indicates the editable and non-editable areas of the page. Furthermore, the associating data may comprise rules based on common structures in the web page or by many other techniques known to those of skill in the art, such as through the use of the node-based Document Object Model typically provided to by browser, which may be used to describe areas in a specific web page.
  • According to one embodiment of the invention, hook data may be embedded within HTML style comments provided as part of a web page. Generally, the syntax may be as follows: <!—VE:X:Y:Z—>. According to this embodiment, the hook is preceded by an HTML start comment delimiter (“<!—”). This is followed by a hook type (“X”) and a hook identifier (“Y”). The third parameter of the hook (“Z”) may be a bit value indicating whether the hook is the start or end of the editable portion of the web page encapsulated by the hook. Finally, the hook is closed with an HTML end comment delimited (“—>”). web page HTML data comprising a set of hooks is presented in Table 1. [0063]
    TABLE 1
    Hooks in static content page
    <html><body>
    <!--ve:0:1:1-->
    <font color=“#0041A5”><b>XYZ Records</b></font> was started
    in 1996.
    Fans can consistently rely on us to release quality albums.
    Also be sure to sign up on our <a href=“mailing_list.php”>mailing
    list</a>. Thanks.
    <br><br>
    <a href=“mailto:info@XYZ.com”>info@XYZ.com</a></b>
    <br>
    <br>
    <!--ve:0:1:1-->
    </body></html>
  • Furthermore, hooks may comprise hook specific parameters or values for inclusion in dynamic web pages as presented in Table 2. When processed, the dynamic web page is delivered to the requesting editing client with data specific to the requested page as shown in Table 3. [0064]
    TABLE 2
    Hooks in dynamic content page fragment on server
    <CFIF activities neq “ ”>
    <span clsss=“para_header”>Professional/Civic Activities</span><BR>
    <!--ve:110:229:1]#attorney_id#]-->
    <CFLOOP index=“item” list=“#activities#”>
    #item#
    <cfif recordcount neq currentrow><BR></cfif>
    </CFLOOP>
    <!--ve:110:229: 0-->
    <br><br>
    </CFIF>
  • [0065]
    TABLE 3
    Hooks in dynamic content page fragment on client
    <span class=“para_header>Professional/Civic Activities</span><BR>
    <!--ve:110:229:1[20]-->
    Eros et accumsan et iusto
    <!--ve:110:229:0-->
    <br><br>
  • [0066] Edit mode 222 comprises the client side application logic, which is a collection of application logic and data executed within the browser application executing on an editing client's workstation. The application logic and data of edit mode 222 may be described as falling to three general categories: GUI 224, processing 246, and the content frame 232. The GUI components 224 comprise a plurality of both graphical and off-screen controls presented to the editing client, thereby allowing for editing of portions of the web page within the browser application. The main GUI component 224 is the toolbar 226, which is presented within the browser application window as a plurality of graphical controls as is well known to those of skill in the art. For example, toolbar GUI components may include formatting controls such as bold and font controls, dialog driven controls such as to enter URL or similar network address information, menus, and controls to enable and disable the editing functionality of the present invention.
  • In addition to the toolbar, the [0067] GUI components 224 of edit mode 22 also include a set of off-screen hidden elements 228. Hidden elements 228 are graphical controls that are not displayed until they are required by the editing client, typically in response to the occurrence of a given type of action. These off-screen elements 228 include controls such as static menus and dialog boxes, e.g., color charts, context menus, and link creation dialog boxes. Also provided is a hidden dialog frame 230. The hidden dialog frame 230 is a container used to display GUI elements that are requested from the edit brain 202 during the editing process, e.g., a dialog dynamically generated by the dynamic dialog brain 210. These elements 230 can exchange data with the edit brain 202 without unloading edit mode 222 from the browser application's memory space.
  • In addition to the [0068] GUI components 224, edit mode further comprises processing application logic and data 246. Data maintained by edit mode comprises both configuration data 234 and user specific data 236. According to one embodiment, configuration data 234 comprises selected data extracted by the edit mode assembler 206 from the site configuration data store 216. For example, edit mode 222 must trigger the content frame 232 to load a web site start page upon delivery of edit mode to the editing client, which is defined in the configuration data 234 for a given web site. Additionally, user specific data is maintained for use by other edit mode components 222.
  • Processing application logic and [0069] data 246 also comprises one or more scripts 242. Script code, for example, JavaScript and VBScript, allows functionality to be automated at a editing client's browser application. The script 242 is deciphered by an interpreter that is typically distributed as part of the browser application, although an interpreter may also be transferred to the editing client upon request according to an embodiment of the invention. Exemplary scripts include a save script 238, which initiates the save process in conjunction with application logic resident on the server, and a transform script that identifies hooks within a web page and transforms the web page to indicate editable portions within the web page. A hidden save frame 244 is provided in order to exchange edit data between edit mode 222 and the edit brain 202 without unloading edit mode 222 from the browser application's memory space.
  • The third general category comprising [0070] edit mode 222 is the content frame 232. The content frame 232 operates to present web pages for interacting, browsing, viewing and editing, which is performed directly within the content frame 232. When the edit mode assembler 206 delivers edit mode 222 to the editing client, the content frame is initially blank. Data comprising the configuration data 234 defines the start page for the web site with edit mode triggering the content frame to retrieve the start page. As the editing client navigates to other web pages comprising the web site, each web page is rendered by the browser application and presented within the content frame 232 as per a non-editing client's use of the web site.
  • As indicated in FIG. 1, the backend application logic and data may be hosted on the same physical server hosting the web pages managed by the back end application. FIG. 3 presents methods of installing and initializing the visual edit application both where the backend application logic is hosted on the server hosting the web server software and where the backend application logic is not hosted on the server hosting the web server software. Where the same server is hosting the backend application logic and [0071] web server software 302, a user with administrator or similar privileges on the server hosting the web server installs the edit brain on the server, step 304. Preferably, the installation process of step 304 may be implemented through the use of automated installation scripts such as those that are well known to those of skill in the art. As described in FIG. 2, empty data stores are generated to maintain security, user, web site configuration, and hook data, step 306. Completing the one time set up procedure, web site configuration data is supplied and stored in the site configuration data store, step 308. At this point, the edit brain is installed and initial configuration is complete, steps 304, 306 and 308.
  • Authors of content pages typically determine those portions of the web page that are amenable to editing, although this determination may indeed be made after the fact by a designer of an overall site or administrator dedicated to the purpose. A hook is created to identify an editable portion of a web page, in addition to providing the edit brain with indication of the type of content identified by the hook, [0072] step 310. Data is also added to the hook data store to enable the edit brain to identify the type of data encapsulated or described by the hook and enable updates to the web page or data store in response to edits generated by an editing client step 310. The hook data is added to the appropriate location within the web page, step 312. The process of generating hook data 310 and placing hooks within web pages at desired locations to identify editable portions of a web page 312 is repeated for each editable portion on each web page comprising the web site.
  • The web site or similar administrator must also set security details to restrict access to the editing functionality of the present invention vis-a-vis the web site, [0073] step 314. According to one embodiment of the invention, user data, including usernames and passwords, is maintained in appropriate data stores; each user has all or none access based on the presence of their username and password in the data stores maintained by the edit brain. Alternatively, it is advantageous to maintain security data by creating access groups whereby each group allows varying levels of access to advanced editing functionality provided by the invention. In this manner, the administrator is capable of restricting access with extremely fine granularity, e.g., allowing editing clients access to only certain hook types that are enumerated in the security group to which the editing client belongs.
  • As described in FIG. 1, embodiments of the invention are contemplated whereby the backend application logic resides on a different server from that used to host the web server software. In this manner, the backend application logic is capable of concurrently providing editing functionality to a plurality of web servers. Where the server hosting the web server is not also hosting the [0074] backend application logic 316, there is no need to install the edit brain and generate data stores because the backend application logic and data is maintained by a third party. The administrator of the web server prepares site configuration data, step 318, typically supplying details such as the address of the web site domain and starting web page, an image upload address, the root directory where the web server is maintained, as well as FTP information. FTP information allows the edit brain to access the file system on the web server where web pages and other data are maintained.
  • The web page author or web site administrator defines hooks by adding hook data to the hook data store and generating one or more corresponding hooks, [0075] step 320. Each web page comprising the web site is analyzed to determine editable portions and appropriate hooks are inserted to encapsulate the editable content, step 322. This process 320 and 322 is repeated to identify all editable portions of each web page comprising the web site. User groups are created to define varying levels of editing privileges and associated with user records created and maintained in the user data store, step 324.
  • One embodiment of a method for operating embodiments of the system presented in preceding figures is illustrated in FIG. 4. Using a web browser, an editing client navigates to a login page in order to log into the editor for the web site, [0076] step 402. The login brain receives login information provided by the editing client via the login page and performs a validation check, step 404. Where the login brain is unable to validate the login information provided by the editing client against user and security data maintained by the edit brain, an error message is returned and the editing client is provided with a subsequent opportunity to provide valid login information, step 402. If the login brain is able to validate the provided login information, step 404, the edit brain assembles the edit mode components, which are delivered to the editing client, step 406.
  • The browser application executing at the editing client's workstation receives and loads the edit mode components, [0077] step 406, and edit mode triggers a request from the content frame to retrieve the start page from the web site, step 408. The GUI components of edit mode are loaded into the browser application's window, the given web page from the web site is loaded into the content frame, and edit mode parses the user action, step 410. Where the editing client selects a logout control from the toolbar or other GUI component, edit mode prompts the editing client to save any edits, if appropriate, and logs the user out of the system, step 414. Processing ends and edit mode is unloaded from the browser, step 416.
  • Where a browse command is received from the editing client, [0078] step 410, for example, the editing client selects a hyperlink from a page, program flow is directed to step 412 where the browser application responds to the specific navigation control that is selected. For example, the browser reacts to a browser back command differently from a browser forward command or selection of a hyperlink. The request is passed to the web server, which returns a web page that is responsive to the command supplied by the editing client, at which point edit mode and the browser continue to parse received user input, step 410.
  • One action parsed for is an indication from the editing client to edit the web page loaded in the content frame, [0079] step 410. Using the graphic interface presented by edit mode, an editing client selects a control provided to enable the editing of the web page directly within the browser application, step 418. Edit mode analyzes or parses the web page loaded in the content frame to detect the presence of hooks within the web page, step 420. Security data regarding the editing client is retrieved and a check is performed to determine if the client has permission to edit one or more selected portions of the web page, step 422. Where the editing client does not have permission to edit any of the editable portions of the web page, an error message is displayed in the content frame communicating the error state, step 424. Alternatively, where the check indicates the editing client has permission to edit the web page, step 422, edit mode executes the transform script to modify the web page in order to indicate editable portions of the web page and activates appropriate interface elements, step 426.
  • The output from the transform script is passed to the content frame and presented to the editing client, [0080] step 426. Processing continues with FIG. 5 where edit mode parses user input, step 502. A first user action parsed for is a request for an inline edit. When the editing client selects an inline editable text block, an insertion point is placed in the text and the editing client is free to modify the text. Edit mode re-writes the markup as the edits are entered by the editing client, which is re-rendered to display the editing changes, step 504. When the inline edits are complete, edit mode continues to parse user input for an actionable event, step 502.
  • Edit mode also parses for controlled editing whereby business rules enforce the validity of data values entered by editing clients. Where edit mode parses such a request, dialog boxes responsive to the specific edit command received from the editing client are generated and presented on the editing client's workstation as part of edit mode's GUI, [0081] step 506. The editing client edits data through the dialog, which maintains data integrity and business rules, and edit mode continues to parse user input for an actionable event, step 502. Likewise, other triggers may be parsed by edit mode whereby miscellaneous functionality is executed, step 508, and processing returns to step 502.
  • Where the editing client issues a save command to edit mode, [0082] step 510, edit mode composes an update message comprising the save data (the edits made to the web page) and the hooks associated with each of the edits performed. According to embodiments of the invention, other information available at the editing client is included in the update message, e.g., a web page URL and other parameters. The update message is transmitted over the network from edit mode at the editing client to the edit brain, specifically, to the save brain for further processing, step 512. The save brain receives the update message and updates the web page or data store used by the web server to provide the web page based on the hooks comprising the update message and the save data associated with each of the hooks, step 514. The save brain transmits a response back to edit mode indicating the success or failure of the update process, step 516.
  • A check is performed on the response message to determine whether the edits were successfully saved in the web page or one or more data stores used by the web server to provide the web page, [0083] step 518. Where the update has failed, step 518, edit mode communicates this state to the editing client, for example, by displaying a save failure web page in the content frame or in a modal dialog box, step 320. If, however, the response message indicates that the save was successful, step 518, edit mode triggers the content frame to reload the web page for the web site, which should reflect the edits made to the web page previously viewed by the editing client, step 522. Regardless of the success or failure of the save process, step 518, processing is directed to step 410 where edit mode or the browser continues to parse user input and execute functionality responsive to the input.
  • If the editing client logs out, processing returns to step [0084] 414 where edit mode prompts the editing client to save if appropriate. Where edits need to be saved before edit mode is unloaded from memory, a save process generally analogous to steps 510, 512, 514, and 516 is executed. After any edits the editing client needs to save are written to the web pages or data stores, edit mode is unloaded from memory and the process completes, step 416. If the editing client browses away from the web page that is currently being viewed or edited, processing returns to step 412 where the navigation control selected by the editing client is executed and the browser loads the web page responsive to the selected navigation control.
  • A flow diagram presenting a more detailed example of the web page editing process is presented in FIG. 6. The editing process typically begins with the user logging into the editing system, [0085] step 602. Upon receiving and validating a login request from an editing client, the edit brain assembles software components required for operation of edit mode, step 604. The edit mode components are received by the browser application or similar content rendering system and executed in memory, step 606. Selected software components of edit mode issue a request to the content frame, triggering the content frame to issue a request to the web site for the web site's starting web page, step 608. According to one embodiment of the invention, the address used to request the starting web page from the web site is defined in configuration data derived from a data store on the server and delivered along with the edit mode software components.
  • With edit mode installed in memory and the web site's starting web page loaded in the content frame, the editing client is free to browse the web site as would any non-editing client in a manner well known to those of skill in the art, [0086] step 610. At any point during navigation after the editing client is logged into the editing system, the editing client may enable the editing functionality provided by the invention, step 612. Preferably, the editing client enables the editing functionality by selecting an “edit” button presented via edit mode's GUI. In response to enabling the editing functionality, step 612, edit mode analyzes the web page displayed by the content frame and, based on the presence of hooks encapsulating portions of the web page, visually transforms the web page to reveal an editing interface, thereby displaying editing controls based on the hooks, step 614.
  • Once editing functionality is enabled, program flow forks according to the specific editing actions taken by the editing client. Where inline edits are made to static text within a web page, the editing client types and formats freeform text into the area presented by edit mode, [0087] step 616. In order to enforce business rules, static dialog boxes are delivered to the editing client as part of the edit mode software components. When an editing client attempts to edit data associated with a dialog box comprising data editing controls, hidden elements are brought into view for the editing client to interact with and modify data values on the web page, step 618. Similarly, edit mode, in conjunction with process executed on the server by the edit brain, dynamically generate and present data control dialog boxes comprising editing controls to modify data values on the web page, step 620. Alternatively, commands from the editing client for miscellaneous functionality are provided for and acted upon, step 622, for example, web page reloads, user profile editing, system administration, etc.
  • A given edit is made to a portion of the web page and confirmed by the editing client through the edit mode GUI, which triggers a save process, [0088] step 624. On the client side, the save process compiles the edits made by the editing client, in combination with data comprising the hooks that encapsulate the edited data, into an update message that is transmitted to the save brain process on the visual edit host, step 626. The update message may also comprise additional client side data, such as the web page URL and other web page parameters. According to one embodiment, the message is inserted in to a hidden save frame and transmitted to the save brain process. The save brain executes the update by modifying the data store used by the web server to provide the web page in accordance with the edits provided by the editing client, which may include file system access, FTP transmission, database access, etc., step 628. The save brain transmits a response to edit mode upon completion of the update indicating the success or failure of the operation, step 630. Edit mode triggers the content frame to reload the web page from the web server, thereby presenting the edited web page to the editing client, step 632.
  • The save process presented in FIG. 5 is built on in the flow diagram of FIG. 7, which provides a more detailed embodiment of the save process. When an editing client saves edits made to a web page within the browser application, edit mode's save process generates an update message comprising one or more edited portions of the web page to be saved, as well as the hooks associated with each piece of data, which is transmitted over the network to the edit brain's save process, [0089] step 702. The save brain receives the update message and extracts the data contained therein for analysis, step 704. Where there are key/value pairs contained in the update message that require processing, step 706, the save brain parses the hook identifier from the key and retrieves associated hook data from the hook data store and security data from the security data store, step 708. Alternatively, the key/value pair itself is all that is required in order to enter the edits made to a given portion of the web page by the editing client.
  • For the given hook being analyzed, [0090] step 708, the save brain determines, based on the security information, hook identifier, and user information from the update message, whether the editing client has access to perform the editing action, step 710. Where the editing client does not have sufficient access privileges, processing returns to step 706 and the next key/value pair is analyzed. If the user has sufficient access privileges, the save brain determines the hook type from the retrieved key or hook data, step 712. It should be noted that hook types that are trapped for by step 712 are exemplary and not meant to be limiting. It should be clear to one skilled in the art that other data that may be used to identify content types in an analogous manner to the hooks and hook data. A listing of exemplary hook types and descriptions can be found in Appendix A.
  • Where the update message comprises a hook of type “100”, indicating that a static page is to be edited, the save brain retrieves the web page via FTP, HTTP or from a local file system (as dictated by the site configuration data) using the file location identified in the hook data or additional data provided by the editing client, [0091] step 714. The save brain searches the web page for the identified hook and replaces the portion of the web page encapsulated by the hook with the value associated with the current key in the update message, step 716. The edited file is rewritten to its source location by the access method dictated in the site configuration data, step 718, and the next key/value pair is processed, step 706.
  • Where the update message comprises a hook of type “110”, indicating that a dynamic text area is to be edited, the save brain parses the primary key value to determine the database or other data store maintaining the dynamic text from the key/value pair, [0092] step 720. To execute the update, the save brain generates a SQL update statement comprising hook data retrieved from the hook data source, e.g., table name, primary key column, column(s) to return for result set, etc., the primary key value, and the value from the key/value pair in the update message, step 722. The save brain, possibly in connection with a database management system, executes the generated SQL code against the data store, step 724, as dictated by the site configuration data, e.g., a relational database management system. The next key/value pair is processed, step 706.
  • The save brain may also identify other defined hook types comprising the update message in order to handle other editing functionality, [0093] step 712. The save brain parses values the key/value pair and generates SQL code or other instructions as is appropriate, step 726. The save brain executes the generated instructions upon defined data store. Alternatively, the save brain may pass instructions off to external update services for processing. The instructions are executed, step 726, and the next key/value pair is processed, step 706.
  • A check is performed to determine if additional key/value pairs exist in the update message that have not been processed by the save brain, [0094] step 706. If all the key/value pairs comprising the update message are processed, the save brain compiles a success report, step 728. Where appropriate, the success report may include redirect or other follow up message defined by the hook data, which is sent in a response message to edit mode, step 730, for potential further client side processing.
  • The edit brain comprises functionality whereby data control dialogs are dynamically generated for presentation to the editing client in response to certain data editing requests, thereby allowing for centralized enforcement of business rules at the server. FIG. 8 presents one embodiment of a method for receiving requests for dynamic dialogs for presentation to an editing client in response to a dialog request from edit mode, [0095] step 802. The dynamic dialog brain process of the edit brain receives the dialog request and extracts the information contained therein, step 804. The dynamic dialog brain further parses the hook identifier from the dialog request and receives associated hook data from the hook data store and security data from the security data store based on the identify of the editing client, step 806.
  • A check is performed to determine if the editing client requesting the dynamic dialog in order to edit a portion of the web page has appropriate access to the functionality requested, [0096] step 808. Where the editing client is not a member of a group with sufficient access privileges to edit the data controlled by a requested dynamic dialog, step 808, an access denied message is sent to edit mode for presentation to the editing client, step 810. Edit mode may present this message in any number of ways known to those of skill in the art. If the editing client has sufficient access privileges to access the data controlled by a requested dynamic dialog, a primary key value is parsed from the dialog request where appropriate, step 812.
  • The dynamic dialog brain determines the hook type from the hook data, [0097] step 814, and performs an appropriate action responsive to the hook type. It should be noted that hook types that are trapped for by step 814 are exemplary and not meant to be limiting. It should be clear to one skilled in the art that other data that may be used to identify content types in an analogous manner to the hooks and hook data.
  • Where the hook type evaluates to “110”, indicating a control for editing a dynamic text area is to be generated, the dynamic dialog brain generate a SQL select statement, [0098] step 816. The SQL select statement may comprise the primary key value, as well as components of the hook data, e.g., table name, the name of the column designated as the primary key, the column to return as the result set, etc. The generated SQL select statement is executed against the data store used by the web server to provide the web page, as defined by the site configuration data, to retrieve the current value encapsulated by the hooks defined in the dialog request message, step 818. A GUI dialog control is generated for presentation to the editing client whereby the editing client may modify the value(s) contained in the data store, step 820.
  • Where the hook type evaluates to “120”, indicating a select one control (used to describe output generated from resolving a one-to-one relationship between a primary entity and a reference table) is to be generated, the dynamic dialog brain generates a SQL select statement based on the primary key value and hook data, [0099] step 822. The SQL select statement is executed against the data store, as dictated by the site configuration data, to retrieve one or more current values and all appropriate reference values, step 824. A GUI select one control, e.g., a drop down list or radio button group, is generated for presentation to the editing client with the current selected value presented on the web page indicated through the control's interface, step 826.
  • Where the hook type evaluates to other identifiable hook types, the data values are parsed from the request and used to generate SQL or other instruction code as is appropriate given the evaluated hook type, [0100] step 828. The instructions are executed upon one or more identified data stores, or alternatively passed off to other local or remote processes for execution. The result received from the execution of the SQL or other instruction code is used to generate a selection or editing GUI control as is appropriate given the evaluated hook type.
  • Regardless of the hook type identified and processed by the dynamic dialog brain, processing is directed to step [0101] 830 where completion logic is generated using the hook data and sent to edit mode. According to various embodiments of the invention, completion logic may comprise logic to facilitate execution of the editing transaction performed by the editing client. The generated GUI controls and completion logic is sent to edit mode for presentation to the editing client, step 832. Using the GUI controls, the editing client performs edits to portions of the web page and indicates completion of edits capable of being performed with the current GUI controls, step 834. The completion logic registers the edits performed by the editing client and registers the edits with edit mode, step 836. Where appropriate, edit mode marks up the web page in content frame with edits made by the editing client for presentation. Upon completing the edits through the dynamic dialog, edit mode closes the dialog, step 838.
  • Turning to FIGS. 9 through 11, a series of screen drawings are presented that illustrate embodiments of a graphical interface of the present invention. FIG. 9 presents a [0102] web page 908, which when delivered by a web server appears identical to both editing and non-editing clients, e.g., the same web page is delivered to both classes of clients. According to this embodiment, the web page 908 is presented to the client, either editing or non-editing, in the context of a web browser 902. According to the illustration of FIG. 9, one can see that an editing client is accessing the web page 908 from the presence of a graphical toolbar 904 comprising several editing controls is provided with the browser 902 only to authorized editing clients. When the editing client decides to edit a portion of web page, he or she selects a checkbox 906 to enter edit mode, which executes the transformation script within the browser 902 to reveal the editable portion or portions of the web page 908.
  • Upon selection of the edit mode control, various modifications are made to the web page and graphical controls as shown in FIG. 10. Selection of the [0103] edit mode control 1002 allows an editing client to create or modify editable portions of the web page 1006. Editable portions of the web page 1006 are graphically presented to the editing client, thereby allowing edits to be made directly within the web page 1008. In the illustration of FIG. 10, the editable portion of the web page 1006 comprises text, which may be modified by selecting text and supplying text data, which may also comprise highlighting text for modification or deletion 1008. Furthermore, entry into edit mode 1002 by an editing client provides access to editing tools in the graphical toolbar 1004, thereby allowing advanced formatting of editable portions of the web page in addition to other functionality described above in detail.
  • The screen drawing of FIG. 11 builds on the screen drawing of FIG. 10 by presenting text entry controls within a [0104] dialog box 1102. As described above, this technique allows business rules to remain centralized for all editing clients. The particular dialog presented in FIG. 11 allows for modification of a record in a database containing a URL, title, and archive flag. A first text entry control 1004 is provided that allows modification of the tile text that is displayed on the web page. A second text entry control 1006 is provided that allows for the editing client to supply a URL or address that is associated with the title text. Upon supplying the data, the authoring client may select a “done” control that displays the changes within the web page. Upon saving, the database records are updated to reflect the changes.
  • While the invention has been described and illustrated in connection with preferred embodiments, many variations and modifications as will be evident to those skilled in this art may be made without departing from the spirit and scope of the invention, and the invention is thus not to be limited to the precise details of methodology or construction set forth above as such variations and modification are intended to be included within the scope of the invention. [0105]
    APPENDIX A
    Hook Types with Name and Comments
    Hook_Type Name Comments
    100 Static used to describe text in a file
    110 Dynamic Text Area used to describe text in a data base cell
    120 Select One used to describe output generated from resolving a one-to-
    one relationship between a primary entity and a reference
    table
    130 Select Multiple used to describe output generated from resolving a one-to-
    many relationship described by a primary, reference and join
    table
    131 Select Multiple (ordered) same as above with a sort order field in the join table
    150 Add Entity used to describe the insertion of multiple pieces of data into
    several cells, rows, and/or tables which together create a
    new logical entity. E.g. a new employee with first name, last
    name, departments, and etc. (sub hooks of hook_type 200-
    240 are created to describe each piece of data)
    155 Edit Entity As above, but used to edit rather than create multiple pieces
    of data at once
    210 Plain Text subhooks for 150, 155
    211 Text Area subhooks for 150, 155
    212 Integer subhooks for 150, 155
    213 URL subhooks for 150, 155
    215 Boolean subhooks for 150, 155
    216 Date subhooks for 150, 155
    220 Select One subhooks for 150, 155
    230 Select Multiple subhooks for 150, 155
    231 Select Multiple (ordered) subhooks for 150, 155
    240 Hidden Value subhooks for 150, 155
    160 Delete Entity A collection of Delete Instructions (hook_type 160) which can
    be executed to remove an entity described by one or more
    rows or columns in one or more table
    260 Delete Instruction subhooks for 160
    171 Image Upload & Insert
    174 Delete a File
    180 Edit Non-Displayed Entity
    280 Entity Column subhooks for 180
    190 Custom Dialog

Claims (39)

What is claimed is:
1. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page;
selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
2. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page; selectively providing web page editing logic to clients that is executed by the client's browser software;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
3. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
another server providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page;
selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
4. The method of claim 3 wherein modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic is performed by a server other than the web server.
5. The method of claim 3 wherein selectively providing web page editing logic to clients is performed by a server other than the web server.
6. The method of claim 3 wherein the steps of modifying and providing web page editing logic are performed by one or more servers other than the web server.
7. The method of claim 3 wherein selectively providing web page editing logic to clients comprises executing the editing logic by the client's browser software.
8. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page;
selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying by a server other than the web server the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
9. The method of claim 8 wherein selectively providing web page editing logic to clients comprises executing the editing logic by the client's browser software
10. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page;
selectively providing web page editing logic to clients from a server other than the web server;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
11. The method of claim 10 wherein selectively providing web page editing logic to clients comprises executing the editing logic by the client's browser software
12. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page;
another server selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
the another server, using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
13. The method of claim 12 wherein selectively providing web page editing logic to clients comprises executing the editing logic by the client's browser software
14. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data used by the web server to provide the web page;
at a client having web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data used by the web server, modifying the data used by the web server in accordance with the editing of the web page performed by the client having editing logic.
15. A method for editing structured documents provided by a server to clients having viewing software for displaying the structured documents, comprising:
providing a structured document to clients
providing data that associates at least one portion of the structured document not comprising the entire structured document with data used by the server to provide the structured document;
at a client having structured document editing logic and the structured document, using the viewing software, user input, and editing logic, displaying and editing the structured document;
at a client provided with the structured document and not having the structured document editing logic, displaying the structured document using the viewing software; and
using the data that associates at least one portion of the structured document not comprising the entire structured document with data used by the server, modifying the data used by the server in accordance with the editing of the structured document performed by the client having editing logic.
16. A system for editing structured documents in a client/server computer system, comprising:
a plurality of clients each having viewing software for displaying the structured documents;
at least one server for providing structured documents to clients;
at least one data store in which is stored data used by the at least one server to provide a structured document to clients;
data that associates at least one portion of the structured documents not comprising the entire structured document with data used by the at least one server to provide the structured document;
editing logic, user input, and the viewer software to display and edit the structured document; and
software for modifying the data used by the at least one server to provide the structured document in accordance with the editing of the structured document performed by a client having editing logic.
17. A computer program embodied on a computer-readable medium or media for editing web pages provided by a web server to clients having viewing software for displaying the web page, comprising:
data that associates at least one portion of the web page not comprising the entire web page with data used by the web server to provide the web page;
editing logic, user input, and the viewing software to display and edit the web page; and
software for modifying the data used by the at least one server to provide the web page in accordance with the editing of the web page performed by a client having the editing logic.
18. In a system for displaying structured documents in a client/server computer system that includes a plurality of clients each having viewing software for displaying the structured documents and at least one server for providing structured documents to clients;
wherein the improvement comprises:
data that associates data at least one portion of the structured document not comprising the entire structured document with data used by the at least one server to provide the structured document;
editing logic selectively provided to clients, user input, and the viewing software for displaying and editing the structured document; and
software for modifying the data used by the at least one server to provide the structured document in accordance with the editing of the structured document performed by a client having editing logic.
19. A system for editing structured documents in a client/server computer system, comprising:
means for providing the structured documents to clients;
means for displaying the structured documents by the clients;
means for storing data used to provide the structured documents;
means for associating at least one portion of the structured documents not comprising the entire structured documents with data used to provide the structured documents;
means for editing the displayed structured documents by a client; and
means for modifying the data used to provide the structured documents in accordance with the editing of the structured documents.
20. The method of claim 1, 2, 3, 8, or 10 including the another server providing at least some of the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store.
21. The method of claim 1, 2, 3, 8, or 10 including determining whether a client has authorization to edit the web page displayed by that client, and modifying the data stored in the data store only if the client has authorization to edit.
22. The method of claim 1, 2, 3, 8, or 10 wherein selectively providing the web page editing logic comprises providing the web page editing logic only to clients having authorization to edit the web page.
23. The method of claim 1, 2, 3, 8, or 10 wherein the data stored in the at least one data store includes data stored in one or more of the following: one or more files, one or more databases, one or more structured documents, and one or more volatile server memories.
24. The method of claim 1, wherein the web server provides the web page using data provided by at least one other server.
25. The method of claim 23, wherein the web server provides the web page using data provided only by the web server.
26. The method of claim 1, wherein the data stored in the at least one data store includes data executable by at least one of a client and the web server.
27. The method of claim 1, 2, 3, 8, or 10 wherein providing the web page comprises at least one of accessing, processing and aggregating data from at least one data store.
28. The method of claim 1, wherein selectively providing clients with editing logic comprises another server selectively providing the editing logic.
29. The method of claim 1, wherein modifying the data stored in the at least one data store comprises modifying the data with another server.
30. The method of claim 1, 2, 3, 8, or 10 wherein providing the web page comprises providing a web page that includes data which describe or encapsulate content.
31. The method of claim 1, 2, 3, 8, or 10 wherein the associating data is provided in at least one of the web page or separately from the web page.
32. The method of claim 1, 2, 3, 8, or 10 wherein the associating data comprises at least one of logic and rules.
33. The method of claim 1, 2, 3, 8, or 10 comprising providing additional data relating to at least one of the web page, one or more data stores relating to the web page and rules relating to editing of the web page.
34. The method of claim 33, wherein the additional data is provided in at least one of the editing logic or associating data.
35. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one of one or more files comprising logic processed by the server, one or more non-file data stores, and more than one file used by the web server to provide the web page;
selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with stored data, modifying the stored data in accordance with the editing of the web page performed by the client provided with the editing logic.
36. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients whose complete content is not stored as a complete file used to provide the web page;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used to provide the web page;
selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
37. A method for editing web pages provided by a web server to clients having browser software, comprising:
providing a web page to clients that does not comprise data added for the purpose of encapsulating or describing editable data within the web page;
providing data that associates at least one portion of the web page not comprising the entire web page with data stored in at least one data store used by the web server to provide the web page;
selectively providing web page editing logic to clients;
at a client provided with the web page editing logic and the web page, using the browser software, user input, and the editing logic, displaying and editing the web page;
at a client provided with the web page and not having the web page editing logic, displaying the web page using the browser software; and
using the data that associates at least one portion of the web page not comprising the entire web page with data stored in the at least one data store, modifying the data stored in the at least one data store in accordance with the editing of the web page performed by the client provided with the editing logic.
38. A method for editing web pages provided by a web server to clients having browser software, comprising:
parsing the web page to identify at least one editable portion of the web page comprising at least one of two HTML tags and at least one HTML tag with one string of text not contained as part of the at least one HTML tag;
presenting the contents of the at least one editable portion of the web page to a user in an editable format;
providing GUI elements to present predefined options to create or modify one or more of the at least one editable portion of the web page; and
receiving as input edits to the at least one editable portion of the web page.
42. A method for editing web pages provided by a web server to clients having browser software, comprising:
parsing the web page to identify at least one editable portion of the web page;
presenting the contents of the at least one editable portion of the web page to a user in an editable format;
providing additional data relating to at least one of one or more data stores relating to the web page and rules relating to the editing of the web page; and
receiving as input edits to the at least one editable portion of the web page.
US10/186,541 2001-06-29 2002-07-01 System and method for editing web pages in a client/server architecture Expired - Fee Related US7287227B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/186,541 US7287227B2 (en) 2001-06-29 2002-07-01 System and method for editing web pages in a client/server architecture

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30214501P 2001-06-29 2001-06-29
US10/186,541 US7287227B2 (en) 2001-06-29 2002-07-01 System and method for editing web pages in a client/server architecture

Publications (3)

Publication Number Publication Date
US20030023632A1 US20030023632A1 (en) 2003-01-30
US20040217985A9 true US20040217985A9 (en) 2004-11-04
US7287227B2 US7287227B2 (en) 2007-10-23

Family

ID=23166444

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/186,541 Expired - Fee Related US7287227B2 (en) 2001-06-29 2002-07-01 System and method for editing web pages in a client/server architecture

Country Status (2)

Country Link
US (1) US7287227B2 (en)
WO (1) WO2003003642A2 (en)

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006743A1 (en) * 2002-05-24 2004-01-08 Kazushige Oikawa Method and apparatus for re-editing and redistributing web documents
US20040111671A1 (en) * 2002-12-06 2004-06-10 International Business Machines Corporation Method for selectively reloading frames of a web-page
US20040125126A1 (en) * 2002-12-25 2004-07-01 Fuji Xerox Co., Ltd. Video browsing system
US20040205529A1 (en) * 2002-06-03 2004-10-14 Ernest Cusick System and method for creating forms
US20040268303A1 (en) * 2003-06-11 2004-12-30 Mari Abe System, method, and computer program product for generating a web application with dynamic content
US20050015395A1 (en) * 2003-07-14 2005-01-20 Canon Kabushiki Kaisha User interface control apparatus and method thereof
US20050065933A1 (en) * 2003-09-22 2005-03-24 Thomas Goering System and method for customizing form elements in a form building application
US20050065856A1 (en) * 2003-09-19 2005-03-24 Timothy Roberts Self-service catalog manager for stores implemented on a communications network
US20050132285A1 (en) * 2003-12-12 2005-06-16 Sung-Chieh Chen System and method for generating webpages
US20050188319A1 (en) * 2004-01-13 2005-08-25 Mitsutoshi Shinkai Information processing apparatus, information processing method, and program
US20050235212A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus to provide visual editing
US20050234981A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus for creating, assembling, and organizing compound media objects
US20050234838A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus for providing in place editing within static documents
US20050240864A1 (en) * 2004-04-23 2005-10-27 Kalev Leetaru Method and system for retrieving information using an authentication web page
US20050240869A1 (en) * 2004-04-23 2005-10-27 Kalev Leetaru Method and system for editable web browsing
US20050257210A1 (en) * 2004-05-11 2005-11-17 Frank Stienhans Upgrading pattern configurations
US20060047658A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation Verifying dynamically generated operations on a data store
EP1679616A2 (en) * 2005-01-06 2006-07-12 Microsoft Corporation Data binding in a word-processing application
US20060195779A1 (en) * 2005-02-28 2006-08-31 Mcelroy Thomas F Methods, systems and computer program products for maintaining a separation between markup and data at the client
US20060224697A1 (en) * 2005-04-04 2006-10-05 Norris Stephen R Method to display and manipulate new content on top of an existing web page
US20060259553A1 (en) * 2003-02-03 2006-11-16 Jun Kawakita Synchronization program
US7139969B1 (en) * 2003-06-13 2006-11-21 Microsoft Corporation Method and system for evaluating and connecting web parts
US20080083027A1 (en) * 2006-09-29 2008-04-03 Colorquick, L.L.C. Document Editing Environment that Varies Based Upon Security Level of User Who Performs the Editing
US20080189604A1 (en) * 2007-01-26 2008-08-07 Microsoft Corporation Derivative blog-editing environment
US20080295085A1 (en) * 2007-05-25 2008-11-27 Microsoft Corporation Integrated code review tool
US20090055755A1 (en) * 2007-08-21 2009-02-26 Ryan Hicks Representing editable attributes of embedded content
US7548957B1 (en) 2002-05-07 2009-06-16 Oracle International Corporation Method and mechanism for a portal website architecture
US20090259950A1 (en) * 2008-04-11 2009-10-15 Oracle International Corporation Editing user interface components
US7617234B2 (en) 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US20090320119A1 (en) * 2008-06-20 2009-12-24 Wetpaint.Com, Inc. Extensible content service for attributing user-generated content to authored content providers
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US20100083102A1 (en) * 2008-09-26 2010-04-01 Juan Carlos Jimenez Online Content Editing of Dynamic Websites
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US20100110104A1 (en) * 2006-05-05 2010-05-06 Google Inc. Effects applied to images in a browser
US20100110092A1 (en) * 2006-05-05 2010-05-06 Google Inc. Distributed processing when editing an image in a browser
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US20100199164A1 (en) * 2009-01-30 2010-08-05 John William Lumley Controlling editing of a portion of a document
US7945590B2 (en) 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US8156141B1 (en) 2006-12-13 2012-04-10 Emc Corporation Incorporated web page content
US8387006B1 (en) * 2007-12-05 2013-02-26 Adobe Systems Incorporated System and method for authoring a web page to be run-time editable
US20130111376A1 (en) * 2011-06-20 2013-05-02 Yuki Shinomoto Gui program creation supporting apparatus, gui program creation support method, computer-readable recording medium and integrated circuit
US20130167087A1 (en) * 2009-01-09 2013-06-27 Joseph Tighe Mode-based graphical editing
US8555159B1 (en) * 2006-12-13 2013-10-08 Emc Corporation Dynamic display of web page content for editing and review
US20140122993A1 (en) * 2012-04-03 2014-05-01 Salesforce.Com, Inc. Mechanism for facilitating user-controlled management of webpage elements for dynamic customization of information
US20140237346A1 (en) * 2013-02-20 2014-08-21 Adobe Systems Inc. Method and apparatus for importing hyper text markup language (html) web projects into a web content management system
US8988418B1 (en) 2007-01-05 2015-03-24 Florelle, Inc. System and method for parametric display of modular aesthetic designs
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US9037983B1 (en) 2006-12-13 2015-05-19 Emc Corporation User privilege based web page content editing
US9081463B2 (en) 2007-12-05 2015-07-14 Adobe Systems Incorporated Systems and methods for run-time editing of a web page
US20150317288A1 (en) * 2007-07-18 2015-11-05 Ebay Inc. Method and system to maintain a web page
US20170031887A1 (en) * 2015-07-27 2017-02-02 WP Company LLC d/b/a The Washington Post Contextual editing in a page rendering system
US9626080B1 (en) * 2013-12-19 2017-04-18 EMC IP Holding Company LLC Style configuration mode
US20180173386A1 (en) * 2016-12-15 2018-06-21 Walkme Ltd. Updating data records by adding editing functions to non-editable display elements
US11443109B2 (en) * 2017-09-28 2022-09-13 Oracle International Corporation Interactive data entry validation and problem correction in a table component in a spreadsheet driven by a web service

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010011275A1 (en) * 2000-01-31 2001-08-02 Benjamin Lin Distributive web page management system
US7640529B2 (en) * 2002-07-30 2009-12-29 Photronics, Inc. User-friendly rule-based system and method for automatically generating photomask orders
US8700988B2 (en) * 2002-12-20 2014-04-15 Sap Portals Israel Ltd. Selectively interpreted portal page layout template
US7386786B2 (en) * 2003-01-24 2008-06-10 The Cobalt Group, Inc. Method and apparatus for processing a dynamic webpage
US7062506B2 (en) 2003-01-24 2006-06-13 The Cobalt Group, Inc. Staged publication and management of dynamic webpages
US7000184B2 (en) * 2003-01-24 2006-02-14 The Cobalt Group, Inc. Remote web site editing in a standard web browser without external software
US7472170B2 (en) 2003-02-13 2008-12-30 Bruce Zak System and method for managing content on a network interface
US9003295B2 (en) * 2003-03-17 2015-04-07 Leo Martin Baschy User interface driven access control system and method
US20050262427A1 (en) * 2003-03-31 2005-11-24 International Business Machines Corporation System and method for managing website content
US7703004B2 (en) * 2003-06-20 2010-04-20 Palo Alto Research Center Incorporated Systems and methods for automatically converting web pages to structured shared web-writable pages
US7836427B1 (en) * 2003-07-01 2010-11-16 Microsoft Corporation Tree-based rule composition with natural language inline editing
US8260964B2 (en) 2003-10-02 2012-09-04 Google Inc. Dynamic content conversion
IL158282A0 (en) * 2003-10-02 2004-05-12 Netmask El Mar Internet Techno Configuration setting
US7809858B1 (en) * 2003-10-21 2010-10-05 Adobe Systems Incorporated Cross-protocol URL mapping
US7941748B1 (en) 2003-10-21 2011-05-10 Adobe Systems Incorporated Systems and methods for web site editing interfaces
US7263534B1 (en) 2003-10-21 2007-08-28 Adobe Systems Incorporated Automatic set up for editing a web site
US7921360B1 (en) 2003-10-21 2011-04-05 Adobe Systems Incorporated Content-restricted editing
US20050114308A1 (en) * 2003-11-24 2005-05-26 International Business Machines Corporation User customizable reporting
US20050120308A1 (en) * 2003-12-01 2005-06-02 Gibson Becky J. Method and system for providing an accessible object on a modal dialog box
US20050160101A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus using dynamic SQL for item create, retrieve, update delete operations in a content management application
US20060047534A1 (en) * 2004-03-24 2006-03-02 Update Publications Lp Method and system for collecting data to facilitate real time online access and efficient reporting
US20050228825A1 (en) * 2004-04-06 2005-10-13 Tsun-Yi Yang Method for managing knowledge from the toolbar of a browser
US7668870B1 (en) 2004-04-15 2010-02-23 Citicorp Development Center, Inc. Methods and systems for updating web pages via a web data instant update utility
US7987293B2 (en) 2004-10-04 2011-07-26 Netmask (El-Mar) Internet Technologies Ltd. Dynamic content conversion
JP4856370B2 (en) * 2004-10-15 2012-01-18 インターナショナル・ビジネス・マシーンズ・コーポレーション Website editing method, editing system, editing program
DE102004059426A1 (en) * 2004-12-09 2006-06-14 Brand Ad Gmbh Method and graphical user interface for modifying a document
US7904570B1 (en) 2004-12-21 2011-03-08 Adobe Systems Incorporated Configurable file placement
CN1835507A (en) 2005-03-17 2006-09-20 国际商业机器公司 Method for the server side processing of user interactions with a web-browser
US20060212301A1 (en) * 2005-03-18 2006-09-21 Microsoft Corporation Entity property management
US9176934B2 (en) * 2005-05-06 2015-11-03 Leo Baschy User interface for nonuniform access control system and methods
US9129088B1 (en) 2005-06-04 2015-09-08 Leo Martin Baschy User interface driven access control system and methods for multiple users as one audience
US9454734B2 (en) 2006-02-21 2016-09-27 International Business Machines Corporation Heuristic assembly of a component based application
US7793216B2 (en) * 2006-03-28 2010-09-07 Microsoft Corporation Document processor and re-aggregator
US9202068B2 (en) * 2006-03-29 2015-12-01 Leo M. Baschy User interface for variable access control system
DE102006027664B4 (en) * 2006-06-14 2008-03-20 Siemens Ag Communication system for processing data
US7886000B1 (en) 2006-06-27 2011-02-08 Confluence Commons, Inc. Aggregation system for social network sites
US8990340B1 (en) 2006-06-27 2015-03-24 Fingerprint Cards Ab Aggregation system
US7908647B1 (en) * 2006-06-27 2011-03-15 Confluence Commons, Inc. Aggregation system
US7673327B1 (en) * 2006-06-27 2010-03-02 Confluence Commons, Inc. Aggregation system
AU2012204034B2 (en) * 2006-07-11 2015-04-23 University Of Medicine And Dentistry Of New Jersey Proteins, nucleic acids encoding the same and associated methods of use
US7793221B1 (en) * 2006-08-15 2010-09-07 Damian Bartholomew Method and system for unit level military administration
GB2443443A (en) * 2006-10-30 2008-05-07 Hewlett Packard Development Co method of defining editable portions within the template document
GB0624577D0 (en) * 2006-12-08 2007-01-17 Skype Ltd Communication Systems
US20080184135A1 (en) * 2007-01-26 2008-07-31 Microsoft Corporation Web authoring plugin implementation
US7958103B1 (en) * 2007-03-30 2011-06-07 Emc Corporation Incorporated web page content
US8838728B2 (en) * 2007-05-22 2014-09-16 Nokia Corporation Method, system, apparatus, network entity and computer program product for providing a user with an editable webpage
US9087325B2 (en) * 2007-09-11 2015-07-21 Yahoo! Inc. Social network site including trust-based Wiki functionality
US7945862B2 (en) * 2007-09-11 2011-05-17 Yahoo! Inc. Social network site including contact-based recommendation functionality
US20090106322A1 (en) * 2007-10-18 2009-04-23 Chen Jen-Yeu T Two-set method for avoiding data loss when multiple users simultaneously edit the same data
US20090235161A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Lossless Web-Based Editor For Complex Documents
GB0805695D0 (en) 2008-03-28 2008-04-30 British Telecomm Web content management
US8762887B2 (en) * 2008-06-06 2014-06-24 Apple Inc. Browsing or searching user interfaces and other aspects
US8516038B2 (en) * 2008-06-06 2013-08-20 Apple Inc. Browsing or searching user interfaces and other aspects
US20090307622A1 (en) * 2008-06-06 2009-12-10 Julien Jalon Browsing or searching user interfaces and other aspects
US8607166B2 (en) * 2008-06-06 2013-12-10 Apple Inc. Browsing or searching user interfaces and other aspects
US8171399B2 (en) * 2008-07-17 2012-05-01 International Business Machines Corporation Using an alternate user interface to a drag and drop interface for rearranging configurable web page components
CH699485A2 (en) * 2008-09-03 2010-03-15 Eric Sinot Creation / modification of internet pages in situ.
GB0905953D0 (en) 2009-04-06 2009-05-20 Bowling Anthony Document editing method
US20100318894A1 (en) * 2009-06-11 2010-12-16 Microsoft Corporation Modifications to Editable Elements of Web Pages Rendered in Word Processor Applications
US20130185658A1 (en) * 2010-09-30 2013-07-18 Beijing Lenovo Software Ltd. Portable Electronic Device, Content Publishing Method, And Prompting Method
US10482475B2 (en) 2011-02-10 2019-11-19 Adp Dealer Services, Inc. Systems and methods for providing targeted advertising
US9123028B2 (en) 2011-07-01 2015-09-01 Salesforce.Com, Inc. Computer implemented methods and apparatus for controlling the inclusion of edited information in an information feed
US20130019189A1 (en) * 2011-07-14 2013-01-17 Cbs Interactive Inc Augmented editing of an online document
US10353566B2 (en) * 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9679306B2 (en) * 2011-11-11 2017-06-13 Excalibur Ip, Llc Live advertisement preview display and distribution
US10789412B2 (en) * 2012-02-20 2020-09-29 Wix.Com Ltd. System and method for extended dynamic layout
US20130298005A1 (en) * 2012-05-04 2013-11-07 Motorola Mobility, Inc. Drawing HTML Elements
US9256587B2 (en) * 2012-06-04 2016-02-09 Aphotofolio.Com Editor for website and website menu
US9367933B2 (en) 2012-06-26 2016-06-14 Google Technologies Holdings LLC Layering a line with multiple layers for rendering a soft brushstroke
US8935299B2 (en) * 2012-07-19 2015-01-13 Facebook, Inc. Identifying relevant data for pages in a social networking system
US9141707B2 (en) 2012-07-19 2015-09-22 Facebook, Inc. Context-based object retrieval in a social networking system
US9147004B2 (en) * 2012-09-07 2015-09-29 Cimpress Schweiz Gmbh Website builder systems and methods with device detection to adapt rendering behavior based on device type
TWI478043B (en) * 2012-11-22 2015-03-21 Inst Information Industry Systems and methods for app page template generation, and storage medium thereof
US11200368B2 (en) * 2013-01-07 2021-12-14 International Business Machines Corporation In-line editing of webpages
US9438694B1 (en) 2013-01-29 2016-09-06 Amazon Technologies, Inc. Managing page-level usage data
US9398071B1 (en) 2013-01-29 2016-07-19 Amazon Technologies, Inc. Managing page-level usage data
US9577889B1 (en) 2013-01-29 2017-02-21 Amazon Technologies, Inc. Managing page-level usage data
US20140258832A1 (en) * 2013-03-11 2014-09-11 Dartmouth Journal Services, Inc. Computer Implemented System and Method for Author Editing of XML Documents With Structured Element Protection
WO2014141676A1 (en) * 2013-03-12 2014-09-18 パナソニック株式会社 Information and communications terminal and method for providing dialogue
US11080734B2 (en) 2013-03-15 2021-08-03 Cdk Global, Llc Pricing system for identifying prices for vehicles offered by vehicle dealerships and other entities
US9876776B2 (en) * 2014-04-24 2018-01-23 Usablenet Inc. Methods for generating and publishing a web site based on selected items and devices thereof
US10073604B2 (en) * 2014-05-15 2018-09-11 Oracle International Corporation UI-driven model extensibility in multi-tier applications
WO2016024987A1 (en) * 2014-08-15 2016-02-18 Hewlett-Packard Development Company, L.P. Web-intrinsic interactive documents
US10867118B2 (en) * 2015-01-28 2020-12-15 Box, Inc. Method and system for implementing a collaboration platform for structured objects in a document
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US9864735B1 (en) * 2015-08-27 2018-01-09 Google Llc In-domain webpage editing
US10867285B2 (en) 2016-04-21 2020-12-15 Cdk Global, Llc Automatic automobile repair service scheduling based on diagnostic trouble codes and service center attributes
US10332068B2 (en) 2016-04-21 2019-06-25 Cdk Global, Llc Systems and methods for stocking an automobile
US10853769B2 (en) 2016-04-21 2020-12-01 Cdk Global Llc Scheduling an automobile service appointment in a dealer service bay based on diagnostic trouble codes and service bay attributes
US10326858B2 (en) 2017-05-23 2019-06-18 Cdk Global, Llc System and method for dynamically generating personalized websites
US11501351B2 (en) 2018-03-21 2022-11-15 Cdk Global, Llc Servers, systems, and methods for single sign-on of an automotive commerce exchange
US11190608B2 (en) 2018-03-21 2021-11-30 Cdk Global Llc Systems and methods for an automotive commerce exchange
CN109725902A (en) * 2018-12-24 2019-05-07 广东智合创享营销策划有限公司 A kind of H5 page animation method and system of complex interaction logic
US11853806B2 (en) 2019-09-27 2023-12-26 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network and uses a distributed data store
CN111914528B (en) * 2020-06-19 2024-02-23 北京百度网讯科技有限公司 Content editing method, method for generating editor, device, equipment and medium thereof
US11080105B1 (en) 2020-11-18 2021-08-03 Cdk Global, Llc Systems, methods, and apparatuses for routing API calls
US11514021B2 (en) 2021-01-22 2022-11-29 Cdk Global, Llc Systems, methods, and apparatuses for scanning a legacy database
US11803535B2 (en) 2021-05-24 2023-10-31 Cdk Global, Llc Systems, methods, and apparatuses for simultaneously running parallel databases
US20230085946A1 (en) * 2021-09-10 2023-03-23 Intercom, Inc. Managing user interactions for a graphical user interface

Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1555A (en) * 1840-04-15 Engel
US4755A (en) * 1846-09-12 Jesse fitzgerald
US20244A (en) * 1858-05-11 davis
US32220A (en) * 1861-04-30 Washing-machine
US42045A (en) * 1864-03-22 Improved cone and chimney elevator
US50681A (en) * 1865-10-31 Improvement in photographic lenses
US5793966A (en) * 1995-12-01 1998-08-11 Vermeer Technologies, Inc. Computer system and computer-implemented process for creation and maintenance of online services
US5802299A (en) * 1996-02-13 1998-09-01 Microtouch Systems, Inc. Interactive system for authoring hypertext document collections
US5845299A (en) * 1996-07-29 1998-12-01 Rae Technology Llc Draw-based editor for web pages
US5884301A (en) * 1996-01-16 1999-03-16 Nec Corporation Hypermedia system
US5911145A (en) * 1996-07-29 1999-06-08 Rae Technology, Inc. Hierarchical structure editor for web sites
US5956709A (en) * 1997-07-28 1999-09-21 Xue; Yansheng Dynamic data assembling on internet client side
US5991760A (en) * 1997-06-26 1999-11-23 Digital Equipment Corporation Method and apparatus for modifying copies of remotely stored documents using a web browser
US6044372A (en) * 1997-07-18 2000-03-28 Dazel Corporation Method and apparatus for publishing information to a communications network and enabling subscriptions to such information
US6043815A (en) * 1997-09-30 2000-03-28 The United States Of America As Represented By The Secretary Of The Navy Method for using guiscript and providing a universal client device
US6052710A (en) * 1996-06-28 2000-04-18 Microsoft Corporation System and method for making function calls over a distributed network
US6061692A (en) * 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6101510A (en) * 1997-01-29 2000-08-08 Microsoft Corporation Web browser control for incorporating web browser functionality into application programs
US6151609A (en) * 1996-08-16 2000-11-21 Electronic Data Systems Corporation Remote editor system
US6175832B1 (en) * 1998-05-11 2001-01-16 International Business Machines Corporation Method, system and program product for establishing a data reporting and display communication over a network
US6185587B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation System and method for building a web site with automated help
US6188401B1 (en) * 1998-03-25 2001-02-13 Microsoft Corporation Script-based user interface implementation defining components using a text markup language
US6191786B1 (en) * 1997-04-25 2001-02-20 Alan K. Eyzaguirre Navigational file system
US6199166B1 (en) * 1996-05-29 2001-03-06 International Business Machines Corporation System and method for enabling and controlling anonymous file transfer protocol communications
US6212533B1 (en) * 1996-02-16 2001-04-03 Nec Corporation Hyper-media document management system having navigation mechanism
US6278449B1 (en) * 1998-09-03 2001-08-21 Sony Corporation Apparatus and method for designating information to be retrieved over a computer network
US6292185B1 (en) * 1998-04-27 2001-09-18 C.C.R., Inc. Method and apparatus for tailoring the appearance of a graphical user interface
US6304886B1 (en) * 1997-06-19 2001-10-16 International Business Machines Corporation System and method for building a web site using specific interface
US6308188B1 (en) * 1997-06-19 2001-10-23 International Business Machines Corporation System and method for building a web site with automated workflow
US6336123B2 (en) * 1996-10-02 2002-01-01 Matsushita Electric Industrial Co., Ltd. Hierarchical based hyper-text document preparing and management apparatus
US6336115B1 (en) * 1997-06-17 2002-01-01 Fujitsu Limited File sharing system in a client/server environment with efficient file control using a www-browser-function extension unit
US20020073125A1 (en) * 2000-12-08 2002-06-13 Xerox Corporation Systems and methods for editing a web page
US6546397B1 (en) * 1999-12-02 2003-04-08 Steven H. Rempell Browser based web site generation tool and run time engine
US6578078B1 (en) * 1999-04-02 2003-06-10 Microsoft Corporation Method for preserving referential integrity within web sites
US6625803B1 (en) * 1997-10-28 2003-09-23 Microsoft Corp. Automatic generation of text and computer-executable code for run-time use
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US6822663B2 (en) * 2000-09-12 2004-11-23 Adaptview, Inc. Transform rule generator for web-based markup languages
US6854087B1 (en) * 1999-08-10 2005-02-08 Fuji Xerox Co., Ltd. Document editing apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802530A (en) 1996-07-01 1998-09-01 Sun Microsystems, Inc. Web document based graphical user interface
US6253254B1 (en) 1996-07-11 2001-06-26 Ansgar Erlenkoetter Hyper media object management
US6268851B1 (en) 1996-09-30 2001-07-31 Trellix Corporation Hypermedia authoring and publishing system
AU5356598A (en) 1996-11-15 1998-06-03 Inergy Online, Inc. Remote communication, information management, and home page authoring system
US7130831B2 (en) 1999-02-08 2006-10-31 Copyright Clearance Center, Inc. Limited-use browser and security system
US20010050681A1 (en) 2000-03-31 2001-12-13 I-Media World.Com Method and system for creating and delivering electronic, multi-media presentations
US7000180B2 (en) 2000-06-29 2006-02-14 Balthaser Online, Inc. Methods, systems, and processes for the design and creation of rich-media applications via the internet

Patent Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1555A (en) * 1840-04-15 Engel
US4755A (en) * 1846-09-12 Jesse fitzgerald
US20244A (en) * 1858-05-11 davis
US32220A (en) * 1861-04-30 Washing-machine
US42045A (en) * 1864-03-22 Improved cone and chimney elevator
US50681A (en) * 1865-10-31 Improvement in photographic lenses
US5793966A (en) * 1995-12-01 1998-08-11 Vermeer Technologies, Inc. Computer system and computer-implemented process for creation and maintenance of online services
US5884301A (en) * 1996-01-16 1999-03-16 Nec Corporation Hypermedia system
US5802299A (en) * 1996-02-13 1998-09-01 Microtouch Systems, Inc. Interactive system for authoring hypertext document collections
US6212533B1 (en) * 1996-02-16 2001-04-03 Nec Corporation Hyper-media document management system having navigation mechanism
US6199166B1 (en) * 1996-05-29 2001-03-06 International Business Machines Corporation System and method for enabling and controlling anonymous file transfer protocol communications
US6052710A (en) * 1996-06-28 2000-04-18 Microsoft Corporation System and method for making function calls over a distributed network
US5845299A (en) * 1996-07-29 1998-12-01 Rae Technology Llc Draw-based editor for web pages
US5911145A (en) * 1996-07-29 1999-06-08 Rae Technology, Inc. Hierarchical structure editor for web sites
US6151609A (en) * 1996-08-16 2000-11-21 Electronic Data Systems Corporation Remote editor system
US6336123B2 (en) * 1996-10-02 2002-01-01 Matsushita Electric Industrial Co., Ltd. Hierarchical based hyper-text document preparing and management apparatus
US6101510A (en) * 1997-01-29 2000-08-08 Microsoft Corporation Web browser control for incorporating web browser functionality into application programs
US6191786B1 (en) * 1997-04-25 2001-02-20 Alan K. Eyzaguirre Navigational file system
US6336115B1 (en) * 1997-06-17 2002-01-01 Fujitsu Limited File sharing system in a client/server environment with efficient file control using a www-browser-function extension unit
US6185587B1 (en) * 1997-06-19 2001-02-06 International Business Machines Corporation System and method for building a web site with automated help
US6304886B1 (en) * 1997-06-19 2001-10-16 International Business Machines Corporation System and method for building a web site using specific interface
US6308188B1 (en) * 1997-06-19 2001-10-23 International Business Machines Corporation System and method for building a web site with automated workflow
US5991760A (en) * 1997-06-26 1999-11-23 Digital Equipment Corporation Method and apparatus for modifying copies of remotely stored documents using a web browser
US6044372A (en) * 1997-07-18 2000-03-28 Dazel Corporation Method and apparatus for publishing information to a communications network and enabling subscriptions to such information
US5956709A (en) * 1997-07-28 1999-09-21 Xue; Yansheng Dynamic data assembling on internet client side
US6043815A (en) * 1997-09-30 2000-03-28 The United States Of America As Represented By The Secretary Of The Navy Method for using guiscript and providing a universal client device
US6625803B1 (en) * 1997-10-28 2003-09-23 Microsoft Corp. Automatic generation of text and computer-executable code for run-time use
US6061692A (en) * 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6188401B1 (en) * 1998-03-25 2001-02-13 Microsoft Corporation Script-based user interface implementation defining components using a text markup language
US6292185B1 (en) * 1998-04-27 2001-09-18 C.C.R., Inc. Method and apparatus for tailoring the appearance of a graphical user interface
US6175832B1 (en) * 1998-05-11 2001-01-16 International Business Machines Corporation Method, system and program product for establishing a data reporting and display communication over a network
US6278449B1 (en) * 1998-09-03 2001-08-21 Sony Corporation Apparatus and method for designating information to be retrieved over a computer network
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
US6578078B1 (en) * 1999-04-02 2003-06-10 Microsoft Corporation Method for preserving referential integrity within web sites
US6854087B1 (en) * 1999-08-10 2005-02-08 Fuji Xerox Co., Ltd. Document editing apparatus
US6546397B1 (en) * 1999-12-02 2003-04-08 Steven H. Rempell Browser based web site generation tool and run time engine
US6822663B2 (en) * 2000-09-12 2004-11-23 Adaptview, Inc. Transform rule generator for web-based markup languages
US20020073125A1 (en) * 2000-12-08 2002-06-13 Xerox Corporation Systems and methods for editing a web page

Cited By (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7548957B1 (en) 2002-05-07 2009-06-16 Oracle International Corporation Method and mechanism for a portal website architecture
US20040006743A1 (en) * 2002-05-24 2004-01-08 Kazushige Oikawa Method and apparatus for re-editing and redistributing web documents
US20040205529A1 (en) * 2002-06-03 2004-10-14 Ernest Cusick System and method for creating forms
US7032170B2 (en) * 2002-06-03 2006-04-18 General Electric Company Creating data structures from a form file and creating a web page in conjunction with corresponding data structures
US20040111671A1 (en) * 2002-12-06 2004-06-10 International Business Machines Corporation Method for selectively reloading frames of a web-page
US20040125126A1 (en) * 2002-12-25 2004-07-01 Fuji Xerox Co., Ltd. Video browsing system
US20060259553A1 (en) * 2003-02-03 2006-11-16 Jun Kawakita Synchronization program
US7376659B2 (en) * 2003-06-11 2008-05-20 International Business Machines Corporation System, method, and computer program product for generating a web application with dynamic content
US20040268303A1 (en) * 2003-06-11 2004-12-30 Mari Abe System, method, and computer program product for generating a web application with dynamic content
US7139969B1 (en) * 2003-06-13 2006-11-21 Microsoft Corporation Method and system for evaluating and connecting web parts
US7890506B2 (en) * 2003-07-14 2011-02-15 Canon Kabushiki Kaisha User interface control apparatus and method thereof
US20050015395A1 (en) * 2003-07-14 2005-01-20 Canon Kabushiki Kaisha User interface control apparatus and method thereof
US20050065856A1 (en) * 2003-09-19 2005-03-24 Timothy Roberts Self-service catalog manager for stores implemented on a communications network
US7359873B2 (en) * 2003-09-19 2008-04-15 Yahoo, Inc. Self-service catalog manager for stores implemented on a communications network
US7730410B2 (en) * 2003-09-22 2010-06-01 Sap Ag System and method for customizing form elements in a form building application
US20050065933A1 (en) * 2003-09-22 2005-03-24 Thomas Goering System and method for customizing form elements in a form building application
US20050132285A1 (en) * 2003-12-12 2005-06-16 Sung-Chieh Chen System and method for generating webpages
US7814416B2 (en) * 2004-01-13 2010-10-12 Sony Corporation Information processing apparatus, method, program, and system for data searching using linking information
US20050188319A1 (en) * 2004-01-13 2005-08-25 Mitsutoshi Shinkai Information processing apparatus, information processing method, and program
US20080184134A1 (en) * 2004-01-13 2008-07-31 Mitsutoshi Shinkai Information processing apparatus, information processing method, and program
US7739306B2 (en) 2004-04-14 2010-06-15 Verisign, Inc. Method and apparatus for creating, assembling, and organizing compound media objects
US8250034B2 (en) 2004-04-14 2012-08-21 Verisign, Inc. Method and apparatus to provide visual editing
US20050234838A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus for providing in place editing within static documents
US20050234981A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus for creating, assembling, and organizing compound media objects
US20050235212A1 (en) * 2004-04-14 2005-10-20 Manousos Nicholas H Method and apparatus to provide visual editing
US7716352B2 (en) * 2004-04-23 2010-05-11 The Board Of Trustees Of The University Of Illinois Method and system for retrieving information using an authentication web page
US20050240864A1 (en) * 2004-04-23 2005-10-27 Kalev Leetaru Method and system for retrieving information using an authentication web page
US20050240869A1 (en) * 2004-04-23 2005-10-27 Kalev Leetaru Method and system for editable web browsing
US20050257210A1 (en) * 2004-05-11 2005-11-17 Frank Stienhans Upgrading pattern configurations
US7761865B2 (en) * 2004-05-11 2010-07-20 Sap Ag Upgrading pattern configurations
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US7457832B2 (en) * 2004-08-31 2008-11-25 Microsoft Corporation Verifying dynamically generated operations on a data store
US20060047658A1 (en) * 2004-08-31 2006-03-02 Microsoft Corporation Verifying dynamically generated operations on a data store
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7712016B2 (en) 2004-09-30 2010-05-04 Microsoft Corporation Method and apparatus for utilizing an object model for managing content regions in an electronic document
EP1679616A2 (en) * 2005-01-06 2006-07-12 Microsoft Corporation Data binding in a word-processing application
US7617234B2 (en) 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7730394B2 (en) 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7945590B2 (en) 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
EP1679616A3 (en) * 2005-01-06 2008-01-16 Microsoft Corporation Data binding in a word-processing application
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US20060195779A1 (en) * 2005-02-28 2006-08-31 Mcelroy Thomas F Methods, systems and computer program products for maintaining a separation between markup and data at the client
US8001456B2 (en) * 2005-02-28 2011-08-16 International Business Machines Corporation Methods for maintaining separation between markup and data at a client
US20060224697A1 (en) * 2005-04-04 2006-10-05 Norris Stephen R Method to display and manipulate new content on top of an existing web page
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US8161368B2 (en) * 2006-05-05 2012-04-17 Google Inc. Distributed processing when editing an image in a browser
US20110142361A1 (en) * 2006-05-05 2011-06-16 Google Inc. Rollback in a browser
US20100111406A1 (en) * 2006-05-05 2010-05-06 Google Inc. Selective image editing in a browser
US20100110092A1 (en) * 2006-05-05 2010-05-06 Google Inc. Distributed processing when editing an image in a browser
US20100110104A1 (en) * 2006-05-05 2010-05-06 Google Inc. Effects applied to images in a browser
US8245123B2 (en) 2006-05-05 2012-08-14 Google Inc. Effects applied to images in a browser
US8233009B2 (en) 2006-05-05 2012-07-31 Google Inc. Rollback in a browser
US8230318B2 (en) 2006-05-05 2012-07-24 Google Inc. Selective image editing in a browser
US20080083027A1 (en) * 2006-09-29 2008-04-03 Colorquick, L.L.C. Document Editing Environment that Varies Based Upon Security Level of User Who Performs the Editing
US8156141B1 (en) 2006-12-13 2012-04-10 Emc Corporation Incorporated web page content
US8555159B1 (en) * 2006-12-13 2013-10-08 Emc Corporation Dynamic display of web page content for editing and review
US9037983B1 (en) 2006-12-13 2015-05-19 Emc Corporation User privilege based web page content editing
US8988418B1 (en) 2007-01-05 2015-03-24 Florelle, Inc. System and method for parametric display of modular aesthetic designs
US20080189604A1 (en) * 2007-01-26 2008-08-07 Microsoft Corporation Derivative blog-editing environment
US20080295085A1 (en) * 2007-05-25 2008-11-27 Microsoft Corporation Integrated code review tool
US20150317288A1 (en) * 2007-07-18 2015-11-05 Ebay Inc. Method and system to maintain a web page
US8555200B2 (en) * 2007-08-21 2013-10-08 Wetpaint.Com, Inc. Representing editable attributes of embedded content
US20090055755A1 (en) * 2007-08-21 2009-02-26 Ryan Hicks Representing editable attributes of embedded content
US8387006B1 (en) * 2007-12-05 2013-02-26 Adobe Systems Incorporated System and method for authoring a web page to be run-time editable
US9081463B2 (en) 2007-12-05 2015-07-14 Adobe Systems Incorporated Systems and methods for run-time editing of a web page
US20090259950A1 (en) * 2008-04-11 2009-10-15 Oracle International Corporation Editing user interface components
US8504929B2 (en) * 2008-04-11 2013-08-06 Oracle International Corporation Editing user interface components
US8516366B2 (en) * 2008-06-20 2013-08-20 Wetpaint.Com, Inc. Extensible content service for attributing user-generated content to authored content providers
US20090320119A1 (en) * 2008-06-20 2009-12-24 Wetpaint.Com, Inc. Extensible content service for attributing user-generated content to authored content providers
US20100083102A1 (en) * 2008-09-26 2010-04-01 Juan Carlos Jimenez Online Content Editing of Dynamic Websites
US20130167087A1 (en) * 2009-01-09 2013-06-27 Joseph Tighe Mode-based graphical editing
US9355469B2 (en) * 2009-01-09 2016-05-31 Adobe Systems Incorporated Mode-based graphical editing
US20100199164A1 (en) * 2009-01-30 2010-08-05 John William Lumley Controlling editing of a portion of a document
US8910064B2 (en) * 2011-06-20 2014-12-09 Panasonic Intellectual Property Corporation Of America GUI program creation supporting apparatus, GUI program creation support method, computer-readable recording medium and integrated circuit
US20130111376A1 (en) * 2011-06-20 2013-05-02 Yuki Shinomoto Gui program creation supporting apparatus, gui program creation support method, computer-readable recording medium and integrated circuit
US9572614B2 (en) * 2012-04-03 2017-02-21 Salesforce.Com, Inc. Mechanism for facilitating user-controlled management of webpage elements for dynamic customization of information
US20140122993A1 (en) * 2012-04-03 2014-05-01 Salesforce.Com, Inc. Mechanism for facilitating user-controlled management of webpage elements for dynamic customization of information
US10117697B2 (en) 2012-04-03 2018-11-06 Salesforce.Com, Inc. Mechanism for facilitating user-controlled management of webpage elements for dynamic customization of information
US20140237346A1 (en) * 2013-02-20 2014-08-21 Adobe Systems Inc. Method and apparatus for importing hyper text markup language (html) web projects into a web content management system
US9626080B1 (en) * 2013-12-19 2017-04-18 EMC IP Holding Company LLC Style configuration mode
US20170031887A1 (en) * 2015-07-27 2017-02-02 WP Company LLC d/b/a The Washington Post Contextual editing in a page rendering system
US11334643B2 (en) * 2015-07-27 2022-05-17 WP Company, LLC Contextual editing in a page rendering system
US11822615B2 (en) 2015-07-27 2023-11-21 Wp Company Llc Contextual editing in a page rendering system
US20180173386A1 (en) * 2016-12-15 2018-06-21 Walkme Ltd. Updating data records by adding editing functions to non-editable display elements
US11507256B2 (en) * 2016-12-15 2022-11-22 Walkme Ltd. Updating data records by adding editing functions to non-editable display elements
US11443109B2 (en) * 2017-09-28 2022-09-13 Oracle International Corporation Interactive data entry validation and problem correction in a table component in a spreadsheet driven by a web service

Also Published As

Publication number Publication date
WO2003003642A2 (en) 2003-01-09
US7287227B2 (en) 2007-10-23
US20030023632A1 (en) 2003-01-30

Similar Documents

Publication Publication Date Title
US7287227B2 (en) System and method for editing web pages in a client/server architecture
US7536641B2 (en) Web page authoring tool for structured documents
CA2276240C (en) Client-server application development and deployment system and methods
US8387055B1 (en) System and method for providing information and associating information
US20110225482A1 (en) Managing and generating citations in scholarly work
US20020091725A1 (en) Method and apparatus for providing client-based web page content creation and management
CA2344074A1 (en) Method and system for cross-platform form creation and deployment
CA2647588A1 (en) Systems and methods of transforming data for web communities and web applications
US20020078140A1 (en) Remote web page maintenance
CA2883029A1 (en) Method and system for securely updating a website
US7685229B1 (en) System and method for displaying server side code results in an application program
GB2355817A (en) Generating customised documents
Wolf et al. Java EE Web Application Primer: Building Bullhorn: A Messaging App with JSP, Servlets, JavaScript, Bootstrap and Oracle
US20050120299A1 (en) System and method for creation of a network server application page
CA2602410C (en) Client-server application development and deployment system and methods
Green et al. Utility Data Web Page Design—Learning Technologies
CA2406547C (en) Client-server application development and deployment system and methods
Klausen Java 11: Web applications and Java EE: Software development
Meyer et al. Web Site Database: Using PHP and MySQL
Gupta et al. DEVELOPING WEB APPLICATIONS USING ASP. NET AND ORACLE
Leekumnerdthai Electronic Document Centre (EDC)
Hunter Becoming an information provider on the World Wide Web: creating quality information sources
Ganz Jr Reports on the Web
Bradburne Building a News Blog with RSS Feeds and an API
Chapter Building a News Blog with RSS Feeds and an API

Legal Events

Date Code Title Description
AS Assignment

Owner name: VE ENTERPRISES LLC, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RIES, DAVID E.;CURRAN, JAMES A.;REEL/FRAME:015591/0815

Effective date: 20040719

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: RIES, DAVID, NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VE ENTERPRISES LLC;REEL/FRAME:029389/0855

Effective date: 20121130

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20191023