dr:classified
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
dr:classified [2010/09/17 20:24] – created fgm | dr:classified [2020/11/23 17:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 4: | Line 4: | ||
Download or clone from http:// | Download or clone from http:// | ||
+ | |||
+ | ===== Battle plan for multiple node types ===== | ||
+ | < | ||
+ | <div class=" | ||
+ | < | ||
+ | <p>As per #195494, the goal is to support multiple node types.</ | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | fields by a proper field</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | automatically be identified by the presence of an instance of the | ||
+ | expiration field</ | ||
+ | </ul> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | and < | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | </li> | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | fields.</ | ||
+ | < | ||
+ | the new custom view mode introduced in 7.3. With multiple node types, this | ||
+ | is no longer doable so we replace these lists by taxonomy-filtered views.</ | ||
+ | |||
+ | < | ||
+ | |||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | sub-category links, and breadcrumbs generation. This is likely to | ||
+ | involve attached views and/or new specific handlers.</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | |||
+ | < | ||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | </ul> | ||
+ | |||
+ | < | ||
+ | < | ||
+ | expires generation and update. This needs to be adapted for the additional | ||
+ | complexity of a field over an extra field. Existing node form hooks and | ||
+ | handlers must be replaced by field hooks since we no longer know which forms | ||
+ | to intercept.</ | ||
+ | |||
+ | < | ||
+ | <p>A number of users have expressed frustration at the lack of i18n support | ||
+ | in the module. Switching the extra fields to a field and the custom lists | ||
+ | to Views will help with this. New code should be i18n-compatible, | ||
+ | later changes can bring full i18n compliance</ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | increase towards 100% C0.</ | ||
+ | |||
+ | <ul> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | The move from an extra field to a normal field is in the right direction. Other significant | ||
+ | changes regard code placement outside the module file and the use of | ||
+ | autoloaded namespaced classes, one per file.</ | ||
+ | |||
+ | <ul> | ||
+ | < | ||
+ | methods</ | ||
+ | < | ||
+ | < | ||
+ | usable at the admin level by exposing it as a core action, typically for | ||
+ | the user or node entities</ | ||
+ | < | ||
+ | to apply PSR-0, or declare classes the D7 way, manually in the info file.</ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | | ||
+ | ===== Services provided by the module ===== | ||
+ | |||
+ | - 1 specific vocabulary: `classified_categories`, | ||
+ | - 1 specific node type: `classified` equipped with | ||
+ | - a taxonomy_term_reference field pointing to the module vocabulary | ||
+ | - a body field | ||
+ | - 3 blocks: | ||
+ | - recent ads (public) | ||
+ | - popular ads (public) | ||
+ | - ad stars (admin) | ||
+ | - 1 Context Condition plugin | ||
+ | - 1 CTools " | ||
+ | - 2 permissions | ||
+ | - `administer classified ads` | ||
+ | - `reset classified ads expiration` | ||
+ | - 2 extra fields | ||
+ | - `expires_fs`: | ||
+ | - `expires`: a display extra field formatting the expiration date for ad nodes | ||
+ | - 1 notifications submodule: send notifications | ||
+ | - at half-life | ||
+ | - before|on expiration | ||
+ | - before|on purge | ||
+ | - 3 drush commands | ||
+ | - `classified-purge` to purge expired nodes | ||
+ | - `classified-expire` to expire nodes | ||
+ | - `classified-notify` to send notifications | ||
+ | - 1 custom view mode for `node` | ||
+ | - 2 menu loaders | ||
+ | - notify kind | ||
+ | - taxonomy term, only accepting terms from the module vocabulary | ||
+ | - 3 user tokens | ||
+ | - `[classified-ads]` themed list of user ads | ||
+ | - `[classified-ads-plain]` raw list of user ads | ||
+ | - `[classified-ads-url]` url of a user's ads list | ||
+ | - 2 theme items | ||
+ | - `classified_admin_lifetimes` | ||
+ | - `classified_expires` for the `expires` extra field | ||
+ | - 1 field formatter for term_reference fields, linking to the per-term ad list instead of the default term page, with an optional link title | ||
+ | - node form logic | ||
+ | - handle the extra field | ||
+ | - provide fieldset-level access control for expiration type | ||
+ | - maxlength JS | ||
+ | - auto-hiding manual expiration date when irrelevant | ||
+ | - node access logic | ||
+ | - requirements logic | ||
+ | - detect incompatible older version | ||
+ | - detect missing Statistics module | ||
+ | - detect misconfigured Statistics module | ||
+ | - detect non-tree hierarchy in the module vocabulary | ||
+ | - taxonomy change logic for terms and vocabularies | ||
+ | - URL outbound rewriting logic to redirect term links to ad lists when applicable | ||
+ | - Views integration logic | ||
+ | - expose virtual fields: | ||
+ | - `expires`: field, sort, filter | ||
+ | - `purge`: field | ||
+ | - 1 field handler for `purge` | ||
+ | - default views logic scanning the `views/` folder, but no views provided | ||
+ | - configuration variables | ||
+ | - `classified-max-length` for the maxlength JS | ||
+ | - `classified-list-body` List display format | ||
+ | - `classified-edit-modr8` (obsolete) modr8 integration | ||
+ | - `classified-lifetime-default` default lifetime | ||
+ | - `classified-lifetime-< | ||
+ | - `classified-grace` grace delay before purge | ||
+ | - 100% S0 Simpletest coverage | ||
+ | - pages | ||
+ | - an overview page | ||
+ | - term pages listing ads and ad counts | ||
+ | - per-user ads profile tab page | ||
+ | - 7 advanced help pages | ||
+ | - custom CSS | ||
+ | - specific formatting for `expires` | ||
+ | - advanced help improvements | ||
+ | - ads list custom formats | ||
+ | |||
===== OK Paths ===== | ===== OK Paths ===== |
dr/classified.1284755059.txt.gz · Last modified: 2020/11/23 17:23 (external edit)