Andrew Dolgov
7ccb4e91ff
boolean handling changes which probably won't break everything
7 years ago
Andrew Dolgov
248c62a1cc
filters: fix limit/offset for test dialog
7 years ago
Andrew Dolgov
bf4a79eaa9
prefs: start PDO switchover
7 years ago
Andrew Dolgov
f594717d18
filters: use PDO
7 years ago
Andrew Dolgov
21295a52aa
labels: PDO
7 years ago
Andrew Dolgov
c2418a559b
pref-users: PDO
7 years ago
Andrew Dolgov
93ca6c95b8
pref-system: PDO
7 years ago
Andrew Dolgov
7039370368
pref-prefs: PDO
7 years ago
Andrew Dolgov
f8108cc28d
pluginhost: save_data() fixes
7 years ago
Andrew Dolgov
8af94f1292
pluginhost: use PDO
7 years ago
Andrew Dolgov
0500e14cc2
update_rss_feed: transaction lock article processing
7 years ago
Andrew Dolgov
0567016b40
rssutils: PDO
7 years ago
Andrew Dolgov
afcb105f4e
rssutils: start PDO switch
7 years ago
Andrew Dolgov
1d92297a96
dbupdater: use PDO
7 years ago
Andrew Dolgov
c949a9282e
OPML: use PDO; minor fixes
7 years ago
Andrew Dolgov
4102eb843f
sql logger: pdo
7 years ago
Andrew Dolgov
c1c08aed39
labels: PDO
7 years ago
Andrew Dolgov
fbe7cb0a48
rpc: switch to PDO
7 years ago
Andrew Dolgov
9652fa6b66
API: small fix
7 years ago
Andrew Dolgov
3467e1fd7c
api: switch to PDO
7 years ago
Andrew Dolgov
dd90eefae1
PDO: set unicode for mysql and other connection params
7 years ago
Andrew Dolgov
aee3f0e6d9
fix typo
7 years ago
Andrew Dolgov
7fc303e6ab
query feed headlines: fix limit/offset
7 years ago
Andrew Dolgov
cb13089af1
public: use PDO headlines result (2)
7 years ago
Andrew Dolgov
dc393a580b
public: use PDO headlines result
7 years ago
Andrew Dolgov
3623ebb1a1
feeds: handle escaping
7 years ago
Andrew Dolgov
c9b6ca8b70
feeds: remove escaping
7 years ago
Andrew Dolgov
b5791f11c5
queryfeedheadlines: PDOize (1)
7 years ago
Andrew Dolgov
29f1908e03
feeds: right before queryfeedheadlines()
7 years ago
Andrew Dolgov
cc9450c309
ccache, misc: fixes
...
feeds: start PDO transition
7 years ago
Andrew Dolgov
1271407eea
public: partial conversion to PDO, misc fixes
7 years ago
Andrew Dolgov
fbde19580c
db_prefs: PDO
7 years ago
Andrew Dolgov
abf94f00b4
digest: use PDO
7 years ago
Andrew Dolgov
9ead64f6d8
dlg: PDO
7 years ago
Andrew Dolgov
933ff559e6
ccache: PDO
7 years ago
Andrew Dolgov
a25ac0d7c8
counters: PDO
7 years ago
Andrew Dolgov
c9d5c26041
auth/base: PDO
...
functions: fix small pdo-related bug
7 years ago
Andrew Dolgov
2c57df75ff
article: remove db_escape..()
7 years ago
Andrew Dolgov
d0e73ed8ae
article: switch to PDO
7 years ago
Andrew Dolgov
2e46b434da
pdo: set warnings
7 years ago
Andrew Dolgov
c39ee27235
article: start pdo
7 years ago
Andrew Dolgov
bfc54b0369
Merge branch 'pdo-experimental' of git.fakecake.org:tt-rss into pdo-experimental
7 years ago
Andrew Dolgov
d9e60c0f68
Merge branch 'master' of git.fakecake.org:tt-rss into pdo-experimental
7 years ago
Andrew Dolgov
e50c8eaa4e
enforce unconditional requests every 6 hours even if server claims data is not modified
7 years ago
Andrew Dolgov
8adb3ec472
add some WIP pdo stuff
7 years ago
Andrew Dolgov
ca82bb03c8
rm db_stmt
7 years ago
Andrew Dolgov
99bda9cc12
add some starting pdo glue
7 years ago
Andrew Dolgov
9dd336a2c3
generate base css files using lessc
7 years ago
dim0x69
5395526444
add HOOK_UNSUBSCRIBE_FEED
7 years ago
Andrew Dolgov
2352c320c2
fix possible sql injection in public/forgotpass
7 years ago
Andrew Dolgov
9d930af9e1
fetch_file_contents: improve error handling
...
1. if request fails get error string from http response status line
2. do not override http error with possible CURL/php specific last error
3. fix silent php error generated while processing response headers to get last modified value
7 years ago
Andrew Dolgov
91f49ba17d
api, setArticleLabel: allow JSON booleans
7 years ago
fox
d320b55af9
Merge branch 'sort_title_date' of ggrandou/tt-rss into master
7 years ago
Gilles Grandou
f9ad33c2d8
allows favicons to be in Windows PC BMP format
7 years ago
Gilles Grandou
81d96c0dee
makes 'order by title' to sort by title and by ascending date
...
* this allows to chronologically browse all articles with the
same title.
7 years ago
Andrew Dolgov
8b73bd28d8
remove apache-specific x-sendfile stuff
...
implement a hook (HOOK_SEND_LOCAL_FILE) which plugins may use to send files
via httpd-specific implementation to increase performance typically on larger files
7 years ago
fox
b1d1bc901f
Merge branch 'checkbox-feed' of dxbi/tt-rss into master
7 years ago
Felix Eckhofer
cc50affb62
Add checkbox for authentication in edit feed dialog
...
This makes the UI more consistent with the "add feed" dialog and
prevents overzealous password-managers from leaking the login password.
7 years ago
Andrew Dolgov
51b521c326
fix batch feed editor using wrong SQL syntax when saving feed password
...
remove uses of auth_pass_encrypted in several other places
7 years ago
wn_
3476690cbf
Only require an array of basic info from 'HOOK_FEED_BASIC_INFO'.
...
Removes the need for the plugin to provide feed content.
Gives plugins a chance to provide 'title' and 'site_url' basic info.
Falls back to attempting retrieval+parsing of the fetch URL if needed.
7 years ago
wn_
bec5ba93e2
Add 'HOOK_FEED_BASIC_INFO' to enable plugins to provide basic feed info.
...
It's expected the plugin will return content parsable by FeedParser, which
will act as an interface to the basic feed info. In the case of a plugin
that also uses 'HOOK_FETCH_FEED', both might return the same content.
The hook signature was made somewhat similar to 'HOOK_FETCH_FEED'.
7 years ago
wn_
f3774b9d65
Use 'saveHTML' when generating HTML from a DOMDocument.
...
This primarily occurs when modifying article content. If 'saveXML' is
used following 'loadHTML' there is the possibility of strangeness, such
as a self-closing anchor tag.
Note that the DOMDocument used in 'classes/feeditem/atom.php' came from
'loadXML', but we use 'saveHTML' since we're returning HTML content.
7 years ago
Andrew Dolgov
153cb6d305
add support for http 304 not modified (no timestamp calculation bullshit like last time)
7 years ago
Andrew Dolgov
edefcec19d
filters/edit: properly parse feed-specific legacy format filter rules
7 years ago
Andrew Dolgov
ab8daa0389
use mysqli_set_charset() to set MYSQL_CHARSET
7 years ago
Andrew Dolgov
20d2195f13
rssutils: include comment count when calculating article hash
7 years ago
Andrew Dolgov
51f13e7736
get_all_labels: order by caption
7 years ago
Andrew Dolgov
5e78b0c253
do not base headlines label context submenu on feed tree labels category
7 years ago
Andrew Dolgov
be61f1c45c
filters dialog: do not break markup on long feed names
7 years ago
Andrew Dolgov
b2d42e960b
replace some usages of SELF_URL_PATH with get_self_url_prefix()
8 years ago
Andrew Dolgov
667d32fd26
remove obsolete forum plugin links
...
mention how to enable system plugins in the UI
8 years ago
Andrew Dolgov
7b994e4bec
filters: when adding rule select all feeds by default
8 years ago
Andrew Dolgov
57a1143c9d
dbupdater: fail if version file missing
8 years ago
Andrew Dolgov
02f3992a5a
Revert "Revert "filters: support matching on multiple feeds/categories""
...
This reverts commit f5d174bda9
.
8 years ago
Andrew Dolgov
f5d174bda9
Revert "filters: support matching on multiple feeds/categories"
...
This reverts commit 0bf7e007bb
.
8 years ago
Andrew Dolgov
e0f51d786f
Merge branch 'master' of git.fakecake.org:tt-rss
8 years ago
Andrew Dolgov
0bf7e007bb
filters: support matching on multiple feeds/categories
...
opml: update filter export/import for new format
8 years ago
Andrew Dolgov
c053b97697
pref/feeds: start user category ordering from 1
...
api, getFeeds: send subcategory order_id
8 years ago
Andrew Dolgov
e130b283a7
db prefs: ignore cache when preference requested for specified UID (in case cached value of a different profile is stored)
...
prefs: show (and set) enabled plugins for default profile only
8 years ago
Andrew Dolgov
93af11cb7a
update_daemon_common: do not escape feed_url twice, remove some comments and stuff
8 years ago
Andrew Dolgov
6fd0399694
tunables:
...
* add CACHE_MAX_DAYS as a tunable generic expiry interval for various cached files
* add some comments to tunables in functions.php
* rename _MIN_CACHE_FILE_SIZE to MIN_CACHE_FILE_SIZE
* respect MIN_CACHE_FILE_SIZE setting in a few more places where content is cached
8 years ago
Andrew Dolgov
e50a647916
add HOOK_FORMAT_ARTICLE & HOOK_FORMAT_ARTICLE_CDM
...
Feeds::format_headlines_list: add some comments for cdm article closing tags
8 years ago
Andrew Dolgov
9e381bc202
classes/Plugin: remove dbh & host fields; set init() and about() as abstract methods.
8 years ago
Andrew Dolgov
5b6ea1ef91
remove pubsubhubbub: dead
8 years ago
Andrew Dolgov
8f0a59f34a
share function: remove tt-rss prefix from page title
8 years ago
Andrew Dolgov
c114a2596f
move add_feed_url() to pref_feeds
8 years ago
Andrew Dolgov
4fd0790804
fix DAEMON_SLEEP_INTERVAL not being defined when used
...
enforce minimum 60 sec spawn/sleep interval in update processes
8 years ago
Andrew Dolgov
e6c886bf66
wrap rssfuncs into rssutils class
8 years ago
Andrew Dolgov
65af3b2cbb
move counter stuff to a separate class
8 years ago
Andrew Dolgov
40f4a7aa6b
feeditem_common: add get_element()
8 years ago
Andrew Dolgov
7c9b5a3fe4
move label stuff to Labels class
...
fix some unresolved functions
8 years ago
Andrew Dolgov
c2f0f24e4c
move digest stuff to Digest class
8 years ago
Andrew Dolgov
0086a89740
move some label stuff to labels.php
...
move getfeedcategory() to Feeds
8 years ago
Andrew Dolgov
4a0da0e5bf
move get_article_labels to Article
8 years ago
Andrew Dolgov
2ed0d6c433
move counter cache to a separate class
...
fix references to get_article_tags
8 years ago
Andrew Dolgov
aeb1abedb2
move a bunch of functions into Feeds/Article namespaces
...
+ static function catchupArticlesById($ids, $cmode, $owner_uid = false) {
+ static function getLastArticleId() {
+ static function queryFeedHeadlines($params) {
+ static function getParentCategories($cat, $owner_uid) {
+ static function getChildCategories($cat, $owner_uid) {
move the rest of functions2.php back to functions.php as it is of more manageable size, remove the former
8 years ago
Andrew Dolgov
a230bf88a9
move to Article:
...
+ static function purge_orphans($do_output = false) {
move to Feeds
+ static function getGlobalUnread($user_id = false) {
+ static function getCategoryTitle($cat_id) {
+ static function getLabelUnread($label_id, $owner_uid = false) {
8 years ago
Andrew Dolgov
86a8351ca2
move the following to Feeds:
...
+ static function catchup_feed($feed, $cat_view, $owner_uid = false, $mode = 'all', $search = false) {
+ static function getFeedArticles($feed, $is_cat = false, $unread_only = false,
+ static function subscribe_to_feed($url, $cat_id = 0,
+ static function getFeedIcon($id) {
+ static function getFeedTitle($id, $cat = false) {
+ static function getCategoryUnread($cat, $owner_uid = false) {
+ static function getCategoryChildrenUnread($cat, $owner_uid = false) {
8 years ago
Andrew Dolgov
7e5f8d9fb3
move the following to Article:
...
+ static function format_article_enclosures($id, $always_display_enclosures,
+ static function format_article($id, $mark_as_read = true, $zoom_mode = false, $owner_uid = false) {
+ static function get_article_tags($id, $owner_uid = 0, $tag_cache = false) {
+ static function format_tags_string($tags) {
+ static function format_article_labels($labels) {
+ static function format_article_note($id, $note, $allow_edit = true) {
+ static function get_article_enclosures($id) {
8 years ago
Andrew Dolgov
4122da0290
move getArticleFeed to Article
...
move print_label_select to controls
8 years ago
Andrew Dolgov
e60d5b0a84
move opml-specific get_feed_category to opml.php
8 years ago
Andrew Dolgov
3517d363d3
add api test for labels, api: fix setArticleLabel assign not handled correctly
8 years ago
Andrew Dolgov
891df34637
add some basic API unit tests
8 years ago
Andrew Dolgov
ea79a0e033
remove some redundant php closing tags
8 years ago
Andrew Dolgov
7b55001eee
fix various issues reported by static analysis
...
update gitlab-ci config
8 years ago
Andrew Dolgov
3c11159776
return result codes if DB connection or --debug-feed fails
8 years ago
Andrew Dolgov
337535416f
filter by search results while marking feed as read
8 years ago
Andrew Dolgov
9c3c0ace6b
rename cache images option label (rip translations)
8 years ago
Andrew Dolgov
41bead9baa
remove local file extensions and generalize some method names for cached media
...
file extensions may still be present in urls, but are ignored by the backend
MIGRATION (if you have any cached data worth keeping, not required):
in cache/images run "rename 's/\..*$//' *" i.e. strip file extensions
8 years ago
Andrew Dolgov
63f0ed3d9c
cdmClicked: do not use event.target.parents to figure out if clicked on a heading
8 years ago
Andrew Dolgov
270c0a00e5
improve JS error logging with additional stuff
8 years ago
Andrew Dolgov
1bfe1d7b31
simplify error handling
...
* less convoluted exception dialogs
* use window.onerror for the majority of exception catching/reporting
* remove most of now useless try/catch blocks
* report stacktrace instead of manually specified error locations
8 years ago
Andrew Dolgov
b835a52814
rework the way headlines menus identify calling row
8 years ago
Andrew Dolgov
5161460048
bind headlines menu to a selector to avoid remaking it unnecessarily
8 years ago
Andrew Dolgov
58210301e0
add HOOK_ENCLOSURE_ENTRY for af_zz_imgproxy
8 years ago
Jérémy DECOOL
ba2853caac
Prevent target='_blank' vulnerability on dynamic link
8 years ago
Andrew Dolgov
4daaf23491
allow user plugins to expose public methods out in a limited fashion
8 years ago
Andrew Dolgov
328118d12e
use print_hidden() for hidden dojo form fields
8 years ago
Andrew Dolgov
38b3998bbc
af_zz_imgproxy: use inline disposition, misc updates
8 years ago
Andrew Dolgov
9c7ebaa08c
cached_image: remove unnecessary basename()
8 years ago
Andrew Dolgov
0442cbb6c1
image cache: send files as content-disposition: attachment; add .png suffix to image urls
8 years ago
Andrew Dolgov
24c7e4132d
subscribe dialog: do not report errors via alert()
...
fetch_file_contents: reset all globals on start, return error message body when not using curl
subscribe_to_feed: report if cloudflare is in the error message
8 years ago
Andrew Dolgov
22387de225
preferences: set themes dropdown to default if selected theme is missing
8 years ago
Andrew Dolgov
e432b8fbe2
implement cache-busting for default theme.css
...
night theme: small fixes
8 years ago
Andrew Dolgov
cb3f877303
reference pubsubhubbub classes using their namespace
8 years ago
Andrew Dolgov
ad326dbf78
unpackVisibleHeadlines: do not iterate over all RROWs all the time
8 years ago
Andrew Dolgov
967f0619c7
force ngettext() count argument type to string
8 years ago
Andrew Dolgov
84012df5cd
prefs: auto expand feed tree
8 years ago
Andrew Dolgov
6b06a609af
headlines toolbar: move selection links into the dropdown
8 years ago
Andrew Dolgov
6293d3717c
add toggle_sidebar plugin, remove obsolete toggle button
...
add PluginHost::HOOK_MAIN_TOOLBAR_BUTTON
8 years ago
Andrew Dolgov
17a8e61d2a
deprecate encrypted feed passwords because mcrypt is getting removed from php 7.1
...
1. transparent decryption for existing installs stays for the time being
2. new passwords are not going to be encrypted even if FEED_CRYPT_KEY is defined
3. added update.php --decrypt-feeds to bulk decrypt existing encrypted passwords
4. updated install to not auto-generate crypt key
5. added warning to config.php-dist
8 years ago
Andrew Dolgov
8b8568e9a3
edit tags dialog: fix height
8 years ago
Andrew Dolgov
eee818c46a
ttrssmailer: include phpmailer's smtp class
8 years ago
Andrew Dolgov
e4071d2544
feedparser: fix syntax error
8 years ago
Andrew Dolgov
4a5490dc58
feedparser: fix normalize_encoding() not working properly for some encodings
8 years ago
Andrew Dolgov
cde8272205
parser: only try to convert encoding if mbstring actually supports it
8 years ago
John Brayton
f1b3b3f330
Add feed_id to subscribeToFeed response when the code is 1 or 0.
...
Set the API_LEVEL to 14.
8 years ago
Andrew Dolgov
e54eb40a8c
remove support for legacy mysql driver
8 years ago
Andrew Dolgov
a005ebb693
remove classes/db/api.php (shouldn't be there)
8 years ago
Heiko Adams
2842cf6e45
Merge branch 'master' into german-translation
8 years ago
Andrew Dolgov
a84fb943b4
pre-users: disallow renaming admin user
8 years ago
Andrew Dolgov
1818614949
api: fix article guid not being passed to render article hook
8 years ago
Andrew Dolgov
cfc2fe50cb
fix sql error when subscribing to a feed using feed archive
9 years ago
Heiko Adams
94e3a9ab44
Merge with master
9 years ago
Andrew Dolgov
c9a5903bcc
disable autocomplete in subscription dialog
9 years ago
Andrew Dolgov
ec21abb85d
update autocomplete to "new-password"
9 years ago
Andrew Dolgov
fa0e0ef315
set feed editor password fields to autocomplete=off
9 years ago
Andrew Dolgov
aa4ab8e0bc
remove .htaccess files
9 years ago
Andrew Dolgov
2f1a29d9c8
generate_syndicated_feed: sanitize content excerpt
9 years ago
Andrew Dolgov
977cea1438
actually check for failures properly in the dbupdater
9 years ago
Andrew Dolgov
79c891a8b7
set smallish timeout on update check, exclude update checking on initial load
9 years ago
Andrew Dolgov
b6b5554db4
normalize some html5 custom attributes
9 years ago
Andrew Dolgov
2d052e42b5
getLoadedArticleIds: consider visible rows only
...
catchupFeedInGroup: hide articles when catching up, with caveats
9 years ago
Andrew Dolgov
9232283815
pass feed information to hook_article_export_feed
9 years ago
Andrew Dolgov
399678a14e
add PluginHost.HOOK_ARTICLE_EXPORT_FEED
9 years ago
Andrew Dolgov
4f100ece19
pref_filters: sort rules by reg_exp when displaying index
9 years ago
Andrew Dolgov
cc43e19b44
error handler: do not log last query, truncate error message to a smaller length
9 years ago
Andrew Dolgov
3261dbfa21
generate_syndicated_feed: pass article id to sanitize()
9 years ago
Andrew Dolgov
d9de136c39
inline feed update: set feed as needing update if open_basedir is set + plugins need curl
9 years ago
Andrew Dolgov
67f3e3f942
pref-labels: remove obsolete searching code
9 years ago
Andrew Dolgov
9def554082
pref-feeds: allow searching by feed_url
9 years ago
Andrew Dolgov
a5556c2471
fix item_id not being properly escaped in pref_feeds::process_category_order() (possible sql injection)
9 years ago
Andrew Dolgov
7af2e79578
create_published_article: only use readability if enabled in the plugin
9 years ago
Andrew Dolgov
666cd33360
enable support for readability (if af_readability is enabled) in shareanything bookmarklet
9 years ago
Andrew Dolgov
71b75bb7fa
fix multiple issues with archived feeds
9 years ago
Andrew Dolgov
41245888f1
only stop inline feed updates with open_basedir enabled if there are any plugins that require CURL enabled
...
add plugin->flags() returning array with additional plugin information, currently only CURL requirement (optional)
9 years ago
Andrew Dolgov
29c92d7b08
prevent frontend updating of feeds on view if open_basedir is set to prevent plugins potentially not working correctly (i.e. if backend system has open_basedir disabled)
9 years ago
Andrew Dolgov
7d1e15c396
parser: properly support tag subtrees instead of text content for article content
9 years ago
Andrew Dolgov
d2bb392bae
Revert "parser: use node->c14n() instead of expecting html in nodeValue"
...
This reverts commit 1383514ad9
.
9 years ago
Andrew Dolgov
1383514ad9
parser: use node->c14n() instead of expecting html in nodeValue
9 years ago
Andrew Dolgov
312742db6e
updates: auto-disable CURL if open_basedir is enabled, notify possible issues w/ plugins
9 years ago
Andrew Dolgov
5bdcb8fd78
remove option ALLOW_DUPLICATE_POSTS as confusing/useless
9 years ago
Andrew Dolgov
9b736a20b3
do not automatically call cleanup_tags() in housekeeping tasks
9 years ago
Andrew Dolgov
f61f2a2699
format_headlines_list: fix pg_num_rows() called incorrectly when firstid check failed
9 years ago
Andrew Dolgov
b8619f8db0
store formatted backtrace to sql log
9 years ago
Andrew Dolgov
1bd552ee31
compat patches for php7
9 years ago
Andrew Dolgov
475d762872
logger: record last query before logged error
9 years ago
Andrew Dolgov
154f14d01b
filters: do not strip_tags() on regexps
9 years ago
JustAMacUser
73c77ab0a5
Add optional (default: true), boolean "sanitize" parameter to API::getArticle() method.
9 years ago
Andrew Dolgov
19e47ad60b
queryFeedHeadlines: don't check first_id when sorting by oldest first
9 years ago
Andrew Dolgov
583f163f40
don't init plugins when loading everything to make a list, duh
9 years ago
Andrew Dolgov
86d07d367c
rpc, setpref: properly save settings to active profile
9 years ago
Andrew Dolgov
77e8100669
add date suffixes to opml & import_export generated files
9 years ago
Andrew Dolgov
9a35ed6709
disable filter test result highlighting for the time being
9 years ago
Andrew Dolgov
94b8ce6cec
queryfeedheadlines: remove disable_offsets hack
9 years ago
Andrew Dolgov
dbeef0ca67
filter preview: remove unnecessary checkbox
9 years ago
Andrew Dolgov
f48f292d2b
tweak filter preview layout a bit; allow previewing matched articles in a popup
9 years ago
Andrew Dolgov
261226a3a5
mostly implement async filter test dialog
9 years ago
Andrew Dolgov
a007c18dff
wip: filter async testing
9 years ago
Andrew Dolgov
e17079dcef
make disabled filter rules easier to discern
...
show if filter set match_any_rule on the overview
9 years ago
Andrew Dolgov
73dfda1da6
various minor style updates, add danger buttons
9 years ago
Andrew Dolgov
dcbe36b2a2
fix some remaining old-style viewfeed() calls
9 years ago
Andrew Dolgov
d98779972d
tabbed feed editor
9 years ago
Andrew Dolgov
bf9cc9ad95
combine user edit & user details
9 years ago
Andrew Dolgov
f232aa5a34
remove num_articles from main pref_users query
9 years ago
Andrew Dolgov
f9c1f8b0d4
pref-feeds: check for inactive feeds asynchronously
9 years ago
Andrew Dolgov
1edff0d439
user manager: show stored feeds/articles
9 years ago
Andrew Dolgov
b028da0a2d
display lack of filter plugin actions properly
9 years ago
Andrew Dolgov
be2cfc1fff
Merge branch 'master' of git.fakecake.org:tt-rss
9 years ago
Andrew Dolgov
90da4ada66
move attachments back to cdm content
9 years ago