ZmMailMsg: Difference between revisions

No edit summary
No edit summary
Line 4: Line 4:
If your a php programmer, this will really help out.  If your already a strong object oriented programmer, hopefully this can save some time hunting down functions and classes.
If your a php programmer, this will really help out.  If your already a strong object oriented programmer, hopefully this can save some time hunting down functions and classes.


I'm starting with ZmMailMsg.js and going backwards.  PHP is rather weak on the idea of objects and the concept called inheritance.  Basically it's like the layers in an onion.  You have to peel off one layer so you can get to the layer underneath.  I will be going through the layers here trying to explain where different things come from.
I'm starting with ZmMailMsg.js and going backwards.  PHP is rather weak on the idea of objects and the concept of '''inheritance'''.  Basically it's like the layers in an onion.  You have to peel off one layer so you can get to the layer underneath.  I will be going through the layers here trying to explain where different things come from.


ZmMailMsg.js is the outside layer of your onion.
ZmMailMsg.js is the outside layer of your onion.
Line 10: Line 10:
on line 53 of ZmMailMsg.js we see '''ZmMailMsg.prototype = new ZmMailItem;'''. ZmMailItem is the next layer down.  If we open ZmMailItem we see on line 62 '''ZmItem.prototype = new ZmModel;'''.  ZmModel is the next layer down in our onion.
on line 53 of ZmMailMsg.js we see '''ZmMailMsg.prototype = new ZmMailItem;'''. ZmMailItem is the next layer down.  If we open ZmMailItem we see on line 62 '''ZmItem.prototype = new ZmModel;'''.  ZmModel is the next layer down in our onion.


Here is our '''Direct Line''' outline from the beginning.  If a function in a class creates a '''new''' instance of some other class, that is not in our direct line, but a branch.  If there is an error in any of the Direct line classes the object will not load.  If a branch has an error, we will only find out when we try to run that function.
Here is our '''Direct Line''' outline from the beginning.  If a function in a class creates a '''new''' instance of some other class, that is not in our direct line, but a branch.   


ZmMailMsg.js
ZmMailMsg.js
Line 28: Line 28:
== Email FROM, TO, CC, BCC, Reply_To, SENDER ==
== Email FROM, TO, CC, BCC, Reply_To, SENDER ==


Line 44 we have '''this._addrs = new array();'''.  Then we have this loop. The loop is pointing to '''ZmMailMsg.ADDRS''' which comes farther down in our code?  Welcome to object oriented code.  One way to think about this is the start of our code really begins with '''ZmMailMsg.prototype = new ZmMailItem;''' which starts a chain reaction of creating new items down our list, through the layers of our onion.
Line 44 we have '''this._addrs = new array();'''.  Then we have this loop. The loop is pointing to '''ZmMailMsg.ADDRS''' which comes farther down in our code?  Welcome to object oriented code, well sort of.  One way to think about this is the start of our code really begins with '''ZmMailMsg.prototype = new ZmMailItem;''' which starts a chain reaction of creating '''new''' whatever down our list of .js files listed above. Or drilling down through the layers of the onion.


So, Simply '''this._addrs''' is really just an array of
So, Simply '''this._addrs''' is really just an array of ... uh, I don't know.  I've looked up and down the chain and I can't find anything.
 
But wait!  There is ZmMailAssistant.js which is built on ZmAssistant.js.
 
The From, To, CC, BCC, and other stuff is processed in ZmMailAssistant.js.  The new message starts in ZmMailAssistant.js. I think...

Revision as of 03:08, 16 February 2007

Rough Draft, I have to go.


If your a php programmer, this will really help out. If your already a strong object oriented programmer, hopefully this can save some time hunting down functions and classes.

I'm starting with ZmMailMsg.js and going backwards. PHP is rather weak on the idea of objects and the concept of inheritance. Basically it's like the layers in an onion. You have to peel off one layer so you can get to the layer underneath. I will be going through the layers here trying to explain where different things come from.

ZmMailMsg.js is the outside layer of your onion.

on line 53 of ZmMailMsg.js we see ZmMailMsg.prototype = new ZmMailItem;. ZmMailItem is the next layer down. If we open ZmMailItem we see on line 62 ZmItem.prototype = new ZmModel;. ZmModel is the next layer down in our onion.

Here is our Direct Line outline from the beginning. If a function in a class creates a new instance of some other class, that is not in our direct line, but a branch.

ZmMailMsg.js ZmMailItem.js ZmItem.js ZmModel.js ZmEvent.js and AjxEventMrg and same time.

 This is as far as I'm going to go for now.

If I scan through ZmMailMsg.js, I see out of nowhere this.participants. What type is it, how does the participants.removeAll(); work. We have to start pealing down our onion.

---

Participants and ZmMailItem.js

Participants are all the people involved in an email message. The functions used in ZmMailMsg.js are found in ZmMailItem.js. On line 110 we can see that participants is type AjxVector(). If we want to find out all the things we can do with type AjxVector, just open AjxVector.js. But this is a branch so lets go back to the direct line and chase some other objects down.

Email FROM, TO, CC, BCC, Reply_To, SENDER

Line 44 we have this._addrs = new array();. Then we have this loop. The loop is pointing to ZmMailMsg.ADDRS which comes farther down in our code? Welcome to object oriented code, well sort of. One way to think about this is the start of our code really begins with ZmMailMsg.prototype = new ZmMailItem; which starts a chain reaction of creating new whatever down our list of .js files listed above. Or drilling down through the layers of the onion.

So, Simply this._addrs is really just an array of ... uh, I don't know. I've looked up and down the chain and I can't find anything.

But wait! There is ZmMailAssistant.js which is built on ZmAssistant.js.

The From, To, CC, BCC, and other stuff is processed in ZmMailAssistant.js. The new message starts in ZmMailAssistant.js. I think...

Jump to: navigation, search