The micro itself stocks five columns in the database: the id, the micro type id, the user id, the parent entity id, and the timestamp. The micro_type table establishes the semantics of this micro bundle, including the entity + bundles to which it can be attached to, the input and display settings, as well as a serialized array column (data) which can be used by other modules to add their semantics.
Example use cases include micro nodes (nodes with no revisions), micro comments, status messages attached to users, private messages (a submodule i'm working on - based on parent-child access), hierarchical structures (pages that attach to chapters that attach to book), etc. The main goal is to extend the api so that these and other applications may be easily accomplished with quick submodules.
The module is currently in an early alpha state, and lacks some api documentation and bug squashing, but it's definitively usable.
Comments
Comment #1
blup commentedAttaching the module files.
Comment #2
blup commented... And changing the status.
Comment #3
avpadernoHello, and thank you for applying for a CVS account.
As per requirements, the motivation should include a comparison of the existing solutions.
Comment #4
blup commentedWell, there are no existing solutions that do what I'm trying to accomplish - the reason I made this module.
For drupal 6, there are several micro-communication modules (shoutbox, facebook style status, privatemsg, etc) which establish a communication between two users, and others (comment, notably) that establish a communication between a user and a node. With the coming of drupal 7 entities, I decided it was time to make a cohesive api that abstracts this relationship and provides a fieldable, customizable entity that attaches to others. This entity is light, and contains the essentials (no title/body, just fieldable), and thus very flexible for developers.
Like i mentioned on my motivation statement, this communication might be between a user and a node, a user and another user, or a user and a micro (which, as it can attach to itself, is nest-able). The possible applications are very extensive and I am already working on further expansions on this idea (like i mentioned, a finer grained access module that could turn 'micros' into private messages (user to user) or private comments (user to node/micro/comment).
Comment #5
blup commentedNewer version with OG support and without Git directory.
Comment #6
blup commentedI've done quite a bit of work on this module, and i have several others that are based on its api. Although in alpha phase, it remains a very functional and general solution for the problem i've discussed. I'm still working on integrating it with other modules (Views + OG are done, Panels is next) and making a demo website. Is there a chance I could get a review?
Comment #7
DjebbZ commentedI've tested the module, and the API is very interesting. It allows me to create "micro-nodes" (in fact micro entities) and attach them to others. I see many applications like the module creator said : private messages (micro entities attached to users with restricted access), annotations (similar to comments but restricted too), a Facebook-like wall of Facebook-style statuses. It could replace several D6 modules that haven't been (yet) ported to D7, and unify them thanks to a single API.
+1 !
Comment #8
blup commentedAnother week of work...
Comment #9
blup commentedI've been a member for 2 and a half years and made numerous patches (including core). I've worked on this module for a couple of months now, and I believe I have answered all of the requirements for the application process. I understand not a small module (6300 lines with views, og, and search integration), and I still have a bit of a way to go with certain bug fixes and architectural issues, but 30 days and no admin review seems a bit much. Please let me know if there's anything else I could do to speed up the process.
Comment #10
kyle_mathews commentedI looked through the code a good bit this evening and think blup is more than ready to be given a CVS account. The code was very clean and showed a very good understanding of Drupal APIs. Whatever level of Drupal knowledge you think someone must pass before given a CVS account, blup is clearly past that.
Also, his module is something that potentially many many sites will be using on Drupal 7. Microblogging is one of the biggest UX innovations on the social web in the past several years and something (IMO) Drupal is still fairly weak at and this module could go a long way towards fixing that weakness.
Comment #11
blup commented*bump*
Comment #12
avpadernoAs far as I am concerned,
hook_uninstall()to remove the Drupal variables it defines.hook_cron(). As per requirements, the module should be more complete, when it is used for a CVS account application.If the module name is micro.module, then the implementation of
hook_form()should bemicro_form().The string used as title should not contain HTML tags.
PASS_THROUGHshould be used if the string is already passed throughcheck_plain(), or any similar functions.The code needs to be updated; Drupal behaviors get the settings object as second parameter.
To avoid the behavior is applied twice to the same HTML element, the behavior should use
$().once.Comment #13
blup commentedThanks for the review kiamlaluno. I've attached a reviewed version. Here's a breakdown of your observations:
This hook responds to the hook_forms *_micro_form callback :
I hope the module meets your standards now. I'm sure there are small bugs, but as you can see I'm actively working on improving the module. Thanks for your critiques.
Comment #14
avpadernoThank you for your contribution! I am going to update your account.
These are some recommended readings to help with excellent maintainership:
You can find more contributors chatting on the IRC #drupal-contribute channel. So, come hang out and stay involved.
Thank you, also, for your patience with the review process.
Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
I thank all the dedicated reviewers as well.
Comment #17
avpaderno