From 36375b226ce206dbdb1c3685f698edea23c09829 Mon Sep 17 00:00:00 2001 From: undagiga Date: Sat, 1 Jan 2011 16:19:23 +0800 Subject: [PATCH 01/24] Changes by Undagiga to add selected IPTC fields --- .../helpers/about_this_photo_block.php | 23 +++++++++- 3.1/modules/about_this_photo/module.info | 2 +- .../views/about_this_photo.html.php | 45 +++++++++++++------ 3 files changed, 53 insertions(+), 17 deletions(-) diff --git a/3.1/modules/about_this_photo/helpers/about_this_photo_block.php b/3.1/modules/about_this_photo/helpers/about_this_photo_block.php index c1adb174..86869844 100644 --- a/3.1/modules/about_this_photo/helpers/about_this_photo_block.php +++ b/3.1/modules/about_this_photo/helpers/about_this_photo_block.php @@ -27,6 +27,10 @@ class about_this_photo_block_Core { $block = new Block(); switch ($block_id) { case "simple": + $item = $theme->item; + if ((!$item) or (!$item->is_photo())) { + return ""; + } $block->css_id = "g-about-this-photo"; $block->title = t("About this photo"); $block->content = new View("about_this_photo.html"); @@ -37,11 +41,25 @@ class about_this_photo_block_Core { if ($exif->loaded()) { $exif = unserialize($exif->data); $timestamp = strtotime($exif["DateTime"]); - $block->content->date = gallery::date($timestamp); + //$block->content->date = gallery::date($timestamp); + $block->content->date = date('D j M Y', $timestamp); $block->content->time = gallery::time($timestamp); } } + $block->content->vcount = $theme->item()->view_count; + + // IPTC - copied more or less from iptc.php + if (module::is_active("iptc")) { + $record = ORM::factory("iptc_record")->where("item_id", "=", $theme->item()->id)->find(); + if ($record->loaded()) { + $record = unserialize($record->data); + $block->content->source = $record["Source"]; + $block->content->caption = $record["Caption"]; + + } + } + if (module::is_active("tag")) { $block->content->tags = tag::item_tags($theme->item()); } @@ -49,4 +67,5 @@ class about_this_photo_block_Core { } return $block; } -} \ No newline at end of file +} + diff --git a/3.1/modules/about_this_photo/module.info b/3.1/modules/about_this_photo/module.info index 6943685e..632c0f05 100644 --- a/3.1/modules/about_this_photo/module.info +++ b/3.1/modules/about_this_photo/module.info @@ -1,3 +1,3 @@ name = "About this Photo" description = "Show some simple, specific and useful info about a given photo" -version = 1 +version = 2 diff --git a/3.1/modules/about_this_photo/views/about_this_photo.html.php b/3.1/modules/about_this_photo/views/about_this_photo.html.php index aa91c578..45db0274 100644 --- a/3.1/modules/about_this_photo/views/about_this_photo.html.php +++ b/3.1/modules/about_this_photo/views/about_this_photo.html.php @@ -1,17 +1,34 @@ - +
+ + From 668a453be4f858018de0c8a368d4251fabba08f6 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Mon, 3 Jan 2011 12:31:13 -0800 Subject: [PATCH 02/24] Copy 3.1 about_this_photo changes by undagiga over to 3.0 version --- .../helpers/about_this_photo_block.php | 23 +++++++++- 3.0/modules/about_this_photo/module.info | 2 +- .../views/about_this_photo.html.php | 45 +++++++++++++------ 3 files changed, 53 insertions(+), 17 deletions(-) diff --git a/3.0/modules/about_this_photo/helpers/about_this_photo_block.php b/3.0/modules/about_this_photo/helpers/about_this_photo_block.php index c1adb174..86869844 100644 --- a/3.0/modules/about_this_photo/helpers/about_this_photo_block.php +++ b/3.0/modules/about_this_photo/helpers/about_this_photo_block.php @@ -27,6 +27,10 @@ class about_this_photo_block_Core { $block = new Block(); switch ($block_id) { case "simple": + $item = $theme->item; + if ((!$item) or (!$item->is_photo())) { + return ""; + } $block->css_id = "g-about-this-photo"; $block->title = t("About this photo"); $block->content = new View("about_this_photo.html"); @@ -37,11 +41,25 @@ class about_this_photo_block_Core { if ($exif->loaded()) { $exif = unserialize($exif->data); $timestamp = strtotime($exif["DateTime"]); - $block->content->date = gallery::date($timestamp); + //$block->content->date = gallery::date($timestamp); + $block->content->date = date('D j M Y', $timestamp); $block->content->time = gallery::time($timestamp); } } + $block->content->vcount = $theme->item()->view_count; + + // IPTC - copied more or less from iptc.php + if (module::is_active("iptc")) { + $record = ORM::factory("iptc_record")->where("item_id", "=", $theme->item()->id)->find(); + if ($record->loaded()) { + $record = unserialize($record->data); + $block->content->source = $record["Source"]; + $block->content->caption = $record["Caption"]; + + } + } + if (module::is_active("tag")) { $block->content->tags = tag::item_tags($theme->item()); } @@ -49,4 +67,5 @@ class about_this_photo_block_Core { } return $block; } -} \ No newline at end of file +} + diff --git a/3.0/modules/about_this_photo/module.info b/3.0/modules/about_this_photo/module.info index 6943685e..632c0f05 100644 --- a/3.0/modules/about_this_photo/module.info +++ b/3.0/modules/about_this_photo/module.info @@ -1,3 +1,3 @@ name = "About this Photo" description = "Show some simple, specific and useful info about a given photo" -version = 1 +version = 2 diff --git a/3.0/modules/about_this_photo/views/about_this_photo.html.php b/3.0/modules/about_this_photo/views/about_this_photo.html.php index aa91c578..45db0274 100644 --- a/3.0/modules/about_this_photo/views/about_this_photo.html.php +++ b/3.0/modules/about_this_photo/views/about_this_photo.html.php @@ -1,17 +1,34 @@ - +
+ + From 6383a1c0750b0b260341a234d67df4a50e8ae20a Mon Sep 17 00:00:00 2001 From: Beckett Madden-Woods Date: Tue, 4 Jan 2011 04:26:28 +0800 Subject: [PATCH 03/24] Add tag support to captionator module. --- .../captionator/controllers/captionator.php | 23 +++++++++++++++++++ .../views/captionator_dialog.html.php | 12 ++++++++++ .../captionator/controllers/captionator.php | 23 +++++++++++++++++++ .../views/captionator_dialog.html.php | 12 ++++++++++ 4 files changed, 70 insertions(+) diff --git a/3.0/modules/captionator/controllers/captionator.php b/3.0/modules/captionator/controllers/captionator.php index 007ee86f..231f4248 100644 --- a/3.0/modules/captionator/controllers/captionator.php +++ b/3.0/modules/captionator/controllers/captionator.php @@ -30,6 +30,18 @@ class Captionator_Controller extends Controller { $v = new Theme_View("page.html", "collection", "captionator"); $v->content = new View("captionator_dialog.html"); $v->content->album = $album; + $v->content->enable_tags = module::is_active("tag"); + if ($v->content->enable_tags) { + $v->content->tags = array(); + foreach ($album->viewable()->children() as $child) { + $item = ORM::factory("item", $child->id); + $tag_names = array(); + foreach (tag::item_tags($item) as $tag) { + $tag_names[] = $tag->name; + } + $v->content->tags[$child->id] = implode(", ", $tag_names); + } + } print $v; } @@ -42,12 +54,23 @@ class Captionator_Controller extends Controller { if (Input::instance()->post("save")) { $titles = Input::instance()->post("title"); $descriptions = Input::instance()->post("description"); + $tags = Input::instance()->post("tags"); + $enable_tags = module::is_active("tag"); foreach (array_keys($titles) as $id) { $item = ORM::factory("item", $id); if ($item->loaded() && access::can("edit", $item)) { $item->title = $titles[$id]; $item->description = $descriptions[$id]; $item->save(); + if ($enable_tags) { + tag::clear_all($item); + foreach (explode(",", $tags[$id]) as $tag_name) { + if ($tag_name) { + tag::add($item, trim($tag_name)); + } + } + tag::compact(); + } } } message::success(t("Captions saved")); diff --git a/3.0/modules/captionator/views/captionator_dialog.html.php b/3.0/modules/captionator/views/captionator_dialog.html.php index b74be58d..317873ee 100644 --- a/3.0/modules/captionator/views/captionator_dialog.html.php +++ b/3.0/modules/captionator/views/captionator_dialog.html.php @@ -1,5 +1,11 @@
+
id}") ?>" method="post" id="g-captionator-form">
@@ -23,6 +29,12 @@ + +
  • + + +
  • + diff --git a/3.1/modules/captionator/controllers/captionator.php b/3.1/modules/captionator/controllers/captionator.php index 007ee86f..231f4248 100644 --- a/3.1/modules/captionator/controllers/captionator.php +++ b/3.1/modules/captionator/controllers/captionator.php @@ -30,6 +30,18 @@ class Captionator_Controller extends Controller { $v = new Theme_View("page.html", "collection", "captionator"); $v->content = new View("captionator_dialog.html"); $v->content->album = $album; + $v->content->enable_tags = module::is_active("tag"); + if ($v->content->enable_tags) { + $v->content->tags = array(); + foreach ($album->viewable()->children() as $child) { + $item = ORM::factory("item", $child->id); + $tag_names = array(); + foreach (tag::item_tags($item) as $tag) { + $tag_names[] = $tag->name; + } + $v->content->tags[$child->id] = implode(", ", $tag_names); + } + } print $v; } @@ -42,12 +54,23 @@ class Captionator_Controller extends Controller { if (Input::instance()->post("save")) { $titles = Input::instance()->post("title"); $descriptions = Input::instance()->post("description"); + $tags = Input::instance()->post("tags"); + $enable_tags = module::is_active("tag"); foreach (array_keys($titles) as $id) { $item = ORM::factory("item", $id); if ($item->loaded() && access::can("edit", $item)) { $item->title = $titles[$id]; $item->description = $descriptions[$id]; $item->save(); + if ($enable_tags) { + tag::clear_all($item); + foreach (explode(",", $tags[$id]) as $tag_name) { + if ($tag_name) { + tag::add($item, trim($tag_name)); + } + } + tag::compact(); + } } } message::success(t("Captions saved")); diff --git a/3.1/modules/captionator/views/captionator_dialog.html.php b/3.1/modules/captionator/views/captionator_dialog.html.php index b74be58d..317873ee 100644 --- a/3.1/modules/captionator/views/captionator_dialog.html.php +++ b/3.1/modules/captionator/views/captionator_dialog.html.php @@ -1,5 +1,11 @@
    + id}") ?>" method="post" id="g-captionator-form">
    @@ -23,6 +29,12 @@ + +
  • + + +
  • + From 7aec401592cf7f5abb28add591f7fd82858292ab Mon Sep 17 00:00:00 2001 From: pez252 Date: Mon, 3 Jan 2011 00:43:36 +0800 Subject: [PATCH 04/24] Initial commit of star module. No changes since 11 Dec 2010 forum post. --- 3.0/modules/star/controllers/admin_star.php | 52 ++++++ 3.0/modules/star/controllers/display.php | 94 ++++++++++ 3.0/modules/star/helpers/MY_item.php | 34 ++++ 3.0/modules/star/helpers/star.php | 163 ++++++++++++++++++ 3.0/modules/star/helpers/star_block.php | 51 ++++++ 3.0/modules/star/helpers/star_event.php | 91 ++++++++++ 3.0/modules/star/helpers/star_installer.php | 43 +++++ 3.0/modules/star/helpers/star_theme.php | 23 +++ 3.0/modules/star/models/starred_item.php | 24 +++ 3.0/modules/star/models/starred_only_user.php | 24 +++ 3.0/modules/star/module.info | 3 + 3.0/modules/star/views/admin_star.html.php | 7 + 3.0/modules/star/views/star_block.html.php | 141 +++++++++++++++ 13 files changed, 750 insertions(+) create mode 100644 3.0/modules/star/controllers/admin_star.php create mode 100644 3.0/modules/star/controllers/display.php create mode 100644 3.0/modules/star/helpers/MY_item.php create mode 100644 3.0/modules/star/helpers/star.php create mode 100644 3.0/modules/star/helpers/star_block.php create mode 100644 3.0/modules/star/helpers/star_event.php create mode 100644 3.0/modules/star/helpers/star_installer.php create mode 100755 3.0/modules/star/helpers/star_theme.php create mode 100644 3.0/modules/star/models/starred_item.php create mode 100644 3.0/modules/star/models/starred_only_user.php create mode 100644 3.0/modules/star/module.info create mode 100644 3.0/modules/star/views/admin_star.html.php create mode 100644 3.0/modules/star/views/star_block.html.php diff --git a/3.0/modules/star/controllers/admin_star.php b/3.0/modules/star/controllers/admin_star.php new file mode 100644 index 00000000..983618f2 --- /dev/null +++ b/3.0/modules/star/controllers/admin_star.php @@ -0,0 +1,52 @@ +page_title = t("Star settings"); + $view->content = new View("admin_star.html"); + $view->content->form = $this->_get_admin_form(); + $view->content->title = $view->page_title; + print $view; + } + + public function save() { + access::verify_csrf(); + $form = $this->_get_admin_form(); + $form->validate(); + module::set_var("star", "show", + $form->show->value); + message::success(t("Star settings updated")); + url::redirect("admin/star"); + } + + private function _get_admin_form() { + $form = new Forge("admin/star/save", "", "post", + array("id" => "g-star-admin-form")); + $form->dropdown("show") + ->label(t("Default to showing...")) + ->options(array(0 => "All",1 => "Starred")) + ->selected(module::get_var("star", "show")); + $form->submit("save")->value(t("Save")); + return $form; + } +} diff --git a/3.0/modules/star/controllers/display.php b/3.0/modules/star/controllers/display.php new file mode 100644 index 00000000..cf2fe805 --- /dev/null +++ b/3.0/modules/star/controllers/display.php @@ -0,0 +1,94 @@ + %title item", array("title" => html::purify($item->title))); + + $this->_check_star_permissions($item); + star::star($item); + message::success($msg); + + json::reply(array("result" => "success", "reload" => 1)); + } + + /** + * Allows the given item to be displayed again. + * + * @param int $id the item id + */ + public function unstar($id) { + $item = model_cache::get("item", $id); + $msg = t("Un-starred %title item", array("title" => html::purify($item->title))); + + $this->_check_star_permissions($item); + star::unstar($item); + message::success($msg); + + json::reply(array("result" => "success", "reload" => 1)); + } + + public function star_only_on() { + //$item = model_cache::get("item", $id); + access::verify_csrf(); + $msg = t("Showing starred items."); + + //$this->_check_star_permissions($item); + star::star_only_on(); + message::success($msg); + + json::reply(array("result" => "success", "reload" => 1)); + } + +public function star_only_off() { + //$item = model_cache::get("item", $id); + access::verify_csrf(); + $msg = t("Showing all items."); + + //$this->_check_star_permissions($item); + star::star_only_off(); + message::success($msg); + + json::reply(array("result" => "success", "reload" => 1)); + } + + /** + * Checks whether the given object can be starred by the active user. + * + * @param Item_Model $item the item + */ + private function _check_star_permissions(Item_Model $item) { + access::verify_csrf(); + + access::required("view", $item); + access::required("edit", $item); + + if (!star::can_star()) { + access::forbidden(); + } + } +} diff --git a/3.0/modules/star/helpers/MY_item.php b/3.0/modules/star/helpers/MY_item.php new file mode 100644 index 00000000..281ea650 --- /dev/null +++ b/3.0/modules/star/helpers/MY_item.php @@ -0,0 +1,34 @@ +join("starred_items", "items.id", "starred_items.item_id", "LEFT OUTER") + ->and_where("starred_items.item_id", "IS", TRUE); + } + + return $model; + } +} diff --git a/3.0/modules/star/helpers/star.php b/3.0/modules/star/helpers/star.php new file mode 100644 index 00000000..db9dc3a1 --- /dev/null +++ b/3.0/modules/star/helpers/star.php @@ -0,0 +1,163 @@ +select_list("id", "name"); + // return array_merge(array(self::NONE => t("Nobody")), $options); + // } + + /** + * Returns the starred_item model related to the given item. + * + * There is an attempt to fetch the model from the database through the model + * cache. If it fails, a new unsaved model is created. + * + * @param Item_Model $item the item + * @return Starred_Item_Model the related starred_item model + */ + static function get_starred_item_model(Item_Model $item) { + try { + $model = model_cache::get("item", $id); + } + catch (Exception $e) { + $model = ORM::factory("starred_item"); + $model->item_id = $item->id; + $model->validate(); + } + + return $model; + } + + static function get_star_user_model() { + $model = ORM::factory("starred_only_user"); + $model->user_id = identity::active_user()->id; + $model->validate(); + return $model; + } + + /** + * Returns whether the given item can be starred. + * + * @param Item_Model $item the item + * @return bool + */ + static function can_be_starred(Item_Model $item) { + if (empty($item)) { + return false; + } + + //if ($item->type == "album") { + // return false; + //} + + return true; + } + + /** + * Returns whether the given item is starred. + * + * @param Item_Model $item the item + * @return bool + */ + static function is_starred(Item_Model $item) { + $model = self::get_starred_item_model($item); + return $model->loaded(); + } + + /** + * Stars the given item. + * + * @param Item_Model $item the item to star + */ + static function star(Item_Model $item) { + if (self::is_starred($item)) { + return; + } + + $starred_item = self::get_starred_item_model($item); + $starred_item->save(); + } + + /** + * Allows the given item to be unstarred. + * + * @param Item_Model $item the item to display + */ + static function unstar(Item_Model $item) { + if (!self::is_starred($item)) { + return; + } + + $starred_item = self::get_starred_item_model($item); + $starred_item->delete(); + } + + static function star_only_on() { + if (self::show_only_starred_items()) { + return; + } + + $star_user = self::get_star_user_model(); + $star_user->save(); + } + static function star_only_off() { + if (!self::show_only_starred_items()) { + return; + } + + $star_user = self::get_star_user_model(); + $star_user->delete(); + } + + /** + * Returns whether the active user shows only starred items. + * + * @return bool + */ + static function show_only_starred_items() { + $model = self::get_star_user_model(); + return $model->loaded(); + } + + /** + * Returns whether the active user can star any items. + * + * @return bool + */ + static function can_star() { + if (identity::active_user()->admin) { + return true; + } + + return false; + } +} diff --git a/3.0/modules/star/helpers/star_block.php b/3.0/modules/star/helpers/star_block.php new file mode 100644 index 00000000..12407900 --- /dev/null +++ b/3.0/modules/star/helpers/star_block.php @@ -0,0 +1,51 @@ + t("Star Item")); + } + + static function get($block_id, $theme) { + $item = $theme->item; + switch ($block_id) { + case "star": + + // If Item is movie then... + //if ($item && $item->is_movie() && access::can("view_full", $item)) { + $block = new Block(); + $block->css_id = "g-star-options"; + $block->title = t("Star"); + $block->content = new View("star_block.html"); + return $block; + //} + + // If Item is photo then... + //if ($item && $item->is_photo() && access::can("view_full", $item)) { + // $block = new Block(); + // $block->css_id = "g-download-fullsize"; + // $block->title = t("Download Photo"); + // $block->content = new View("downloadfullsize_block.html"); + // return $block; + //} + } + return ""; + } + +} diff --git a/3.0/modules/star/helpers/star_event.php b/3.0/modules/star/helpers/star_event.php new file mode 100644 index 00000000..e033c41a --- /dev/null +++ b/3.0/modules/star/helpers/star_event.php @@ -0,0 +1,91 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->label(t("Star")) + ->url(url::site("admin/star"))); + } + + static function site_menu($menu, $theme, $item_css_selector) { + $item = $theme->item(); + + if (!empty($item) && star::can_be_starred($item) && star::can_star($item)) { + $csrf = access::csrf_token(); + $link = self::_get_star_link_data($item); + + $menu->get("options_menu") + ->append(Menu::factory("ajax_link") + ->label($link["text"]) + ->ajax_handler("function(data) { window.location.reload() }") + ->url(url::site("display/".$link["action"]."/$item->id?csrf=$csrf"))); + } + } + + static function context_menu($menu, $theme, $item, $thumb_css_selector) { + if (star::can_be_starred($item) && star::can_star($item)) { + $csrf = access::csrf_token(); + $link = self::_get_star_link_data($item); + + $menu + ->get("options_menu") + ->append(Menu::factory("ajax_link") + ->label($link["text"]) + ->ajax_handler("function(data) { window.location.reload() }") + ->url(url::site("display/".$link["action"]."/$item->id?csrf=$csrf"))); + } + } + + /** + * Returns some data used to create a star link. + * + * @param Item_Model $item the related item + * @return array + */ + private static function _get_star_link_data(Item_Model $item) { + if (star::is_starred($item)) { + $action = "unstar"; + $action_label = "Unstar"; + } + else { + $action = "star"; + $action_label = "Star"; + } + + switch ($item->type) { + case "movie": + $item_type_label = "movie"; + break; + case "album": + $item_type_label = "album"; + break; + default: + $item_type_label = "photo"; + break; + } + + $label = t("$action_label this $item_type_label"); + + return array("text" => $label, "action" => $action); + } +} diff --git a/3.0/modules/star/helpers/star_installer.php b/3.0/modules/star/helpers/star_installer.php new file mode 100644 index 00000000..ab260c67 --- /dev/null +++ b/3.0/modules/star/helpers/star_installer.php @@ -0,0 +1,43 @@ +query("CREATE TABLE IF NOT EXISTS {starred_items} ( + `item_id` int(9) NOT NULL, + PRIMARY KEY (`item_id`)) + DEFAULT CHARSET=utf8;"); + $db->query("CREATE TABLE IF NOT EXISTS {starred_only_users} ( + `user_id` int(9) NOT NULL, + PRIMARY KEY (`user_id`)) + DEFAULT CHARSET=utf8;"); + + module::set_var("star", "access_permissions", 0); + module::set_version("star", 1); + } + + static function uninstall() { + $db = Database::instance(); + $db->query("DROP TABLE IF EXISTS {starred_items};"); + $db->query("DROP TABLE IF EXISTS {starred_only_users};"); + } +} diff --git a/3.0/modules/star/helpers/star_theme.php b/3.0/modules/star/helpers/star_theme.php new file mode 100755 index 00000000..3a0a345e --- /dev/null +++ b/3.0/modules/star/helpers/star_theme.php @@ -0,0 +1,23 @@ + +
    +

    +
    + +
    +
    diff --git a/3.0/modules/star/views/star_block.html.php b/3.0/modules/star/views/star_block.html.php new file mode 100644 index 00000000..b76c5470 --- /dev/null +++ b/3.0/modules/star/views/star_block.html.php @@ -0,0 +1,141 @@ + + +item->is_photo()) { ?> +item)) { ?> + + + + + + + + +item->is_photo()) { ?> +item)) { ?> + + + + + + + + + +item)) { ?> + + + + + + + + + + + +
    + + + +" + class="g-button ui-icon-left ui-state-default ui-corner-all"> +
    + + + + +
    + + + +" + class="g-button ui-icon-left ui-state-default ui-corner-all"> +
    + + + + + + + + From 7fafd71fb4ef7f0ef3b18b23a2ddeb08033ff34a Mon Sep 17 00:00:00 2001 From: colings Date: Sun, 2 Jan 2011 01:26:39 +0800 Subject: [PATCH 05/24] Initial add of Picasa Faces module --- .../helpers/picasa_faces_event.php | 22 ++ .../helpers/picasa_faces_installer.php | 50 +++ .../helpers/picasa_faces_task.php | 312 +++++++++++++++++ .../helpers/picasa_faces_task.php.bak | 313 ++++++++++++++++++ .../picasa_faces/models/picasa_face.php | 5 + 3.0/modules/picasa_faces/module.info | 3 + 6 files changed, 705 insertions(+) create mode 100644 3.0/modules/picasa_faces/helpers/picasa_faces_event.php create mode 100644 3.0/modules/picasa_faces/helpers/picasa_faces_installer.php create mode 100644 3.0/modules/picasa_faces/helpers/picasa_faces_task.php create mode 100644 3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak create mode 100644 3.0/modules/picasa_faces/models/picasa_face.php create mode 100644 3.0/modules/picasa_faces/module.info diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_event.php b/3.0/modules/picasa_faces/helpers/picasa_faces_event.php new file mode 100644 index 00000000..29886370 --- /dev/null +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_event.php @@ -0,0 +1,22 @@ +deactivate)) + { + site_status::warning( + t("The Picasa Faces module requires the Photo Annotation module. " . + "Activate the Photo Annotation module now", + array("url" => url::site("admin/modules"))), + "picasa_faces_needs_photoannotation"); + } + else + { + site_status::clear("picasa_faces_needs_photoannotation"); + } + } +} diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php b/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php new file mode 100644 index 00000000..571626f3 --- /dev/null +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php @@ -0,0 +1,50 @@ +query( + "CREATE TABLE IF NOT EXISTS `picasa_faces` ( + `id` int(9) NOT NULL auto_increment, + `face_id` varchar(16) NOT NULL, + `tag_id` int(9) NOT NULL, + `user_id` int(9) NOT NULL, + PRIMARY KEY (`id`), + KEY `face_id` (`face_id`,`id`) + ) DEFAULT CHARSET=utf8;" + ); + + // Set the module version number. + module::set_version("picasa_faces", 2); + } + + static function upgrade($version) + { + if ($version == 1) + { + Database::instance()->query( + "ALTER TABLE `picasa_faces` ADD `user_id` int(9) NOT NULL" + ); + + module::set_version("picasa_faces", 2); + } + } + + static function deactivate() + { + // Clear the require photo annototaion message when picasa faces is deactivated. + site_status::clear("picasa_faces_needs_photoannotation"); + } + + static function uninstall() + { + // Delete the face mapping table before uninstalling. + $db = Database::instance(); + $db->query("DROP TABLE IF EXISTS {picasa_faces};"); + module::delete("picasa_faces"); + } +} diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php new file mode 100644 index 00000000..e845b593 --- /dev/null +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php @@ -0,0 +1,312 @@ +callback("picasa_faces_task::import_faces") + ->name(t("Import faces from Picasa")) + ->description(t("Scan all albums for Picasa face data and add any faces that don't already exist")) + ->severity(log::SUCCESS)); + } + + static function import_faces($task) + { + if (!module::is_active("photoannotation")) + { + $task->done = true; + $task->status = t("Photo Annotation module is inactive, no faces will be imported"); + return; + } + + $start = microtime(true); + + // Figure out the total number of albums in the database. + // If this is the first run, also set last_id and completed to 0. + $total = $task->get("total"); + if (empty($total)) + { + $task->set("total", $total = count(ORM::factory("item")->where("type", "=", "album")->find_all())); + $task->set("last_id", 0); + $task->set("completed", 0); + $task->set("new_faces", 0); + $task->set("old_faces", 0); + } + $last_id = $task->get("last_id"); + $completed = $task->get("completed"); + $new_faces = $task->get("new_faces"); + $old_faces = $task->get("old_faces"); + + // Try to find a contacts.xml file, and parse out the contents if it exists + $contacts = null; + $contactsXML = VARPATH . "albums/contacts.xml"; + if (file_exists($contactsXML)) + { + $xml = simplexml_load_file($contactsXML); + $contacts = $xml->contact; + } + + // Check each album in the database to see if it has a .picasa.ini file on disk, + // and extract any faces if it does. + foreach (ORM::factory("item") + ->where("id", ">", $last_id) + ->where("type", "=", "album") + ->find_all(100) as $albumItem) + { + $picasaFile = $albumItem->file_path()."/.picasa.ini"; + if (file_exists($picasaFile)) + { + // Parse the .picasa.ini file and extract any faces + $photosWithFaces = self::parsePicasaIni($picasaFile); + + // Build a mapping from photo filenames in this album to the items + $photos = array(); + foreach ($albumItem->children() as $child) + { + if ($child->is_photo()) + { + $photos[$child->name] = $child; + } + } + + // Iterate through all the photos with faces in them + foreach ($photosWithFaces as $photoName => $faces) + { + // Find the item for this photo + $photoItem = $photos[$photoName]; + if ($photoItem) + { + foreach ($faces as $faceId => $faceCoords) + { + $faceMapping = ORM::factory("picasa_face")->where("face_id", "=", $faceId)->find(); + + // If we don't already have a mapping for this face, create one + if (!$faceMapping->loaded()) + { + $newTagId = self::getFaceMapping($faceId, $contacts); + + // Save the mapping from Picasa face id to tag id, so + // faces will be grouped properly + $faceMapping->face_id = $faceId; + $faceMapping->tag_id = $newTagId; + $faceMapping->user_id = 0; + $faceMapping->save(); + } + + if ($faceMapping->user_id == 0) + { + $numTagsOnPhoto = ORM::factory("items_face") + ->where("tag_id", "=", $faceMapping->tag_id) + ->where("item_id", "=", $photoItem->id) + ->count_all(); + } + else + { + $numTagsOnPhoto = ORM::factory("items_user") + ->where("user_id", "=", $faceMapping->user_id) + ->where("item_id", "=", $photoItem->id) + ->count_all(); + } + + // If this face tag isn't already on this photo, add it (we + // assume a face should only ever appear once per photo) + if ($numTagsOnPhoto == 0) + { + self::addNewFace($faceMapping, $faceCoords, $photoItem); + $new_faces++; + } + else + { + $old_faces++; + } + } + } + } + } + + $last_id = $albumItem->id; + $completed++; + + if ($completed == $total || microtime(true) - $start > 1.5) + { + break; + } + } + + $task->set("completed", $completed); + $task->set("last_id", $last_id); + $task->set("new_faces", $new_faces); + $task->set("old_faces", $old_faces); + + if ($total == $completed) + { + $task->done = true; + $task->state = "success"; + $task->percent_complete = 100; + } + else + { + $task->percent_complete = round(100 * $completed / $total); + } + + $task->status = t("%completed / %total albums scanned, %new_faces faces added, %old_faces faces unchanged", + array("completed" => $completed, "total" => $total, "new_faces" => $new_faces, "old_faces" => $old_faces)); + } + + static function getFaceMapping($faceId, $contacts) + { + $personTag = null; + + // If we have a contacts.xml file, try to find the face id there + if ($contacts != null) + { + foreach ($contacts as $contact) + { + if ($contact['id'] == $faceId) + { + // We found this face id in the contacts.xml. See if a tag already exists. + $personTag = ORM::factory("tag")->where("name", "=", $contact['name'])->find(); + + // If the tag doesn't exist already, add it + if (!$personTag->loaded()) + { + $personTag->name = $contact['name']; + $personTag->save(); + } + + break; + } + } + } + + // We either didn't find the face in contacts.xml, or we don't have contacts.xml. + // Add the face using a generic name. + if ($personTag == null) + { + // Find an unused "Picasa x" tag + $personID = 0; + $personName = ""; + do + { + $personID++; + $personName = "Picasa ".$personID; + $personTag = ORM::factory("tag")->where("name", "=", $personName)->find(); + } while ($personTag->loaded()); + + // We found an open name, save it so we can get the id + $personTag->name = $personName; + $personTag->save(); + } + + return $personTag->id; + } + + static function addNewFace($faceMapping, $faceCoords, $photoItem) + { + // Calculate the face coordinates. Picasa stores them as 0-65535, and we remap + // that to the resize dimensions. + $left = (int)(($photoItem->resize_width * $faceCoords["left"]) / 65535); + $top = (int)(($photoItem->resize_height * $faceCoords["top"]) / 65535); + $right = (int)(($photoItem->resize_width * $faceCoords["right"]) / 65535); + $bottom = (int)(($photoItem->resize_height * $faceCoords["bottom"]) / 65535); + + if ($faceMapping->user_id == 0) + { + // Add the photo to this tag + $tag = ORM::factory("tag")->where("id", "=", $faceMapping->tag_id)->find(); + $tag->add($photoItem); + $tag->count++; + $tag->save(); + + // Add the face + $newFace = ORM::factory("items_face"); + $newFace->tag_id = $faceMapping->tag_id; + $newFace->item_id = $photoItem->id; + $newFace->x1 = $left; + $newFace->y1 = $top; + $newFace->x2 = $right; + $newFace->y2 = $bottom; + $newFace->description = ""; + $newFace->save(); + } + else + { + // Add the face + $newFace = ORM::factory("items_user"); + $newFace->user_id = $faceMapping->user_id; + $newFace->item_id = $photoItem->id; + $newFace->x1 = $left; + $newFace->y1 = $top; + $newFace->x2 = $right; + $newFace->y2 = $bottom; + $newFace->description = ""; + $newFace->save(); + } + } + + static function parsePicasaIni($filePath) + { + // It would be nice to use parse_ini_file here, but the parens used with the rect64 values break it + $ini_lines = file($filePath); + + $curFilename = ""; + + $photosWithFaces = array(); + + foreach ($ini_lines as $ini_line) + { + // Trim off any whitespace at the ends + $ini_line = trim($ini_line); + + if ($ini_line[0] == '[') + { + // If this line starts with [ it's a filename, strip off the brackets + $curFilename = substr($ini_line, 1, -1); + } + else + { + // If this isn't a filename, it must be data for a file, get the key/value pair + $photoData = explode("=", $ini_line); + + if ($photoData[0] == "faces") + { + // If it's face data, break it up by face + $faces = explode(";", $photoData[1]); + + $photoFaces = array(); + + foreach ($faces as $face) + { + // Split a face into the rectangle and face id + $splitface = explode(",", $face); + + $hexrect = substr($splitface[0], 7, -1); + // We need a string with 16 chars. Fill up with zeros from left. + $hexrect = str_pad($hexrect, 16, "0", STR_PAD_LEFT); + $person = $splitface[1]; + + // The rectangle is 4 4-character hex values + $left = hexdec(substr($hexrect,0,4)); + $top = hexdec(substr($hexrect,4,4)); + $right = hexdec(substr($hexrect,8,4)); + $bottom = hexdec(substr($hexrect,12,4)); + + $facePos = array("left" => $left, + "top" => $top, + "right" => $right, + "bottom" => $bottom); + + $photoFaces[$person] = $facePos; + } + + $photosWithFaces[$curFilename] = $photoFaces; + } + } + } + + return $photosWithFaces; + } +} + +?> diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak new file mode 100644 index 00000000..7bdff7a7 --- /dev/null +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak @@ -0,0 +1,313 @@ +callback("picasa_faces_task::import_faces") + ->name(t("Import faces from Picasa")) + ->description(t("Scan all albums for Picasa face data and add any faces that don't already exist")) + ->severity(log::SUCCESS)); + } + + static function import_faces($task) + { + if (!module::is_active("photoannotation")) + { + $task->done = true; + $task->status = t("Photo Annotation module is inactive, no faces will be imported"); + return; + } + + $start = microtime(true); + + // Figure out the total number of albums in the database. + // If this is the first run, also set last_id and completed to 0. + $total = $task->get("total"); + if (empty($total)) + { + $task->set("total", $total = count(ORM::factory("item")->where("type", "=", "album")->find_all())); + $task->set("last_id", 0); + $task->set("completed", 0); + $task->set("new_faces", 0); + $task->set("old_faces", 0); + } + + $last_id = $task->get("last_id"); + $completed = $task->get("completed"); + $new_faces = $task->get("new_faces"); + $old_faces = $task->get("old_faces"); + + // Try to find a contacts.xml file, and parse out the contents if it exists + $contacts = null; + $contactsXML = VARPATH . "albums/contacts.xml"; + if (file_exists($contactsXML)) + { + $xml = simplexml_load_file($contactsXML); + $contacts = $xml->contact; + } + + // Check each album in the database to see if it has a .picasa.ini file on disk, + // and extract any faces if it does. + foreach (ORM::factory("item") + ->where("id", ">", $last_id) + ->where("type", "=", "album") + ->find_all(100) as $albumItem) + { + $picasaFile = $albumItem->file_path()."/.picasa.ini"; + if (file_exists($picasaFile)) + { + // Parse the .picasa.ini file and extract any faces + $photosWithFaces = self::parsePicasaIni($picasaFile); + + // Build a mapping from photo filenames in this album to the items + $photos = array(); + foreach ($albumItem->children() as $child) + { + if ($child->is_photo()) + { + $photos[$child->name] = $child; + } + } + + // Iterate through all the photos with faces in them + foreach ($photosWithFaces as $photoName => $faces) + { + // Find the item for this photo + $photoItem = $photos[$photoName]; + if ($photoItem) + { + foreach ($faces as $faceId => $faceCoords) + { + $faceMapping = ORM::factory("picasa_face")->where("face_id", "=", $faceId)->find(); + + // If we don't already have a mapping for this face, create one + if (!$faceMapping->loaded()) + { + $newTagId = self::getFaceMapping($faceId, $contacts); + + // Save the mapping from Picasa face id to tag id, so + // faces will be grouped properly + $faceMapping->face_id = $faceId; + $faceMapping->tag_id = $newTagId; + $faceMapping->user_id = 0; + $faceMapping->save(); + } + + if ($faceMapping->user_id == 0) + { + $numTagsOnPhoto = ORM::factory("items_face") + ->where("tag_id", "=", $faceMapping->tag_id) + ->where("item_id", "=", $photoItem->id) + ->count_all(); + } + else + { + $numTagsOnPhoto = ORM::factory("items_user") + ->where("user_id", "=", $faceMapping->user_id) + ->where("item_id", "=", $photoItem->id) + ->count_all(); + } + + // If this face tag isn't already on this photo, add it (we + // assume a face should only ever appear once per photo) + if ($numTagsOnPhoto == 0) + { + self::addNewFace($faceMapping, $faceCoords, $photoItem); + $new_faces++; + } + else + { + $old_faces++; + } + } + } + } + } + + $last_id = $albumItem->id; + $completed++; + + if ($completed == $total || microtime(true) - $start > 1.5) + { + break; + } + } + + $task->set("completed", $completed); + $task->set("last_id", $last_id); + $task->set("new_faces", $new_faces); + $task->set("old_faces", $old_faces); + + if ($total == $completed) + { + $task->done = true; + $task->state = "success"; + $task->percent_complete = 100; + } + else + { + $task->percent_complete = round(100 * $completed / $total); + } + + $task->status = t("%completed / %total albums scanned, %new_faces faces added, %old_faces faces unchanged", + array("completed" => $completed, "total" => $total, "new_faces" => $new_faces, "old_faces" => $old_faces)); + } + + static function getFaceMapping($faceId, $contacts) + { + $personTag = null; + + // If we have a contacts.xml file, try to find the face id there + if ($contacts != null) + { + foreach ($contacts as $contact) + { + if ($contact['id'] == $faceId) + { + // We found this face id in the contacts.xml. See if a tag already exists. + $personTag = ORM::factory("tag")->where("name", "=", $contact['name'])->find(); + + // If the tag doesn't exist already, add it + if (!$personTag->loaded()) + { + $personTag->name = $contact['name']; + $personTag->save(); + } + + break; + } + } + } + + // We either didn't find the face in contacts.xml, or we don't have contacts.xml. + // Add the face using a generic name. + if ($personTag == null) + { + // Find an unused "Picasa x" tag + $personID = 0; + $personName = ""; + do + { + $personID++; + $personName = "Picasa ".$personID; + $personTag = ORM::factory("tag")->where("name", "=", $personName)->find(); + } while ($personTag->loaded()); + + // We found an open name, save it so we can get the id + $personTag->name = $personName; + $personTag->save(); + } + + return $personTag->id; + } + + static function addNewFace($faceMapping, $faceCoords, $photoItem) + { + // Calculate the face coordinates. Picasa stores them as 0-65535, and we remap + // that to the resize dimensions. + $left = (int)(($photoItem->resize_width * $faceCoords["left"]) / 65535); + $top = (int)(($photoItem->resize_height * $faceCoords["top"]) / 65535); + $right = (int)(($photoItem->resize_width * $faceCoords["right"]) / 65535); + $bottom = (int)(($photoItem->resize_height * $faceCoords["bottom"]) / 65535); + + if ($faceMapping->user_id == 0) + { + // Add the photo to this tag + $tag = ORM::factory("tag")->where("id", "=", $faceMapping->tag_id)->find(); + $tag->add($photoItem); + $tag->count++; + $tag->save(); + + // Add the face + $newFace = ORM::factory("items_face"); + $newFace->tag_id = $faceMapping->tag_id; + $newFace->item_id = $photoItem->id; + $newFace->x1 = $left; + $newFace->y1 = $top; + $newFace->x2 = $right; + $newFace->y2 = $bottom; + $newFace->description = ""; + $newFace->save(); + } + else + { + // Add the face + $newFace = ORM::factory("items_user"); + $newFace->user_id = $faceMapping->user_id; + $newFace->item_id = $photoItem->id; + $newFace->x1 = $left; + $newFace->y1 = $top; + $newFace->x2 = $right; + $newFace->y2 = $bottom; + $newFace->description = ""; + $newFace->save(); + } + } + + static function parsePicasaIni($filePath) + { + // It would be nice to use parse_ini_file here, but the parens used with the rect64 values break it + $ini_lines = file($filePath); + + $curFilename = ""; + + $photosWithFaces = array(); + + foreach ($ini_lines as $ini_line) + { + // Trim off any whitespace at the ends + $ini_line = trim($ini_line); + + if ($ini_line[0] == '[') + { + // If this line starts with [ it's a filename, strip off the brackets + $curFilename = substr($ini_line, 1, -1); + } + else + { + // If this isn't a filename, it must be data for a file, get the key/value pair + $photoData = explode("=", $ini_line); + + if ($photoData[0] == "faces") + { + // If it's face data, break it up by face + $faces = explode(";", $photoData[1]); + + $photoFaces = array(); + + foreach ($faces as $face) + { + // Split a face into the rectangle and face id + $splitface = explode(",", $face); + + $hexrect = substr($splitface[0], 7, -1); + // We need a string with 16 chars. Fill up with zeros from left. + $hexrect = str_pad($hexrect, 16, "0", STR_PAD_LEFT); + $person = $splitface[1]; + + // The rectangle is 4 4-character hex values + $left = hexdec(substr($hexrect,0,4)); + $top = hexdec(substr($hexrect,4,4)); + $right = hexdec(substr($hexrect,8,4)); + $bottom = hexdec(substr($hexrect,12,4)); + + $facePos = array("left" => $left, + "top" => $top, + "right" => $right, + "bottom" => $bottom); + + $photoFaces[$person] = $facePos; + } + + $photosWithFaces[$curFilename] = $photoFaces; + } + } + } + + return $photosWithFaces; + } +} + +?> diff --git a/3.0/modules/picasa_faces/models/picasa_face.php b/3.0/modules/picasa_faces/models/picasa_face.php new file mode 100644 index 00000000..f70cbc8a --- /dev/null +++ b/3.0/modules/picasa_faces/models/picasa_face.php @@ -0,0 +1,5 @@ + diff --git a/3.0/modules/picasa_faces/module.info b/3.0/modules/picasa_faces/module.info new file mode 100644 index 00000000..9e8cb7e4 --- /dev/null +++ b/3.0/modules/picasa_faces/module.info @@ -0,0 +1,3 @@ +name = "Picasa Faces" +description = "Import face data from Picasa so it can be used with the Photo Annotation module." +version = 2 From fdce0009fcfbb4fa4ebcc6e0957d654caf6771d2 Mon Sep 17 00:00:00 2001 From: colings Date: Sun, 2 Jan 2011 02:14:59 +0800 Subject: [PATCH 06/24] Reformatted to match gallery core standards, removed a temp file --- .../helpers/picasa_faces_event.php | 53 +- .../helpers/picasa_faces_installer.php | 97 +-- .../helpers/picasa_faces_task.php | 550 +++++++++--------- .../helpers/picasa_faces_task.php.bak | 313 ---------- .../picasa_faces/models/picasa_face.php | 21 +- 5 files changed, 373 insertions(+), 661 deletions(-) delete mode 100644 3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_event.php b/3.0/modules/picasa_faces/helpers/picasa_faces_event.php index 29886370..605e286b 100644 --- a/3.0/modules/picasa_faces/helpers/picasa_faces_event.php +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_event.php @@ -1,22 +1,37 @@ deactivate)) - { - site_status::warning( - t("The Picasa Faces module requires the Photo Annotation module. " . - "Activate the Photo Annotation module now", - array("url" => url::site("admin/modules"))), - "picasa_faces_needs_photoannotation"); - } - else - { - site_status::clear("picasa_faces_needs_photoannotation"); - } +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2010 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class picasa_faces_event_Core { + static function module_change($changes) { + // See if the Photo Annotation module is installed, + // tell the user to install it if it isn't. + if (!module::is_active("photoannotation") || in_array("photoannotation", $changes->deactivate)) { + site_status::warning( + t("The Picasa Faces module requires the Photo Annotation module. " . + "Activate the Photo Annotation module now", + array("url" => url::site("admin/modules"))), + "picasa_faces_needs_photoannotation"); } + else { + site_status::clear("picasa_faces_needs_photoannotation"); + } + } } + +?> diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php b/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php index 571626f3..5e728858 100644 --- a/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php @@ -1,50 +1,63 @@ query( + "CREATE TABLE IF NOT EXISTS `picasa_faces` ( + `id` int(9) NOT NULL auto_increment, + `face_id` varchar(16) NOT NULL, + `tag_id` int(9) NOT NULL, + `user_id` int(9) NOT NULL, + PRIMARY KEY (`id`), + KEY `face_id` (`face_id`,`id`) + ) DEFAULT CHARSET=utf8;" + ); - $db->query( - "CREATE TABLE IF NOT EXISTS `picasa_faces` ( - `id` int(9) NOT NULL auto_increment, - `face_id` varchar(16) NOT NULL, - `tag_id` int(9) NOT NULL, - `user_id` int(9) NOT NULL, - PRIMARY KEY (`id`), - KEY `face_id` (`face_id`,`id`) - ) DEFAULT CHARSET=utf8;" - ); + // Set the module version number. + module::set_version("picasa_faces", 2); + } - // Set the module version number. - module::set_version("picasa_faces", 2); + static function upgrade($version) { + if ($version == 1) { + Database::instance()->query( + "ALTER TABLE `picasa_faces` ADD `user_id` int(9) NOT NULL" + ); + + module::set_version("picasa_faces", 2); } + } - static function upgrade($version) - { - if ($version == 1) - { - Database::instance()->query( - "ALTER TABLE `picasa_faces` ADD `user_id` int(9) NOT NULL" - ); + static function deactivate() { + // Clear the require photo annototaion message when picasa faces is deactivated. + site_status::clear("picasa_faces_needs_photoannotation"); + } - module::set_version("picasa_faces", 2); - } - } - - static function deactivate() - { - // Clear the require photo annototaion message when picasa faces is deactivated. - site_status::clear("picasa_faces_needs_photoannotation"); - } - - static function uninstall() - { - // Delete the face mapping table before uninstalling. - $db = Database::instance(); - $db->query("DROP TABLE IF EXISTS {picasa_faces};"); - module::delete("picasa_faces"); - } + static function uninstall() { + // Delete the face mapping table before uninstalling. + $db = Database::instance(); + $db->query("DROP TABLE IF EXISTS {picasa_faces};"); + module::delete("picasa_faces"); + } } + +?> diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php index e845b593..5413a1f6 100644 --- a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php @@ -1,312 +1,292 @@ callback("picasa_faces_task::import_faces") + ->name(t("Import faces from Picasa")) + ->description(t("Scan all albums for Picasa face data and add any faces that don't already exist")) + ->severity(log::SUCCESS)); + } -class picasa_faces_task_Core -{ - static function available_tasks() - { - return array(Task_Definition::factory() - ->callback("picasa_faces_task::import_faces") - ->name(t("Import faces from Picasa")) - ->description(t("Scan all albums for Picasa face data and add any faces that don't already exist")) - ->severity(log::SUCCESS)); + static function import_faces($task) { + if (!module::is_active("photoannotation")) { + $task->done = true; + $task->status = t("Photo Annotation module is inactive, no faces will be imported"); + return; } - static function import_faces($task) - { - if (!module::is_active("photoannotation")) - { - $task->done = true; - $task->status = t("Photo Annotation module is inactive, no faces will be imported"); - return; - } + $start = microtime(true); - $start = microtime(true); + // Figure out the total number of albums in the database. + // If this is the first run, also set last_id and completed to 0. + $total = $task->get("total"); + if (empty($total)) { + $task->set("total", $total = count(ORM::factory("item")->where("type", "=", "album")->find_all())); + $task->set("last_id", 0); + $task->set("completed", 0); + $task->set("new_faces", 0); + $task->set("old_faces", 0); + } + $last_id = $task->get("last_id"); + $completed = $task->get("completed"); + $new_faces = $task->get("new_faces"); + $old_faces = $task->get("old_faces"); - // Figure out the total number of albums in the database. - // If this is the first run, also set last_id and completed to 0. - $total = $task->get("total"); - if (empty($total)) - { - $task->set("total", $total = count(ORM::factory("item")->where("type", "=", "album")->find_all())); - $task->set("last_id", 0); - $task->set("completed", 0); - $task->set("new_faces", 0); - $task->set("old_faces", 0); - } - $last_id = $task->get("last_id"); - $completed = $task->get("completed"); - $new_faces = $task->get("new_faces"); - $old_faces = $task->get("old_faces"); - - // Try to find a contacts.xml file, and parse out the contents if it exists - $contacts = null; - $contactsXML = VARPATH . "albums/contacts.xml"; - if (file_exists($contactsXML)) - { - $xml = simplexml_load_file($contactsXML); - $contacts = $xml->contact; - } - - // Check each album in the database to see if it has a .picasa.ini file on disk, - // and extract any faces if it does. - foreach (ORM::factory("item") - ->where("id", ">", $last_id) - ->where("type", "=", "album") - ->find_all(100) as $albumItem) - { - $picasaFile = $albumItem->file_path()."/.picasa.ini"; - if (file_exists($picasaFile)) - { - // Parse the .picasa.ini file and extract any faces - $photosWithFaces = self::parsePicasaIni($picasaFile); - - // Build a mapping from photo filenames in this album to the items - $photos = array(); - foreach ($albumItem->children() as $child) - { - if ($child->is_photo()) - { - $photos[$child->name] = $child; - } - } - - // Iterate through all the photos with faces in them - foreach ($photosWithFaces as $photoName => $faces) - { - // Find the item for this photo - $photoItem = $photos[$photoName]; - if ($photoItem) - { - foreach ($faces as $faceId => $faceCoords) - { - $faceMapping = ORM::factory("picasa_face")->where("face_id", "=", $faceId)->find(); - - // If we don't already have a mapping for this face, create one - if (!$faceMapping->loaded()) - { - $newTagId = self::getFaceMapping($faceId, $contacts); - - // Save the mapping from Picasa face id to tag id, so - // faces will be grouped properly - $faceMapping->face_id = $faceId; - $faceMapping->tag_id = $newTagId; - $faceMapping->user_id = 0; - $faceMapping->save(); - } - - if ($faceMapping->user_id == 0) - { - $numTagsOnPhoto = ORM::factory("items_face") - ->where("tag_id", "=", $faceMapping->tag_id) - ->where("item_id", "=", $photoItem->id) - ->count_all(); - } - else - { - $numTagsOnPhoto = ORM::factory("items_user") - ->where("user_id", "=", $faceMapping->user_id) - ->where("item_id", "=", $photoItem->id) - ->count_all(); - } - - // If this face tag isn't already on this photo, add it (we - // assume a face should only ever appear once per photo) - if ($numTagsOnPhoto == 0) - { - self::addNewFace($faceMapping, $faceCoords, $photoItem); - $new_faces++; - } - else - { - $old_faces++; - } - } - } - } - } - - $last_id = $albumItem->id; - $completed++; - - if ($completed == $total || microtime(true) - $start > 1.5) - { - break; - } - } - - $task->set("completed", $completed); - $task->set("last_id", $last_id); - $task->set("new_faces", $new_faces); - $task->set("old_faces", $old_faces); - - if ($total == $completed) - { - $task->done = true; - $task->state = "success"; - $task->percent_complete = 100; - } - else - { - $task->percent_complete = round(100 * $completed / $total); - } - - $task->status = t("%completed / %total albums scanned, %new_faces faces added, %old_faces faces unchanged", - array("completed" => $completed, "total" => $total, "new_faces" => $new_faces, "old_faces" => $old_faces)); + // Try to find a contacts.xml file, and parse out the contents if it exists + $contacts = null; + $contactsXML = VARPATH . "albums/contacts.xml"; + if (file_exists($contactsXML)) { + $xml = simplexml_load_file($contactsXML); + $contacts = $xml->contact; } - static function getFaceMapping($faceId, $contacts) - { - $personTag = null; + // Check each album in the database to see if it has a .picasa.ini file on disk, + // and extract any faces if it does. + foreach (ORM::factory("item") + ->where("id", ">", $last_id) + ->where("type", "=", "album") + ->find_all(100) as $albumItem) { + $picasaFile = $albumItem->file_path()."/.picasa.ini"; + if (file_exists($picasaFile)) { + // Parse the .picasa.ini file and extract any faces + $photosWithFaces = self::parsePicasaIni($picasaFile); - // If we have a contacts.xml file, try to find the face id there - if ($contacts != null) - { - foreach ($contacts as $contact) - { - if ($contact['id'] == $faceId) - { - // We found this face id in the contacts.xml. See if a tag already exists. - $personTag = ORM::factory("tag")->where("name", "=", $contact['name'])->find(); - - // If the tag doesn't exist already, add it - if (!$personTag->loaded()) - { - $personTag->name = $contact['name']; - $personTag->save(); - } - - break; - } + // Build a mapping from photo filenames in this album to the items + $photos = array(); + foreach ($albumItem->children() as $child) { + if ($child->is_photo()) { + $photos[$child->name] = $child; } } - // We either didn't find the face in contacts.xml, or we don't have contacts.xml. - // Add the face using a generic name. - if ($personTag == null) - { - // Find an unused "Picasa x" tag - $personID = 0; - $personName = ""; - do - { - $personID++; - $personName = "Picasa ".$personID; - $personTag = ORM::factory("tag")->where("name", "=", $personName)->find(); - } while ($personTag->loaded()); + // Iterate through all the photos with faces in them + foreach ($photosWithFaces as $photoName => $faces) { + // Find the item for this photo + $photoItem = $photos[$photoName]; + if ($photoItem) { + foreach ($faces as $faceId => $faceCoords) { + $faceMapping = ORM::factory("picasa_face")->where("face_id", "=", $faceId)->find(); - // We found an open name, save it so we can get the id - $personTag->name = $personName; + // If we don't already have a mapping for this face, create one + if (!$faceMapping->loaded()) { + $newTagId = self::getFaceMapping($faceId, $contacts); + + // Save the mapping from Picasa face id to tag id, so + // faces will be grouped properly + $faceMapping->face_id = $faceId; + $faceMapping->tag_id = $newTagId; + $faceMapping->user_id = 0; + $faceMapping->save(); + } + + if ($faceMapping->user_id == 0) { + $numTagsOnPhoto = ORM::factory("items_face") + ->where("tag_id", "=", $faceMapping->tag_id) + ->where("item_id", "=", $photoItem->id) + ->count_all(); + } + else { + $numTagsOnPhoto = ORM::factory("items_user") + ->where("user_id", "=", $faceMapping->user_id) + ->where("item_id", "=", $photoItem->id) + ->count_all(); + } + + // If this face tag isn't already on this photo, add it (we + // assume a face should only ever appear once per photo) + if ($numTagsOnPhoto == 0) { + self::addNewFace($faceMapping, $faceCoords, $photoItem); + $new_faces++; + } + else { + $old_faces++; + } + } + } + } + } + + $last_id = $albumItem->id; + $completed++; + + if ($completed == $total || microtime(true) - $start > 1.5) { + break; + } + } + + $task->set("completed", $completed); + $task->set("last_id", $last_id); + $task->set("new_faces", $new_faces); + $task->set("old_faces", $old_faces); + + if ($total == $completed) { + $task->done = true; + $task->state = "success"; + $task->percent_complete = 100; + } + else { + $task->percent_complete = round(100 * $completed / $total); + } + + $task->status = t("%completed / %total albums scanned, %new_faces faces added, %old_faces faces unchanged", + array("completed" => $completed, "total" => $total, "new_faces" => $new_faces, "old_faces" => $old_faces)); + } + + static function getFaceMapping($faceId, $contacts) { + $personTag = null; + + // If we have a contacts.xml file, try to find the face id there + if ($contacts != null) { + foreach ($contacts as $contact) { + if ($contact['id'] == $faceId) { + // We found this face id in the contacts.xml. See if a tag already exists. + $personTag = ORM::factory("tag")->where("name", "=", $contact['name'])->find(); + + // If the tag doesn't exist already, add it + if (!$personTag->loaded()) { + $personTag->name = $contact['name']; $personTag->save(); - } + } - return $personTag->id; + break; + } + } } - static function addNewFace($faceMapping, $faceCoords, $photoItem) - { - // Calculate the face coordinates. Picasa stores them as 0-65535, and we remap - // that to the resize dimensions. - $left = (int)(($photoItem->resize_width * $faceCoords["left"]) / 65535); - $top = (int)(($photoItem->resize_height * $faceCoords["top"]) / 65535); - $right = (int)(($photoItem->resize_width * $faceCoords["right"]) / 65535); - $bottom = (int)(($photoItem->resize_height * $faceCoords["bottom"]) / 65535); + // We either didn't find the face in contacts.xml, or we don't have contacts.xml. + // Add the face using a generic name. + if ($personTag == null) { + // Find an unused "Picasa x" tag + $personID = 0; + $personName = ""; + do { + $personID++; + $personName = "Picasa ".$personID; + $personTag = ORM::factory("tag")->where("name", "=", $personName)->find(); + } while ($personTag->loaded()); - if ($faceMapping->user_id == 0) - { - // Add the photo to this tag - $tag = ORM::factory("tag")->where("id", "=", $faceMapping->tag_id)->find(); - $tag->add($photoItem); - $tag->count++; - $tag->save(); - - // Add the face - $newFace = ORM::factory("items_face"); - $newFace->tag_id = $faceMapping->tag_id; - $newFace->item_id = $photoItem->id; - $newFace->x1 = $left; - $newFace->y1 = $top; - $newFace->x2 = $right; - $newFace->y2 = $bottom; - $newFace->description = ""; - $newFace->save(); - } - else - { - // Add the face - $newFace = ORM::factory("items_user"); - $newFace->user_id = $faceMapping->user_id; - $newFace->item_id = $photoItem->id; - $newFace->x1 = $left; - $newFace->y1 = $top; - $newFace->x2 = $right; - $newFace->y2 = $bottom; - $newFace->description = ""; - $newFace->save(); - } + // We found an open name, save it so we can get the id + $personTag->name = $personName; + $personTag->save(); } - static function parsePicasaIni($filePath) - { - // It would be nice to use parse_ini_file here, but the parens used with the rect64 values break it - $ini_lines = file($filePath); + return $personTag->id; + } - $curFilename = ""; + static function addNewFace($faceMapping, $faceCoords, $photoItem) { + // Calculate the face coordinates. Picasa stores them as 0-65535, and we remap + // that to the resize dimensions. + $left = (int)(($photoItem->resize_width * $faceCoords["left"]) / 65535); + $top = (int)(($photoItem->resize_height * $faceCoords["top"]) / 65535); + $right = (int)(($photoItem->resize_width * $faceCoords["right"]) / 65535); + $bottom = (int)(($photoItem->resize_height * $faceCoords["bottom"]) / 65535); - $photosWithFaces = array(); + if ($faceMapping->user_id == 0) { + // Add the photo to this tag + $tag = ORM::factory("tag")->where("id", "=", $faceMapping->tag_id)->find(); + $tag->add($photoItem); + $tag->count++; + $tag->save(); - foreach ($ini_lines as $ini_line) - { - // Trim off any whitespace at the ends - $ini_line = trim($ini_line); - - if ($ini_line[0] == '[') - { - // If this line starts with [ it's a filename, strip off the brackets - $curFilename = substr($ini_line, 1, -1); - } - else - { - // If this isn't a filename, it must be data for a file, get the key/value pair - $photoData = explode("=", $ini_line); - - if ($photoData[0] == "faces") - { - // If it's face data, break it up by face - $faces = explode(";", $photoData[1]); - - $photoFaces = array(); - - foreach ($faces as $face) - { - // Split a face into the rectangle and face id - $splitface = explode(",", $face); - - $hexrect = substr($splitface[0], 7, -1); - // We need a string with 16 chars. Fill up with zeros from left. - $hexrect = str_pad($hexrect, 16, "0", STR_PAD_LEFT); - $person = $splitface[1]; - - // The rectangle is 4 4-character hex values - $left = hexdec(substr($hexrect,0,4)); - $top = hexdec(substr($hexrect,4,4)); - $right = hexdec(substr($hexrect,8,4)); - $bottom = hexdec(substr($hexrect,12,4)); - - $facePos = array("left" => $left, - "top" => $top, - "right" => $right, - "bottom" => $bottom); - - $photoFaces[$person] = $facePos; - } - - $photosWithFaces[$curFilename] = $photoFaces; - } - } - } - - return $photosWithFaces; + // Add the face + $newFace = ORM::factory("items_face"); + $newFace->tag_id = $faceMapping->tag_id; + $newFace->item_id = $photoItem->id; + $newFace->x1 = $left; + $newFace->y1 = $top; + $newFace->x2 = $right; + $newFace->y2 = $bottom; + $newFace->description = ""; + $newFace->save(); } + else { + // Add the face + $newFace = ORM::factory("items_user"); + $newFace->user_id = $faceMapping->user_id; + $newFace->item_id = $photoItem->id; + $newFace->x1 = $left; + $newFace->y1 = $top; + $newFace->x2 = $right; + $newFace->y2 = $bottom; + $newFace->description = ""; + $newFace->save(); + } + } + + static function parsePicasaIni($filePath) { + // It would be nice to use parse_ini_file here, but the parens used with the rect64 values break it + $ini_lines = file($filePath); + + $curFilename = ""; + + $photosWithFaces = array(); + + foreach ($ini_lines as $ini_line) { + // Trim off any whitespace at the ends + $ini_line = trim($ini_line); + + if ($ini_line[0] == '[') { + // If this line starts with [ it's a filename, strip off the brackets + $curFilename = substr($ini_line, 1, -1); + } + else { + // If this isn't a filename, it must be data for a file, get the key/value pair + $photoData = explode("=", $ini_line); + + if ($photoData[0] == "faces") { + // If it's face data, break it up by face + $faces = explode(";", $photoData[1]); + + $photoFaces = array(); + + foreach ($faces as $face) { + // Split a face into the rectangle and face id + $splitface = explode(",", $face); + + $hexrect = substr($splitface[0], 7, -1); + // We need a string with 16 chars. Fill up with zeros from left. + $hexrect = str_pad($hexrect, 16, "0", STR_PAD_LEFT); + $person = $splitface[1]; + + // The rectangle is 4 4-character hex values + $left = hexdec(substr($hexrect,0,4)); + $top = hexdec(substr($hexrect,4,4)); + $right = hexdec(substr($hexrect,8,4)); + $bottom = hexdec(substr($hexrect,12,4)); + + $facePos = array("left" => $left, + "top" => $top, + "right" => $right, + "bottom" => $bottom); + + $photoFaces[$person] = $facePos; + } + + $photosWithFaces[$curFilename] = $photoFaces; + } + } + } + + return $photosWithFaces; + } } ?> diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak deleted file mode 100644 index 7bdff7a7..00000000 --- a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php.bak +++ /dev/null @@ -1,313 +0,0 @@ -callback("picasa_faces_task::import_faces") - ->name(t("Import faces from Picasa")) - ->description(t("Scan all albums for Picasa face data and add any faces that don't already exist")) - ->severity(log::SUCCESS)); - } - - static function import_faces($task) - { - if (!module::is_active("photoannotation")) - { - $task->done = true; - $task->status = t("Photo Annotation module is inactive, no faces will be imported"); - return; - } - - $start = microtime(true); - - // Figure out the total number of albums in the database. - // If this is the first run, also set last_id and completed to 0. - $total = $task->get("total"); - if (empty($total)) - { - $task->set("total", $total = count(ORM::factory("item")->where("type", "=", "album")->find_all())); - $task->set("last_id", 0); - $task->set("completed", 0); - $task->set("new_faces", 0); - $task->set("old_faces", 0); - } - - $last_id = $task->get("last_id"); - $completed = $task->get("completed"); - $new_faces = $task->get("new_faces"); - $old_faces = $task->get("old_faces"); - - // Try to find a contacts.xml file, and parse out the contents if it exists - $contacts = null; - $contactsXML = VARPATH . "albums/contacts.xml"; - if (file_exists($contactsXML)) - { - $xml = simplexml_load_file($contactsXML); - $contacts = $xml->contact; - } - - // Check each album in the database to see if it has a .picasa.ini file on disk, - // and extract any faces if it does. - foreach (ORM::factory("item") - ->where("id", ">", $last_id) - ->where("type", "=", "album") - ->find_all(100) as $albumItem) - { - $picasaFile = $albumItem->file_path()."/.picasa.ini"; - if (file_exists($picasaFile)) - { - // Parse the .picasa.ini file and extract any faces - $photosWithFaces = self::parsePicasaIni($picasaFile); - - // Build a mapping from photo filenames in this album to the items - $photos = array(); - foreach ($albumItem->children() as $child) - { - if ($child->is_photo()) - { - $photos[$child->name] = $child; - } - } - - // Iterate through all the photos with faces in them - foreach ($photosWithFaces as $photoName => $faces) - { - // Find the item for this photo - $photoItem = $photos[$photoName]; - if ($photoItem) - { - foreach ($faces as $faceId => $faceCoords) - { - $faceMapping = ORM::factory("picasa_face")->where("face_id", "=", $faceId)->find(); - - // If we don't already have a mapping for this face, create one - if (!$faceMapping->loaded()) - { - $newTagId = self::getFaceMapping($faceId, $contacts); - - // Save the mapping from Picasa face id to tag id, so - // faces will be grouped properly - $faceMapping->face_id = $faceId; - $faceMapping->tag_id = $newTagId; - $faceMapping->user_id = 0; - $faceMapping->save(); - } - - if ($faceMapping->user_id == 0) - { - $numTagsOnPhoto = ORM::factory("items_face") - ->where("tag_id", "=", $faceMapping->tag_id) - ->where("item_id", "=", $photoItem->id) - ->count_all(); - } - else - { - $numTagsOnPhoto = ORM::factory("items_user") - ->where("user_id", "=", $faceMapping->user_id) - ->where("item_id", "=", $photoItem->id) - ->count_all(); - } - - // If this face tag isn't already on this photo, add it (we - // assume a face should only ever appear once per photo) - if ($numTagsOnPhoto == 0) - { - self::addNewFace($faceMapping, $faceCoords, $photoItem); - $new_faces++; - } - else - { - $old_faces++; - } - } - } - } - } - - $last_id = $albumItem->id; - $completed++; - - if ($completed == $total || microtime(true) - $start > 1.5) - { - break; - } - } - - $task->set("completed", $completed); - $task->set("last_id", $last_id); - $task->set("new_faces", $new_faces); - $task->set("old_faces", $old_faces); - - if ($total == $completed) - { - $task->done = true; - $task->state = "success"; - $task->percent_complete = 100; - } - else - { - $task->percent_complete = round(100 * $completed / $total); - } - - $task->status = t("%completed / %total albums scanned, %new_faces faces added, %old_faces faces unchanged", - array("completed" => $completed, "total" => $total, "new_faces" => $new_faces, "old_faces" => $old_faces)); - } - - static function getFaceMapping($faceId, $contacts) - { - $personTag = null; - - // If we have a contacts.xml file, try to find the face id there - if ($contacts != null) - { - foreach ($contacts as $contact) - { - if ($contact['id'] == $faceId) - { - // We found this face id in the contacts.xml. See if a tag already exists. - $personTag = ORM::factory("tag")->where("name", "=", $contact['name'])->find(); - - // If the tag doesn't exist already, add it - if (!$personTag->loaded()) - { - $personTag->name = $contact['name']; - $personTag->save(); - } - - break; - } - } - } - - // We either didn't find the face in contacts.xml, or we don't have contacts.xml. - // Add the face using a generic name. - if ($personTag == null) - { - // Find an unused "Picasa x" tag - $personID = 0; - $personName = ""; - do - { - $personID++; - $personName = "Picasa ".$personID; - $personTag = ORM::factory("tag")->where("name", "=", $personName)->find(); - } while ($personTag->loaded()); - - // We found an open name, save it so we can get the id - $personTag->name = $personName; - $personTag->save(); - } - - return $personTag->id; - } - - static function addNewFace($faceMapping, $faceCoords, $photoItem) - { - // Calculate the face coordinates. Picasa stores them as 0-65535, and we remap - // that to the resize dimensions. - $left = (int)(($photoItem->resize_width * $faceCoords["left"]) / 65535); - $top = (int)(($photoItem->resize_height * $faceCoords["top"]) / 65535); - $right = (int)(($photoItem->resize_width * $faceCoords["right"]) / 65535); - $bottom = (int)(($photoItem->resize_height * $faceCoords["bottom"]) / 65535); - - if ($faceMapping->user_id == 0) - { - // Add the photo to this tag - $tag = ORM::factory("tag")->where("id", "=", $faceMapping->tag_id)->find(); - $tag->add($photoItem); - $tag->count++; - $tag->save(); - - // Add the face - $newFace = ORM::factory("items_face"); - $newFace->tag_id = $faceMapping->tag_id; - $newFace->item_id = $photoItem->id; - $newFace->x1 = $left; - $newFace->y1 = $top; - $newFace->x2 = $right; - $newFace->y2 = $bottom; - $newFace->description = ""; - $newFace->save(); - } - else - { - // Add the face - $newFace = ORM::factory("items_user"); - $newFace->user_id = $faceMapping->user_id; - $newFace->item_id = $photoItem->id; - $newFace->x1 = $left; - $newFace->y1 = $top; - $newFace->x2 = $right; - $newFace->y2 = $bottom; - $newFace->description = ""; - $newFace->save(); - } - } - - static function parsePicasaIni($filePath) - { - // It would be nice to use parse_ini_file here, but the parens used with the rect64 values break it - $ini_lines = file($filePath); - - $curFilename = ""; - - $photosWithFaces = array(); - - foreach ($ini_lines as $ini_line) - { - // Trim off any whitespace at the ends - $ini_line = trim($ini_line); - - if ($ini_line[0] == '[') - { - // If this line starts with [ it's a filename, strip off the brackets - $curFilename = substr($ini_line, 1, -1); - } - else - { - // If this isn't a filename, it must be data for a file, get the key/value pair - $photoData = explode("=", $ini_line); - - if ($photoData[0] == "faces") - { - // If it's face data, break it up by face - $faces = explode(";", $photoData[1]); - - $photoFaces = array(); - - foreach ($faces as $face) - { - // Split a face into the rectangle and face id - $splitface = explode(",", $face); - - $hexrect = substr($splitface[0], 7, -1); - // We need a string with 16 chars. Fill up with zeros from left. - $hexrect = str_pad($hexrect, 16, "0", STR_PAD_LEFT); - $person = $splitface[1]; - - // The rectangle is 4 4-character hex values - $left = hexdec(substr($hexrect,0,4)); - $top = hexdec(substr($hexrect,4,4)); - $right = hexdec(substr($hexrect,8,4)); - $bottom = hexdec(substr($hexrect,12,4)); - - $facePos = array("left" => $left, - "top" => $top, - "right" => $right, - "bottom" => $bottom); - - $photoFaces[$person] = $facePos; - } - - $photosWithFaces[$curFilename] = $photoFaces; - } - } - } - - return $photosWithFaces; - } -} - -?> diff --git a/3.0/modules/picasa_faces/models/picasa_face.php b/3.0/modules/picasa_faces/models/picasa_face.php index f70cbc8a..12dd6f50 100644 --- a/3.0/modules/picasa_faces/models/picasa_face.php +++ b/3.0/modules/picasa_faces/models/picasa_face.php @@ -1,5 +1,22 @@ From e24704f9b7eeb80ca4adb531b220ea18ebe1cc05 Mon Sep 17 00:00:00 2001 From: colings Date: Sun, 2 Jan 2011 02:20:47 +0800 Subject: [PATCH 07/24] Added ignored face fix from rlparadise --- .../picasa_faces/helpers/picasa_faces_task.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php index 5413a1f6..77d435b1 100644 --- a/3.0/modules/picasa_faces/helpers/picasa_faces_task.php +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_task.php @@ -85,6 +85,11 @@ class picasa_faces_task_Core { foreach ($faces as $faceId => $faceCoords) { $faceMapping = ORM::factory("picasa_face")->where("face_id", "=", $faceId)->find(); + // This is a special id Picasa uses for ignored faces, skip it + if ($faceId == "ffffffffffffffff") { + continue; + } + // If we don't already have a mapping for this face, create one if (!$faceMapping->loaded()) { $newTagId = self::getFaceMapping($faceId, $contacts); @@ -242,7 +247,7 @@ class picasa_faces_task_Core { foreach ($ini_lines as $ini_line) { // Trim off any whitespace at the ends $ini_line = trim($ini_line); - + if ($ini_line[0] == '[') { // If this line starts with [ it's a filename, strip off the brackets $curFilename = substr($ini_line, 1, -1); @@ -250,9 +255,9 @@ class picasa_faces_task_Core { else { // If this isn't a filename, it must be data for a file, get the key/value pair $photoData = explode("=", $ini_line); - + if ($photoData[0] == "faces") { - // If it's face data, break it up by face + // If it's face data, break it up by face $faces = explode(";", $photoData[1]); $photoFaces = array(); @@ -279,7 +284,7 @@ class picasa_faces_task_Core { $photoFaces[$person] = $facePos; } - + $photosWithFaces[$curFilename] = $photoFaces; } } From 6c29c8229aa18c7ea8c192cfc3918bb8ac4ce128 Mon Sep 17 00:00:00 2001 From: colings Date: Sun, 2 Jan 2011 03:16:29 +0800 Subject: [PATCH 08/24] Fixed (hopefully) table prefix issue --- 3.0/modules/picasa_faces/helpers/picasa_faces_installer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php b/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php index 5e728858..23010af1 100644 --- a/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php +++ b/3.0/modules/picasa_faces/helpers/picasa_faces_installer.php @@ -23,7 +23,7 @@ class picasa_faces_installer { $db = Database::instance(); $db->query( - "CREATE TABLE IF NOT EXISTS `picasa_faces` ( + "CREATE TABLE IF NOT EXISTS {picasa_faces} ( `id` int(9) NOT NULL auto_increment, `face_id` varchar(16) NOT NULL, `tag_id` int(9) NOT NULL, From 9f24bc9df6ed73e921d08148f5821d3f4e702d73 Mon Sep 17 00:00:00 2001 From: colings Date: Sun, 2 Jan 2011 23:30:19 +0800 Subject: [PATCH 09/24] Initial checkin of custom albums (not working) --- .../helpers/custom_albums_event.php | 64 +++++++++++++++++++ .../helpers/custom_albums_graphics.php | 57 +++++++++++++++++ .../helpers/custom_albums_installer.php | 54 ++++++++++++++++ .../custom_albums/models/custom_album.php | 5 ++ 3.0/modules/custom_albums/module.info | 3 + 5 files changed, 183 insertions(+) create mode 100644 3.0/modules/custom_albums/helpers/custom_albums_event.php create mode 100644 3.0/modules/custom_albums/helpers/custom_albums_graphics.php create mode 100644 3.0/modules/custom_albums/helpers/custom_albums_installer.php create mode 100644 3.0/modules/custom_albums/models/custom_album.php create mode 100644 3.0/modules/custom_albums/module.info diff --git a/3.0/modules/custom_albums/helpers/custom_albums_event.php b/3.0/modules/custom_albums/helpers/custom_albums_event.php new file mode 100644 index 00000000..b8dbe5aa --- /dev/null +++ b/3.0/modules/custom_albums/helpers/custom_albums_event.php @@ -0,0 +1,64 @@ +is_album()) { + $albumCustom = ORM::factory("custom_album")->where("album_id", "=", $item->id)->find(); + + $thumbdata = $form->edit_item->group("custom_album")->label("Custom Album"); + + if ($albumCustom->loaded()) { + $thumbdata->input("thumbsize")->label(t("Thumbnail size (in pixels)"))->value($albumCustom->thumb_size); + } else { + $thumbdata->input("thumbsize")->label(t("Thumbnail size (in pixels)")); + } + } + } + + static function item_edit_form_completed($item, $form) { + if ($item->is_album()) { + $thumbChanged = false; + + if ($form->edit_item->custom_album->thumbsize->value == "") { + db::build() + ->delete("custom_album") + ->where("album_id", "=", $item->id) + ->execute(); + } else { + $albumCustom = ORM::factory("custom_album")->where("album_id", "=", $item->id)->find(); + if (!$albumCustom->loaded()) { + $albumCustom->album_id = $item->id; + } + $albumCustom->thumb_size = $form->edit_item->custom_album->thumbsize->value; + $albumCustom->save(); + + $thumbChanged = true; + } + + if ($thumbChanged) { + db::build() + ->update("items") + ->set("thumb_dirty", 1) + ->where("parent_id", "=", $item->id) + ->execute(); + } + } + } +} diff --git a/3.0/modules/custom_albums/helpers/custom_albums_graphics.php b/3.0/modules/custom_albums/helpers/custom_albums_graphics.php new file mode 100644 index 00000000..5fa6cd49 --- /dev/null +++ b/3.0/modules/custom_albums/helpers/custom_albums_graphics.php @@ -0,0 +1,57 @@ +where("album_id", "=", $options["parent_id"])->find(); + +/* + $dims = getimagesize($input_file); + if (max($dims[0], $dims[1]) < min($options["width"], $options["height"])) { + // Image would get upscaled; do nothing + copy($input_file, $output_file); + } else { + $image = Image::factory($input_file) + ->resize($options["width"], $options["height"], $options["master"]) + ->quality(module::get_var("gallery", "image_quality")); + if (graphics::can("sharpen")) { + $image->sharpen(module::get_var("gallery", "image_sharpen")); + } + $image->save($output_file); + } +*/ + module::event("graphics_resize_completed", $input_file, $output_file, $options); + } +} diff --git a/3.0/modules/custom_albums/helpers/custom_albums_installer.php b/3.0/modules/custom_albums/helpers/custom_albums_installer.php new file mode 100644 index 00000000..477b70e0 --- /dev/null +++ b/3.0/modules/custom_albums/helpers/custom_albums_installer.php @@ -0,0 +1,54 @@ + 0, "height" => 0, "master" => Image::AUTO), + 200); + graphics::add_rule( + "gallery", "resize", "custom_albums::resize", + array("width" => 0, "height" => 0, "master" => Image::AUTO), + 200); + + // Create a table to store custom album info in. + $db = Database::instance(); + + $db->query( + "CREATE TABLE IF NOT EXISTS {custom_albums} ( + `id` int(9) NOT NULL auto_increment, + `album_id` int(9) NOT NULL, + `thumb_size` int(9) NOT NULL, + PRIMARY KEY (`id`), + KEY `album_id` (`album_id`,`id`) + ) DEFAULT CHARSET=utf8;" + ); + + module::set_version("custom_albums", 1); + } + + static function uninstall() { + // Delete the custom album table before uninstalling. + $db = Database::instance(); + $db->query("DROP TABLE IF EXISTS {custom_albums};"); + module::delete("custom_albums"); + } +} diff --git a/3.0/modules/custom_albums/models/custom_album.php b/3.0/modules/custom_albums/models/custom_album.php new file mode 100644 index 00000000..56dc8661 --- /dev/null +++ b/3.0/modules/custom_albums/models/custom_album.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/3.0/modules/custom_albums/module.info b/3.0/modules/custom_albums/module.info new file mode 100644 index 00000000..1161c533 --- /dev/null +++ b/3.0/modules/custom_albums/module.info @@ -0,0 +1,3 @@ +name = "Custom Albums" +description = "Lets you set custom thumbnail sizes for albums" +version = 1 From 1c198b4f6a1df111061a420ecd8d4c8f3c022def Mon Sep 17 00:00:00 2001 From: colings Date: Sun, 2 Jan 2011 23:47:30 +0800 Subject: [PATCH 10/24] Maybe working? --- .../helpers/custom_albums_graphics.php | 30 +++++++++++-------- .../helpers/custom_albums_installer.php | 4 --- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/3.0/modules/custom_albums/helpers/custom_albums_graphics.php b/3.0/modules/custom_albums/helpers/custom_albums_graphics.php index 5fa6cd49..b6d6702a 100644 --- a/3.0/modules/custom_albums/helpers/custom_albums_graphics.php +++ b/3.0/modules/custom_albums/helpers/custom_albums_graphics.php @@ -37,21 +37,25 @@ class custom_albums_graphics_Core { $albumCustom = ORM::factory("custom_album")->where("album_id", "=", $options["parent_id"])->find(); -/* - $dims = getimagesize($input_file); - if (max($dims[0], $dims[1]) < min($options["width"], $options["height"])) { - // Image would get upscaled; do nothing - copy($input_file, $output_file); - } else { - $image = Image::factory($input_file) - ->resize($options["width"], $options["height"], $options["master"]) - ->quality(module::get_var("gallery", "image_quality")); - if (graphics::can("sharpen")) { - $image->sharpen(module::get_var("gallery", "image_sharpen")); + // If this album has custom data, build the thumbnail at the specified size + if ($albumCustom->loaded()) { + $thumb_size = $albumCustom->thumb_size; + + $dims = getimagesize($input_file); + if (max($dims[0], $dims[1]) < $thumb_size) { + // Image would get upscaled; do nothing + copy($input_file, $output_file); + } else { + $image = Image::factory($input_file) + ->resize($thumb_size, $thumb_size, $options["master"]) + ->quality(module::get_var("gallery", "image_quality")); + if (graphics::can("sharpen")) { + $image->sharpen(module::get_var("gallery", "image_sharpen")); + } + $image->save($output_file); } - $image->save($output_file); } -*/ + module::event("graphics_resize_completed", $input_file, $output_file, $options); } } diff --git a/3.0/modules/custom_albums/helpers/custom_albums_installer.php b/3.0/modules/custom_albums/helpers/custom_albums_installer.php index 477b70e0..319912e9 100644 --- a/3.0/modules/custom_albums/helpers/custom_albums_installer.php +++ b/3.0/modules/custom_albums/helpers/custom_albums_installer.php @@ -24,10 +24,6 @@ class custom_albums_installer { "gallery", "thumb", "custom_albums::resize", array("width" => 0, "height" => 0, "master" => Image::AUTO), 200); - graphics::add_rule( - "gallery", "resize", "custom_albums::resize", - array("width" => 0, "height" => 0, "master" => Image::AUTO), - 200); // Create a table to store custom album info in. $db = Database::instance(); From 01a22242d3fb946002780a25719f778f61ebf078 Mon Sep 17 00:00:00 2001 From: colings Date: Mon, 3 Jan 2011 12:19:07 +0800 Subject: [PATCH 11/24] Works, need to fix dirtying on custom size change --- .../helpers/custom_albums_event.php | 23 ++++++---- .../helpers/custom_albums_graphics.php | 41 ++++-------------- .../helpers/custom_albums_installer.php | 42 ++++++++++++++++--- 3 files changed, 58 insertions(+), 48 deletions(-) diff --git a/3.0/modules/custom_albums/helpers/custom_albums_event.php b/3.0/modules/custom_albums/helpers/custom_albums_event.php index b8dbe5aa..3564d410 100644 --- a/3.0/modules/custom_albums/helpers/custom_albums_event.php +++ b/3.0/modules/custom_albums/helpers/custom_albums_event.php @@ -18,18 +18,18 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class custom_albums_event_Core { - static function item_edit_form($item, $form) { - if ($item->is_album()) { - $albumCustom = ORM::factory("custom_album")->where("album_id", "=", $item->id)->find(); + static function item_edit_form($item, $form) { + if ($item->is_album()) { + $albumCustom = ORM::factory("custom_album")->where("album_id", "=", $item->id)->find(); - $thumbdata = $form->edit_item->group("custom_album")->label("Custom Album"); + $thumbdata = $form->edit_item->group("custom_album")->label("Custom Album"); - if ($albumCustom->loaded()) { - $thumbdata->input("thumbsize")->label(t("Thumbnail size (in pixels)"))->value($albumCustom->thumb_size); - } else { - $thumbdata->input("thumbsize")->label(t("Thumbnail size (in pixels)")); - } + if ($albumCustom->loaded()) { + $thumbdata->input("thumbsize")->label(t("Thumbnail size (in pixels)"))->value($albumCustom->thumb_size); + } else { + $thumbdata->input("thumbsize")->label(t("Thumbnail size (in pixels)")); } + } } static function item_edit_form_completed($item, $form) { @@ -61,4 +61,9 @@ class custom_albums_event_Core { } } } + + static function theme_edit_form_completed($form) { + // Update our resize rules, in case the thumbnail or resize size has changed + custom_albums_installer::update_rules(); + } } diff --git a/3.0/modules/custom_albums/helpers/custom_albums_graphics.php b/3.0/modules/custom_albums/helpers/custom_albums_graphics.php index b6d6702a..833e39be 100644 --- a/3.0/modules/custom_albums/helpers/custom_albums_graphics.php +++ b/3.0/modules/custom_albums/helpers/custom_albums_graphics.php @@ -18,44 +18,19 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class custom_albums_graphics_Core { - /** - * Resize an image. Valid options are width, height and master. Master is one of the Image - * master dimension constants. - * - * @param string $input_file - * @param string $output_file - * @param array $options - */ - static function resize($input_file, $output_file, $options) { - graphics::init_toolkit(); - - module::event("graphics_resize", $input_file, $output_file, $options); - - if (@filesize($input_file) == 0) { - throw new Exception("@todo EMPTY_INPUT_FILE"); - } - + static function build_thumb($input_file, $output_file, $options) { $albumCustom = ORM::factory("custom_album")->where("album_id", "=", $options["parent_id"])->find(); // If this album has custom data, build the thumbnail at the specified size if ($albumCustom->loaded()) { - $thumb_size = $albumCustom->thumb_size; - - $dims = getimagesize($input_file); - if (max($dims[0], $dims[1]) < $thumb_size) { - // Image would get upscaled; do nothing - copy($input_file, $output_file); - } else { - $image = Image::factory($input_file) - ->resize($thumb_size, $thumb_size, $options["master"]) - ->quality(module::get_var("gallery", "image_quality")); - if (graphics::can("sharpen")) { - $image->sharpen(module::get_var("gallery", "image_sharpen")); - } - $image->save($output_file); - } + $options["width"] = $albumCustom->thumb_size; + $options["height"] = $albumCustom->thumb_size; } - module::event("graphics_resize_completed", $input_file, $output_file, $options); + gallery_graphics::resize($input_file, $output_file, $options); + } + + static function build_resize($input_file, $output_file, $options) { + gallery_graphics::resize($input_file, $output_file, $options); } } diff --git a/3.0/modules/custom_albums/helpers/custom_albums_installer.php b/3.0/modules/custom_albums/helpers/custom_albums_installer.php index 319912e9..b019214e 100644 --- a/3.0/modules/custom_albums/helpers/custom_albums_installer.php +++ b/3.0/modules/custom_albums/helpers/custom_albums_installer.php @@ -19,12 +19,6 @@ */ class custom_albums_installer { static function install() { - // Add rules for generating our thumbnails and resizes - graphics::add_rule( - "gallery", "thumb", "custom_albums::resize", - array("width" => 0, "height" => 0, "master" => Image::AUTO), - 200); - // Create a table to store custom album info in. $db = Database::instance(); @@ -38,6 +32,8 @@ class custom_albums_installer { ) DEFAULT CHARSET=utf8;" ); + custom_albums_installer::update_rules(); + module::set_version("custom_albums", 1); } @@ -47,4 +43,38 @@ class custom_albums_installer { $db->query("DROP TABLE IF EXISTS {custom_albums};"); module::delete("custom_albums"); } + + static function update_rules() { + // Make sure our thumb size matches the gallery one + $thumb_size = module::get_var("gallery", "thumb_size"); + if ($thumb_size != module::get_var("custom_albums", "thumb_size")) { + // Remove and readd our rule with the latest thumb size + graphics::remove_rule("custom_albums", "thumb", "custom_albums_graphics::build_thumb"); + graphics::add_rule( + "custom_albums", "thumb", "custom_albums_graphics::build_thumb", + array("width" => $thumb_size, "height" => $thumb_size, "master" => Image::AUTO), + 101); + + // Deactivate the gallery thumbnail generation, we'll handle it now + graphics::deactivate_rules("gallery"); + + module::set_var("custom_albums", "thumb_size", $thumb_size); + } + + // Make sure our resize size matches the gallery one + $resize_size = module::get_var("gallery", "resize_size"); + if ($resize_size != module::get_var("custom_albums", "resize_size")) { + // Remove and readd our rule with the latest resize size + graphics::remove_rule("custom_albums", "resize", "custom_albums_graphics::build_resize"); + graphics::add_rule( + "custom_albums", "resize", "custom_albums_graphics::build_resize", + array("width" => $resize_size, "height" => $resize_size, "master" => Image::AUTO), + 101); + + // Deactivate the gallery resize, we'll handle it now + graphics::deactivate_rules("gallery"); + + module::set_var("custom_albums", "resize_size", $resize_size); + } + } } From 7ed701b4714f99d7cdb953eef02d206f691264b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Sawicz?= Date: Tue, 4 Jan 2011 00:14:13 +0100 Subject: [PATCH 12/24] [ldap] Use cn when displayName is empty When the optional 'displayName' attribute is empty, use 'cn', which is mandatory and never empty. This prevents empty names being displayed. --- 3.0/modules/ldap/libraries/drivers/IdentityProvider/Ldap.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/3.0/modules/ldap/libraries/drivers/IdentityProvider/Ldap.php b/3.0/modules/ldap/libraries/drivers/IdentityProvider/Ldap.php index d4e096ff..64b11573 100644 --- a/3.0/modules/ldap/libraries/drivers/IdentityProvider/Ldap.php +++ b/3.0/modules/ldap/libraries/drivers/IdentityProvider/Ldap.php @@ -232,7 +232,10 @@ class Ldap_User implements User_Definition { } public function display_name() { - return $this->ldap_entry["displayname"][0]; + if (!empty($this->ldap_entry["displayname"][0])) { + return $this->ldap_entry["displayname"][0]; + } + return $this->ldap_entry["cn"][0]; } public function __get($key) { From ad0bba3ac3facb55dd7ed7035cac920441eafe90 Mon Sep 17 00:00:00 2001 From: brentil Date: Tue, 4 Jan 2011 22:21:23 -0500 Subject: [PATCH 13/24] MU 5 - Fully supports 3.x versions along with pulling version information from multiple sources (Core, Contrib, & GalleryModules). Code cleanup and debug removal. --- .../controllers/admin_moduleupdates.php | 266 ++++++++++------- .../helpers/moduleupdates_event.php | 2 +- .../helpers/moduleupdates_installer.php | 6 +- 3.0/modules/moduleupdates/module.info | 2 +- .../views/admin_moduleupdates.html.php | 35 ++- .../controllers/admin_moduleupdates.php | 271 +++++++++++------- .../helpers/moduleupdates_installer.php | 8 +- 3.1/modules/moduleupdates/module.info | 2 +- .../views/admin_moduleupdates.html.php | 33 ++- 9 files changed, 382 insertions(+), 243 deletions(-) diff --git a/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php b/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php index b1274111..926d8196 100755 --- a/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php +++ b/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php @@ -16,7 +16,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - class Admin_Moduleupdates_Controller extends Admin_Controller { /** @@ -44,15 +43,10 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { $view->page_title = t("Gallery 3 :: Manage Module Updates"); $view->content = new View("admin_moduleupdates.html"); - $devDebug = false; $refreshCache = false; $cache = unserialize(Cache::instance()->get("moduleupdates_cache")); $cache_updates = unserialize(Cache::instance()->get("moduleupdates_cache_updates")); - - //--------------------------------------------------------------------------------------------- - //echo 'Message 01: ' .$cache_updates . '
    '; - //--------------------------------------------------------------------------------------------- //if someone pressed the button to refresh now if (request::method() == "post") { @@ -78,7 +72,6 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { } } catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; } //Check the ability to access the Google $Google = null; @@ -91,71 +84,79 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { } } catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; } + $update_count = 0; + if($refreshCache == true){ foreach (module::available() as $this_module_name => $module_info) { + + $font_color_local = "black"; + $core_version = ''; + $core_server = ''; + $core_dlink = ''; + $font_color_core = "black"; + $contrib_version = ''; + $contrib_server = ''; + $contrib_dlink = ''; + $font_color_contrib = "black"; + $gh_version = ''; + $gh_server = ''; + $gh_dlink = ''; + $font_color_gh = "black"; - //example code for setting cache values - //Cache::instance()->set($key, "$log{$msg}", array("task", "log", "import"), 2592000); - //example delete cache - //Cache::instance()->delete("update_l10n_cache:{$task->id}"); - //example for reading cache - //$log = Cache::instance()->get($key); - $remote_version = ''; - $remote_server = ''; - $update_count = 0; - list ($remote_version, $remote_server) = $this->get_remote_module_version($this_module_name, $devDebug); + $font_color_local = $this->get_local_module_version_color ($module_info->version, $module_info->code_version); + list ($core_version, $core_server) = $this->get_remote_module_version($this_module_name, "CORE"); + $font_color_core = $this->get_module_version_color ($module_info->version, $module_info->code_version, $core_version); + list ($contrib_version, $contrib_server) = $this->get_remote_module_version($this_module_name, "CONTRIB"); + $font_color_contrib = $this->get_module_version_color ($module_info->version, $module_info->code_version, $contrib_version); + list ($gh_version, $gh_server) = $this->get_remote_module_version($this_module_name, "GH"); + $font_color_gh = $this->get_module_version_color ($module_info->version, $module_info->code_version, $gh_version); - $font_color = "black"; - //BLUE - DNE: Does Not Exist, this module was not found - if ($remote_version == "DNE") { - $font_color = "blue"; - //PINK - Your installed version is newer than file version - } else if ($module_info->version != '' and $module_info->code_version < $module_info->version) { - $font_color = "pink"; - //ORANGE - Your file version is newer than the installed version - } else if ($module_info->version != '' and $module_info->code_version > $module_info->version) { - $font_color = "orange"; - //GREEN - Your version is newer than the GitHub - } else if ($remote_version < $module_info->code_version or ($module_info->version != '' - and $remote_version < $module_info->version)) { - $font_color = "green"; - //RED - Your version is older than the GitHub - } else if ($remote_version > $module_info->code_version or ($module_info->version != '' - and $remote_version > $module_info->version)) { - $font_color = "red"; + if($font_color_core == "red" or $font_color_contrib == "red" or $font_color_gh == "red"){ $update_count++; - /* - if($remote_server == "(G3)"){ - $module_info->name = "".$module_info->name.""; - }else if($remote_server == "(G3CC)"){ - $module_info->name = "".$module_info->name.""; - }else if($remote_server == "(brentil)"){ - $module_info->name = "".$module_info->name.""; - } - */ } $module_info->name = "".$module_info->name.""; + if (is_numeric($core_version)) { + if($core_version > $module_info->version) { + //https://github.com/gallery/gallery3/tree/master/modules/recaptcha + //"http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name + $core_dlink = "http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name; + } + } + + if (is_numeric($contrib_version)) { + if($contrib_version > $module_info->version) { + //https://github.com/gallery/gallery3-contrib/tree/master/3.0/modules/moduleupdates + //"http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name + $contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name; + } + } + + if (is_numeric($gh_version)) { + if($gh_version > $module_info->version) { + $gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name; + } + } + //populate the list fo modules and their data $cache->$this_module_name = array ("name" => $module_info->name, "locked" => $module_info->locked, "code_version" => $module_info->code_version, "active" => $module_info->active, "version" => $module_info->version,"description" => $module_info->description, - "remote_version" => $remote_version, "remote_server" => $remote_server, "font_color" => $font_color); + "core_version" => $core_version, "core_server" => $core_server, "font_color_core" => $font_color_core, + "contrib_version" => $contrib_version, "contrib_server" => $contrib_server, "font_color_contrib" => $font_color_contrib, + "gh_version" => $gh_version, "gh_server" => $gh_server, "font_color_gh" => $font_color_gh, + "font_color_local" => $font_color_local, "core_dlink" => $core_dlink, "contrib_dlink" => $contrib_dlink, + "gh_dlink" => $gh_dlink); } //Define right now as YYYY.MM.DD HH:MM with the # of updates that are out of date $cache_updates = array("date" => date("Y.m.d - H:i"), "updates" => $update_count); - - //--------------------------------------------------------------------------------------------- - //echo 'Message 02: ' .$cache_updates . '
    '; - //--------------------------------------------------------------------------------------------- - + //Write out the new data to cache with a 30 day expiration & 0 for update data so it's always present Cache::instance()->set("moduleupdates_cache", serialize($cache), array("ModuleUpdates"), 30*86400); Cache::instance()->set("moduleupdates_cache_updates", serialize($cache_updates), array("ModuleUpdates"), null); @@ -174,6 +175,52 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { } + /** + * + **/ + private function get_module_version_color ($version, $code_version, $remote_version) { + + $font_color = "black"; + + //BLACK - no module version detected + if ($remote_version == "") { + $font_color = "black"; + //BLUE - DNE: Does Not Exist, this module was not found + } else if ($remote_version == "DNE") { + $font_color = "blue"; + //GREEN - Your version is newer than the GitHub + } else if ($remote_version < $code_version or ($version != '' + and $remote_version < $version)) { + $font_color = "green"; + //RED - Your version is older than the GitHub + } else if ($remote_version > $code_version or ($version != '' + and $remote_version > $version)) { + $font_color = "red"; + } + + return $font_color; + } + + + /** + * + **/ + private function get_local_module_version_color ($version, $code_version) { + + $font_color = "black"; + + //PINK - Your installed version is newer than file version + if ($version != '' and $code_version < $version) { + $font_color = "pink"; + //ORANGE - Your file version is newer than the installed version + } else if ($version != '' and $code_version > $version) { + $font_color = "orange"; + } + + return $font_color; + } + + /** * Parses the known GitHub repositories for new versions of modules. * @@ -183,71 +230,82 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { * * http://github.com/gallery/gallery3 * http://github.com/gallery/gallery3-contrib + * http://www.gallerymodules.com * * @author brentil - * @param String The folder name of the module to search for on the remote GitHub server - * @return Array An array with the remote module version and the server it was found on. + * @param String - The folder name of the module to search for on the remote GitHub server + * @param String - The remote server to check against + * @return Array - An array with the remote module version and the server it was found on. */ - private function get_remote_module_version ($module_name, $devDebug) { + private function get_remote_module_version ($module_name, $server_location) { - $version = 'DNE'; + $version = ''; $server = ''; $file = null; - //For development debug only - if ($devDebug == true){ - if ($file == null) { - try { - $file = fopen ("http://github.com/brentil/gallery3-contrib/raw/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$module_name."/module.info", "r"); - if ($file != null) { - $server = '(brentil)'; + switch ($server_location) { + case "CONTRIB": + //Check the Gallery3 Community Contributions GitHub + if ($file == null) { + try { + $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$module_name."/module.info", "r"); + if ($file != null) { + $server = '(GCC)'; + } + } + catch (Exception $e) { + } } - } - catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; - } - } - } - - //Check the main Gallery3 GitHub - if ($file == null) { - try { - $file = fopen ("http://github.com/gallery/gallery3/raw/master/modules/".$module_name."/module.info", "r"); - if ($file != null) { - $server = '(G)'; - } - } - catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; - } + break; + case "CORE": + //Check the main Gallery3 GitHub + if ($file == null) { + try { + $file = fopen ("http://github.com/gallery/gallery3/raw/master/modules/".$module_name."/module.info", "r"); + if ($file != null) { + $server = '(G)'; + } + } + catch (Exception $e) { + } + } + break; + case "GH": + //Check GalleryModules.com + if ($file == null) { + try { + $file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r"); + if ($file != null) { + $server = '(GH)'; + } + } + catch (Exception $e) { + } + } + break; } - - //Check the Gallery3 Community Contributions GitHub - if ($file == null) { - try { - $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$module_name."/module.info", "r"); - if ($file != null) { - $server = '(GCC)'; - } - } - catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; - } - } - - if ($file != null) { + + if ($file != null) { while (!feof ($file)) { $line = fgets ($file, 1024); - - //Regular expression to find & gather the version number in the remote module.info file - if (preg_match ("@version = (.*)@i", $line, $out)) { - $version = $out[1]; - break; - } + if ($server_location == "GH"){ + //GH stores only the version info + if($line == "Not entered" or $line == "See git") { + $line = ""; + } + $version = $line; + break; + } else { + //Regular expression to find & gather the version number in the remote module.info file + if (preg_match ("@version = (.*)@i", $line, $out)) { + $version = $out[1]; + break; + } + } } fclose ($file); } - return array ($version, $server); - } -} + return array ($version, $server); + } +} \ No newline at end of file diff --git a/3.0/modules/moduleupdates/helpers/moduleupdates_event.php b/3.0/modules/moduleupdates/helpers/moduleupdates_event.php index 8dbed46c..dd6efc9c 100644 --- a/3.0/modules/moduleupdates/helpers/moduleupdates_event.php +++ b/3.0/modules/moduleupdates/helpers/moduleupdates_event.php @@ -27,4 +27,4 @@ class moduleupdates_event_Core { ->label(t("Module Updates")) ->url(url::site("admin/moduleupdates"))); } -} +} \ No newline at end of file diff --git a/3.0/modules/moduleupdates/helpers/moduleupdates_installer.php b/3.0/modules/moduleupdates/helpers/moduleupdates_installer.php index 39d1dcc0..911f6b81 100644 --- a/3.0/modules/moduleupdates/helpers/moduleupdates_installer.php +++ b/3.0/modules/moduleupdates/helpers/moduleupdates_installer.php @@ -23,8 +23,8 @@ class moduleupdates_installer { static function install() { $version = module::get_version("moduleupdates"); - if ($version == 0) { - module::set_version("moduleupdates", 4); + if ($version < 1) { + module::set_version("moduleupdates", 5); //Remove the ModuleUpdates cache entry 'JIC' Cache::instance()->delete("ModuleUpdates"); //create the blank ModuleUpdates cache entry with an expiration of 0 days @@ -34,7 +34,7 @@ class moduleupdates_installer { } static function upgrade($version) { - module::set_version("moduleupdates", 4); + module::set_version("moduleupdates", 5); //Remove the ModuleUpdates cache entry 'JIC' Cache::instance()->delete("ModuleUpdates"); //Empty the ModuleUpdates cache entry so our new version starts from scratch diff --git a/3.0/modules/moduleupdates/module.info b/3.0/modules/moduleupdates/module.info index 722abecc..34868eaf 100755 --- a/3.0/modules/moduleupdates/module.info +++ b/3.0/modules/moduleupdates/module.info @@ -1,3 +1,3 @@ name = "Module Updates" description = "Compares your installed module version against the ones stored in the GitHub." -version = 4 \ No newline at end of file +version = 5 \ No newline at end of file diff --git a/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php b/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php index 3d7d5453..d1e0aa3a 100644 --- a/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php +++ b/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php @@ -2,7 +2,7 @@
    -

    +

    @@ -16,7 +16,6 @@
  • Green = Your version is newer than the GitHub
    ") ?>
  • Orange = Your file version is newer than the installed version
    ") ?>
  • Pink = Your installed version is newer than file version
    ") ?>
  • -
  • Blue = Does Not Exist/No information available
    ") ?>
  • ") ?>
  • " class="submit" />
  • @@ -25,24 +24,36 @@
      -
    • +
    - - - - + + + + + + "> - - - - + + + + + + + + + + + + + +
    [File/Installed]") ?> Installed") ?>
    "; ?> "; ?> "; ?> "; ?> "; ?> *"; } ?> "; } ?> "; ?> *"; } ?> $module_name['code_version']) { echo "".$module_name['core_version']."";} else { echo $module_name['core_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['contrib_version']."";} else { echo $module_name['contrib_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['gh_version']."";} else { echo $module_name['gh_version']; } ?> "; } ?>
    Installed") ?>
    -
    +
    \ No newline at end of file diff --git a/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php b/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php index ee74c90d..926d8196 100755 --- a/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php +++ b/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php @@ -16,7 +16,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ - class Admin_Moduleupdates_Controller extends Admin_Controller { /** @@ -44,15 +43,10 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { $view->page_title = t("Gallery 3 :: Manage Module Updates"); $view->content = new View("admin_moduleupdates.html"); - $devDebug = false; - $refreshCache = false; + $refreshCache = false; $cache = unserialize(Cache::instance()->get("moduleupdates_cache")); - $cache_updates = unserialize(Cache::instance()->get("moduleupdates_cache_updates")); - - //--------------------------------------------------------------------------------------------- - //echo 'Message 01: ' .$cache_updates . '
    '; - //--------------------------------------------------------------------------------------------- + $cache_updates = unserialize(Cache::instance()->get("moduleupdates_cache_updates")); //if someone pressed the button to refresh now if (request::method() == "post") { @@ -78,7 +72,6 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { } } catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; } //Check the ability to access the Google $Google = null; @@ -91,71 +84,79 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { } } catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; } + $update_count = 0; + if($refreshCache == true){ foreach (module::available() as $this_module_name => $module_info) { + + $font_color_local = "black"; + $core_version = ''; + $core_server = ''; + $core_dlink = ''; + $font_color_core = "black"; + $contrib_version = ''; + $contrib_server = ''; + $contrib_dlink = ''; + $font_color_contrib = "black"; + $gh_version = ''; + $gh_server = ''; + $gh_dlink = ''; + $font_color_gh = "black"; - //example code for setting cache values - //Cache::instance()->set($key, "$log{$msg}", array("task", "log", "import"), 2592000); - //example delete cache - //Cache::instance()->delete("update_l10n_cache:{$task->id}"); - //example for reading cache - //$log = Cache::instance()->get($key); - $remote_version = ''; - $remote_server = ''; - $update_count = 0; - list ($remote_version, $remote_server) = $this->get_remote_module_version($this_module_name, $devDebug); + $font_color_local = $this->get_local_module_version_color ($module_info->version, $module_info->code_version); + list ($core_version, $core_server) = $this->get_remote_module_version($this_module_name, "CORE"); + $font_color_core = $this->get_module_version_color ($module_info->version, $module_info->code_version, $core_version); + list ($contrib_version, $contrib_server) = $this->get_remote_module_version($this_module_name, "CONTRIB"); + $font_color_contrib = $this->get_module_version_color ($module_info->version, $module_info->code_version, $contrib_version); + list ($gh_version, $gh_server) = $this->get_remote_module_version($this_module_name, "GH"); + $font_color_gh = $this->get_module_version_color ($module_info->version, $module_info->code_version, $gh_version); - $font_color = "black"; - //BLUE - DNE: Does Not Exist, this module was not found - if ($remote_version == "DNE") { - $font_color = "blue"; - //PINK - Your installed version is newer than file version - } else if ($module_info->version != '' and $module_info->code_version < $module_info->version) { - $font_color = "pink"; - //ORANGE - Your file version is newer than the installed version - } else if ($module_info->version != '' and $module_info->code_version > $module_info->version) { - $font_color = "orange"; - //GREEN - Your version is newer than the GitHub - } else if ($remote_version < $module_info->code_version or ($module_info->version != '' - and $remote_version < $module_info->version)) { - $font_color = "green"; - //RED - Your version is older than the GitHub - } else if ($remote_version > $module_info->code_version or ($module_info->version != '' - and $remote_version > $module_info->version)) { - $font_color = "red"; + if($font_color_core == "red" or $font_color_contrib == "red" or $font_color_gh == "red"){ $update_count++; - /* - if($remote_server == "(G3)"){ - $module_info->name = "".$module_info->name.""; - }else if($remote_server == "(G3CC)"){ - $module_info->name = "".$module_info->name.""; - }else if($remote_server == "(brentil)"){ - $module_info->name = "".$module_info->name.""; - } - */ } $module_info->name = "".$module_info->name.""; + if (is_numeric($core_version)) { + if($core_version > $module_info->version) { + //https://github.com/gallery/gallery3/tree/master/modules/recaptcha + //"http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name + $core_dlink = "http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name; + } + } + + if (is_numeric($contrib_version)) { + if($contrib_version > $module_info->version) { + //https://github.com/gallery/gallery3-contrib/tree/master/3.0/modules/moduleupdates + //"http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name + $contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name; + } + } + + if (is_numeric($gh_version)) { + if($gh_version > $module_info->version) { + $gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name; + } + } + //populate the list fo modules and their data $cache->$this_module_name = array ("name" => $module_info->name, "locked" => $module_info->locked, "code_version" => $module_info->code_version, "active" => $module_info->active, "version" => $module_info->version,"description" => $module_info->description, - "remote_version" => $remote_version, "remote_server" => $remote_server, "font_color" => $font_color); + "core_version" => $core_version, "core_server" => $core_server, "font_color_core" => $font_color_core, + "contrib_version" => $contrib_version, "contrib_server" => $contrib_server, "font_color_contrib" => $font_color_contrib, + "gh_version" => $gh_version, "gh_server" => $gh_server, "font_color_gh" => $font_color_gh, + "font_color_local" => $font_color_local, "core_dlink" => $core_dlink, "contrib_dlink" => $contrib_dlink, + "gh_dlink" => $gh_dlink); } //Define right now as YYYY.MM.DD HH:MM with the # of updates that are out of date $cache_updates = array("date" => date("Y.m.d - H:i"), "updates" => $update_count); - - //--------------------------------------------------------------------------------------------- - //echo 'Message 02: ' .$cache_updates . '
    '; - //--------------------------------------------------------------------------------------------- - + //Write out the new data to cache with a 30 day expiration & 0 for update data so it's always present Cache::instance()->set("moduleupdates_cache", serialize($cache), array("ModuleUpdates"), 30*86400); Cache::instance()->set("moduleupdates_cache_updates", serialize($cache_updates), array("ModuleUpdates"), null); @@ -167,12 +168,59 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { $view->content->csrf = access::csrf_token(); $view->content->Google = $Google; $view->content->GitHub = $GitHub; + $view->content->Gallery_Version = substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")); print $view; } + /** + * + **/ + private function get_module_version_color ($version, $code_version, $remote_version) { + + $font_color = "black"; + + //BLACK - no module version detected + if ($remote_version == "") { + $font_color = "black"; + //BLUE - DNE: Does Not Exist, this module was not found + } else if ($remote_version == "DNE") { + $font_color = "blue"; + //GREEN - Your version is newer than the GitHub + } else if ($remote_version < $code_version or ($version != '' + and $remote_version < $version)) { + $font_color = "green"; + //RED - Your version is older than the GitHub + } else if ($remote_version > $code_version or ($version != '' + and $remote_version > $version)) { + $font_color = "red"; + } + + return $font_color; + } + + + /** + * + **/ + private function get_local_module_version_color ($version, $code_version) { + + $font_color = "black"; + + //PINK - Your installed version is newer than file version + if ($version != '' and $code_version < $version) { + $font_color = "pink"; + //ORANGE - Your file version is newer than the installed version + } else if ($version != '' and $code_version > $version) { + $font_color = "orange"; + } + + return $font_color; + } + + /** * Parses the known GitHub repositories for new versions of modules. * @@ -182,71 +230,82 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { * * http://github.com/gallery/gallery3 * http://github.com/gallery/gallery3-contrib + * http://www.gallerymodules.com * * @author brentil - * @param String The folder name of the module to search for on the remote GitHub server - * @return Array An array with the remote module version and the server it was found on. + * @param String - The folder name of the module to search for on the remote GitHub server + * @param String - The remote server to check against + * @return Array - An array with the remote module version and the server it was found on. */ - private function get_remote_module_version ($module_name, $devDebug) { + private function get_remote_module_version ($module_name, $server_location) { - $version = 'DNE'; + $version = ''; $server = ''; $file = null; - //For development debug only - if ($devDebug == true){ - if ($file == null) { - try { - $file = fopen ("http://github.com/brentil/gallery3-contrib/raw/master/3.1/modules/".$module_name."/module.info", "r"); - if ($file != null) { - $server = '(brentil)'; + switch ($server_location) { + case "CONTRIB": + //Check the Gallery3 Community Contributions GitHub + if ($file == null) { + try { + $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$module_name."/module.info", "r"); + if ($file != null) { + $server = '(GCC)'; + } + } + catch (Exception $e) { + } } - } - catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; - } - } - } - - //Check the main Gallery3 GitHub - if ($file == null) { - try { - $file = fopen ("http://github.com/gallery/gallery3/raw/master/modules/".$module_name."/module.info", "r"); - if ($file != null) { - $server = '(G3)'; - } - } - catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; - } + break; + case "CORE": + //Check the main Gallery3 GitHub + if ($file == null) { + try { + $file = fopen ("http://github.com/gallery/gallery3/raw/master/modules/".$module_name."/module.info", "r"); + if ($file != null) { + $server = '(G)'; + } + } + catch (Exception $e) { + } + } + break; + case "GH": + //Check GalleryModules.com + if ($file == null) { + try { + $file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r"); + if ($file != null) { + $server = '(GH)'; + } + } + catch (Exception $e) { + } + } + break; } - - //Check the Gallery3 Community Contributions GitHub - if ($file == null) { - try { - $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/3.1/modules/".$module_name."/module.info", "r"); - if ($file != null) { - $server = '(G3CC)'; - } - } - catch (Exception $e) { - //echo 'Message: ' .$e->getMessage() . '
    '; - } - } - - if ($file != null) { + + if ($file != null) { while (!feof ($file)) { $line = fgets ($file, 1024); - - //Regular expression to find & gather the version number in the remote module.info file - if (preg_match ("@version = (.*)@i", $line, $out)) { - $version = $out[1]; - break; - } + if ($server_location == "GH"){ + //GH stores only the version info + if($line == "Not entered" or $line == "See git") { + $line = ""; + } + $version = $line; + break; + } else { + //Regular expression to find & gather the version number in the remote module.info file + if (preg_match ("@version = (.*)@i", $line, $out)) { + $version = $out[1]; + break; + } + } } fclose ($file); } - return array ($version, $server); - } -} + return array ($version, $server); + } +} \ No newline at end of file diff --git a/3.1/modules/moduleupdates/helpers/moduleupdates_installer.php b/3.1/modules/moduleupdates/helpers/moduleupdates_installer.php index dd0dddb8..911f6b81 100644 --- a/3.1/modules/moduleupdates/helpers/moduleupdates_installer.php +++ b/3.1/modules/moduleupdates/helpers/moduleupdates_installer.php @@ -23,8 +23,8 @@ class moduleupdates_installer { static function install() { $version = module::get_version("moduleupdates"); - if ($version == 0) { - module::set_version("moduleupdates", 2); + if ($version < 1) { + module::set_version("moduleupdates", 5); //Remove the ModuleUpdates cache entry 'JIC' Cache::instance()->delete("ModuleUpdates"); //create the blank ModuleUpdates cache entry with an expiration of 0 days @@ -34,7 +34,7 @@ class moduleupdates_installer { } static function upgrade($version) { - module::set_version("moduleupdates", 2); + module::set_version("moduleupdates", 5); //Remove the ModuleUpdates cache entry 'JIC' Cache::instance()->delete("ModuleUpdates"); //Empty the ModuleUpdates cache entry so our new version starts from scratch @@ -48,4 +48,4 @@ class moduleupdates_installer { Cache::instance()->delete("ModuleUpdates"); module::delete("moduleupdates"); } -} +} \ No newline at end of file diff --git a/3.1/modules/moduleupdates/module.info b/3.1/modules/moduleupdates/module.info index cf43770b..34868eaf 100755 --- a/3.1/modules/moduleupdates/module.info +++ b/3.1/modules/moduleupdates/module.info @@ -1,3 +1,3 @@ name = "Module Updates" description = "Compares your installed module version against the ones stored in the GitHub." -version = 3 +version = 5 \ No newline at end of file diff --git a/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php b/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php index 3fdc06a7..d1e0aa3a 100644 --- a/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php +++ b/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php @@ -2,7 +2,7 @@
    -

    +

    @@ -16,7 +16,6 @@
  • Green = Your version is newer than the GitHub
    ") ?>
  • Orange = Your file version is newer than the installed version
    ") ?>
  • Pink = Your installed version is newer than file version
    ") ?>
  • -
  • Blue = Does Not Exist/No information available
    ") ?>
  • ") ?>
  • " class="submit" />
  • @@ -25,24 +24,36 @@
      -
    • +
    - - - - + + + + + + "> - - - - + + + + + + + + + + + + + +
    [File/Installed]") ?> Installed") ?>
    "; ?> "; ?> "; ?> "; ?> "; ?> *"; } ?> "; } ?> "; ?> *"; } ?> $module_name['code_version']) { echo "".$module_name['core_version']."";} else { echo $module_name['core_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['contrib_version']."";} else { echo $module_name['contrib_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['gh_version']."";} else { echo $module_name['gh_version']; } ?> "; } ?>
    Installed") ?>
    \ No newline at end of file From 14cf53f70602146132a82ead0aa687b780717b0e Mon Sep 17 00:00:00 2001 From: brentil Date: Wed, 5 Jan 2011 20:54:37 -0500 Subject: [PATCH 14/24] Fix for GalleryModules 3.1 version paths and clarified verbiage. --- .../controllers/admin_moduleupdates.php | 25 ++++++++----- .../views/admin_moduleupdates.html.php | 36 +++++++++---------- .../controllers/admin_moduleupdates.php | 25 ++++++++----- .../views/admin_moduleupdates.html.php | 36 +++++++++---------- 4 files changed, 70 insertions(+), 52 deletions(-) diff --git a/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php b/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php index 926d8196..8c06c351 100755 --- a/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php +++ b/3.0/modules/moduleupdates/controllers/admin_moduleupdates.php @@ -123,23 +123,26 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { if (is_numeric($core_version)) { if($core_version > $module_info->version) { - //https://github.com/gallery/gallery3/tree/master/modules/recaptcha - //"http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name $core_dlink = "http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name; } } if (is_numeric($contrib_version)) { if($contrib_version > $module_info->version) { - //https://github.com/gallery/gallery3-contrib/tree/master/3.0/modules/moduleupdates - //"http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name - $contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name; + $contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/". + substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name; } } if (is_numeric($gh_version)) { if($gh_version > $module_info->version) { - $gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name; + $this_gm_repo = str_replace(".","",substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "))); + if($this_gm_repo == "30"){ + $gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name; + } else { + $gh_dlink = "http://www.gallerymodules.com/update".this_gm_repo."/".$this_module_name; + } + } } @@ -248,7 +251,8 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { //Check the Gallery3 Community Contributions GitHub if ($file == null) { try { - $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$module_name."/module.info", "r"); + $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". + substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "))."/modules/".$module_name."/module.info", "r"); if ($file != null) { $server = '(GCC)'; } @@ -274,7 +278,12 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { //Check GalleryModules.com if ($file == null) { try { - $file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r"); + $this_gm_repo = str_replace(".","",substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "))); + if($this_gm_repo == "30"){ + $file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r"); + } else { + $file = fopen ("http://www.gallerymodules.com/".this_gm_repo."m/".$module_name, "r"); + } if ($file != null) { $server = '(GH)'; } diff --git a/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php b/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php index d1e0aa3a..a5dc4a0b 100644 --- a/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php +++ b/3.0/modules/moduleupdates/views/admin_moduleupdates.html.php @@ -3,7 +3,7 @@

    - +
    @@ -24,35 +24,35 @@
      -
    • +
    - - - - - - + + + + + + "> - - - - + + + + - - - - - - + + + + + +
    Installed") ?>
    Installed") ?>
    "; ?> *"; } ?> "; } ?> "; ?> *"; } ?> $module_name['code_version']) { echo "".$module_name['core_version']."";} else { echo $module_name['core_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['contrib_version']."";} else { echo $module_name['contrib_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['gh_version']."";} else { echo $module_name['gh_version']; } ?> "; } ?> "; ?> *"; } ?> "; } ?> "; ?> *"; } ?> $module_name['code_version']) { echo "".$module_name['core_version']."";} else { echo $module_name['core_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['contrib_version']."";} else { echo $module_name['contrib_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['gh_version']."";} else { echo $module_name['gh_version']; } ?> "; } ?>
    Installed") ?>
    Installed") ?>
    diff --git a/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php b/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php index 926d8196..8c06c351 100755 --- a/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php +++ b/3.1/modules/moduleupdates/controllers/admin_moduleupdates.php @@ -123,23 +123,26 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { if (is_numeric($core_version)) { if($core_version > $module_info->version) { - //https://github.com/gallery/gallery3/tree/master/modules/recaptcha - //"http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name $core_dlink = "http://github.com/gallery/gallery3/tree/master/modules/".$this_module_name; } } if (is_numeric($contrib_version)) { if($contrib_version > $module_info->version) { - //https://github.com/gallery/gallery3-contrib/tree/master/3.0/modules/moduleupdates - //"http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name - $contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name; + $contrib_dlink = "http://github.com/gallery/gallery3-contrib/tree/master/". + substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$this_module_name; } } if (is_numeric($gh_version)) { if($gh_version > $module_info->version) { - $gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name; + $this_gm_repo = str_replace(".","",substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "))); + if($this_gm_repo == "30"){ + $gh_dlink = "http://www.gallerymodules.com/update/".$this_module_name; + } else { + $gh_dlink = "http://www.gallerymodules.com/update".this_gm_repo."/".$this_module_name; + } + } } @@ -248,7 +251,8 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { //Check the Gallery3 Community Contributions GitHub if ($file == null) { try { - $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," ")) ."/modules/".$module_name."/module.info", "r"); + $file = fopen ("http://github.com/gallery/gallery3-contrib/raw/master/". + substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "))."/modules/".$module_name."/module.info", "r"); if ($file != null) { $server = '(GCC)'; } @@ -274,7 +278,12 @@ class Admin_Moduleupdates_Controller extends Admin_Controller { //Check GalleryModules.com if ($file == null) { try { - $file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r"); + $this_gm_repo = str_replace(".","",substr_replace(gallery::VERSION,"",strpos(gallery::VERSION," "))); + if($this_gm_repo == "30"){ + $file = fopen ("http://www.gallerymodules.com/m/".$module_name, "r"); + } else { + $file = fopen ("http://www.gallerymodules.com/".this_gm_repo."m/".$module_name, "r"); + } if ($file != null) { $server = '(GH)'; } diff --git a/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php b/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php index d1e0aa3a..a5dc4a0b 100644 --- a/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php +++ b/3.1/modules/moduleupdates/views/admin_moduleupdates.html.php @@ -3,7 +3,7 @@

    - +
    @@ -24,35 +24,35 @@
      -
    • +
    - - - - - - + + + + + + "> - - - - + + + + - - - - - - + + + + + +
    Installed") ?>
    Installed") ?>
    "; ?> *"; } ?> "; } ?> "; ?> *"; } ?> $module_name['code_version']) { echo "".$module_name['core_version']."";} else { echo $module_name['core_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['contrib_version']."";} else { echo $module_name['contrib_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['gh_version']."";} else { echo $module_name['gh_version']; } ?> "; } ?> "; ?> *"; } ?> "; } ?> "; ?> *"; } ?> $module_name['code_version']) { echo "".$module_name['core_version']."";} else { echo $module_name['core_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['contrib_version']."";} else { echo $module_name['contrib_version']; } ?> "; } ?> "; ?> *"; } ?> $module_name['version'] or $module_name['core_version'] > $module_name['code_version']) { echo "".$module_name['gh_version']."";} else { echo $module_name['gh_version']; } ?> "; } ?>
    Installed") ?>
    Installed") ?>
    From ba0e78e269aa97beeed0392074530398771892b8 Mon Sep 17 00:00:00 2001 From: dmolavi Date: Fri, 7 Jan 2011 15:36:16 -0500 Subject: [PATCH 15/24] Fix for CSS display issues. Closes 1583 --- 3.0/modules/ecard/helpers/ecard_block.php | 2 +- 3.0/modules/ecard/views/ecard_block.html.php | 4 ++-- 3.1/modules/ecard/helpers/ecard_block.php | 2 +- 3.1/modules/ecard/views/ecard_block.html.php | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/3.0/modules/ecard/helpers/ecard_block.php b/3.0/modules/ecard/helpers/ecard_block.php index 051c55c6..89e818d7 100644 --- a/3.0/modules/ecard/helpers/ecard_block.php +++ b/3.0/modules/ecard/helpers/ecard_block.php @@ -28,7 +28,7 @@ class ecard_block_Core { case "ecard": if ($theme->item() && $theme->item()->is_photo() && module::get_var("ecard", "location") == "sidebar") { $block = new Block(); - $block->css_id = "g-send-ecard"; + $block->css_id = "g-sendecard"; $block->title = t("eCard"); $block->content = new View("ecard_block.html"); } diff --git a/3.0/modules/ecard/views/ecard_block.html.php b/3.0/modules/ecard/views/ecard_block.html.php index 3f307a1d..d8aa4e4e 100644 --- a/3.0/modules/ecard/views/ecard_block.html.php +++ b/3.0/modules/ecard/views/ecard_block.html.php @@ -1,6 +1,6 @@ -id}") ?>" id="g-send-ecard" +id}") ?>" class="g-dialog-link g-button ui-state-default ui-corner-all"> - + diff --git a/3.1/modules/ecard/helpers/ecard_block.php b/3.1/modules/ecard/helpers/ecard_block.php index 051c55c6..89e818d7 100644 --- a/3.1/modules/ecard/helpers/ecard_block.php +++ b/3.1/modules/ecard/helpers/ecard_block.php @@ -28,7 +28,7 @@ class ecard_block_Core { case "ecard": if ($theme->item() && $theme->item()->is_photo() && module::get_var("ecard", "location") == "sidebar") { $block = new Block(); - $block->css_id = "g-send-ecard"; + $block->css_id = "g-sendecard"; $block->title = t("eCard"); $block->content = new View("ecard_block.html"); } diff --git a/3.1/modules/ecard/views/ecard_block.html.php b/3.1/modules/ecard/views/ecard_block.html.php index 3f307a1d..d8aa4e4e 100644 --- a/3.1/modules/ecard/views/ecard_block.html.php +++ b/3.1/modules/ecard/views/ecard_block.html.php @@ -1,6 +1,6 @@ -id}") ?>" id="g-send-ecard" +id}") ?>" class="g-dialog-link g-button ui-state-default ui-corner-all"> - + From 687b82749564e957d3293f919f6f13487cc76bbb Mon Sep 17 00:00:00 2001 From: Rob Date: Sat, 8 Jan 2011 01:47:48 -0800 Subject: [PATCH 16/24] removed ophan div tag --- 3.0/modules/albumtree/views/albumtree_block_list.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3.0/modules/albumtree/views/albumtree_block_list.html.php b/3.0/modules/albumtree/views/albumtree_block_list.html.php index 43db3a24..0e2cdb6d 100644 --- a/3.0/modules/albumtree/views/albumtree_block_list.html.php +++ b/3.0/modules/albumtree/views/albumtree_block_list.html.php @@ -34,5 +34,5 @@ -
    + From 8035ed40badcd331606e796cbcdd3000f24bafd9 Mon Sep 17 00:00:00 2001 From: Rob Date: Sat, 8 Jan 2011 01:54:54 -0800 Subject: [PATCH 17/24] removed orphan div tag --- 3.1/modules/albumtree/views/albumtree_block_list.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3.1/modules/albumtree/views/albumtree_block_list.html.php b/3.1/modules/albumtree/views/albumtree_block_list.html.php index 43db3a24..0e2cdb6d 100644 --- a/3.1/modules/albumtree/views/albumtree_block_list.html.php +++ b/3.1/modules/albumtree/views/albumtree_block_list.html.php @@ -34,5 +34,5 @@ -
    + From 878ba14230dfc291b26bdf1b26628c0112781698 Mon Sep 17 00:00:00 2001 From: undagiga Date: Sat, 8 Jan 2011 22:32:08 +1100 Subject: [PATCH 18/24] This is my second attempt to update about_this_photo to V3 and to add the new module about_this_album. Hopefully I have pulled all upstream changes this time. --- .../helpers/about_this_album_block.php | 76 +++++++++++++++++++ 3.0/modules/about_this_album/module.info | 3 + .../views/about_this_album.html.php | 68 +++++++++++++++++ .../helpers/about_this_photo_block.php | 2 +- 3.0/modules/about_this_photo/module.info | 2 +- .../views/about_this_photo.html.php | 8 +- .../helpers/about_this_album_block.php | 76 +++++++++++++++++++ 3.1/modules/about_this_album/module.info | 3 + .../views/about_this_album.html.php | 68 +++++++++++++++++ .../helpers/about_this_photo_block.php | 2 +- 3.1/modules/about_this_photo/module.info | 2 +- .../views/about_this_photo.html.php | 8 +- 12 files changed, 306 insertions(+), 12 deletions(-) create mode 100644 3.0/modules/about_this_album/helpers/about_this_album_block.php create mode 100644 3.0/modules/about_this_album/module.info create mode 100644 3.0/modules/about_this_album/views/about_this_album.html.php create mode 100644 3.1/modules/about_this_album/helpers/about_this_album_block.php create mode 100644 3.1/modules/about_this_album/module.info create mode 100644 3.1/modules/about_this_album/views/about_this_album.html.php diff --git a/3.0/modules/about_this_album/helpers/about_this_album_block.php b/3.0/modules/about_this_album/helpers/about_this_album_block.php new file mode 100644 index 00000000..a2a849e5 --- /dev/null +++ b/3.0/modules/about_this_album/helpers/about_this_album_block.php @@ -0,0 +1,76 @@ + t("About This Album")); + } + + static function get($block_id, $theme) { + switch ($block_id) { + case "aboutthisalbum": + $item = $theme->item; + if ((!$item) or (!$theme->item->is_album())) { + return ""; + } + if ($theme->item->is_album()) { + $block = new Block(); + $block->css_id = "g-about-this-album"; + $block->content = new View("about_this_album.html"); + + if ($theme->item()->id == item::root()->id) { + $block->title = t("About this Site"); + $block->content->album_count = ORM::factory("item")->where("type", "=", "album")->where("id", "<>", 1)->count_all(); + $block->content->photo_count = ORM::factory("item")->where("type", "=", "photo")->count_all(); + $block->content->vcount = Database::instance()->query("SELECT SUM({items}.view_count) as c FROM {items} WHERE type=\"photo\"")->current()->c; + } Else { + $block->title = t("About this Album"); + $block->content->album_count = $item->descendants_count(array(array("type", "=", "album"))); + $block->content->photo_count = $item->descendants_count(array(array("type", "=", "photo"))); + // $block->content->vcount= $theme->item()->view_count; + $descds = $item->descendants(); + $descds_view = 0; + foreach ($descds as $descd) { + if ($descd->is_photo()) { + $descds_view += $descd->view_count; + } + } + $block->content->vcount = $descds_view; + if ($item->description) { + $block->content->description = html::clean($item->description); + } + } + + + $all_tags = ORM::factory("tag") + ->join("items_tags", "items_tags.tag_id", "tags.id") + ->join("items", "items.id", "items_tags.item_id", "LEFT") + ->where("items.parent_id", "=", $item->id) + ->order_by("tags.id", "ASC") + ->find_all(); + if (count($all_tags) > 0) { + $block->content->all_tags = $all_tags; + } + } + break; + } + return $block; + } +} diff --git a/3.0/modules/about_this_album/module.info b/3.0/modules/about_this_album/module.info new file mode 100644 index 00000000..8080a24d --- /dev/null +++ b/3.0/modules/about_this_album/module.info @@ -0,0 +1,3 @@ +name = "About this Album" +description = "Show some simple, specific and useful info about a given album" +version = 1 diff --git a/3.0/modules/about_this_album/views/about_this_album.html.php b/3.0/modules/about_this_album/views/about_this_album.html.php new file mode 100644 index 00000000..01dee4f7 --- /dev/null +++ b/3.0/modules/about_this_album/views/about_this_album.html.php @@ -0,0 +1,68 @@ + + + diff --git a/3.0/modules/about_this_photo/helpers/about_this_photo_block.php b/3.0/modules/about_this_photo/helpers/about_this_photo_block.php index 86869844..808d19bd 100644 --- a/3.0/modules/about_this_photo/helpers/about_this_photo_block.php +++ b/3.0/modules/about_this_photo/helpers/about_this_photo_block.php @@ -54,7 +54,7 @@ class about_this_photo_block_Core { $record = ORM::factory("iptc_record")->where("item_id", "=", $theme->item()->id)->find(); if ($record->loaded()) { $record = unserialize($record->data); - $block->content->source = $record["Source"]; + $block->content->name = $record["ObjectName"]; $block->content->caption = $record["Caption"]; } diff --git a/3.0/modules/about_this_photo/module.info b/3.0/modules/about_this_photo/module.info index 632c0f05..e324ae3b 100644 --- a/3.0/modules/about_this_photo/module.info +++ b/3.0/modules/about_this_photo/module.info @@ -1,3 +1,3 @@ name = "About this Photo" description = "Show some simple, specific and useful info about a given photo" -version = 2 +version = 3 diff --git a/3.0/modules/about_this_photo/views/about_this_photo.html.php b/3.0/modules/about_this_photo/views/about_this_photo.html.php index 45db0274..f0ef130a 100644 --- a/3.0/modules/about_this_photo/views/about_this_photo.html.php +++ b/3.0/modules/about_this_photo/views/about_this_photo.html.php @@ -16,14 +16,14 @@ - - + + - +
    -
    +
    diff --git a/3.1/modules/about_this_album/helpers/about_this_album_block.php b/3.1/modules/about_this_album/helpers/about_this_album_block.php new file mode 100644 index 00000000..a2a849e5 --- /dev/null +++ b/3.1/modules/about_this_album/helpers/about_this_album_block.php @@ -0,0 +1,76 @@ + t("About This Album")); + } + + static function get($block_id, $theme) { + switch ($block_id) { + case "aboutthisalbum": + $item = $theme->item; + if ((!$item) or (!$theme->item->is_album())) { + return ""; + } + if ($theme->item->is_album()) { + $block = new Block(); + $block->css_id = "g-about-this-album"; + $block->content = new View("about_this_album.html"); + + if ($theme->item()->id == item::root()->id) { + $block->title = t("About this Site"); + $block->content->album_count = ORM::factory("item")->where("type", "=", "album")->where("id", "<>", 1)->count_all(); + $block->content->photo_count = ORM::factory("item")->where("type", "=", "photo")->count_all(); + $block->content->vcount = Database::instance()->query("SELECT SUM({items}.view_count) as c FROM {items} WHERE type=\"photo\"")->current()->c; + } Else { + $block->title = t("About this Album"); + $block->content->album_count = $item->descendants_count(array(array("type", "=", "album"))); + $block->content->photo_count = $item->descendants_count(array(array("type", "=", "photo"))); + // $block->content->vcount= $theme->item()->view_count; + $descds = $item->descendants(); + $descds_view = 0; + foreach ($descds as $descd) { + if ($descd->is_photo()) { + $descds_view += $descd->view_count; + } + } + $block->content->vcount = $descds_view; + if ($item->description) { + $block->content->description = html::clean($item->description); + } + } + + + $all_tags = ORM::factory("tag") + ->join("items_tags", "items_tags.tag_id", "tags.id") + ->join("items", "items.id", "items_tags.item_id", "LEFT") + ->where("items.parent_id", "=", $item->id) + ->order_by("tags.id", "ASC") + ->find_all(); + if (count($all_tags) > 0) { + $block->content->all_tags = $all_tags; + } + } + break; + } + return $block; + } +} diff --git a/3.1/modules/about_this_album/module.info b/3.1/modules/about_this_album/module.info new file mode 100644 index 00000000..8080a24d --- /dev/null +++ b/3.1/modules/about_this_album/module.info @@ -0,0 +1,3 @@ +name = "About this Album" +description = "Show some simple, specific and useful info about a given album" +version = 1 diff --git a/3.1/modules/about_this_album/views/about_this_album.html.php b/3.1/modules/about_this_album/views/about_this_album.html.php new file mode 100644 index 00000000..01dee4f7 --- /dev/null +++ b/3.1/modules/about_this_album/views/about_this_album.html.php @@ -0,0 +1,68 @@ + + + diff --git a/3.1/modules/about_this_photo/helpers/about_this_photo_block.php b/3.1/modules/about_this_photo/helpers/about_this_photo_block.php index 86869844..808d19bd 100644 --- a/3.1/modules/about_this_photo/helpers/about_this_photo_block.php +++ b/3.1/modules/about_this_photo/helpers/about_this_photo_block.php @@ -54,7 +54,7 @@ class about_this_photo_block_Core { $record = ORM::factory("iptc_record")->where("item_id", "=", $theme->item()->id)->find(); if ($record->loaded()) { $record = unserialize($record->data); - $block->content->source = $record["Source"]; + $block->content->name = $record["ObjectName"]; $block->content->caption = $record["Caption"]; } diff --git a/3.1/modules/about_this_photo/module.info b/3.1/modules/about_this_photo/module.info index 632c0f05..e324ae3b 100644 --- a/3.1/modules/about_this_photo/module.info +++ b/3.1/modules/about_this_photo/module.info @@ -1,3 +1,3 @@ name = "About this Photo" description = "Show some simple, specific and useful info about a given photo" -version = 2 +version = 3 diff --git a/3.1/modules/about_this_photo/views/about_this_photo.html.php b/3.1/modules/about_this_photo/views/about_this_photo.html.php index 45db0274..f0ef130a 100644 --- a/3.1/modules/about_this_photo/views/about_this_photo.html.php +++ b/3.1/modules/about_this_photo/views/about_this_photo.html.php @@ -16,14 +16,14 @@ - - + + - +
    -
    +
    From 7904946b54b9444e4107338f3e746d8daef9f968 Mon Sep 17 00:00:00 2001 From: dmolavi Date: Sat, 8 Jan 2011 20:16:32 -0500 Subject: [PATCH 19/24] Oops, forgot to bump version number. --- 3.0/modules/ecard/helpers/ecard_installer.php | 2 +- 3.0/modules/ecard/module.info | 2 +- 3.1/modules/ecard/helpers/ecard_installer.php | 2 +- 3.1/modules/ecard/module.info | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/3.0/modules/ecard/helpers/ecard_installer.php b/3.0/modules/ecard/helpers/ecard_installer.php index d9887094..a9a6934f 100644 --- a/3.0/modules/ecard/helpers/ecard_installer.php +++ b/3.0/modules/ecard/helpers/ecard_installer.php @@ -25,6 +25,6 @@ class ecard_installer { "Click the image to be taken to the gallery."); module::set_var("ecard", "bcc", ""); module::set_var("ecard", "access_permissions", "everybody"); - module::set_version("ecard", 4); + module::set_version("ecard", 5); } } diff --git a/3.0/modules/ecard/module.info b/3.0/modules/ecard/module.info index 95c8f6a4..407ebd68 100644 --- a/3.0/modules/ecard/module.info +++ b/3.0/modules/ecard/module.info @@ -1,4 +1,4 @@ name = "E-Card" description = "Send a photo as a postcard" -version = 4 +version = 5 diff --git a/3.1/modules/ecard/helpers/ecard_installer.php b/3.1/modules/ecard/helpers/ecard_installer.php index d9887094..a9a6934f 100644 --- a/3.1/modules/ecard/helpers/ecard_installer.php +++ b/3.1/modules/ecard/helpers/ecard_installer.php @@ -25,6 +25,6 @@ class ecard_installer { "Click the image to be taken to the gallery."); module::set_var("ecard", "bcc", ""); module::set_var("ecard", "access_permissions", "everybody"); - module::set_version("ecard", 4); + module::set_version("ecard", 5); } } diff --git a/3.1/modules/ecard/module.info b/3.1/modules/ecard/module.info index 95c8f6a4..407ebd68 100644 --- a/3.1/modules/ecard/module.info +++ b/3.1/modules/ecard/module.info @@ -1,4 +1,4 @@ name = "E-Card" description = "Send a photo as a postcard" -version = 4 +version = 5 From 2c9a045ad909462194514bda21bd4bc194b88a58 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 8 Jan 2011 18:37:52 -0800 Subject: [PATCH 20/24] Move the HTMLPurifier code from lib to vendor to be compliant with our packaging structure --- 3.0/modules/purifier/helpers/purifier.php | 2 +- .../HTMLPurifier/HTMLPurifier.auto.php | 0 .../HTMLPurifier/HTMLPurifier.autoload.php | 0 .../HTMLPurifier/HTMLPurifier.func.php | 0 .../HTMLPurifier/HTMLPurifier.includes.php | 0 .../HTMLPurifier/HTMLPurifier.kses.php | 0 .../HTMLPurifier/HTMLPurifier.path.php | 0 .../{lib => vendor}/HTMLPurifier/HTMLPurifier.php | 0 .../HTMLPurifier/HTMLPurifier.safe-includes.php | 0 .../HTMLPurifier/HTMLPurifier/AttrCollections.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/CSS.php | 0 .../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 0 .../HTMLPurifier/AttrDef/CSS/Background.php | 0 .../HTMLPurifier/AttrDef/CSS/BackgroundPosition.php | 0 .../HTMLPurifier/AttrDef/CSS/Border.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php | 0 .../HTMLPurifier/AttrDef/CSS/Composite.php | 0 .../AttrDef/CSS/DenyElementDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Filter.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php | 0 .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 0 .../HTMLPurifier/AttrDef/CSS/ImportantDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Length.php | 0 .../HTMLPurifier/AttrDef/CSS/ListStyle.php | 0 .../HTMLPurifier/AttrDef/CSS/Multiple.php | 0 .../HTMLPurifier/AttrDef/CSS/Number.php | 0 .../HTMLPurifier/AttrDef/CSS/Percentage.php | 0 .../HTMLPurifier/AttrDef/CSS/TextDecoration.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/Enum.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php | 0 .../HTMLPurifier/AttrDef/HTML/Class.php | 0 .../HTMLPurifier/AttrDef/HTML/Color.php | 0 .../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php | 0 .../HTMLPurifier/AttrDef/HTML/Length.php | 0 .../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 0 .../HTMLPurifier/AttrDef/HTML/MultiLength.php | 0 .../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 0 .../HTMLPurifier/AttrDef/HTML/Pixels.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/Integer.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/Lang.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/Switch.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/Text.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/URI.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php | 0 .../HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php | 0 .../HTMLPurifier/HTMLPurifier/AttrTransform.php | 0 .../HTMLPurifier/AttrTransform/Background.php | 0 .../HTMLPurifier/AttrTransform/BdoDir.php | 0 .../HTMLPurifier/AttrTransform/BgColor.php | 0 .../HTMLPurifier/AttrTransform/BoolToCSS.php | 0 .../HTMLPurifier/AttrTransform/Border.php | 0 .../HTMLPurifier/AttrTransform/EnumToCSS.php | 0 .../HTMLPurifier/AttrTransform/ImgRequired.php | 0 .../HTMLPurifier/AttrTransform/ImgSpace.php | 0 .../HTMLPurifier/AttrTransform/Input.php | 0 .../HTMLPurifier/AttrTransform/Lang.php | 0 .../HTMLPurifier/AttrTransform/Length.php | 0 .../HTMLPurifier/AttrTransform/Name.php | 0 .../HTMLPurifier/AttrTransform/NameSync.php | 0 .../HTMLPurifier/AttrTransform/SafeEmbed.php | 0 .../HTMLPurifier/AttrTransform/SafeObject.php | 0 .../HTMLPurifier/AttrTransform/SafeParam.php | 0 .../HTMLPurifier/AttrTransform/ScriptRequired.php | 0 .../HTMLPurifier/AttrTransform/Textarea.php | 0 .../HTMLPurifier/HTMLPurifier/AttrTypes.php | 0 .../HTMLPurifier/HTMLPurifier/AttrValidator.php | 0 .../HTMLPurifier/HTMLPurifier/Bootstrap.php | 0 .../HTMLPurifier/HTMLPurifier/CSSDefinition.php | 0 .../HTMLPurifier/HTMLPurifier/ChildDef.php | 0 .../HTMLPurifier/ChildDef/Chameleon.php | 0 .../HTMLPurifier/HTMLPurifier/ChildDef/Custom.php | 0 .../HTMLPurifier/HTMLPurifier/ChildDef/Empty.php | 0 .../HTMLPurifier/HTMLPurifier/ChildDef/Optional.php | 0 .../HTMLPurifier/HTMLPurifier/ChildDef/Required.php | 0 .../HTMLPurifier/ChildDef/StrictBlockquote.php | 0 .../HTMLPurifier/HTMLPurifier/ChildDef/Table.php | 0 .../HTMLPurifier/HTMLPurifier/Config.php | 0 .../HTMLPurifier/HTMLPurifier/ConfigSchema.php | 0 .../ConfigSchema/Builder/ConfigSchema.php | 0 .../HTMLPurifier/ConfigSchema/Builder/Xml.php | 0 .../HTMLPurifier/ConfigSchema/Exception.php | 0 .../HTMLPurifier/ConfigSchema/Interchange.php | 0 .../ConfigSchema/Interchange/Directive.php | 0 .../HTMLPurifier/ConfigSchema/Interchange/Id.php | 0 .../ConfigSchema/InterchangeBuilder.php | 0 .../HTMLPurifier/ConfigSchema/Validator.php | 0 .../HTMLPurifier/ConfigSchema/ValidatorAtom.php | 0 .../HTMLPurifier/ConfigSchema/schema.ser | Bin .../ConfigSchema/schema/Attr.AllowedClasses.txt | 0 .../schema/Attr.AllowedFrameTargets.txt | 0 .../ConfigSchema/schema/Attr.AllowedRel.txt | 0 .../ConfigSchema/schema/Attr.AllowedRev.txt | 0 .../ConfigSchema/schema/Attr.ClassUseCDATA.txt | 0 .../ConfigSchema/schema/Attr.DefaultImageAlt.txt | 0 .../schema/Attr.DefaultInvalidImage.txt | 0 .../schema/Attr.DefaultInvalidImageAlt.txt | 0 .../ConfigSchema/schema/Attr.DefaultTextDir.txt | 0 .../ConfigSchema/schema/Attr.EnableID.txt | 0 .../ConfigSchema/schema/Attr.ForbiddenClasses.txt | 0 .../ConfigSchema/schema/Attr.IDBlacklist.txt | 0 .../ConfigSchema/schema/Attr.IDBlacklistRegexp.txt | 0 .../ConfigSchema/schema/Attr.IDPrefix.txt | 0 .../ConfigSchema/schema/Attr.IDPrefixLocal.txt | 0 .../schema/AutoFormat.AutoParagraph.txt | 0 .../ConfigSchema/schema/AutoFormat.Custom.txt | 0 .../schema/AutoFormat.DisplayLinkURI.txt | 0 .../ConfigSchema/schema/AutoFormat.Linkify.txt | 0 .../schema/AutoFormat.PurifierLinkify.DocURL.txt | 0 .../schema/AutoFormat.PurifierLinkify.txt | 0 ...AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 0 .../schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt | 0 .../ConfigSchema/schema/AutoFormat.RemoveEmpty.txt | 0 .../ConfigSchema/schema/CSS.AllowImportant.txt | 0 .../ConfigSchema/schema/CSS.AllowTricky.txt | 0 .../ConfigSchema/schema/CSS.AllowedProperties.txt | 0 .../ConfigSchema/schema/CSS.DefinitionRev.txt | 0 .../ConfigSchema/schema/CSS.MaxImgLength.txt | 0 .../ConfigSchema/schema/CSS.Proprietary.txt | 0 .../ConfigSchema/schema/Cache.DefinitionImpl.txt | 0 .../ConfigSchema/schema/Cache.SerializerPath.txt | 0 .../ConfigSchema/schema/Core.AggressivelyFixLt.txt | 0 .../ConfigSchema/schema/Core.CollectErrors.txt | 0 .../ConfigSchema/schema/Core.ColorKeywords.txt | 0 .../schema/Core.ConvertDocumentToFragment.txt | 0 .../schema/Core.DirectLexLineNumberSyncInterval.txt | 0 .../ConfigSchema/schema/Core.Encoding.txt | 0 .../schema/Core.EscapeInvalidChildren.txt | 0 .../ConfigSchema/schema/Core.EscapeInvalidTags.txt | 0 .../schema/Core.EscapeNonASCIICharacters.txt | 0 .../ConfigSchema/schema/Core.HiddenElements.txt | 0 .../ConfigSchema/schema/Core.Language.txt | 0 .../ConfigSchema/schema/Core.LexerImpl.txt | 0 .../schema/Core.MaintainLineNumbers.txt | 0 .../ConfigSchema/schema/Core.RemoveInvalidImg.txt | 0 .../schema/Core.RemoveScriptContents.txt | 0 .../ConfigSchema/schema/Filter.Custom.txt | 0 .../schema/Filter.ExtractStyleBlocks.Escaping.txt | 0 .../schema/Filter.ExtractStyleBlocks.Scope.txt | 0 .../schema/Filter.ExtractStyleBlocks.TidyImpl.txt | 0 .../schema/Filter.ExtractStyleBlocks.txt | 0 .../ConfigSchema/schema/Filter.YouTube.txt | 0 .../ConfigSchema/schema/HTML.Allowed.txt | 0 .../ConfigSchema/schema/HTML.AllowedAttributes.txt | 0 .../ConfigSchema/schema/HTML.AllowedElements.txt | 0 .../ConfigSchema/schema/HTML.AllowedModules.txt | 0 .../ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt | 0 .../ConfigSchema/schema/HTML.BlockWrapper.txt | 0 .../ConfigSchema/schema/HTML.CoreModules.txt | 0 .../ConfigSchema/schema/HTML.CustomDoctype.txt | 0 .../ConfigSchema/schema/HTML.DefinitionID.txt | 0 .../ConfigSchema/schema/HTML.DefinitionRev.txt | 0 .../ConfigSchema/schema/HTML.Doctype.txt | 0 .../schema/HTML.ForbiddenAttributes.txt | 0 .../ConfigSchema/schema/HTML.ForbiddenElements.txt | 0 .../ConfigSchema/schema/HTML.MaxImgLength.txt | 0 .../ConfigSchema/schema/HTML.Parent.txt | 0 .../ConfigSchema/schema/HTML.Proprietary.txt | 0 .../ConfigSchema/schema/HTML.SafeEmbed.txt | 0 .../ConfigSchema/schema/HTML.SafeObject.txt | 0 .../ConfigSchema/schema/HTML.Strict.txt | 0 .../ConfigSchema/schema/HTML.TidyAdd.txt | 0 .../ConfigSchema/schema/HTML.TidyLevel.txt | 0 .../ConfigSchema/schema/HTML.TidyRemove.txt | 0 .../ConfigSchema/schema/HTML.Trusted.txt | 0 .../HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt | 0 .../schema/Output.CommentScriptContents.txt | 0 .../ConfigSchema/schema/Output.Newline.txt | 0 .../ConfigSchema/schema/Output.SortAttr.txt | 0 .../ConfigSchema/schema/Output.TidyFormat.txt | 0 .../ConfigSchema/schema/Test.ForceNoIconv.txt | 0 .../ConfigSchema/schema/URI.AllowedSchemes.txt | 0 .../HTMLPurifier/ConfigSchema/schema/URI.Base.txt | 0 .../ConfigSchema/schema/URI.DefaultScheme.txt | 0 .../ConfigSchema/schema/URI.DefinitionID.txt | 0 .../ConfigSchema/schema/URI.DefinitionRev.txt | 0 .../ConfigSchema/schema/URI.Disable.txt | 0 .../ConfigSchema/schema/URI.DisableExternal.txt | 0 .../schema/URI.DisableExternalResources.txt | 0 .../ConfigSchema/schema/URI.DisableResources.txt | 0 .../HTMLPurifier/ConfigSchema/schema/URI.Host.txt | 0 .../ConfigSchema/schema/URI.HostBlacklist.txt | 0 .../ConfigSchema/schema/URI.MakeAbsolute.txt | 0 .../HTMLPurifier/ConfigSchema/schema/URI.Munge.txt | 0 .../ConfigSchema/schema/URI.MungeResources.txt | 0 .../ConfigSchema/schema/URI.MungeSecretKey.txt | 0 .../schema/URI.OverrideAllowedSchemes.txt | 0 .../HTMLPurifier/ConfigSchema/schema/info.ini | 0 .../HTMLPurifier/HTMLPurifier/ContentSets.php | 0 .../HTMLPurifier/HTMLPurifier/Context.php | 0 .../HTMLPurifier/HTMLPurifier/Definition.php | 0 .../HTMLPurifier/HTMLPurifier/DefinitionCache.php | 0 .../HTMLPurifier/DefinitionCache/Decorator.php | 0 .../DefinitionCache/Decorator/Cleanup.php | 0 .../DefinitionCache/Decorator/Memory.php | 0 .../DefinitionCache/Decorator/Template.php.in | 0 .../HTMLPurifier/DefinitionCache/Null.php | 0 .../HTMLPurifier/DefinitionCache/Serializer.php | 0 .../HTMLPurifier/DefinitionCache/Serializer/README | 0 .../HTMLPurifier/DefinitionCacheFactory.php | 0 .../HTMLPurifier/HTMLPurifier/Doctype.php | 0 .../HTMLPurifier/HTMLPurifier/DoctypeRegistry.php | 0 .../HTMLPurifier/HTMLPurifier/ElementDef.php | 0 .../HTMLPurifier/HTMLPurifier/Encoder.php | 0 .../HTMLPurifier/HTMLPurifier/EntityLookup.php | 0 .../HTMLPurifier/EntityLookup/entities.ser | 0 .../HTMLPurifier/HTMLPurifier/EntityParser.php | 0 .../HTMLPurifier/HTMLPurifier/ErrorCollector.php | 0 .../HTMLPurifier/HTMLPurifier/ErrorStruct.php | 0 .../HTMLPurifier/HTMLPurifier/Exception.php | 0 .../HTMLPurifier/HTMLPurifier/Filter.php | 0 .../HTMLPurifier/Filter/ExtractStyleBlocks.php | 0 .../HTMLPurifier/HTMLPurifier/Filter/YouTube.php | 0 .../HTMLPurifier/HTMLPurifier/Generator.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLDefinition.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php | 0 .../HTMLPurifier/HTMLModule/CommonAttributes.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php | 0 .../HTMLPurifier/HTMLModule/Hypertext.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Image.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/List.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Name.php | 0 .../HTMLModule/NonXMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Object.php | 0 .../HTMLPurifier/HTMLModule/Presentation.php | 0 .../HTMLPurifier/HTMLModule/Proprietary.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php | 0 .../HTMLPurifier/HTMLModule/SafeEmbed.php | 0 .../HTMLPurifier/HTMLModule/SafeObject.php | 0 .../HTMLPurifier/HTMLModule/Scripting.php | 0 .../HTMLPurifier/HTMLModule/StyleAttribute.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Target.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Text.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Name.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Proprietary.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Strict.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Transitional.php | 0 .../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 0 .../HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php | 0 .../HTMLPurifier/HTMLModule/XMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLPurifier/HTMLModuleManager.php | 0 .../HTMLPurifier/HTMLPurifier/IDAccumulator.php | 0 .../HTMLPurifier/HTMLPurifier/Injector.php | 0 .../HTMLPurifier/Injector/AutoParagraph.php | 0 .../HTMLPurifier/Injector/DisplayLinkURI.php | 0 .../HTMLPurifier/HTMLPurifier/Injector/Linkify.php | 0 .../HTMLPurifier/Injector/PurifierLinkify.php | 0 .../HTMLPurifier/Injector/RemoveEmpty.php | 0 .../HTMLPurifier/Injector/SafeObject.php | 0 .../HTMLPurifier/HTMLPurifier/Language.php | 0 .../HTMLPurifier/Language/classes/en-x-test.php | 0 .../HTMLPurifier/Language/messages/en-x-test.php | 0 .../Language/messages/en-x-testmini.php | 0 .../HTMLPurifier/Language/messages/en.php | 0 .../HTMLPurifier/HTMLPurifier/LanguageFactory.php | 0 .../HTMLPurifier/HTMLPurifier/Length.php | 0 .../HTMLPurifier/HTMLPurifier/Lexer.php | 0 .../HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php | 0 .../HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php | 0 .../HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php | 0 .../HTMLPurifier/HTMLPurifier/Lexer/PH5P.php | 0 .../HTMLPurifier/HTMLPurifier/PercentEncoder.php | 0 .../HTMLPurifier/HTMLPurifier/Printer.php | 0 .../HTMLPurifier/Printer/CSSDefinition.php | 0 .../HTMLPurifier/Printer/ConfigForm.css | 0 .../HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js | 0 .../HTMLPurifier/Printer/ConfigForm.php | 0 .../HTMLPurifier/Printer/HTMLDefinition.php | 0 .../HTMLPurifier/HTMLPurifier/PropertyList.php | 0 .../HTMLPurifier/PropertyListIterator.php | 0 .../HTMLPurifier/HTMLPurifier/Strategy.php | 0 .../HTMLPurifier/Strategy/Composite.php | 0 .../HTMLPurifier/HTMLPurifier/Strategy/Core.php | 0 .../HTMLPurifier/Strategy/FixNesting.php | 0 .../HTMLPurifier/Strategy/MakeWellFormed.php | 0 .../HTMLPurifier/Strategy/RemoveForeignElements.php | 0 .../HTMLPurifier/Strategy/ValidateAttributes.php | 0 .../HTMLPurifier/HTMLPurifier/StringHash.php | 0 .../HTMLPurifier/HTMLPurifier/StringHashParser.php | 0 .../HTMLPurifier/HTMLPurifier/TagTransform.php | 0 .../HTMLPurifier/HTMLPurifier/TagTransform/Font.php | 0 .../HTMLPurifier/TagTransform/Simple.php | 0 .../HTMLPurifier/HTMLPurifier/Token.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Comment.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Empty.php | 0 .../HTMLPurifier/HTMLPurifier/Token/End.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Start.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Tag.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Text.php | 0 .../HTMLPurifier/HTMLPurifier/TokenFactory.php | 0 .../HTMLPurifier/HTMLPurifier/URI.php | 0 .../HTMLPurifier/HTMLPurifier/URIDefinition.php | 0 .../HTMLPurifier/HTMLPurifier/URIFilter.php | 0 .../HTMLPurifier/URIFilter/DisableExternal.php | 0 .../URIFilter/DisableExternalResources.php | 0 .../HTMLPurifier/URIFilter/HostBlacklist.php | 0 .../HTMLPurifier/URIFilter/MakeAbsolute.php | 0 .../HTMLPurifier/HTMLPurifier/URIFilter/Munge.php | 0 .../HTMLPurifier/HTMLPurifier/URIParser.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme/ftp.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme/http.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme/https.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme/mailto.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme/news.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme/nntp.php | 0 .../HTMLPurifier/HTMLPurifier/URISchemeRegistry.php | 0 .../HTMLPurifier/HTMLPurifier/UnitConverter.php | 0 .../HTMLPurifier/HTMLPurifier/VarParser.php | 0 .../HTMLPurifier/VarParser/Flexible.php | 0 .../HTMLPurifier/HTMLPurifier/VarParser/Native.php | 0 .../HTMLPurifier/VarParserException.php | 0 .../HTMLPurifier/HTMLPurifierLicense | 0 323 files changed, 1 insertion(+), 1 deletion(-) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.auto.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.autoload.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.func.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.includes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.kses.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.path.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.safe-includes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrCollections.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Text.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTypes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrValidator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Bootstrap.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/CSSDefinition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Required.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Table.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Config.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ContentSets.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Context.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Definition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Doctype.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ElementDef.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Encoder.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/EntityLookup.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/EntityParser.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ErrorCollector.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ErrorStruct.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Exception.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Filter.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Filter/YouTube.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Generator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLDefinition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/List.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/IDAccumulator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/Linkify.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/messages/en.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/LanguageFactory.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Length.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/PercentEncoder.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/PropertyList.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/PropertyListIterator.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/Composite.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/Core.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/StringHash.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/StringHashParser.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TagTransform.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TagTransform/Font.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Comment.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Empty.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/End.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Start.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Tag.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Text.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TokenFactory.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URI.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIDefinition.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIParser.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/http.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/https.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/news.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/UnitConverter.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParser.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParser/Native.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParserException.php (100%) rename 3.0/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifierLicense (100%) diff --git a/3.0/modules/purifier/helpers/purifier.php b/3.0/modules/purifier/helpers/purifier.php index 97742b50..2af53180 100644 --- a/3.0/modules/purifier/helpers/purifier.php +++ b/3.0/modules/purifier/helpers/purifier.php @@ -21,7 +21,7 @@ class purifier { static function purify($dirty_html) { if (!isset(self::$_purifier)) { - require_once(MODPATH . "purifier/lib/HTMLPurifier/HTMLPurifier.auto.php"); + require_once(MODPATH . "purifier/vendor/HTMLPurifier/HTMLPurifier.auto.php"); $config = HTMLPurifier_Config::createDefault(); foreach (Kohana::config("purifier") as $category => $key_value) { foreach ($key_value as $key => $value) { diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.auto.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.auto.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.auto.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.auto.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.autoload.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.autoload.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.autoload.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.autoload.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.func.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.func.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.func.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.func.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.includes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.includes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.kses.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.kses.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.kses.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.kses.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.path.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.path.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.path.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.path.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.safe-includes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier.safe-includes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrCollections.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrCollections.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrCollections.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrCollections.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Text.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Text.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Text.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Text.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTypes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTypes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTypes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTypes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrValidator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrValidator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrValidator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrValidator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Bootstrap.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Bootstrap.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Bootstrap.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Bootstrap.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/CSSDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/CSSDefinition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Required.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Required.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Required.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Required.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Table.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Table.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Table.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Table.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Config.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Config.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ContentSets.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ContentSets.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ContentSets.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ContentSets.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Context.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Context.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Context.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Context.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Definition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Definition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Definition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Definition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Doctype.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Doctype.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Doctype.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Doctype.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ElementDef.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ElementDef.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Encoder.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Encoder.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Encoder.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Encoder.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityParser.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityParser.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityParser.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityParser.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorCollector.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorCollector.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorCollector.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorCollector.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorStruct.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorStruct.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorStruct.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorStruct.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Exception.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Exception.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Exception.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Exception.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/YouTube.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/YouTube.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Generator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Generator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLDefinition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/List.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/List.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/IDAccumulator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/IDAccumulator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/IDAccumulator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/IDAccumulator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/Linkify.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/Linkify.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/Linkify.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/Linkify.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/LanguageFactory.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/LanguageFactory.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/LanguageFactory.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/LanguageFactory.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Length.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Length.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Length.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Length.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PercentEncoder.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PercentEncoder.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PercentEncoder.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PercentEncoder.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyList.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyList.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyList.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyList.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyListIterator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyListIterator.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyListIterator.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyListIterator.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Composite.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Composite.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Composite.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Composite.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Core.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Core.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Core.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Core.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHash.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHash.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHash.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHash.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHashParser.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHashParser.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHashParser.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHashParser.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Font.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Font.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Font.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Font.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Comment.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Comment.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Comment.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Comment.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Empty.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Empty.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Empty.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Empty.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/End.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/End.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/End.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/End.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Start.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Start.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Start.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Start.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Tag.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Tag.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Tag.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Tag.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Text.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Text.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Text.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Text.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TokenFactory.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TokenFactory.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TokenFactory.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TokenFactory.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URI.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URI.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URI.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URI.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIDefinition.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIDefinition.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIDefinition.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIParser.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIParser.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIParser.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIParser.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/http.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/http.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/http.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/http.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/https.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/https.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/https.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/https.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/news.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/news.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/news.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/news.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/UnitConverter.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/UnitConverter.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/UnitConverter.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/UnitConverter.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Native.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Native.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Native.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Native.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParserException.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParserException.php similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParserException.php rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParserException.php diff --git a/3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifierLicense b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifierLicense similarity index 100% rename from 3.0/modules/purifier/lib/HTMLPurifier/HTMLPurifierLicense rename to 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifierLicense From 0005833e8e6f09170b19a9a3cc33b56a6a271275 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 8 Jan 2011 18:39:08 -0800 Subject: [PATCH 21/24] Update HTMLPurifier to 4.2.0 --- .../HTMLPurifier/HTMLPurifier.includes.php | 6 +- .../vendor/HTMLPurifier/HTMLPurifier.php | 6 +- .../HTMLPurifier.safe-includes.php | 4 + .../HTMLPurifier/HTMLPurifier/AttrDef.php | 36 +++++++ .../AttrDef/CSS/BackgroundPosition.php | 21 ++-- .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 52 ++++------ .../HTMLPurifier/AttrDef/CSS/URI.php | 12 +-- .../AttrTransform/ImgRequired.php | 3 +- .../HTMLPurifier/AttrTransform/SafeParam.php | 13 +++ .../HTMLPurifier/CSSDefinition.php | 19 +++- .../HTMLPurifier/HTMLPurifier/Config.php | 2 +- .../HTMLPurifier/ConfigSchema/schema.ser | Bin 12999 -> 13701 bytes ...utoFormat.RemoveSpansWithoutAttributes.txt | 11 +++ .../schema/CSS.ForbiddenProperties.txt | 13 +++ .../schema/Core.NormalizeNewlines.txt | 11 +++ .../Core.RemoveProcessingInstructions.txt | 11 +++ .../ConfigSchema/schema/Filter.YouTube.txt | 5 + .../ConfigSchema/schema/HTML.Allowed.txt | 11 ++- .../schema/HTML.AllowedElements.txt | 17 ++-- .../schema/HTML.FlashAllowFullScreen.txt | 11 +++ .../ConfigSchema/schema/HTML.SafeEmbed.txt | 7 +- .../ConfigSchema/schema/HTML.SafeObject.txt | 7 +- .../schema/Output.FlashCompat.txt | 11 +++ .../schema/URI.AllowedSchemes.txt | 2 + .../schema/URI.DisableResources.txt | 7 +- .../HTMLPurifier/HTMLPurifier/ElementDef.php | 7 ++ .../HTMLPurifier/Filter/YouTube.php | 10 +- .../HTMLPurifier/HTMLPurifier/Generator.php | 56 ++++++++++- .../HTMLPurifier/HTMLDefinition.php | 7 +- .../HTMLPurifier/HTMLModule/List.php | 6 +- .../HTMLPurifier/HTMLModule/SafeEmbed.php | 1 + .../HTMLPurifier/HTMLModule/SafeObject.php | 5 +- .../HTMLModule/Tidy/Proprietary.php | 1 + .../HTMLPurifier/Injector/AutoParagraph.php | 21 ++-- .../Injector/RemoveSpansWithoutAttributes.php | 60 +++++++++++ .../HTMLPurifier/Injector/SafeObject.php | 6 +- .../HTMLPurifier/Language/messages/en.php | 1 + .../HTMLPurifier/HTMLPurifier/Lexer.php | 34 ++++++- .../HTMLPurifier/Lexer/DirectLex.php | 2 +- .../HTMLPurifier/Lexer/PEARSax3.php | 37 ++++++- .../HTMLPurifier/HTMLPurifier/Lexer/PH5P.php | 4 +- .../HTMLPurifier/Strategy/MakeWellFormed.php | 18 ++++ .../URIFilter/DisableResources.php | 11 +++ .../HTMLPurifier/URIScheme/data.php | 93 ++++++++++++++++++ .../HTMLPurifier/URIScheme/file.php | 26 +++++ .../HTMLPurifier/VarParser/Flexible.php | 9 +- 46 files changed, 599 insertions(+), 114 deletions(-) create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php create mode 100644 3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php index e57f2ab3..08737c20 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php @@ -7,7 +7,7 @@ * primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS * FILE, changes will be overwritten the next time the script is run. * - * @version 4.0.0 + * @version 4.2.0 * * @warning * You must *not* include any other HTML Purifier files before this file, @@ -176,6 +176,7 @@ require 'HTMLPurifier/Injector/DisplayLinkURI.php'; require 'HTMLPurifier/Injector/Linkify.php'; require 'HTMLPurifier/Injector/PurifierLinkify.php'; require 'HTMLPurifier/Injector/RemoveEmpty.php'; +require 'HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php'; require 'HTMLPurifier/Injector/SafeObject.php'; require 'HTMLPurifier/Lexer/DOMLex.php'; require 'HTMLPurifier/Lexer/DirectLex.php'; @@ -195,9 +196,12 @@ require 'HTMLPurifier/Token/Start.php'; require 'HTMLPurifier/Token/Text.php'; require 'HTMLPurifier/URIFilter/DisableExternal.php'; require 'HTMLPurifier/URIFilter/DisableExternalResources.php'; +require 'HTMLPurifier/URIFilter/DisableResources.php'; require 'HTMLPurifier/URIFilter/HostBlacklist.php'; require 'HTMLPurifier/URIFilter/MakeAbsolute.php'; require 'HTMLPurifier/URIFilter/Munge.php'; +require 'HTMLPurifier/URIScheme/data.php'; +require 'HTMLPurifier/URIScheme/file.php'; require 'HTMLPurifier/URIScheme/ftp.php'; require 'HTMLPurifier/URIScheme/http.php'; require 'HTMLPurifier/URIScheme/https.php'; diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php index 71e90632..0430ad39 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php @@ -19,7 +19,7 @@ */ /* - HTML Purifier 4.0.0 - Standards Compliant HTML Filtering + HTML Purifier 4.2.0 - Standards Compliant HTML Filtering Copyright (C) 2006-2008 Edward Z. Yang This library is free software; you can redistribute it and/or @@ -55,10 +55,10 @@ class HTMLPurifier { /** Version of HTML Purifier */ - public $version = '4.0.0'; + public $version = '4.2.0'; /** Constant with version of HTML Purifier */ - const VERSION = '4.0.0'; + const VERSION = '4.2.0'; /** Global configuration object */ public $config; diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php index 5f0e1d8f..899a1f2e 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php @@ -170,6 +170,7 @@ require_once $__dir . '/HTMLPurifier/Injector/DisplayLinkURI.php'; require_once $__dir . '/HTMLPurifier/Injector/Linkify.php'; require_once $__dir . '/HTMLPurifier/Injector/PurifierLinkify.php'; require_once $__dir . '/HTMLPurifier/Injector/RemoveEmpty.php'; +require_once $__dir . '/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php'; require_once $__dir . '/HTMLPurifier/Injector/SafeObject.php'; require_once $__dir . '/HTMLPurifier/Lexer/DOMLex.php'; require_once $__dir . '/HTMLPurifier/Lexer/DirectLex.php'; @@ -189,9 +190,12 @@ require_once $__dir . '/HTMLPurifier/Token/Start.php'; require_once $__dir . '/HTMLPurifier/Token/Text.php'; require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternal.php'; require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternalResources.php'; +require_once $__dir . '/HTMLPurifier/URIFilter/DisableResources.php'; require_once $__dir . '/HTMLPurifier/URIFilter/HostBlacklist.php'; require_once $__dir . '/HTMLPurifier/URIFilter/MakeAbsolute.php'; require_once $__dir . '/HTMLPurifier/URIFilter/Munge.php'; +require_once $__dir . '/HTMLPurifier/URIScheme/data.php'; +require_once $__dir . '/HTMLPurifier/URIScheme/file.php'; require_once $__dir . '/HTMLPurifier/URIScheme/ftp.php'; require_once $__dir . '/HTMLPurifier/URIScheme/http.php'; require_once $__dir . '/HTMLPurifier/URIScheme/https.php'; diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php index 7fac54e8..6f82201e 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php @@ -82,6 +82,42 @@ abstract class HTMLPurifier_AttrDef return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string); } + /** + * Parses a possibly escaped CSS string and returns the "pure" + * version of it. + */ + protected function expandCSSEscape($string) { + // flexibly parse it + $ret = ''; + for ($i = 0, $c = strlen($string); $i < $c; $i++) { + if ($string[$i] === '\\') { + $i++; + if ($i >= $c) { + $ret .= '\\'; + break; + } + if (ctype_xdigit($string[$i])) { + $code = $string[$i]; + for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) { + if (!ctype_xdigit($string[$i])) break; + $code .= $string[$i]; + } + // We have to be extremely careful when adding + // new characters, to make sure we're not breaking + // the encoding. + $char = HTMLPurifier_Encoder::unichr(hexdec($code)); + if (HTMLPurifier_Encoder::cleanUTF8($char) === '') continue; + $ret .= $char; + if ($i < $c && trim($string[$i]) !== '') $i--; + continue; + } + if ($string[$i] === "\n") continue; + } + $ret .= $string[$i]; + } + return $ret; + } + } // vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php index e067a754..665321e3 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php @@ -59,7 +59,8 @@ class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef $keywords = array(); $keywords['h'] = false; // left, right $keywords['v'] = false; // top, bottom - $keywords['c'] = false; // center + $keywords['ch'] = false; // center (first word) + $keywords['cv'] = false; // center (second word) $measures = array(); $i = 0; @@ -79,6 +80,13 @@ class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef $lbit = ctype_lower($bit) ? $bit : strtolower($bit); if (isset($lookup[$lbit])) { $status = $lookup[$lbit]; + if ($status == 'c') { + if ($i == 0) { + $status = 'ch'; + } else { + $status = 'cv'; + } + } $keywords[$status] = $lbit; $i++; } @@ -101,20 +109,19 @@ class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef if (!$i) return false; // no valid values were caught - $ret = array(); // first keyword if ($keywords['h']) $ret[] = $keywords['h']; - elseif (count($measures)) $ret[] = array_shift($measures); - elseif ($keywords['c']) { - $ret[] = $keywords['c']; - $keywords['c'] = false; // prevent re-use: center = center center + elseif ($keywords['ch']) { + $ret[] = $keywords['ch']; + $keywords['cv'] = false; // prevent re-use: center = center center } + elseif (count($measures)) $ret[] = array_shift($measures); if ($keywords['v']) $ret[] = $keywords['v']; + elseif ($keywords['cv']) $ret[] = $keywords['cv']; elseif (count($measures)) $ret[] = array_shift($measures); - elseif ($keywords['c']) $ret[] = $keywords['c']; if (empty($ret)) return false; return implode(' ', $ret); diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php index 33435c76..f1ceec4a 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php @@ -34,37 +34,10 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef $quote = $font[0]; if ($font[$length - 1] !== $quote) continue; $font = substr($font, 1, $length - 2); - - $new_font = ''; - for ($i = 0, $c = strlen($font); $i < $c; $i++) { - if ($font[$i] === '\\') { - $i++; - if ($i >= $c) { - $new_font .= '\\'; - break; - } - if (ctype_xdigit($font[$i])) { - $code = $font[$i]; - for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) { - if (!ctype_xdigit($font[$i])) break; - $code .= $font[$i]; - } - // We have to be extremely careful when adding - // new characters, to make sure we're not breaking - // the encoding. - $char = HTMLPurifier_Encoder::unichr(hexdec($code)); - if (HTMLPurifier_Encoder::cleanUTF8($char) === '') continue; - $new_font .= $char; - if ($i < $c && trim($font[$i]) !== '') $i--; - continue; - } - if ($font[$i] === "\n") continue; - } - $new_font .= $font[$i]; - } - - $font = $new_font; } + + $font = $this->expandCSSEscape($font); + // $font is a pure representation of the font name if (ctype_alnum($font) && $font !== '') { @@ -73,12 +46,21 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef continue; } - // complicated font, requires quoting + // bugger out on whitespace. form feed (0C) really + // shouldn't show up regardless + $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font); - // armor single quotes and new lines - $font = str_replace("\\", "\\\\", $font); - $font = str_replace("'", "\\'", $font); - $final .= "'$font', "; + // These ugly transforms don't pose a security + // risk (as \\ and \" might). We could try to be clever and + // use single-quote wrapping when there is a double quote + // present, but I have choosen not to implement that. + // (warning: this code relies on the selection of quotation + // mark below) + $font = str_replace('\\', '\\5C ', $font); + $font = str_replace('"', '\\22 ', $font); + + // complicated font, requires quoting + $final .= "\"$font\", "; // note that this will later get turned into " } $final = rtrim($final, ', '); if ($final === '') return false; diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php index d09c87bc..98df033d 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php @@ -34,20 +34,16 @@ class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI $uri = substr($uri, 1, $new_length - 1); } - $keys = array( '(', ')', ',', ' ', '"', "'"); - $values = array('\\(', '\\)', '\\,', '\\ ', '\\"', "\\'"); - $uri = str_replace($values, $keys, $uri); + $uri = $this->expandCSSEscape($uri); $result = parent::validate($uri, $config, $context); if ($result === false) return false; - // escape necessary characters according to CSS spec - // except for the comma, none of these should appear in the - // URI at all - $result = str_replace($keys, $values, $result); + // extra sanity check; should have been done by URI + $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", $result); - return "url($result)"; + return "url(\"$result\")"; } diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php index a1e5a83a..3d09eca3 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php @@ -24,7 +24,8 @@ class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform if ($src) { $alt = $config->get('Attr.DefaultImageAlt'); if ($alt === null) { - $attr['alt'] = basename($attr['src']); + // truncate if the alt is too long + $attr['alt'] = substr(basename($attr['src']),0,40); } else { $attr['alt'] = $alt; } diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php index e677feae..d14390bc 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php @@ -33,12 +33,25 @@ class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform case 'allowNetworking': $attr['value'] = 'internal'; break; + case 'allowFullScreen': + if ($config->get('HTML.FlashAllowFullScreen')) { + $attr['value'] = ($attr['value'] == 'true') ? 'true' : 'false'; + } else { + $attr['value'] = 'false'; + } + break; case 'wmode': $attr['value'] = 'window'; break; case 'movie': + case 'src': + $attr['name'] = "movie"; $attr['value'] = $this->uri->validate($attr['value'], $config, $context); break; + case 'flashvars': + // we're going to allow arbitrary inputs to the SWF, on + // the reasoning that it could only hack the SWF, not us. + break; // add other cases to support other param name/value pairs default: $attr['name'] = $attr['value'] = null; diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php index 17bf9931..09afc1f1 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php @@ -272,20 +272,29 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition // setup allowed elements $support = "(for information on implementing this, see the ". "support forums) "; - $allowed_attributes = $config->get('CSS.AllowedProperties'); - if ($allowed_attributes !== null) { + $allowed_properties = $config->get('CSS.AllowedProperties'); + if ($allowed_properties !== null) { foreach ($this->info as $name => $d) { - if(!isset($allowed_attributes[$name])) unset($this->info[$name]); - unset($allowed_attributes[$name]); + if(!isset($allowed_properties[$name])) unset($this->info[$name]); + unset($allowed_properties[$name]); } // emit errors - foreach ($allowed_attributes as $name => $d) { + foreach ($allowed_properties as $name => $d) { // :TODO: Is this htmlspecialchars() call really necessary? $name = htmlspecialchars($name); trigger_error("Style attribute '$name' is not supported $support", E_USER_WARNING); } } + $forbidden_properties = $config->get('CSS.ForbiddenProperties'); + if ($forbidden_properties !== null) { + foreach ($this->info as $name => $d) { + if (isset($forbidden_properties[$name])) { + unset($this->info[$name]); + } + } + } + } } diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php index 28529e7f..ada1b701 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php @@ -20,7 +20,7 @@ class HTMLPurifier_Config /** * HTML Purifier's version */ - public $version = '4.0.0'; + public $version = '4.2.0'; /** * Bool indicator whether or not to automatically finalize diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser index bbf12f9c3e7392aa8143727d2485f6f9ad1f97e1..978089c6291e7d828f6233ac632cedd8a98fdfd7 100644 GIT binary patch delta 810 zcmX?}+L}GVl-bb0Wb$Aui0oCOfrRw>C49>}{O7%-E&&kXKDNC|4ocvH+Mavju7Dx@mR-j4Asl~;adFh^c z#U(|h$t9Wjd0^!RoAWrHGAWr_DS3qW`slgkBo=2l=H%p;yOrkT1Sc1zrsjc6HL#v6 zsH?EKfV+uN+QLf7zqF*Fv;?BsIX|}`u>`8_~#?WZy$&Z;!CkLyEZJx{`&NBH7hr(t_&PPm>x9H1mw&iJJ zoIJ@$c=HF|BTOV~sbiY_R>6?baI?H(8q4Gzsui1q)r6UWHb`wguX%uV^A`OBOq(Ye HeP#jx*kClb diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt new file mode 100644 index 00000000..dde990ab --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt @@ -0,0 +1,11 @@ +AutoFormat.RemoveSpansWithoutAttributes +TYPE: bool +VERSION: 4.0.1 +DEFAULT: false +--DESCRIPTION-- +

    + This directive causes span tags without any attributes + to be removed. It will also remove spans that had all attributes + removed during processing. +

    +--# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt new file mode 100644 index 00000000..f1f5c5f1 --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt @@ -0,0 +1,13 @@ +CSS.ForbiddenProperties +TYPE: lookup +VERSION: 4.2.0 +DEFAULT: array() +--DESCRIPTION-- +

    + This is the logical inverse of %CSS.AllowedProperties, and it will + override that directive or any other directive. If possible, + %CSS.AllowedProperties is recommended over this directive, + because it can sometimes be difficult to tell whether or not you've + forbidden all of the CSS properties you truly would like to disallow. +

    +--# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt new file mode 100644 index 00000000..d77f5360 --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt @@ -0,0 +1,11 @@ +Core.NormalizeNewlines +TYPE: bool +VERSION: 4.2.0 +DEFAULT: true +--DESCRIPTION-- +

    + Whether or not to normalize newlines to the operating + system default. When false, HTML Purifier + will attempt to preserve mixed newline files. +

    +--# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt new file mode 100644 index 00000000..3397d9f7 --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt @@ -0,0 +1,11 @@ +Core.RemoveProcessingInstructions +TYPE: bool +VERSION: 4.2.0 +DEFAULT: false +--DESCRIPTION-- +Instead of escaping processing instructions in the form <? ... +?>, remove it out-right. This may be useful if the HTML +you are validating contains XML processing instruction gunk, however, +it can also be user-unfriendly for people attempting to post PHP +snippets. +--# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt index 7fa6536b..321eaa2d 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt @@ -3,6 +3,11 @@ TYPE: bool VERSION: 3.1.0 DEFAULT: false --DESCRIPTION-- +

    + Warning: Deprecated in favor of %HTML.SafeObject and + %Output.FlashCompat (turn both on to allow YouTube videos and other + Flash content). +

    This directive enables YouTube video embedding in HTML Purifier. Check this document diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt index 3e231d2d..0b2c106d 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt @@ -5,11 +5,14 @@ DEFAULT: NULL --DESCRIPTION--

    - This is a convenience directive that rolls the functionality of - %HTML.AllowedElements and %HTML.AllowedAttributes into one directive. + This is a preferred convenience directive that combines + %HTML.AllowedElements and %HTML.AllowedAttributes. Specify elements and attributes that are allowed using: - element1[attr1|attr2],element2.... You can also use - newlines instead of commas to separate elements. + element1[attr1|attr2],element2.... For example, + if you would like to only allow paragraphs and links, specify + a[href],p. You can specify attributes that apply + to all elements using an asterisk, e.g. *[lang]. + You can also use newlines instead of commas to separate elements.

    Warning: diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt index 888d5581..1d3fa790 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt @@ -4,12 +4,17 @@ VERSION: 1.3.0 DEFAULT: NULL --DESCRIPTION--

    - If HTML Purifier's tag set is unsatisfactory for your needs, you - can overload it with your own list of tags to allow. Note that this - method is subtractive: it does its job by taking away from HTML Purifier - usual feature set, so you cannot add a tag that HTML Purifier never - supported in the first place (like embed, form or head). If you - change this, you probably also want to change %HTML.AllowedAttributes. + If HTML Purifier's tag set is unsatisfactory for your needs, you can + overload it with your own list of tags to allow. If you change + this, you probably also want to change %HTML.AllowedAttributes; see + also %HTML.Allowed which lets you set allowed elements and + attributes at the same time. +

    +

    + If you attempt to allow an element that HTML Purifier does not know + about, HTML Purifier will raise an error. You will need to manually + tell HTML Purifier about this element by using the + advanced customization features.

    Warning: If another directive conflicts with the diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt new file mode 100644 index 00000000..7878dc0b --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt @@ -0,0 +1,11 @@ +HTML.FlashAllowFullScreen +TYPE: bool +VERSION: 4.2.0 +DEFAULT: false +--DESCRIPTION-- +

    + Whether or not to permit embedded Flash content from + %HTML.SafeObject to expand to the full screen. Corresponds to + the allowFullScreen parameter. +

    +--# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt index f635a685..cdda09a4 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt @@ -7,8 +7,7 @@ DEFAULT: false Whether or not to permit embed tags in documents, with a number of extra security features added to prevent script execution. This is similar to what websites like MySpace do to embed tags. Embed is a proprietary - element and will cause your website to stop validating. You probably want - to enable this with %HTML.SafeObject. - Highly experimental. -

    + element and will cause your website to stop validating; you should + see if you can use %Output.FlashCompat with %HTML.SafeObject instead + first.

    --# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt index 32967b88..ceb342e2 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt @@ -6,9 +6,8 @@ DEFAULT: false

    Whether or not to permit object tags in documents, with a number of extra security features added to prevent script execution. This is similar to - what websites like MySpace do to object tags. You may also want to - enable %HTML.SafeEmbed for maximum interoperability with Internet Explorer, - although embed tags will cause your website to stop validating. - Highly experimental. + what websites like MySpace do to object tags. You should also enable + %Output.FlashCompat in order to generate Internet Explorer + compatibility code for your object tags.

    --# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt new file mode 100644 index 00000000..93398e85 --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt @@ -0,0 +1,11 @@ +Output.FlashCompat +TYPE: bool +VERSION: 4.1.0 +DEFAULT: false +--DESCRIPTION-- +

    + If true, HTML Purifier will generate Internet Explorer compatibility + code for all object code. This is highly recommended if you enable + %HTML.SafeObject. +

    +--# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt index 98fdfe92..666635a5 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt @@ -12,4 +12,6 @@ array ( --DESCRIPTION-- Whitelist that defines the schemes that a URI is allowed to have. This prevents XSS attacks from using pseudo-schemes like javascript or mocha. +There is also support for the data and file +URI schemes, but they are not enabled by default. --# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt index 51e6ea91..f891de49 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt @@ -1,12 +1,15 @@ URI.DisableResources TYPE: bool -VERSION: 1.3.0 +VERSION: 4.2.0 DEFAULT: false --DESCRIPTION-- -

    Disables embedding resources, essentially meaning no pictures. You can still link to them though. See %URI.DisableExternalResources for why this might be a good idea.

    +

    + Note: While this directive has been available since 1.3.0, + it didn't actually start doing anything until 4.2.0. +

    --# vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php index c4f5df97..cbd4e345 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php @@ -97,6 +97,13 @@ class HTMLPurifier_ElementDef */ public $autoclose = array(); + /** + * If a foreign element is found in this element, test if it is + * allowed by this sub-element; if it is, instead of closing the + * current element, place it inside this element. + */ + public $wrap; + /** * Whether or not this is a formatting element affected by the * "Active Formatting Elements" algorithm. diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php index aa3c17a0..9a9d9f96 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php @@ -7,13 +7,13 @@ class HTMLPurifier_Filter_YouTube extends HTMLPurifier_Filter public function preFilter($html, $config, $context) { $pre_regex = '#]+>.+?'. - 'http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?#s'; + 'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?#s'; $pre_replace = '\1'; return preg_replace($pre_regex, $pre_replace, $html); } public function postFilter($html, $config, $context) { - $post_regex = '#([A-Za-z0-9\-_]+)#'; + $post_regex = '#((?:v|cp)/[A-Za-z0-9\-_=]+)#'; return preg_replace_callback($post_regex, array($this, 'postFilterCallback'), $html); } @@ -24,10 +24,10 @@ class HTMLPurifier_Filter_YouTube extends HTMLPurifier_Filter protected function postFilterCallback($matches) { $url = $this->armorUrl($matches[1]); return ''. - ''. + 'data="http://www.youtube.com/'.$url.'">'. + ''. ''. diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php index 22e841c1..e5988b64 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php @@ -31,6 +31,17 @@ class HTMLPurifier_Generator */ private $_sortAttr; + /** + * Cache of %Output.FlashCompat + */ + private $_flashCompat; + + /** + * Stack for keeping track of object information when outputting IE + * compatibility code. + */ + private $_flashStack = array(); + /** * Configuration for the generator */ @@ -44,6 +55,7 @@ class HTMLPurifier_Generator $this->config = $config; $this->_scriptFix = $config->get('Output.CommentScriptContents'); $this->_sortAttr = $config->get('Output.SortAttr'); + $this->_flashCompat = $config->get('Output.FlashCompat'); $this->_def = $config->getHTMLDefinition(); $this->_xhtml = $this->_def->doctype->xml; } @@ -86,9 +98,11 @@ class HTMLPurifier_Generator } // Normalize newlines to system defined value - $nl = $this->config->get('Output.Newline'); - if ($nl === null) $nl = PHP_EOL; - if ($nl !== "\n") $html = str_replace("\n", $nl, $html); + if ($this->config->get('Core.NormalizeNewlines')) { + $nl = $this->config->get('Output.Newline'); + if ($nl === null) $nl = PHP_EOL; + if ($nl !== "\n") $html = str_replace("\n", $nl, $html); + } return $html; } @@ -104,12 +118,41 @@ class HTMLPurifier_Generator } elseif ($token instanceof HTMLPurifier_Token_Start) { $attr = $this->generateAttributes($token->attr, $token->name); + if ($this->_flashCompat) { + if ($token->name == "object") { + $flash = new stdclass(); + $flash->attr = $token->attr; + $flash->param = array(); + $this->_flashStack[] = $flash; + } + } return '<' . $token->name . ($attr ? ' ' : '') . $attr . '>'; } elseif ($token instanceof HTMLPurifier_Token_End) { - return 'name . '>'; + $_extra = ''; + if ($this->_flashCompat) { + if ($token->name == "object" && !empty($this->_flashStack)) { + $flash = array_pop($this->_flashStack); + $compat_token = new HTMLPurifier_Token_Empty("embed"); + foreach ($flash->attr as $name => $val) { + if ($name == "classid") continue; + if ($name == "type") continue; + if ($name == "data") $name = "src"; + $compat_token->attr[$name] = $val; + } + foreach ($flash->param as $name => $val) { + if ($name == "movie") $name = "src"; + $compat_token->attr[$name] = $val; + } + $_extra = ""; + } + } + return $_extra . 'name . '>'; } elseif ($token instanceof HTMLPurifier_Token_Empty) { + if ($this->_flashCompat && $token->name == "param" && !empty($this->_flashStack)) { + $this->_flashStack[count($this->_flashStack)-1]->param[$token->attr['name']] = $token->attr['value']; + } $attr = $this->generateAttributes($token->attr, $token->name); return '<' . $token->name . ($attr ? ' ' : '') . $attr . ( $this->_xhtml ? ' /': '' ) //
    v.
    @@ -174,7 +217,10 @@ class HTMLPurifier_Generator * permissible for non-attribute output. * @return String escaped data. */ - public function escape($string, $quote = ENT_COMPAT) { + public function escape($string, $quote = null) { + // Workaround for APC bug on Mac Leopard reported by sidepodcast + // http://htmlpurifier.org/phorum/read.php?3,4823,4846 + if ($quote === null) $quote = ENT_COMPAT; return htmlspecialchars($string, $quote, 'UTF-8'); } diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php index 0195ce4c..f775604a 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php @@ -300,7 +300,12 @@ class HTMLPurifier_HTMLDefinition extends HTMLPurifier_Definition unset($allowed_attributes_mutable[$key]); } } - if ($delete) unset($this->info[$tag]->attr[$attr]); + if ($delete) { + if ($this->info[$tag]->attr[$attr]->required) { + trigger_error("Required attribute '$attr' in element '$tag' was not allowed, which means '$tag' will not be allowed either", E_USER_WARNING); + } + unset($this->info[$tag]->attr[$attr]); + } } } // emit errors diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php index db2d5324..2911a69b 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php @@ -20,8 +20,10 @@ class HTMLPurifier_HTMLModule_List extends HTMLPurifier_HTMLModule public $content_sets = array('Flow' => 'List'); public function setup($config) { - $this->addElement('ol', 'List', 'Required: li', 'Common'); - $this->addElement('ul', 'List', 'Required: li', 'Common'); + $ol = $this->addElement('ol', 'List', 'Required: li', 'Common'); + $ol->wrap = "li"; + $ul = $this->addElement('ul', 'List', 'Required: li', 'Common'); + $ul->wrap = "li"; $this->addElement('dl', 'List', 'Required: dt | dd', 'Common'); $this->addElement('li', false, 'Flow', 'Common'); diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php index 1fd57145..7f602317 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php @@ -20,6 +20,7 @@ class HTMLPurifier_HTMLModule_SafeEmbed extends HTMLPurifier_HTMLModule 'height' => 'Pixels#' . $max, 'allowscriptaccess' => 'Enum#never', 'allownetworking' => 'Enum#internal', + 'flashvars' => 'Text', 'wmode' => 'Enum#window', 'name' => 'ID', ) diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php index 4378d2c6..d3de4f47 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php @@ -28,7 +28,10 @@ class HTMLPurifier_HTMLModule_SafeObject extends HTMLPurifier_HTMLModule 'type' => 'Enum#application/x-shockwave-flash', 'width' => 'Pixels#' . $max, 'height' => 'Pixels#' . $max, - 'data' => 'URI#embedded' + 'data' => 'URI#embedded', + 'classid' => 'Enum#clsid:d27cdb6e-ae6d-11cf-96b8-444553540000', + 'codebase' => new HTMLPurifier_AttrDef_Enum(array( + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0')), ) ); $object->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeObject(); diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php index f6aa6b03..d043aa72 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php @@ -15,6 +15,7 @@ class HTMLPurifier_HTMLModule_Tidy_Proprietary extends HTMLPurifier_HTMLModule_T $r['thead@background'] = new HTMLPurifier_AttrTransform_Background(); $r['tfoot@background'] = new HTMLPurifier_AttrTransform_Background(); $r['tbody@background'] = new HTMLPurifier_AttrTransform_Background(); + $r['table@height'] = new HTMLPurifier_AttrTransform_Length('height'); return $r; } diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php index c5444dbe..72152d81 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php @@ -34,16 +34,21 @@ class HTMLPurifier_Injector_AutoParagraph extends HTMLPurifier_Injector // ---- // This is a degenerate case } else { - // State 1.2: PAR1 - // ---- + if (!$token->is_whitespace || $this->_isInline($current)) { + // State 1.2: PAR1 + // ---- - // State 1.3: PAR1\n\nPAR2 - // ------------ + // State 1.3: PAR1\n\nPAR2 + // ------------ - // State 1.4:
    PAR1\n\nPAR2 (see State 2) - // ------------ - $token = array($this->_pStart()); - $this->_splitText($text, $token); + // State 1.4:
    PAR1\n\nPAR2 (see State 2) + // ------------ + $token = array($this->_pStart()); + $this->_splitText($text, $token); + } else { + // State 1.5: \n
    + // -- + } } } else { // State 2:
    PAR1... (similar to 1.4) diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php new file mode 100644 index 00000000..509d5dc7 --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php @@ -0,0 +1,60 @@ +attrValidator = new HTMLPurifier_AttrValidator(); + $this->config = $config; + $this->context = $context; + return parent::prepare($config, $context); + } + + public function handleElement(&$token) { + if ($token->name !== 'span' || !$token instanceof HTMLPurifier_Token_Start) { + return; + } + + // We need to validate the attributes now since this doesn't normally + // happen until after MakeWellFormed. If all the attributes are removed + // the span needs to be removed too. + $this->attrValidator->validateToken($token, $this->config, $this->context); + $token->armor['ValidateAttributes'] = true; + + if (!empty($token->attr)) { + return; + } + + $nesting = 0; + $spanContentTokens = array(); + while ($this->forwardUntilEndToken($i, $current, $nesting)) {} + + if ($current instanceof HTMLPurifier_Token_End && $current->name === 'span') { + // Mark closing span tag for deletion + $current->markForDeletion = true; + // Delete open span tag + $token = false; + } + } + + public function handleEnd(&$token) { + if ($token->markForDeletion) { + $token = false; + } + } +} + +// vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php index 42d8fd40..fc01eebc 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php @@ -20,6 +20,9 @@ class HTMLPurifier_Injector_SafeObject extends HTMLPurifier_Injector protected $allowedParam = array( 'wmode' => true, 'movie' => true, + 'flashvars' => true, + 'src' => true, + 'allowFullScreen' => true, // if omitted, assume to be 'false' ); public function prepare($config, $context) { @@ -47,7 +50,8 @@ class HTMLPurifier_Injector_SafeObject extends HTMLPurifier_Injector // We need this fix because YouTube doesn't supply a data // attribute, which we need if a type is specified. This is // *very* Flash specific. - if (!isset($this->objectStack[$i]->attr['data']) && $token->attr['name'] == 'movie') { + if (!isset($this->objectStack[$i]->attr['data']) && + ($token->attr['name'] == 'movie' || $token->attr['name'] == 'src')) { $this->objectStack[$i]->attr['data'] = $token->attr['value']; } // Check if the parameter is the correct value but has not diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php index 5377e5a3..2c96e307 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php @@ -23,6 +23,7 @@ $messages = array( 'Lexer: Missing gt' => 'Missing greater-than sign (>), previous less-than sign (<) should be escaped', 'Lexer: Missing attribute key' => 'Attribute declaration has no key', 'Lexer: Missing end quote' => 'Attribute declaration has no end quote', +'Lexer: Extracted body' => 'Removed document metadata tags', 'Strategy_RemoveForeignElements: Tag transform' => '<$1> element transformed into $CurrentToken.Serialized', 'Strategy_RemoveForeignElements: Missing required attribute' => '$CurrentToken.Compact element missing required attribute $1', diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php index 9f20a412..6d6f4864 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php @@ -230,6 +230,17 @@ class HTMLPurifier_Lexer ); } + /** + * Special Internet Explorer conditional comments should be removed. + */ + protected static function removeIEConditional($string) { + return preg_replace( + '##si', // probably should generalize for all strings + '', + $string + ); + } + /** * Callback function for escapeCDATA() that does the work. * @@ -252,20 +263,32 @@ class HTMLPurifier_Lexer public function normalize($html, $config, $context) { // normalize newlines to \n - $html = str_replace("\r\n", "\n", $html); - $html = str_replace("\r", "\n", $html); + if ($config->get('Core.NormalizeNewlines')) { + $html = str_replace("\r\n", "\n", $html); + $html = str_replace("\r", "\n", $html); + } if ($config->get('HTML.Trusted')) { // escape convoluted CDATA $html = $this->escapeCommentedCDATA($html); } + $html = $this->removeIEConditional($html); + // escape CDATA $html = $this->escapeCDATA($html); // extract body from document if applicable if ($config->get('Core.ConvertDocumentToFragment')) { - $html = $this->extractBody($html); + $e = false; + if ($config->get('Core.CollectErrors')) { + $e =& $context->get('ErrorCollector'); + } + $new_html = $this->extractBody($html); + if ($e && $new_html != $html) { + $e->send(E_WARNING, 'Lexer: Extracted body'); + } + $html = $new_html; } // expand entities that aren't the big five @@ -276,6 +299,11 @@ class HTMLPurifier_Lexer // represent non-SGML characters (horror, horror!) $html = HTMLPurifier_Encoder::cleanUTF8($html); + // if processing instructions are to removed, remove them now + if ($config->get('Core.RemoveProcessingInstructions')) { + $html = preg_replace('#<\?.+?\?>#s', '', $html); + } + return $html; } diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php index eb421b23..b7d9abfa 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php @@ -384,7 +384,7 @@ class HTMLPurifier_Lexer_DirectLex extends HTMLPurifier_Lexer } } if ($value === false) $value = ''; - return array($key => $value); + return array($key => $this->parseData($value)); } // setup loop environment diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php index 57173455..72c87635 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php @@ -26,13 +26,20 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer * Internal accumulator array for SAX parsers. */ protected $tokens = array(); + protected $last_token_was_empty; + + private $parent_handler; + private $stack = array(); public function tokenizeHTML($string, $config, $context) { $this->tokens = array(); + $this->last_token_was_empty = false; $string = $this->normalize($string, $config, $context); + $this->parent_handler = set_error_handler(array($this, 'muteStrictErrorHandler')); + $parser = new XML_HTMLSax3(); $parser->set_object($this); $parser->set_element_handler('openHandler','closeHandler'); @@ -44,6 +51,8 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer $parser->parse($string); + restore_error_handler(); + return $this->tokens; } @@ -58,9 +67,11 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer } if ($closed) { $this->tokens[] = new HTMLPurifier_Token_Empty($name, $attrs); + $this->last_token_was_empty = true; } else { $this->tokens[] = new HTMLPurifier_Token_Start($name, $attrs); } + $this->stack[] = $name; return true; } @@ -71,10 +82,12 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer // HTMLSax3 seems to always send empty tags an extra close tag // check and ignore if you see it: // [TESTME] to make sure it doesn't overreach - if ($this->tokens[count($this->tokens)-1] instanceof HTMLPurifier_Token_Empty) { + if ($this->last_token_was_empty) { + $this->last_token_was_empty = false; return true; } $this->tokens[] = new HTMLPurifier_Token_End($name); + if (!empty($this->stack)) array_pop($this->stack); return true; } @@ -82,6 +95,7 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer * Data event handler, interface is defined by PEAR package. */ public function dataHandler(&$parser, $data) { + $this->last_token_was_empty = false; $this->tokens[] = new HTMLPurifier_Token_Text($data); return true; } @@ -91,7 +105,18 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer */ public function escapeHandler(&$parser, $data) { if (strpos($data, '--') === 0) { - $this->tokens[] = new HTMLPurifier_Token_Comment($data); + // remove trailing and leading double-dashes + $data = substr($data, 2); + if (strlen($data) >= 2 && substr($data, -2) == "--") { + $data = substr($data, 0, -2); + } + if (isset($this->stack[sizeof($this->stack) - 1]) && + $this->stack[sizeof($this->stack) - 1] == "style") { + $this->tokens[] = new HTMLPurifier_Token_Text($data); + } else { + $this->tokens[] = new HTMLPurifier_Token_Comment($data); + } + $this->last_token_was_empty = false; } // CDATA is handled elsewhere, but if it was handled here: //if (strpos($data, '[CDATA[') === 0) { @@ -101,6 +126,14 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer return true; } + /** + * An error handler that mutes strict errors + */ + public function muteStrictErrorHandler($errno, $errstr, $errfile=null, $errline=null, $errcontext=null) { + if ($errno == E_STRICT) return; + return call_user_func($this->parent_handler, $errno, $errstr, $errfile, $errline, $errcontext); + } + } // vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php index 0d20c0ce..b42965ef 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php @@ -125,8 +125,6 @@ class HTML5 { const EOF = 5; public function __construct($data) { - $data = str_replace("\r\n", "\n", $data); - $data = str_replace("\r", null, $data); $this->data = $data; $this->char = -1; @@ -3903,4 +3901,4 @@ class HTML5TreeConstructer { return $this->dom; } } - +?> diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php index c81b6b7b..03c92bd4 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php @@ -83,6 +83,7 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy $this->injectors[] = $injector; } foreach ($custom_injectors as $injector) { + if (!$injector) continue; if (is_string($injector)) { $injector = "HTMLPurifier_Injector_$injector"; $injector = new $injector; @@ -164,6 +165,7 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy $token = $tokens[$t]; //echo '
    '; printTokens($tokens, $t); printTokens($this->stack); + //flush(); // quick-check: if it's not a tag, no need to process if (empty($token->is_tag)) { @@ -219,6 +221,22 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy $autoclose = false; } + if ($autoclose && $definition->info[$token->name]->wrap) { + // Check if an element can be wrapped by another + // element to make it valid in a context (for + // example,
        needs a
      • in between) + $wrapname = $definition->info[$token->name]->wrap; + $wrapdef = $definition->info[$wrapname]; + $elements = $wrapdef->child->getAllowedElements($config); + $parent_elements = $definition->info[$parent->name]->child->getAllowedElements($config); + if (isset($elements[$token->name]) && isset($parent_elements[$wrapname])) { + $newtoken = new HTMLPurifier_Token_Start($wrapname); + $this->insertBefore($newtoken); + $reprocess = true; + continue; + } + } + $carryover = false; if ($autoclose && $definition->info[$parent->name]->formatting) { $carryover = true; diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php new file mode 100644 index 00000000..e69d970a --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php @@ -0,0 +1,11 @@ +get('EmbeddedURI', true); + } +} + +// vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php new file mode 100644 index 00000000..bc4fb8cd --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php @@ -0,0 +1,93 @@ + true, + 'image/gif' => true, + 'image/png' => true, + ); + + public function validate(&$uri, $config, $context) { + $result = explode(',', $uri->path, 2); + $is_base64 = false; + $charset = null; + $content_type = null; + if (count($result) == 2) { + list($metadata, $data) = $result; + // do some legwork on the metadata + $metas = explode(';', $metadata); + while(!empty($metas)) { + $cur = array_shift($metas); + if ($cur == 'base64') { + $is_base64 = true; + break; + } + if (substr($cur, 0, 8) == 'charset=') { + // doesn't match if there are arbitrary spaces, but + // whatever dude + if ($charset !== null) continue; // garbage + $charset = substr($cur, 8); // not used + } else { + if ($content_type !== null) continue; // garbage + $content_type = $cur; + } + } + } else { + $data = $result[0]; + } + if ($content_type !== null && empty($this->allowed_types[$content_type])) { + return false; + } + if ($charset !== null) { + // error; we don't allow plaintext stuff + $charset = null; + } + $data = rawurldecode($data); + if ($is_base64) { + $raw_data = base64_decode($data); + } else { + $raw_data = $data; + } + // XXX probably want to refactor this into a general mechanism + // for filtering arbitrary content types + $file = tempnam("/tmp", ""); + file_put_contents($file, $raw_data); + if (function_exists('exif_imagetype')) { + $image_code = exif_imagetype($file); + } elseif (function_exists('getimagesize')) { + set_error_handler(array($this, 'muteErrorHandler')); + $info = getimagesize($file); + restore_error_handler(); + if ($info == false) return false; + $image_code = $info[2]; + } else { + trigger_error("could not find exif_imagetype or getimagesize functions", E_USER_ERROR); + } + $real_content_type = image_type_to_mime_type($image_code); + if ($real_content_type != $content_type) { + // we're nice guys; if the content type is something else we + // support, change it over + if (empty($this->allowed_types[$real_content_type])) return false; + $content_type = $real_content_type; + } + // ok, it's kosher, rewrite what we need + $uri->userinfo = null; + $uri->host = null; + $uri->port = null; + $uri->fragment = null; + $uri->query = null; + $uri->path = "$content_type;base64," . base64_encode($raw_data); + return true; + } + + public function muteErrorHandler($errno, $errstr) {} + +} + diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php new file mode 100644 index 00000000..66c30232 --- /dev/null +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php @@ -0,0 +1,26 @@ +userinfo = null; + // file:// makes no provisions for accessing the resource + $uri->port = null; + // While it seems to work on Firefox, the querystring has + // no possible effect and is thus stripped. + $uri->query = null; + return true; + } + +} + +// vim: et sw=4 sts=4 diff --git a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php index e5998e5e..dea9f169 100644 --- a/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php +++ b/3.0/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php @@ -62,7 +62,7 @@ class HTMLPurifier_VarParser_Flexible extends HTMLPurifier_VarParser foreach ($var as $keypair) { $c = explode(':', $keypair, 2); if (!isset($c[1])) continue; - $nvar[$c[0]] = $c[1]; + $nvar[trim($c[0])] = trim($c[1]); } $var = $nvar; } @@ -79,8 +79,15 @@ class HTMLPurifier_VarParser_Flexible extends HTMLPurifier_VarParser return $new; } else break; } + if ($type === self::ALIST) { + trigger_error("Array list did not have consecutive integer indexes", E_USER_WARNING); + return array_values($var); + } if ($type === self::LOOKUP) { foreach ($var as $key => $value) { + if ($value !== true) { + trigger_error("Lookup array has non-true value at key '$key'; maybe your input array was not indexed numerically", E_USER_WARNING); + } $var[$key] = true; } } From 426cd2a9082d78da4981f15a4d4052be806a1432 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 8 Jan 2011 18:40:34 -0800 Subject: [PATCH 22/24] Update HTMLPurifier to 4.2.0 and move the code from lib to vendor --- 3.1/modules/purifier/helpers/purifier.php | 2 +- .../HTMLPurifier/ConfigSchema/schema.ser | Bin 12999 -> 0 bytes .../schema/HTML.AllowedElements.txt | 18 ---- .../ConfigSchema/schema/HTML.SafeObject.txt | 14 --- .../HTMLPurifier/HTMLPurifier.auto.php | 0 .../HTMLPurifier/HTMLPurifier.autoload.php | 0 .../HTMLPurifier/HTMLPurifier.func.php | 0 .../HTMLPurifier/HTMLPurifier.includes.php | 6 +- .../HTMLPurifier/HTMLPurifier.kses.php | 0 .../HTMLPurifier/HTMLPurifier.path.php | 0 .../HTMLPurifier/HTMLPurifier.php | 6 +- .../HTMLPurifier.safe-includes.php | 4 + .../HTMLPurifier/AttrCollections.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef.php | 36 +++++++ .../HTMLPurifier/HTMLPurifier/AttrDef/CSS.php | 0 .../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 0 .../HTMLPurifier/AttrDef/CSS/Background.php | 0 .../AttrDef/CSS/BackgroundPosition.php | 21 ++-- .../HTMLPurifier/AttrDef/CSS/Border.php | 0 .../HTMLPurifier/AttrDef/CSS/Color.php | 0 .../HTMLPurifier/AttrDef/CSS/Composite.php | 0 .../AttrDef/CSS/DenyElementDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Filter.php | 0 .../HTMLPurifier/AttrDef/CSS/Font.php | 0 .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 52 ++++------ .../AttrDef/CSS/ImportantDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Length.php | 0 .../HTMLPurifier/AttrDef/CSS/ListStyle.php | 0 .../HTMLPurifier/AttrDef/CSS/Multiple.php | 0 .../HTMLPurifier/AttrDef/CSS/Number.php | 0 .../HTMLPurifier/AttrDef/CSS/Percentage.php | 0 .../AttrDef/CSS/TextDecoration.php | 0 .../HTMLPurifier/AttrDef/CSS/URI.php | 12 +-- .../HTMLPurifier/AttrDef/Enum.php | 0 .../HTMLPurifier/AttrDef/HTML/Bool.php | 0 .../HTMLPurifier/AttrDef/HTML/Class.php | 0 .../HTMLPurifier/AttrDef/HTML/Color.php | 0 .../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 0 .../HTMLPurifier/AttrDef/HTML/ID.php | 0 .../HTMLPurifier/AttrDef/HTML/Length.php | 0 .../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 0 .../HTMLPurifier/AttrDef/HTML/MultiLength.php | 0 .../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 0 .../HTMLPurifier/AttrDef/HTML/Pixels.php | 0 .../HTMLPurifier/AttrDef/Integer.php | 0 .../HTMLPurifier/AttrDef/Lang.php | 0 .../HTMLPurifier/AttrDef/Switch.php | 0 .../HTMLPurifier/AttrDef/Text.php | 0 .../HTMLPurifier/HTMLPurifier/AttrDef/URI.php | 0 .../HTMLPurifier/AttrDef/URI/Email.php | 0 .../AttrDef/URI/Email/SimpleCheck.php | 0 .../HTMLPurifier/AttrDef/URI/Host.php | 0 .../HTMLPurifier/AttrDef/URI/IPv4.php | 0 .../HTMLPurifier/AttrDef/URI/IPv6.php | 0 .../HTMLPurifier/AttrTransform.php | 0 .../HTMLPurifier/AttrTransform/Background.php | 0 .../HTMLPurifier/AttrTransform/BdoDir.php | 0 .../HTMLPurifier/AttrTransform/BgColor.php | 0 .../HTMLPurifier/AttrTransform/BoolToCSS.php | 0 .../HTMLPurifier/AttrTransform/Border.php | 0 .../HTMLPurifier/AttrTransform/EnumToCSS.php | 0 .../AttrTransform/ImgRequired.php | 3 +- .../HTMLPurifier/AttrTransform/ImgSpace.php | 0 .../HTMLPurifier/AttrTransform/Input.php | 0 .../HTMLPurifier/AttrTransform/Lang.php | 0 .../HTMLPurifier/AttrTransform/Length.php | 0 .../HTMLPurifier/AttrTransform/Name.php | 0 .../HTMLPurifier/AttrTransform/NameSync.php | 0 .../HTMLPurifier/AttrTransform/SafeEmbed.php | 0 .../HTMLPurifier/AttrTransform/SafeObject.php | 0 .../HTMLPurifier/AttrTransform/SafeParam.php | 13 +++ .../AttrTransform/ScriptRequired.php | 0 .../HTMLPurifier/AttrTransform/Textarea.php | 0 .../HTMLPurifier/HTMLPurifier/AttrTypes.php | 0 .../HTMLPurifier/AttrValidator.php | 0 .../HTMLPurifier/HTMLPurifier/Bootstrap.php | 0 .../HTMLPurifier/CSSDefinition.php | 19 +++- .../HTMLPurifier/HTMLPurifier/ChildDef.php | 0 .../HTMLPurifier/ChildDef/Chameleon.php | 0 .../HTMLPurifier/ChildDef/Custom.php | 0 .../HTMLPurifier/ChildDef/Empty.php | 0 .../HTMLPurifier/ChildDef/Optional.php | 0 .../HTMLPurifier/ChildDef/Required.php | 0 .../ChildDef/StrictBlockquote.php | 0 .../HTMLPurifier/ChildDef/Table.php | 0 .../HTMLPurifier/HTMLPurifier/Config.php | 2 +- .../HTMLPurifier/ConfigSchema.php | 0 .../ConfigSchema/Builder/ConfigSchema.php | 0 .../HTMLPurifier/ConfigSchema/Builder/Xml.php | 0 .../HTMLPurifier/ConfigSchema/Exception.php | 0 .../HTMLPurifier/ConfigSchema/Interchange.php | 0 .../ConfigSchema/Interchange/Directive.php | 0 .../ConfigSchema/Interchange/Id.php | 0 .../ConfigSchema/InterchangeBuilder.php | 0 .../HTMLPurifier/ConfigSchema/Validator.php | 0 .../ConfigSchema/ValidatorAtom.php | 0 .../HTMLPurifier/ConfigSchema/schema.ser | Bin 0 -> 13701 bytes .../schema/Attr.AllowedClasses.txt | 0 .../schema/Attr.AllowedFrameTargets.txt | 0 .../ConfigSchema/schema/Attr.AllowedRel.txt | 0 .../ConfigSchema/schema/Attr.AllowedRev.txt | 0 .../schema/Attr.ClassUseCDATA.txt | 0 .../schema/Attr.DefaultImageAlt.txt | 0 .../schema/Attr.DefaultInvalidImage.txt | 0 .../schema/Attr.DefaultInvalidImageAlt.txt | 0 .../schema/Attr.DefaultTextDir.txt | 0 .../ConfigSchema/schema/Attr.EnableID.txt | 0 .../schema/Attr.ForbiddenClasses.txt | 0 .../ConfigSchema/schema/Attr.IDBlacklist.txt | 0 .../schema/Attr.IDBlacklistRegexp.txt | 0 .../ConfigSchema/schema/Attr.IDPrefix.txt | 0 .../schema/Attr.IDPrefixLocal.txt | 0 .../schema/AutoFormat.AutoParagraph.txt | 0 .../ConfigSchema/schema/AutoFormat.Custom.txt | 0 .../schema/AutoFormat.DisplayLinkURI.txt | 0 .../schema/AutoFormat.Linkify.txt | 0 .../AutoFormat.PurifierLinkify.DocURL.txt | 0 .../schema/AutoFormat.PurifierLinkify.txt | 0 ...rmat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 0 .../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 0 .../schema/AutoFormat.RemoveEmpty.txt | 0 ...utoFormat.RemoveSpansWithoutAttributes.txt | 11 +++ .../schema/CSS.AllowImportant.txt | 0 .../ConfigSchema/schema/CSS.AllowTricky.txt | 0 .../schema/CSS.AllowedProperties.txt | 0 .../ConfigSchema/schema/CSS.DefinitionRev.txt | 0 .../schema/CSS.ForbiddenProperties.txt | 13 +++ .../ConfigSchema/schema/CSS.MaxImgLength.txt | 0 .../ConfigSchema/schema/CSS.Proprietary.txt | 0 .../schema/Cache.DefinitionImpl.txt | 0 .../schema/Cache.SerializerPath.txt | 0 .../schema/Core.AggressivelyFixLt.txt | 0 .../schema/Core.CollectErrors.txt | 0 .../schema/Core.ColorKeywords.txt | 0 .../schema/Core.ConvertDocumentToFragment.txt | 0 .../Core.DirectLexLineNumberSyncInterval.txt | 0 .../ConfigSchema/schema/Core.Encoding.txt | 0 .../schema/Core.EscapeInvalidChildren.txt | 0 .../schema/Core.EscapeInvalidTags.txt | 0 .../schema/Core.EscapeNonASCIICharacters.txt | 0 .../schema/Core.HiddenElements.txt | 0 .../ConfigSchema/schema/Core.Language.txt | 0 .../ConfigSchema/schema/Core.LexerImpl.txt | 0 .../schema/Core.MaintainLineNumbers.txt | 0 .../schema/Core.NormalizeNewlines.txt | 11 +++ .../schema/Core.RemoveInvalidImg.txt | 0 .../Core.RemoveProcessingInstructions.txt | 11 +++ .../schema/Core.RemoveScriptContents.txt | 0 .../ConfigSchema/schema/Filter.Custom.txt | 0 .../Filter.ExtractStyleBlocks.Escaping.txt | 0 .../Filter.ExtractStyleBlocks.Scope.txt | 0 .../Filter.ExtractStyleBlocks.TidyImpl.txt | 0 .../schema/Filter.ExtractStyleBlocks.txt | 0 .../ConfigSchema/schema/Filter.YouTube.txt | 5 + .../ConfigSchema/schema/HTML.Allowed.txt | 11 ++- .../schema/HTML.AllowedAttributes.txt | 0 .../schema/HTML.AllowedElements.txt | 23 +++++ .../schema/HTML.AllowedModules.txt | 0 .../schema/HTML.Attr.Name.UseCDATA.txt | 0 .../ConfigSchema/schema/HTML.BlockWrapper.txt | 0 .../ConfigSchema/schema/HTML.CoreModules.txt | 0 .../schema/HTML.CustomDoctype.txt | 0 .../ConfigSchema/schema/HTML.DefinitionID.txt | 0 .../schema/HTML.DefinitionRev.txt | 0 .../ConfigSchema/schema/HTML.Doctype.txt | 0 .../schema/HTML.FlashAllowFullScreen.txt | 11 +++ .../schema/HTML.ForbiddenAttributes.txt | 0 .../schema/HTML.ForbiddenElements.txt | 0 .../ConfigSchema/schema/HTML.MaxImgLength.txt | 0 .../ConfigSchema/schema/HTML.Parent.txt | 0 .../ConfigSchema/schema/HTML.Proprietary.txt | 0 .../ConfigSchema/schema/HTML.SafeEmbed.txt | 7 +- .../ConfigSchema/schema/HTML.SafeObject.txt | 13 +++ .../ConfigSchema/schema/HTML.Strict.txt | 0 .../ConfigSchema/schema/HTML.TidyAdd.txt | 0 .../ConfigSchema/schema/HTML.TidyLevel.txt | 0 .../ConfigSchema/schema/HTML.TidyRemove.txt | 0 .../ConfigSchema/schema/HTML.Trusted.txt | 0 .../ConfigSchema/schema/HTML.XHTML.txt | 0 .../schema/Output.CommentScriptContents.txt | 0 .../schema/Output.FlashCompat.txt | 11 +++ .../ConfigSchema/schema/Output.Newline.txt | 0 .../ConfigSchema/schema/Output.SortAttr.txt | 0 .../ConfigSchema/schema/Output.TidyFormat.txt | 0 .../ConfigSchema/schema/Test.ForceNoIconv.txt | 0 .../schema/URI.AllowedSchemes.txt | 2 + .../ConfigSchema/schema/URI.Base.txt | 0 .../ConfigSchema/schema/URI.DefaultScheme.txt | 0 .../ConfigSchema/schema/URI.DefinitionID.txt | 0 .../ConfigSchema/schema/URI.DefinitionRev.txt | 0 .../ConfigSchema/schema/URI.Disable.txt | 0 .../schema/URI.DisableExternal.txt | 0 .../schema/URI.DisableExternalResources.txt | 0 .../schema/URI.DisableResources.txt | 7 +- .../ConfigSchema/schema/URI.Host.txt | 0 .../ConfigSchema/schema/URI.HostBlacklist.txt | 0 .../ConfigSchema/schema/URI.MakeAbsolute.txt | 0 .../ConfigSchema/schema/URI.Munge.txt | 0 .../schema/URI.MungeResources.txt | 0 .../schema/URI.MungeSecretKey.txt | 0 .../schema/URI.OverrideAllowedSchemes.txt | 0 .../HTMLPurifier/ConfigSchema/schema/info.ini | 0 .../HTMLPurifier/HTMLPurifier/ContentSets.php | 0 .../HTMLPurifier/HTMLPurifier/Context.php | 0 .../HTMLPurifier/HTMLPurifier/Definition.php | 0 .../HTMLPurifier/DefinitionCache.php | 0 .../DefinitionCache/Decorator.php | 0 .../DefinitionCache/Decorator/Cleanup.php | 0 .../DefinitionCache/Decorator/Memory.php | 0 .../DefinitionCache/Decorator/Template.php.in | 0 .../HTMLPurifier/DefinitionCache/Null.php | 0 .../DefinitionCache/Serializer.php | 0 .../DefinitionCache/Serializer/README | 0 .../HTMLPurifier/DefinitionCacheFactory.php | 0 .../HTMLPurifier/HTMLPurifier/Doctype.php | 0 .../HTMLPurifier/DoctypeRegistry.php | 0 .../HTMLPurifier/HTMLPurifier/ElementDef.php | 7 ++ .../HTMLPurifier/HTMLPurifier/Encoder.php | 0 .../HTMLPurifier/EntityLookup.php | 0 .../HTMLPurifier/EntityLookup/entities.ser | 0 .../HTMLPurifier/EntityParser.php | 0 .../HTMLPurifier/ErrorCollector.php | 0 .../HTMLPurifier/HTMLPurifier/ErrorStruct.php | 0 .../HTMLPurifier/HTMLPurifier/Exception.php | 0 .../HTMLPurifier/HTMLPurifier/Filter.php | 0 .../Filter/ExtractStyleBlocks.php | 0 .../HTMLPurifier/Filter/YouTube.php | 10 +- .../HTMLPurifier/HTMLPurifier/Generator.php | 56 ++++++++++- .../HTMLPurifier/HTMLDefinition.php | 7 +- .../HTMLPurifier/HTMLPurifier/HTMLModule.php | 0 .../HTMLPurifier/HTMLModule/Bdo.php | 0 .../HTMLModule/CommonAttributes.php | 0 .../HTMLPurifier/HTMLModule/Edit.php | 0 .../HTMLPurifier/HTMLModule/Forms.php | 0 .../HTMLPurifier/HTMLModule/Hypertext.php | 0 .../HTMLPurifier/HTMLModule/Image.php | 0 .../HTMLPurifier/HTMLModule/Legacy.php | 0 .../HTMLPurifier/HTMLModule/List.php | 6 +- .../HTMLPurifier/HTMLModule/Name.php | 0 .../HTMLModule/NonXMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLModule/Object.php | 0 .../HTMLPurifier/HTMLModule/Presentation.php | 0 .../HTMLPurifier/HTMLModule/Proprietary.php | 0 .../HTMLPurifier/HTMLModule/Ruby.php | 0 .../HTMLPurifier/HTMLModule/SafeEmbed.php | 1 + .../HTMLPurifier/HTMLModule/SafeObject.php | 5 +- .../HTMLPurifier/HTMLModule/Scripting.php | 0 .../HTMLModule/StyleAttribute.php | 0 .../HTMLPurifier/HTMLModule/Tables.php | 0 .../HTMLPurifier/HTMLModule/Target.php | 0 .../HTMLPurifier/HTMLModule/Text.php | 0 .../HTMLPurifier/HTMLModule/Tidy.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Name.php | 0 .../HTMLModule/Tidy/Proprietary.php | 1 + .../HTMLPurifier/HTMLModule/Tidy/Strict.php | 0 .../HTMLModule/Tidy/Transitional.php | 0 .../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 0 .../HTMLModule/Tidy/XHTMLAndHTML4.php | 0 .../HTMLModule/XMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLModuleManager.php | 0 .../HTMLPurifier/IDAccumulator.php | 0 .../HTMLPurifier/HTMLPurifier/Injector.php | 0 .../HTMLPurifier/Injector/AutoParagraph.php | 21 ++-- .../HTMLPurifier/Injector/DisplayLinkURI.php | 0 .../HTMLPurifier/Injector/Linkify.php | 0 .../HTMLPurifier/Injector/PurifierLinkify.php | 0 .../HTMLPurifier/Injector/RemoveEmpty.php | 0 .../Injector/RemoveSpansWithoutAttributes.php | 60 +++++++++++ .../HTMLPurifier/Injector/SafeObject.php | 6 +- .../HTMLPurifier/HTMLPurifier/Language.php | 0 .../Language/classes/en-x-test.php | 0 .../Language/messages/en-x-test.php | 0 .../Language/messages/en-x-testmini.php | 0 .../HTMLPurifier/Language/messages/en.php | 1 + .../HTMLPurifier/LanguageFactory.php | 0 .../HTMLPurifier/HTMLPurifier/Length.php | 0 .../HTMLPurifier/HTMLPurifier/Lexer.php | 34 ++++++- .../HTMLPurifier/Lexer/DOMLex.php | 0 .../HTMLPurifier/Lexer/DirectLex.php | 2 +- .../HTMLPurifier/Lexer/PEARSax3.php | 37 ++++++- .../HTMLPurifier/HTMLPurifier/Lexer/PH5P.php | 4 +- .../HTMLPurifier/PercentEncoder.php | 0 .../HTMLPurifier/HTMLPurifier/Printer.php | 0 .../HTMLPurifier/Printer/CSSDefinition.php | 0 .../HTMLPurifier/Printer/ConfigForm.css | 0 .../HTMLPurifier/Printer/ConfigForm.js | 0 .../HTMLPurifier/Printer/ConfigForm.php | 0 .../HTMLPurifier/Printer/HTMLDefinition.php | 0 .../HTMLPurifier/PropertyList.php | 0 .../HTMLPurifier/PropertyListIterator.php | 0 .../HTMLPurifier/HTMLPurifier/Strategy.php | 0 .../HTMLPurifier/Strategy/Composite.php | 0 .../HTMLPurifier/Strategy/Core.php | 0 .../HTMLPurifier/Strategy/FixNesting.php | 0 .../HTMLPurifier/Strategy/MakeWellFormed.php | 18 ++++ .../Strategy/RemoveForeignElements.php | 0 .../Strategy/ValidateAttributes.php | 0 .../HTMLPurifier/HTMLPurifier/StringHash.php | 0 .../HTMLPurifier/StringHashParser.php | 0 .../HTMLPurifier/TagTransform.php | 0 .../HTMLPurifier/TagTransform/Font.php | 0 .../HTMLPurifier/TagTransform/Simple.php | 0 .../HTMLPurifier/HTMLPurifier/Token.php | 0 .../HTMLPurifier/Token/Comment.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Empty.php | 0 .../HTMLPurifier/HTMLPurifier/Token/End.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Start.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Tag.php | 0 .../HTMLPurifier/HTMLPurifier/Token/Text.php | 0 .../HTMLPurifier/TokenFactory.php | 0 .../HTMLPurifier/HTMLPurifier/URI.php | 0 .../HTMLPurifier/URIDefinition.php | 0 .../HTMLPurifier/HTMLPurifier/URIFilter.php | 0 .../URIFilter/DisableExternal.php | 0 .../URIFilter/DisableExternalResources.php | 0 .../URIFilter/DisableResources.php | 11 +++ .../HTMLPurifier/URIFilter/HostBlacklist.php | 0 .../HTMLPurifier/URIFilter/MakeAbsolute.php | 0 .../HTMLPurifier/URIFilter/Munge.php | 0 .../HTMLPurifier/HTMLPurifier/URIParser.php | 0 .../HTMLPurifier/HTMLPurifier/URIScheme.php | 0 .../HTMLPurifier/URIScheme/data.php | 93 ++++++++++++++++++ .../HTMLPurifier/URIScheme/file.php | 26 +++++ .../HTMLPurifier/URIScheme/ftp.php | 0 .../HTMLPurifier/URIScheme/http.php | 0 .../HTMLPurifier/URIScheme/https.php | 0 .../HTMLPurifier/URIScheme/mailto.php | 0 .../HTMLPurifier/URIScheme/news.php | 0 .../HTMLPurifier/URIScheme/nntp.php | 0 .../HTMLPurifier/URISchemeRegistry.php | 0 .../HTMLPurifier/UnitConverter.php | 0 .../HTMLPurifier/HTMLPurifier/VarParser.php | 0 .../HTMLPurifier/VarParser/Flexible.php | 9 +- .../HTMLPurifier/VarParser/Native.php | 0 .../HTMLPurifier/VarParserException.php | 0 .../HTMLPurifier/HTMLPurifierLicense | 0 336 files changed, 622 insertions(+), 137 deletions(-) delete mode 100644 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser delete mode 100644 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt delete mode 100644 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.auto.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.autoload.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.func.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.includes.php (97%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.kses.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.path.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.php (98%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier.safe-includes.php (97%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrCollections.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef.php (71%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php (85%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php (51%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php (79%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/Text.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php (90%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php (74%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrTypes.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/AttrValidator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Bootstrap.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/CSSDefinition.php (95%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Required.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ChildDef/Table.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Config.php (99%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt (65%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt (54%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt (65%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt (74%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt (64%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ContentSets.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Context.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Definition.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Doctype.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ElementDef.php (96%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Encoder.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/EntityLookup.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/EntityParser.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ErrorCollector.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/ErrorStruct.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Exception.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Filter.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Filter/YouTube.php (74%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Generator.php (73%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLDefinition.php (97%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/List.php (85%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php (96%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php (83%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php (91%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/IDAccumulator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php (95%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/Linkify.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php (93%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Language/messages/en.php (98%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/LanguageFactory.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Length.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer.php (90%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php (99%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php (69%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php (99%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/PercentEncoder.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/PropertyList.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/PropertyListIterator.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/Composite.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/Core.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php (94%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/StringHash.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/StringHashParser.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TagTransform.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TagTransform/Font.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Comment.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Empty.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/End.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Start.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Tag.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/Token/Text.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/TokenFactory.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URI.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIDefinition.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIParser.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme.php (100%) create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php create mode 100644 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/http.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/https.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/news.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/UnitConverter.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParser.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php (88%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParser/Native.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifier/VarParserException.php (100%) rename 3.1/modules/purifier/{lib => vendor}/HTMLPurifier/HTMLPurifierLicense (100%) diff --git a/3.1/modules/purifier/helpers/purifier.php b/3.1/modules/purifier/helpers/purifier.php index 97742b50..2af53180 100644 --- a/3.1/modules/purifier/helpers/purifier.php +++ b/3.1/modules/purifier/helpers/purifier.php @@ -21,7 +21,7 @@ class purifier { static function purify($dirty_html) { if (!isset(self::$_purifier)) { - require_once(MODPATH . "purifier/lib/HTMLPurifier/HTMLPurifier.auto.php"); + require_once(MODPATH . "purifier/vendor/HTMLPurifier/HTMLPurifier.auto.php"); $config = HTMLPurifier_Config::createDefault(); foreach (Kohana::config("purifier") as $category => $key_value) { foreach ($key_value as $key => $value) { diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser b/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser deleted file mode 100644 index bbf12f9c3e7392aa8143727d2485f6f9ad1f97e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12999 zcmeHO+in}l5#3KQw8%>U6QX2iW%@~`L@W{AAkxU@X)z>QRL8>^W-hX{hW|b1RCo0> zheOKykN^Q_V_|8ky1KgV-Bo)#IC(!f`gMAJbypYm!J6XtVV*tM{%ebnvYl zoDGf^<{_!msyzCb3_hIkWBPfc+jo$_-Z6=Llal@};8O$yOR`dS{al*i#rgEy?|tlH7mnxgDp{KIv}$pt(CjHm z?Lv@_z&RH4pOar&L?Sey1@2D=M`QQ-jpZI(7o_6JPt9|6VGDwQo>uY`R|@x+Su#t_ z_~Pi}Y;eq7`yMdLi;wrGNDrIDhG3`r0Vg6Z9#!24`58RlbV&qsANX zg)P@<@^WRfFQ4znfd(0AkO;L8FA6=S@EWMvt;gzJS6<#f{{{94u~KF`mnh+P zo5#C1tNh7auGZB{&;5KeE7!ft=eb!|HqXQrPUs1cd9@&wKKH^eB8~n>Sa^%sZkoz~ zD6e5NLRJi_XgHZTmm9Cvc~K=9)bFf^?i8TY!p^@0q0z7c$Sm%Pd~J%#s=HEa1jA@; zW_h}M18=i(qCTWY;C1pmUM;Uow&VfJ0Y3Lnj*r)3L%KI97uHls(d-SE8YYM*5qa<~ zmemJrVhRfv{KJTEoCNIV`(45vC9Xic!@MxP^X0NIWoe&G`ZBW5S0V(;UqnQVVVQh=EdL5%h$YEh$bNds1j#dB}JZRJRpSf^Vu=~cylTY)a<^GM*1B~ z@*>Hc`*X=?bpGBg0qDgrIyS4gj=w=wc?#|oa(2v}_!}0j>tdZopkn|%;zK=uEN!C8 zNNzOZZy@;f(N5ekQd94Rn7V*rac2@)u6`sD0^i-yPi>(7F46Br{cQlqEQZk%Q_ zEUgd+>Xpf=X^z~peb8?lb38h&MH$NDbW5Ilo>Mx z|1z8B3!5#;2)M7Shqq_^nc>ADl=Eb5d`=iX+H_G+x<0n6>0ZWI(_|Tp^8^_+qH~jH z=ab=hJbXluor9-<$Rs0(zev)qUfCc-94j>;W? zG|1b?rZ{k~ojy*%mgu_trHK*#ldvQxWwiDZBS z>?EqXrT{(CKl6H8&qVTKOb{~5Ev=fGuoi!1abRb4rSX|TF@`r97lFYXV(4|gsMD|% z(sV%9YBwmudQG|HgCcxPP(+UZKsrZqpkYIPYxx%jB?#19pq?N=ek%vqd{Pzlys8Ut zUlMXy_^8s!-wP8?^bHcalG4SeO~?fX|J(J|Fkh`;`H=)12916nSe&qHDa{>W-yJ~e z5yXZH{5aV&_X(^?ek{mDu)3@P#d%Rxxj~MVuaFBRTzr(cPTRz4RH`_EvCYJbq>QXf z?La+314WpGHz_d}7Ks}`Rar+urgh4~N%DXKXU447R1g7jJNp;HV*u%HP_~Ues}SfV z=L=8@?CUOsTp1*4@&&e5W?^g8gkTcBB-;_iMT}^Dpj<#{5s&H%zj3LW*a=j1TUYD4 zLgHUB9JWJ?w<2)m@ovo56oKEX8m##56I4~ySvWZi#DmDEtA1nP)Ra{ZpXcT#AJ6j) z3TUbg)V1pCa;KtSCJ@6n@sh`?f`>WQzyW`iD9=1aQ6-3jxgx-m9~yKVB+E8`HDCQ= zm^|dctv@BDo)E|27k@Ev%uov;r5wT5? zF|YcB=vl-ifU6XIZ_2!eEafP2DT2ZyGFxy@=GUATA#q#JE5CHyk?0zvcb$AO=d&_T z5oeVr&+&CF^_<24!RDu}y%|^nbYkX(sZdlpHdq!Ac8hYPunSy4<(?d@fLdp4f}Jni zP4&)Q=5Dty<-TCYO$mo|mvS8Pr@#KRNGcRvhdcSgoQeH# zC*QbjAMWH&`aE&ClZT>@6_{K@e1+!Ax7OGA8pp!$a3@FYdbpFzWBB1t?mg&mCqLZD zd1wDWzmp@Z;cmV5?`n+pI1s+f*~Vgez`Y&SmCYXTIFsNduFvhi88Zf! zFpKDW&}LKI4v5p)65j=q7M-jDdqTO@4#&p7aAUln2-v^2idG?q}u^c9NtbHfH-`~>f!+;zVOMWlbZCuY4|wY?PE5)qxO6wm#7o2{T0s|ULYf2 zyE*SEkcVa$-*zX5lzXe+y{kFz7(Ru*8&c$T)oZQLZvKA7{ot6=^O!gPtSmmwnqTe zT>Z8iod&-x0#A4AUjq*j*e^uj@$brl|C*~dQv%IGohiUUwmdfQ(H<&LKH!zYN5@=2 zBzkh%nk(3b#&ZQQbf&`}X-<2IAtX9R=A1Jb)oH4oYy_ZJ+(3nie(J6kc&88inU1)a z17fBy*>uG1;Do`Ac0wWTxOMw8s<1b(TqoRPAc;hDx;o)r?uyv%g!@3Oj5cj<7kaun z+%yGEhO&8Qmm64;Qql4dr0qtxKLWjiqHqZ9Zj>j}(d%}xcz;W}>2$lz7-n`hr5of| z%m=2olStHD?=~T%1-ID6addN9?fL%=8&J#cGx(Oj_jx+yPF#=rio||ow{CI4I`)g} zzs8tu}*1RILAKbZ9ZX6%ksWZ)^UDFpnT(sVFxZ>?Q2Cf!>RhAB5 z07a^Im`nUh)HLip0?YpxAq+|=0XV6H^A6CO#PIwfcL~boB!-V!2(AKTSc!=11;D{J z2OO|9Ls}?@qil(CSfS9ZEN-BF%t3;^iYAOXwDc<@!cb~l$#bqxO8MV2WH4=D<8)Dd z|DHDh75tlbz2p9yDF*3EnLl)GV&UB%+hH`*2NJ5mn>;zZ>GzIzu5K_kS3_S4>N^&B zr`SKh;qr=d&91+j(~Ye`6r!4J4{y8`nIdqA#1SlIbfcx=j#8>?Xu}%~d_stEoI{5; zJV^J^gSXs(J}W~TK3zhKLW$q~$VN-quV35VQLP}9<(#buqYbHDK8ArHs8pvw0>Yz_ zi9_j%^J=H3A}=}{;@MP-oa$tVKbCr^e}!tkN+R}OyAA};)H`5{Mt2l~!|We6aa)IS zXvav(epX%|Y3XE+hSHvJQAdYNw}xE2lwhwNLoObObs|FQLg!!hGtY?AL9d%*;C9T= z_`M-(PEq(bl`uWwOu+-)l#8Ac-qF!L1ES-BLk#im-G%Mw1+^qXQgGs5t(3Q;P7m;GT?|o@vRUH9+Gk)9&#Z ex0z?zkIyJIzlD6=+JDysjbHrQ5DoYJ{{26FNH2{5 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt deleted file mode 100644 index 888d5581..00000000 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt +++ /dev/null @@ -1,18 +0,0 @@ -HTML.AllowedElements -TYPE: lookup/null -VERSION: 1.3.0 -DEFAULT: NULL ---DESCRIPTION-- -

        - If HTML Purifier's tag set is unsatisfactory for your needs, you - can overload it with your own list of tags to allow. Note that this - method is subtractive: it does its job by taking away from HTML Purifier - usual feature set, so you cannot add a tag that HTML Purifier never - supported in the first place (like embed, form or head). If you - change this, you probably also want to change %HTML.AllowedAttributes. -

        -

        - Warning: If another directive conflicts with the - elements here, that directive will win and override. -

        ---# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt deleted file mode 100644 index 32967b88..00000000 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt +++ /dev/null @@ -1,14 +0,0 @@ -HTML.SafeObject -TYPE: bool -VERSION: 3.1.1 -DEFAULT: false ---DESCRIPTION-- -

        - Whether or not to permit object tags in documents, with a number of extra - security features added to prevent script execution. This is similar to - what websites like MySpace do to object tags. You may also want to - enable %HTML.SafeEmbed for maximum interoperability with Internet Explorer, - although embed tags will cause your website to stop validating. - Highly experimental. -

        ---# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.auto.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.auto.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.auto.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.auto.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.autoload.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.autoload.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.autoload.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.autoload.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.func.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.func.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.func.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.func.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.includes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php similarity index 97% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.includes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php index e57f2ab3..08737c20 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.includes.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.includes.php @@ -7,7 +7,7 @@ * primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS * FILE, changes will be overwritten the next time the script is run. * - * @version 4.0.0 + * @version 4.2.0 * * @warning * You must *not* include any other HTML Purifier files before this file, @@ -176,6 +176,7 @@ require 'HTMLPurifier/Injector/DisplayLinkURI.php'; require 'HTMLPurifier/Injector/Linkify.php'; require 'HTMLPurifier/Injector/PurifierLinkify.php'; require 'HTMLPurifier/Injector/RemoveEmpty.php'; +require 'HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php'; require 'HTMLPurifier/Injector/SafeObject.php'; require 'HTMLPurifier/Lexer/DOMLex.php'; require 'HTMLPurifier/Lexer/DirectLex.php'; @@ -195,9 +196,12 @@ require 'HTMLPurifier/Token/Start.php'; require 'HTMLPurifier/Token/Text.php'; require 'HTMLPurifier/URIFilter/DisableExternal.php'; require 'HTMLPurifier/URIFilter/DisableExternalResources.php'; +require 'HTMLPurifier/URIFilter/DisableResources.php'; require 'HTMLPurifier/URIFilter/HostBlacklist.php'; require 'HTMLPurifier/URIFilter/MakeAbsolute.php'; require 'HTMLPurifier/URIFilter/Munge.php'; +require 'HTMLPurifier/URIScheme/data.php'; +require 'HTMLPurifier/URIScheme/file.php'; require 'HTMLPurifier/URIScheme/ftp.php'; require 'HTMLPurifier/URIScheme/http.php'; require 'HTMLPurifier/URIScheme/https.php'; diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.kses.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.kses.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.kses.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.kses.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.path.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.path.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.path.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.path.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php similarity index 98% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php index 71e90632..0430ad39 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.php @@ -19,7 +19,7 @@ */ /* - HTML Purifier 4.0.0 - Standards Compliant HTML Filtering + HTML Purifier 4.2.0 - Standards Compliant HTML Filtering Copyright (C) 2006-2008 Edward Z. Yang This library is free software; you can redistribute it and/or @@ -55,10 +55,10 @@ class HTMLPurifier { /** Version of HTML Purifier */ - public $version = '4.0.0'; + public $version = '4.2.0'; /** Constant with version of HTML Purifier */ - const VERSION = '4.0.0'; + const VERSION = '4.2.0'; /** Global configuration object */ public $config; diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.safe-includes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php similarity index 97% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.safe-includes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php index 5f0e1d8f..899a1f2e 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier.safe-includes.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier.safe-includes.php @@ -170,6 +170,7 @@ require_once $__dir . '/HTMLPurifier/Injector/DisplayLinkURI.php'; require_once $__dir . '/HTMLPurifier/Injector/Linkify.php'; require_once $__dir . '/HTMLPurifier/Injector/PurifierLinkify.php'; require_once $__dir . '/HTMLPurifier/Injector/RemoveEmpty.php'; +require_once $__dir . '/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php'; require_once $__dir . '/HTMLPurifier/Injector/SafeObject.php'; require_once $__dir . '/HTMLPurifier/Lexer/DOMLex.php'; require_once $__dir . '/HTMLPurifier/Lexer/DirectLex.php'; @@ -189,9 +190,12 @@ require_once $__dir . '/HTMLPurifier/Token/Start.php'; require_once $__dir . '/HTMLPurifier/Token/Text.php'; require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternal.php'; require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternalResources.php'; +require_once $__dir . '/HTMLPurifier/URIFilter/DisableResources.php'; require_once $__dir . '/HTMLPurifier/URIFilter/HostBlacklist.php'; require_once $__dir . '/HTMLPurifier/URIFilter/MakeAbsolute.php'; require_once $__dir . '/HTMLPurifier/URIFilter/Munge.php'; +require_once $__dir . '/HTMLPurifier/URIScheme/data.php'; +require_once $__dir . '/HTMLPurifier/URIScheme/file.php'; require_once $__dir . '/HTMLPurifier/URIScheme/ftp.php'; require_once $__dir . '/HTMLPurifier/URIScheme/http.php'; require_once $__dir . '/HTMLPurifier/URIScheme/https.php'; diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrCollections.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrCollections.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrCollections.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrCollections.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php similarity index 71% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php index 7fac54e8..6f82201e 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef.php @@ -82,6 +82,42 @@ abstract class HTMLPurifier_AttrDef return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string); } + /** + * Parses a possibly escaped CSS string and returns the "pure" + * version of it. + */ + protected function expandCSSEscape($string) { + // flexibly parse it + $ret = ''; + for ($i = 0, $c = strlen($string); $i < $c; $i++) { + if ($string[$i] === '\\') { + $i++; + if ($i >= $c) { + $ret .= '\\'; + break; + } + if (ctype_xdigit($string[$i])) { + $code = $string[$i]; + for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) { + if (!ctype_xdigit($string[$i])) break; + $code .= $string[$i]; + } + // We have to be extremely careful when adding + // new characters, to make sure we're not breaking + // the encoding. + $char = HTMLPurifier_Encoder::unichr(hexdec($code)); + if (HTMLPurifier_Encoder::cleanUTF8($char) === '') continue; + $ret .= $char; + if ($i < $c && trim($string[$i]) !== '') $i--; + continue; + } + if ($string[$i] === "\n") continue; + } + $ret .= $string[$i]; + } + return $ret; + } + } // vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Background.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php similarity index 85% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php index e067a754..665321e3 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php @@ -59,7 +59,8 @@ class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef $keywords = array(); $keywords['h'] = false; // left, right $keywords['v'] = false; // top, bottom - $keywords['c'] = false; // center + $keywords['ch'] = false; // center (first word) + $keywords['cv'] = false; // center (second word) $measures = array(); $i = 0; @@ -79,6 +80,13 @@ class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef $lbit = ctype_lower($bit) ? $bit : strtolower($bit); if (isset($lookup[$lbit])) { $status = $lookup[$lbit]; + if ($status == 'c') { + if ($i == 0) { + $status = 'ch'; + } else { + $status = 'cv'; + } + } $keywords[$status] = $lbit; $i++; } @@ -101,20 +109,19 @@ class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef if (!$i) return false; // no valid values were caught - $ret = array(); // first keyword if ($keywords['h']) $ret[] = $keywords['h']; - elseif (count($measures)) $ret[] = array_shift($measures); - elseif ($keywords['c']) { - $ret[] = $keywords['c']; - $keywords['c'] = false; // prevent re-use: center = center center + elseif ($keywords['ch']) { + $ret[] = $keywords['ch']; + $keywords['cv'] = false; // prevent re-use: center = center center } + elseif (count($measures)) $ret[] = array_shift($measures); if ($keywords['v']) $ret[] = $keywords['v']; + elseif ($keywords['cv']) $ret[] = $keywords['cv']; elseif (count($measures)) $ret[] = array_shift($measures); - elseif ($keywords['c']) $ret[] = $keywords['c']; if (empty($ret)) return false; return implode(' ', $ret); diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Border.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Color.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Composite.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Filter.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Font.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php similarity index 51% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php index 33435c76..f1ceec4a 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php @@ -34,37 +34,10 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef $quote = $font[0]; if ($font[$length - 1] !== $quote) continue; $font = substr($font, 1, $length - 2); - - $new_font = ''; - for ($i = 0, $c = strlen($font); $i < $c; $i++) { - if ($font[$i] === '\\') { - $i++; - if ($i >= $c) { - $new_font .= '\\'; - break; - } - if (ctype_xdigit($font[$i])) { - $code = $font[$i]; - for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) { - if (!ctype_xdigit($font[$i])) break; - $code .= $font[$i]; - } - // We have to be extremely careful when adding - // new characters, to make sure we're not breaking - // the encoding. - $char = HTMLPurifier_Encoder::unichr(hexdec($code)); - if (HTMLPurifier_Encoder::cleanUTF8($char) === '') continue; - $new_font .= $char; - if ($i < $c && trim($font[$i]) !== '') $i--; - continue; - } - if ($font[$i] === "\n") continue; - } - $new_font .= $font[$i]; - } - - $font = $new_font; } + + $font = $this->expandCSSEscape($font); + // $font is a pure representation of the font name if (ctype_alnum($font) && $font !== '') { @@ -73,12 +46,21 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef continue; } - // complicated font, requires quoting + // bugger out on whitespace. form feed (0C) really + // shouldn't show up regardless + $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font); - // armor single quotes and new lines - $font = str_replace("\\", "\\\\", $font); - $font = str_replace("'", "\\'", $font); - $final .= "'$font', "; + // These ugly transforms don't pose a security + // risk (as \\ and \" might). We could try to be clever and + // use single-quote wrapping when there is a double quote + // present, but I have choosen not to implement that. + // (warning: this code relies on the selection of quotation + // mark below) + $font = str_replace('\\', '\\5C ', $font); + $font = str_replace('"', '\\22 ', $font); + + // complicated font, requires quoting + $final .= "\"$font\", "; // note that this will later get turned into " } $final = rtrim($final, ', '); if ($final === '') return false; diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Length.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Multiple.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Number.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/Percentage.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php similarity index 79% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php index d09c87bc..98df033d 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/CSS/URI.php @@ -34,20 +34,16 @@ class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI $uri = substr($uri, 1, $new_length - 1); } - $keys = array( '(', ')', ',', ' ', '"', "'"); - $values = array('\\(', '\\)', '\\,', '\\ ', '\\"', "\\'"); - $uri = str_replace($values, $keys, $uri); + $uri = $this->expandCSSEscape($uri); $result = parent::validate($uri, $config, $context); if ($result === false) return false; - // escape necessary characters according to CSS spec - // except for the comma, none of these should appear in the - // URI at all - $result = str_replace($keys, $values, $result); + // extra sanity check; should have been done by URI + $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", $result); - return "url($result)"; + return "url(\"$result\")"; } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Enum.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Bool.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Class.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Color.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/ID.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Length.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/HTML/Pixels.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Integer.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Lang.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Switch.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Text.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Text.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/Text.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/Text.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/Host.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv4.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrDef/URI/IPv6.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Background.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BdoDir.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BgColor.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/BoolToCSS.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Border.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/EnumToCSS.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php similarity index 90% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php index a1e5a83a..3d09eca3 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgRequired.php @@ -24,7 +24,8 @@ class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform if ($src) { $alt = $config->get('Attr.DefaultImageAlt'); if ($alt === null) { - $attr['alt'] = basename($attr['src']); + // truncate if the alt is too long + $attr['alt'] = substr(basename($attr['src']),0,40); } else { $attr['alt'] = $alt; } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ImgSpace.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Input.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Lang.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Length.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Name.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/NameSync.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeEmbed.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeObject.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php similarity index 74% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php index e677feae..d14390bc 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/SafeParam.php @@ -33,12 +33,25 @@ class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform case 'allowNetworking': $attr['value'] = 'internal'; break; + case 'allowFullScreen': + if ($config->get('HTML.FlashAllowFullScreen')) { + $attr['value'] = ($attr['value'] == 'true') ? 'true' : 'false'; + } else { + $attr['value'] = 'false'; + } + break; case 'wmode': $attr['value'] = 'window'; break; case 'movie': + case 'src': + $attr['name'] = "movie"; $attr['value'] = $this->uri->validate($attr['value'], $config, $context); break; + case 'flashvars': + // we're going to allow arbitrary inputs to the SWF, on + // the reasoning that it could only hack the SWF, not us. + break; // add other cases to support other param name/value pairs default: $attr['name'] = $attr['value'] = null; diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/ScriptRequired.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTransform/Textarea.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTypes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTypes.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrTypes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrTypes.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrValidator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrValidator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/AttrValidator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/AttrValidator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Bootstrap.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Bootstrap.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Bootstrap.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Bootstrap.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/CSSDefinition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php similarity index 95% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/CSSDefinition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php index 17bf9931..09afc1f1 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/CSSDefinition.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/CSSDefinition.php @@ -272,20 +272,29 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition // setup allowed elements $support = "(for information on implementing this, see the ". "support forums) "; - $allowed_attributes = $config->get('CSS.AllowedProperties'); - if ($allowed_attributes !== null) { + $allowed_properties = $config->get('CSS.AllowedProperties'); + if ($allowed_properties !== null) { foreach ($this->info as $name => $d) { - if(!isset($allowed_attributes[$name])) unset($this->info[$name]); - unset($allowed_attributes[$name]); + if(!isset($allowed_properties[$name])) unset($this->info[$name]); + unset($allowed_properties[$name]); } // emit errors - foreach ($allowed_attributes as $name => $d) { + foreach ($allowed_properties as $name => $d) { // :TODO: Is this htmlspecialchars() call really necessary? $name = htmlspecialchars($name); trigger_error("Style attribute '$name' is not supported $support", E_USER_WARNING); } } + $forbidden_properties = $config->get('CSS.ForbiddenProperties'); + if ($forbidden_properties !== null) { + foreach ($this->info as $name => $d) { + if (isset($forbidden_properties[$name])) { + unset($this->info[$name]); + } + } + } + } } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Chameleon.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Custom.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Empty.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Optional.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Required.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Required.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Required.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Required.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/StrictBlockquote.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Table.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Table.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ChildDef/Table.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ChildDef/Table.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Config.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php similarity index 99% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Config.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php index 28529e7f..ada1b701 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Config.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Config.php @@ -20,7 +20,7 @@ class HTMLPurifier_Config /** * HTML Purifier's version */ - public $version = '4.0.0'; + public $version = '4.2.0'; /** * Bool indicator whether or not to automatically finalize diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Exception.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/Validator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema.ser new file mode 100644 index 0000000000000000000000000000000000000000..978089c6291e7d828f6233ac632cedd8a98fdfd7 GIT binary patch literal 13701 zcmeHO+in{<5}i*8JlK~7B1m?!lTn@=*+PW%4VHtMeHyeRTIRadt?i3rZ;*fAbBaYa z)oRI^hh1O+IS4Fu6^q5Xk*q$x9v;6R9(}&Mytt_gdv8tg$0*P4?Q%MQFstNfcryG} z4nGW!7Un*w)2clBm<$K~cYHedb$E1IRYmVKP4lm2F-nuNG~l@USPqZhZ4$>tvNCr` zu{2IbfB5Y?L}2n*#H~p=!7k!cM1)Q9n$g+m-KoyqSK66Vda_EE<}|HZnt5vW zl%#ecOh?chgZbqVqvmi)nJytDa+*SQ<}^lQ(IzXo_c(|O}#Zs^SpMe4>M2B zZVGd6pQ9xYyiGmrBA+L4NMjQ^wXSj~w@RuWKi(uovMiGIgI~dbc58S>by?-BNI!bK zA)ncDohC0AHhcVXI|(wVNW(;`y?^o46B@6f`oLAL-dR5Xa(kin{`oJ6N0^m1+d0Gw zez&>2TeHfa%=v0vz4YAYt6913oj=dby0UpDxp2%(fX%A~r3^S1zKAsj9}(d#WxHj1 z1;lxcnh~?-IAPAUIi~9*D}S@qLta;mDm$wy=AjEIdUZ6Nx-6Zn)_GAS86rlh@JFED z6?Xm@?95mUB(u0F^0g@{>oc5=CK+*VGfRWq8YHN7Mu3k<3}GCP_OUvESIBgkJWp23 z3zIErxN?ZcgX4aGEwRZGK_&_)tf`WsQ4py*N>HdG9k4)&*a2u$Q&^<-zm4SFao}#A z-z1z->J{8J$_vvwT`mh#miEb{FJt?BA(o)p=3m#io^&niqdJFJJRw zArS&QAw;mIRZ`@6#s$K1KY!@+N5ix*2p{)+Joe8qBrlT8l@$&dk5AvbAt1dNR^4V4 z$MGA?m8a0&Q$F-L6Te~5x-QmfMCya6jQ92Yp|pt~MsedYzd_*F2U~?vWBDNk>5|%2 zAaFp?0Y)@ot(?YDFeFQ!;6b-oF4buO!Yr*LS$=vDl7H1fFFtm9flwJ&o@g8ja-yK{ zjD<0tBv_!d>642G4jT3OPuGGn78Ii_N@E5yZk%T`46RUK>Xpf=yBvGklAoAMjF1yp zSU6Gd5g-@l88yjV)vK8)rZ3ril2xX_X2T?5v1ct7{_|{}FKo7?BGA6B?%#gkXO=C; zP|lOJ(Y*}82L-#!9x=WTJIFC^^A~{!ib~+tRCZh)w?>Te|jNH70@w4nb z=c(cPB#fodL7#G7*mYPkv@NR_h7?V}9o?_#0+Czmo(Kh9Fbv={kq_IL!sV(zEy(lB z#AX%#H-^LH8~J&~y@yGCWxl2`ujnpym*t9na%EGEg~Aft<5hDEC@6C#dbXToWmVL3 zt?6o1tSpi?l~vc`S2XgJR{E6Y^T)C$eiC3yuxX**PQBfuR_WSi`eluoI0=}F;8H>wfshW3IjbC zq$jAi-^w8-pNgC7Lc>)m7|&-uLa5&hH@WB;EOa3!EZyB<7v#_HmlvaawL&6o?68B%$D>2ddAi02NBOQIh{7y}M93I1;*LAh7D;zdfEWz#i1}l*CoIbAC*`GiAj?-P~N|lX;%OJ!)*I zf)l(i7jk`MY9}z#H%YXIszQ=F#i0SehT2U-CMc!3XFxHyZ`iSrEZh8QzUp9PjZXb3 zDWg=OGI|Ab%Fss;lUbk(e#Iius)L$|sqxy7EcKZIFpWd6&tfIh~bxii?5QNj1K# z<%H?Wh;Z}K*4zxXK%E-Yi3-PDrv?uyq+R2HRM-VB+tLvTQ9!S=ydet~?oNK=uC3SG z{Rh1%;7*7|y8Z(e`O{y2S|k;Yfrs{kYh}QiNRmVQ;n03Kv>y)bhqyU$Xg>^(4(*3S z`{B@jKxYC+%|rV^&&s^sM=g!eAmG{e(0(|y9~c{l_5*SOH$CkF9NG`AYj9{kus!jA z-hM#+M;l?S4MtXdEC^5Le22(A0woX~BAeZ#4~0I1dvh0F=(k}GcKG%KcMc3;56!o} zHjxf?NS;od!!DA%M3qrcPb9Z64w(2CPK;)ekhRU#z#PCJZ$!Lio*{xTgcr5wt!xO1 zcm(F)-sc7*sHlKyxTX!u%7H(Qa25R~Hgs)kHx@G_t{+6J3I{qDf`oA0Kzu7I>6M{N z#BB%hBJyMc7(HyE7%2_v>!02<&& zGtk3Cu-2_Q5cFu{M7$ozbIj$H|QF@u{*#G%7N^O z)b5_K4Q|l5^@=vg1y|6zKnn~7zs1VroxlZf$wuwh(1BghHQ=q1h;g|eV;39) zD^A3)3%j7wnEnhutt2h%f@(#_=)3>T4P!sbpaCy5n(f3HG|aC=BO-aHkO(i)9g*0( z++eraY_~lAH)_C#yVsy74lN%XnQUT5>Yv#ZWN$4*}L zZ!_ij3wiJ(o9>EC~xndw(VwMJ8 zp$t5p#|)vhh__{&lr`$LG$gm-LKmoLfE+OxEP4R|*^RCw) zytxC^vJ@Drdu=be>#`k3gB6j=58VW`@n+EL?;PE5Y>tM%JZa!mMU^hodAv zkGGCK_UbdS1&5Id6M??I7CV0rE4uqCP6DyVSLd>--SeZtu3AV;7hryuWb5#JVF#W+Az%ML9} klV!Z literal 0 HcmV?d00001 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt new file mode 100644 index 00000000..dde990ab --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt @@ -0,0 +1,11 @@ +AutoFormat.RemoveSpansWithoutAttributes +TYPE: bool +VERSION: 4.0.1 +DEFAULT: false +--DESCRIPTION-- +

        + This directive causes span tags without any attributes + to be removed. It will also remove spans that had all attributes + removed during processing. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt new file mode 100644 index 00000000..f1f5c5f1 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt @@ -0,0 +1,13 @@ +CSS.ForbiddenProperties +TYPE: lookup +VERSION: 4.2.0 +DEFAULT: array() +--DESCRIPTION-- +

        + This is the logical inverse of %CSS.AllowedProperties, and it will + override that directive or any other directive. If possible, + %CSS.AllowedProperties is recommended over this directive, + because it can sometimes be difficult to tell whether or not you've + forbidden all of the CSS properties you truly would like to disallow. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt new file mode 100644 index 00000000..d77f5360 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt @@ -0,0 +1,11 @@ +Core.NormalizeNewlines +TYPE: bool +VERSION: 4.2.0 +DEFAULT: true +--DESCRIPTION-- +

        + Whether or not to normalize newlines to the operating + system default. When false, HTML Purifier + will attempt to preserve mixed newline files. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt new file mode 100644 index 00000000..3397d9f7 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt @@ -0,0 +1,11 @@ +Core.RemoveProcessingInstructions +TYPE: bool +VERSION: 4.2.0 +DEFAULT: false +--DESCRIPTION-- +Instead of escaping processing instructions in the form <? ... +?>, remove it out-right. This may be useful if the HTML +you are validating contains XML processing instruction gunk, however, +it can also be user-unfriendly for people attempting to post PHP +snippets. +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt similarity index 65% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt index 7fa6536b..321eaa2d 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt @@ -3,6 +3,11 @@ TYPE: bool VERSION: 3.1.0 DEFAULT: false --DESCRIPTION-- +

        + Warning: Deprecated in favor of %HTML.SafeObject and + %Output.FlashCompat (turn both on to allow YouTube videos and other + Flash content). +

        This directive enables YouTube video embedding in HTML Purifier. Check this document diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt similarity index 54% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt index 3e231d2d..0b2c106d 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt @@ -5,11 +5,14 @@ DEFAULT: NULL --DESCRIPTION--

        - This is a convenience directive that rolls the functionality of - %HTML.AllowedElements and %HTML.AllowedAttributes into one directive. + This is a preferred convenience directive that combines + %HTML.AllowedElements and %HTML.AllowedAttributes. Specify elements and attributes that are allowed using: - element1[attr1|attr2],element2.... You can also use - newlines instead of commas to separate elements. + element1[attr1|attr2],element2.... For example, + if you would like to only allow paragraphs and links, specify + a[href],p. You can specify attributes that apply + to all elements using an asterisk, e.g. *[lang]. + You can also use newlines instead of commas to separate elements.

        Warning: diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt new file mode 100644 index 00000000..1d3fa790 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt @@ -0,0 +1,23 @@ +HTML.AllowedElements +TYPE: lookup/null +VERSION: 1.3.0 +DEFAULT: NULL +--DESCRIPTION-- +

        + If HTML Purifier's tag set is unsatisfactory for your needs, you can + overload it with your own list of tags to allow. If you change + this, you probably also want to change %HTML.AllowedAttributes; see + also %HTML.Allowed which lets you set allowed elements and + attributes at the same time. +

        +

        + If you attempt to allow an element that HTML Purifier does not know + about, HTML Purifier will raise an error. You will need to manually + tell HTML Purifier about this element by using the + advanced customization features. +

        +

        + Warning: If another directive conflicts with the + elements here, that directive will win and override. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt new file mode 100644 index 00000000..7878dc0b --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt @@ -0,0 +1,11 @@ +HTML.FlashAllowFullScreen +TYPE: bool +VERSION: 4.2.0 +DEFAULT: false +--DESCRIPTION-- +

        + Whether or not to permit embedded Flash content from + %HTML.SafeObject to expand to the full screen. Corresponds to + the allowFullScreen parameter. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt similarity index 65% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt index f635a685..cdda09a4 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt @@ -7,8 +7,7 @@ DEFAULT: false Whether or not to permit embed tags in documents, with a number of extra security features added to prevent script execution. This is similar to what websites like MySpace do to embed tags. Embed is a proprietary - element and will cause your website to stop validating. You probably want - to enable this with %HTML.SafeObject. - Highly experimental. -

        + element and will cause your website to stop validating; you should + see if you can use %Output.FlashCompat with %HTML.SafeObject instead + first.

        --# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt new file mode 100644 index 00000000..ceb342e2 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt @@ -0,0 +1,13 @@ +HTML.SafeObject +TYPE: bool +VERSION: 3.1.1 +DEFAULT: false +--DESCRIPTION-- +

        + Whether or not to permit object tags in documents, with a number of extra + security features added to prevent script execution. This is similar to + what websites like MySpace do to object tags. You should also enable + %Output.FlashCompat in order to generate Internet Explorer + compatibility code for your object tags. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt new file mode 100644 index 00000000..93398e85 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt @@ -0,0 +1,11 @@ +Output.FlashCompat +TYPE: bool +VERSION: 4.1.0 +DEFAULT: false +--DESCRIPTION-- +

        + If true, HTML Purifier will generate Internet Explorer compatibility + code for all object code. This is highly recommended if you enable + %HTML.SafeObject. +

        +--# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt similarity index 74% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt index 98fdfe92..666635a5 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt @@ -12,4 +12,6 @@ array ( --DESCRIPTION-- Whitelist that defines the schemes that a URI is allowed to have. This prevents XSS attacks from using pseudo-schemes like javascript or mocha. +There is also support for the data and file +URI schemes, but they are not enabled by default. --# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt similarity index 64% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt index 51e6ea91..f891de49 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt @@ -1,12 +1,15 @@ URI.DisableResources TYPE: bool -VERSION: 1.3.0 +VERSION: 4.2.0 DEFAULT: false --DESCRIPTION-- -

        Disables embedding resources, essentially meaning no pictures. You can still link to them though. See %URI.DisableExternalResources for why this might be a good idea.

        +

        + Note: While this directive has been available since 1.3.0, + it didn't actually start doing anything until 4.2.0. +

        --# vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ConfigSchema/schema/info.ini diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ContentSets.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ContentSets.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ContentSets.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ContentSets.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Context.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Context.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Context.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Context.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Definition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Definition.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Definition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Definition.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Null.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/README diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DefinitionCacheFactory.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Doctype.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Doctype.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Doctype.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Doctype.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/DoctypeRegistry.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ElementDef.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php similarity index 96% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ElementDef.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php index c4f5df97..cbd4e345 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ElementDef.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ElementDef.php @@ -97,6 +97,13 @@ class HTMLPurifier_ElementDef */ public $autoclose = array(); + /** + * If a foreign element is found in this element, test if it is + * allowed by this sub-element; if it is, instead of closing the + * current element, place it inside this element. + */ + public $wrap; + /** * Whether or not this is a formatting element affected by the * "Active Formatting Elements" algorithm. diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Encoder.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Encoder.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Encoder.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Encoder.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityLookup/entities.ser diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityParser.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityParser.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/EntityParser.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/EntityParser.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorCollector.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorCollector.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorCollector.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorCollector.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorStruct.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorStruct.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/ErrorStruct.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/ErrorStruct.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Exception.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Exception.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Exception.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Exception.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/YouTube.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php similarity index 74% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/YouTube.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php index aa3c17a0..9a9d9f96 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Filter/YouTube.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Filter/YouTube.php @@ -7,13 +7,13 @@ class HTMLPurifier_Filter_YouTube extends HTMLPurifier_Filter public function preFilter($html, $config, $context) { $pre_regex = '#]+>.+?'. - 'http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?
    #s'; + 'http://www.youtube.com/((?:v|cp)/[A-Za-z0-9\-_=]+).+?#s'; $pre_replace = '\1'; return preg_replace($pre_regex, $pre_replace, $html); } public function postFilter($html, $config, $context) { - $post_regex = '#([A-Za-z0-9\-_]+)#'; + $post_regex = '#((?:v|cp)/[A-Za-z0-9\-_=]+)#'; return preg_replace_callback($post_regex, array($this, 'postFilterCallback'), $html); } @@ -24,10 +24,10 @@ class HTMLPurifier_Filter_YouTube extends HTMLPurifier_Filter protected function postFilterCallback($matches) { $url = $this->armorUrl($matches[1]); return ''. - ''. + 'data="http://www.youtube.com/'.$url.'">'. + ''. ''. diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Generator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php similarity index 73% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Generator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php index 22e841c1..e5988b64 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Generator.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Generator.php @@ -31,6 +31,17 @@ class HTMLPurifier_Generator */ private $_sortAttr; + /** + * Cache of %Output.FlashCompat + */ + private $_flashCompat; + + /** + * Stack for keeping track of object information when outputting IE + * compatibility code. + */ + private $_flashStack = array(); + /** * Configuration for the generator */ @@ -44,6 +55,7 @@ class HTMLPurifier_Generator $this->config = $config; $this->_scriptFix = $config->get('Output.CommentScriptContents'); $this->_sortAttr = $config->get('Output.SortAttr'); + $this->_flashCompat = $config->get('Output.FlashCompat'); $this->_def = $config->getHTMLDefinition(); $this->_xhtml = $this->_def->doctype->xml; } @@ -86,9 +98,11 @@ class HTMLPurifier_Generator } // Normalize newlines to system defined value - $nl = $this->config->get('Output.Newline'); - if ($nl === null) $nl = PHP_EOL; - if ($nl !== "\n") $html = str_replace("\n", $nl, $html); + if ($this->config->get('Core.NormalizeNewlines')) { + $nl = $this->config->get('Output.Newline'); + if ($nl === null) $nl = PHP_EOL; + if ($nl !== "\n") $html = str_replace("\n", $nl, $html); + } return $html; } @@ -104,12 +118,41 @@ class HTMLPurifier_Generator } elseif ($token instanceof HTMLPurifier_Token_Start) { $attr = $this->generateAttributes($token->attr, $token->name); + if ($this->_flashCompat) { + if ($token->name == "object") { + $flash = new stdclass(); + $flash->attr = $token->attr; + $flash->param = array(); + $this->_flashStack[] = $flash; + } + } return '<' . $token->name . ($attr ? ' ' : '') . $attr . '>'; } elseif ($token instanceof HTMLPurifier_Token_End) { - return 'name . '>'; + $_extra = ''; + if ($this->_flashCompat) { + if ($token->name == "object" && !empty($this->_flashStack)) { + $flash = array_pop($this->_flashStack); + $compat_token = new HTMLPurifier_Token_Empty("embed"); + foreach ($flash->attr as $name => $val) { + if ($name == "classid") continue; + if ($name == "type") continue; + if ($name == "data") $name = "src"; + $compat_token->attr[$name] = $val; + } + foreach ($flash->param as $name => $val) { + if ($name == "movie") $name = "src"; + $compat_token->attr[$name] = $val; + } + $_extra = ""; + } + } + return $_extra . 'name . '>'; } elseif ($token instanceof HTMLPurifier_Token_Empty) { + if ($this->_flashCompat && $token->name == "param" && !empty($this->_flashStack)) { + $this->_flashStack[count($this->_flashStack)-1]->param[$token->attr['name']] = $token->attr['value']; + } $attr = $this->generateAttributes($token->attr, $token->name); return '<' . $token->name . ($attr ? ' ' : '') . $attr . ( $this->_xhtml ? ' /': '' ) //
    v.
    @@ -174,7 +217,10 @@ class HTMLPurifier_Generator * permissible for non-attribute output. * @return String escaped data. */ - public function escape($string, $quote = ENT_COMPAT) { + public function escape($string, $quote = null) { + // Workaround for APC bug on Mac Leopard reported by sidepodcast + // http://htmlpurifier.org/phorum/read.php?3,4823,4846 + if ($quote === null) $quote = ENT_COMPAT; return htmlspecialchars($string, $quote, 'UTF-8'); } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLDefinition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php similarity index 97% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLDefinition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php index 0195ce4c..f775604a 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLDefinition.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLDefinition.php @@ -300,7 +300,12 @@ class HTMLPurifier_HTMLDefinition extends HTMLPurifier_Definition unset($allowed_attributes_mutable[$key]); } } - if ($delete) unset($this->info[$tag]->attr[$attr]); + if ($delete) { + if ($this->info[$tag]->attr[$attr]->required) { + trigger_error("Required attribute '$attr' in element '$tag' was not allowed, which means '$tag' will not be allowed either", E_USER_WARNING); + } + unset($this->info[$tag]->attr[$attr]); + } } } // emit errors diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Bdo.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/CommonAttributes.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Edit.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Forms.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Hypertext.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Image.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Legacy.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/List.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php similarity index 85% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/List.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php index db2d5324..2911a69b 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/List.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/List.php @@ -20,8 +20,10 @@ class HTMLPurifier_HTMLModule_List extends HTMLPurifier_HTMLModule public $content_sets = array('Flow' => 'List'); public function setup($config) { - $this->addElement('ol', 'List', 'Required: li', 'Common'); - $this->addElement('ul', 'List', 'Required: li', 'Common'); + $ol = $this->addElement('ol', 'List', 'Required: li', 'Common'); + $ol->wrap = "li"; + $ul = $this->addElement('ul', 'List', 'Required: li', 'Common'); + $ul->wrap = "li"; $this->addElement('dl', 'List', 'Required: dt | dd', 'Common'); $this->addElement('li', false, 'Flow', 'Common'); diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Name.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Object.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Presentation.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Proprietary.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Ruby.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php similarity index 96% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php index 1fd57145..7f602317 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeEmbed.php @@ -20,6 +20,7 @@ class HTMLPurifier_HTMLModule_SafeEmbed extends HTMLPurifier_HTMLModule 'height' => 'Pixels#' . $max, 'allowscriptaccess' => 'Enum#never', 'allownetworking' => 'Enum#internal', + 'flashvars' => 'Text', 'wmode' => 'Enum#window', 'name' => 'ID', ) diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php similarity index 83% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php index 4378d2c6..d3de4f47 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php @@ -28,7 +28,10 @@ class HTMLPurifier_HTMLModule_SafeObject extends HTMLPurifier_HTMLModule 'type' => 'Enum#application/x-shockwave-flash', 'width' => 'Pixels#' . $max, 'height' => 'Pixels#' . $max, - 'data' => 'URI#embedded' + 'data' => 'URI#embedded', + 'classid' => 'Enum#clsid:d27cdb6e-ae6d-11cf-96b8-444553540000', + 'codebase' => new HTMLPurifier_AttrDef_Enum(array( + 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0')), ) ); $object->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeObject(); diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Scripting.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/StyleAttribute.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tables.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Target.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Text.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Name.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php similarity index 91% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php index f6aa6b03..d043aa72 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Proprietary.php @@ -15,6 +15,7 @@ class HTMLPurifier_HTMLModule_Tidy_Proprietary extends HTMLPurifier_HTMLModule_T $r['thead@background'] = new HTMLPurifier_AttrTransform_Background(); $r['tfoot@background'] = new HTMLPurifier_AttrTransform_Background(); $r['tbody@background'] = new HTMLPurifier_AttrTransform_Background(); + $r['table@height'] = new HTMLPurifier_AttrTransform_Length('height'); return $r; } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Strict.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/Transitional.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTML.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModule/XMLCommonAttributes.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/HTMLModuleManager.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/IDAccumulator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/IDAccumulator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/IDAccumulator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/IDAccumulator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php similarity index 95% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php index c5444dbe..72152d81 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/AutoParagraph.php @@ -34,16 +34,21 @@ class HTMLPurifier_Injector_AutoParagraph extends HTMLPurifier_Injector // ---- // This is a degenerate case } else { - // State 1.2: PAR1 - // ---- + if (!$token->is_whitespace || $this->_isInline($current)) { + // State 1.2: PAR1 + // ---- - // State 1.3: PAR1\n\nPAR2 - // ------------ + // State 1.3: PAR1\n\nPAR2 + // ------------ - // State 1.4:
    PAR1\n\nPAR2 (see State 2) - // ------------ - $token = array($this->_pStart()); - $this->_splitText($text, $token); + // State 1.4:
    PAR1\n\nPAR2 (see State 2) + // ------------ + $token = array($this->_pStart()); + $this->_splitText($text, $token); + } else { + // State 1.5: \n
    + // -- + } } } else { // State 2:
    PAR1... (similar to 1.4) diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/DisplayLinkURI.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/Linkify.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/Linkify.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/Linkify.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/Linkify.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/PurifierLinkify.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveEmpty.php diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php new file mode 100644 index 00000000..509d5dc7 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php @@ -0,0 +1,60 @@ +attrValidator = new HTMLPurifier_AttrValidator(); + $this->config = $config; + $this->context = $context; + return parent::prepare($config, $context); + } + + public function handleElement(&$token) { + if ($token->name !== 'span' || !$token instanceof HTMLPurifier_Token_Start) { + return; + } + + // We need to validate the attributes now since this doesn't normally + // happen until after MakeWellFormed. If all the attributes are removed + // the span needs to be removed too. + $this->attrValidator->validateToken($token, $this->config, $this->context); + $token->armor['ValidateAttributes'] = true; + + if (!empty($token->attr)) { + return; + } + + $nesting = 0; + $spanContentTokens = array(); + while ($this->forwardUntilEndToken($i, $current, $nesting)) {} + + if ($current instanceof HTMLPurifier_Token_End && $current->name === 'span') { + // Mark closing span tag for deletion + $current->markForDeletion = true; + // Delete open span tag + $token = false; + } + } + + public function handleEnd(&$token) { + if ($token->markForDeletion) { + $token = false; + } + } +} + +// vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php similarity index 93% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php index 42d8fd40..fc01eebc 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Injector/SafeObject.php @@ -20,6 +20,9 @@ class HTMLPurifier_Injector_SafeObject extends HTMLPurifier_Injector protected $allowedParam = array( 'wmode' => true, 'movie' => true, + 'flashvars' => true, + 'src' => true, + 'allowFullScreen' => true, // if omitted, assume to be 'false' ); public function prepare($config, $context) { @@ -47,7 +50,8 @@ class HTMLPurifier_Injector_SafeObject extends HTMLPurifier_Injector // We need this fix because YouTube doesn't supply a data // attribute, which we need if a type is specified. This is // *very* Flash specific. - if (!isset($this->objectStack[$i]->attr['data']) && $token->attr['name'] == 'movie') { + if (!isset($this->objectStack[$i]->attr['data']) && + ($token->attr['name'] == 'movie' || $token->attr['name'] == 'src')) { $this->objectStack[$i]->attr['data'] = $token->attr['value']; } // Check if the parameter is the correct value but has not diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/classes/en-x-test.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-test.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en-x-testmini.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php similarity index 98% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php index 5377e5a3..2c96e307 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Language/messages/en.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Language/messages/en.php @@ -23,6 +23,7 @@ $messages = array( 'Lexer: Missing gt' => 'Missing greater-than sign (>), previous less-than sign (<) should be escaped', 'Lexer: Missing attribute key' => 'Attribute declaration has no key', 'Lexer: Missing end quote' => 'Attribute declaration has no end quote', +'Lexer: Extracted body' => 'Removed document metadata tags', 'Strategy_RemoveForeignElements: Tag transform' => '<$1> element transformed into $CurrentToken.Serialized', 'Strategy_RemoveForeignElements: Missing required attribute' => '$CurrentToken.Compact element missing required attribute $1', diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/LanguageFactory.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/LanguageFactory.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/LanguageFactory.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/LanguageFactory.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Length.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Length.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Length.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Length.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php similarity index 90% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php index 9f20a412..6d6f4864 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer.php @@ -230,6 +230,17 @@ class HTMLPurifier_Lexer ); } + /** + * Special Internet Explorer conditional comments should be removed. + */ + protected static function removeIEConditional($string) { + return preg_replace( + '##si', // probably should generalize for all strings + '', + $string + ); + } + /** * Callback function for escapeCDATA() that does the work. * @@ -252,20 +263,32 @@ class HTMLPurifier_Lexer public function normalize($html, $config, $context) { // normalize newlines to \n - $html = str_replace("\r\n", "\n", $html); - $html = str_replace("\r", "\n", $html); + if ($config->get('Core.NormalizeNewlines')) { + $html = str_replace("\r\n", "\n", $html); + $html = str_replace("\r", "\n", $html); + } if ($config->get('HTML.Trusted')) { // escape convoluted CDATA $html = $this->escapeCommentedCDATA($html); } + $html = $this->removeIEConditional($html); + // escape CDATA $html = $this->escapeCDATA($html); // extract body from document if applicable if ($config->get('Core.ConvertDocumentToFragment')) { - $html = $this->extractBody($html); + $e = false; + if ($config->get('Core.CollectErrors')) { + $e =& $context->get('ErrorCollector'); + } + $new_html = $this->extractBody($html); + if ($e && $new_html != $html) { + $e->send(E_WARNING, 'Lexer: Extracted body'); + } + $html = $new_html; } // expand entities that aren't the big five @@ -276,6 +299,11 @@ class HTMLPurifier_Lexer // represent non-SGML characters (horror, horror!) $html = HTMLPurifier_Encoder::cleanUTF8($html); + // if processing instructions are to removed, remove them now + if ($config->get('Core.RemoveProcessingInstructions')) { + $html = preg_replace('#<\?.+?\?>#s', '', $html); + } + return $html; } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DOMLex.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php similarity index 99% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php index eb421b23..b7d9abfa 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/DirectLex.php @@ -384,7 +384,7 @@ class HTMLPurifier_Lexer_DirectLex extends HTMLPurifier_Lexer } } if ($value === false) $value = ''; - return array($key => $value); + return array($key => $this->parseData($value)); } // setup loop environment diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php similarity index 69% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php index 57173455..72c87635 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PEARSax3.php @@ -26,13 +26,20 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer * Internal accumulator array for SAX parsers. */ protected $tokens = array(); + protected $last_token_was_empty; + + private $parent_handler; + private $stack = array(); public function tokenizeHTML($string, $config, $context) { $this->tokens = array(); + $this->last_token_was_empty = false; $string = $this->normalize($string, $config, $context); + $this->parent_handler = set_error_handler(array($this, 'muteStrictErrorHandler')); + $parser = new XML_HTMLSax3(); $parser->set_object($this); $parser->set_element_handler('openHandler','closeHandler'); @@ -44,6 +51,8 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer $parser->parse($string); + restore_error_handler(); + return $this->tokens; } @@ -58,9 +67,11 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer } if ($closed) { $this->tokens[] = new HTMLPurifier_Token_Empty($name, $attrs); + $this->last_token_was_empty = true; } else { $this->tokens[] = new HTMLPurifier_Token_Start($name, $attrs); } + $this->stack[] = $name; return true; } @@ -71,10 +82,12 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer // HTMLSax3 seems to always send empty tags an extra close tag // check and ignore if you see it: // [TESTME] to make sure it doesn't overreach - if ($this->tokens[count($this->tokens)-1] instanceof HTMLPurifier_Token_Empty) { + if ($this->last_token_was_empty) { + $this->last_token_was_empty = false; return true; } $this->tokens[] = new HTMLPurifier_Token_End($name); + if (!empty($this->stack)) array_pop($this->stack); return true; } @@ -82,6 +95,7 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer * Data event handler, interface is defined by PEAR package. */ public function dataHandler(&$parser, $data) { + $this->last_token_was_empty = false; $this->tokens[] = new HTMLPurifier_Token_Text($data); return true; } @@ -91,7 +105,18 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer */ public function escapeHandler(&$parser, $data) { if (strpos($data, '--') === 0) { - $this->tokens[] = new HTMLPurifier_Token_Comment($data); + // remove trailing and leading double-dashes + $data = substr($data, 2); + if (strlen($data) >= 2 && substr($data, -2) == "--") { + $data = substr($data, 0, -2); + } + if (isset($this->stack[sizeof($this->stack) - 1]) && + $this->stack[sizeof($this->stack) - 1] == "style") { + $this->tokens[] = new HTMLPurifier_Token_Text($data); + } else { + $this->tokens[] = new HTMLPurifier_Token_Comment($data); + } + $this->last_token_was_empty = false; } // CDATA is handled elsewhere, but if it was handled here: //if (strpos($data, '[CDATA[') === 0) { @@ -101,6 +126,14 @@ class HTMLPurifier_Lexer_PEARSax3 extends HTMLPurifier_Lexer return true; } + /** + * An error handler that mutes strict errors + */ + public function muteStrictErrorHandler($errno, $errstr, $errfile=null, $errline=null, $errcontext=null) { + if ($errno == E_STRICT) return; + return call_user_func($this->parent_handler, $errno, $errstr, $errfile, $errline, $errcontext); + } + } // vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php similarity index 99% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php index 0d20c0ce..b42965ef 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Lexer/PH5P.php @@ -125,8 +125,6 @@ class HTML5 { const EOF = 5; public function __construct($data) { - $data = str_replace("\r\n", "\n", $data); - $data = str_replace("\r", null, $data); $this->data = $data; $this->char = -1; @@ -3903,4 +3901,4 @@ class HTML5TreeConstructer { return $this->dom; } } - +?> diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PercentEncoder.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PercentEncoder.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PercentEncoder.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PercentEncoder.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/CSSDefinition.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.css diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.js diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/ConfigForm.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Printer/HTMLDefinition.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyList.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyList.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyList.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyList.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyListIterator.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyListIterator.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/PropertyListIterator.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/PropertyListIterator.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Composite.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Composite.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Composite.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Composite.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Core.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Core.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/Core.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/Core.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/FixNesting.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php similarity index 94% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php index c81b6b7b..03c92bd4 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/MakeWellFormed.php @@ -83,6 +83,7 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy $this->injectors[] = $injector; } foreach ($custom_injectors as $injector) { + if (!$injector) continue; if (is_string($injector)) { $injector = "HTMLPurifier_Injector_$injector"; $injector = new $injector; @@ -164,6 +165,7 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy $token = $tokens[$t]; //echo '
    '; printTokens($tokens, $t); printTokens($this->stack); + //flush(); // quick-check: if it's not a tag, no need to process if (empty($token->is_tag)) { @@ -219,6 +221,22 @@ class HTMLPurifier_Strategy_MakeWellFormed extends HTMLPurifier_Strategy $autoclose = false; } + if ($autoclose && $definition->info[$token->name]->wrap) { + // Check if an element can be wrapped by another + // element to make it valid in a context (for + // example,
        needs a
      • in between) + $wrapname = $definition->info[$token->name]->wrap; + $wrapdef = $definition->info[$wrapname]; + $elements = $wrapdef->child->getAllowedElements($config); + $parent_elements = $definition->info[$parent->name]->child->getAllowedElements($config); + if (isset($elements[$token->name]) && isset($parent_elements[$wrapname])) { + $newtoken = new HTMLPurifier_Token_Start($wrapname); + $this->insertBefore($newtoken); + $reprocess = true; + continue; + } + } + $carryover = false; if ($autoclose && $definition->info[$parent->name]->formatting) { $carryover = true; diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/RemoveForeignElements.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Strategy/ValidateAttributes.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHash.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHash.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHash.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHash.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHashParser.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHashParser.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/StringHashParser.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/StringHashParser.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Font.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Font.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Font.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Font.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TagTransform/Simple.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Comment.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Comment.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Comment.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Comment.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Empty.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Empty.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Empty.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Empty.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/End.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/End.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/End.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/End.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Start.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Start.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Start.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Start.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Tag.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Tag.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Tag.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Tag.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Text.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Text.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/Token/Text.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/Token/Text.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TokenFactory.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TokenFactory.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/TokenFactory.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/TokenFactory.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URI.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URI.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URI.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URI.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIDefinition.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIDefinition.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIDefinition.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIDefinition.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternal.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableExternalResources.php diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php new file mode 100644 index 00000000..e69d970a --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/DisableResources.php @@ -0,0 +1,11 @@ +get('EmbeddedURI', true); + } +} + +// vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/HostBlacklist.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/MakeAbsolute.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIFilter/Munge.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIParser.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIParser.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIParser.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIParser.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme.php diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php new file mode 100644 index 00000000..bc4fb8cd --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/data.php @@ -0,0 +1,93 @@ + true, + 'image/gif' => true, + 'image/png' => true, + ); + + public function validate(&$uri, $config, $context) { + $result = explode(',', $uri->path, 2); + $is_base64 = false; + $charset = null; + $content_type = null; + if (count($result) == 2) { + list($metadata, $data) = $result; + // do some legwork on the metadata + $metas = explode(';', $metadata); + while(!empty($metas)) { + $cur = array_shift($metas); + if ($cur == 'base64') { + $is_base64 = true; + break; + } + if (substr($cur, 0, 8) == 'charset=') { + // doesn't match if there are arbitrary spaces, but + // whatever dude + if ($charset !== null) continue; // garbage + $charset = substr($cur, 8); // not used + } else { + if ($content_type !== null) continue; // garbage + $content_type = $cur; + } + } + } else { + $data = $result[0]; + } + if ($content_type !== null && empty($this->allowed_types[$content_type])) { + return false; + } + if ($charset !== null) { + // error; we don't allow plaintext stuff + $charset = null; + } + $data = rawurldecode($data); + if ($is_base64) { + $raw_data = base64_decode($data); + } else { + $raw_data = $data; + } + // XXX probably want to refactor this into a general mechanism + // for filtering arbitrary content types + $file = tempnam("/tmp", ""); + file_put_contents($file, $raw_data); + if (function_exists('exif_imagetype')) { + $image_code = exif_imagetype($file); + } elseif (function_exists('getimagesize')) { + set_error_handler(array($this, 'muteErrorHandler')); + $info = getimagesize($file); + restore_error_handler(); + if ($info == false) return false; + $image_code = $info[2]; + } else { + trigger_error("could not find exif_imagetype or getimagesize functions", E_USER_ERROR); + } + $real_content_type = image_type_to_mime_type($image_code); + if ($real_content_type != $content_type) { + // we're nice guys; if the content type is something else we + // support, change it over + if (empty($this->allowed_types[$real_content_type])) return false; + $content_type = $real_content_type; + } + // ok, it's kosher, rewrite what we need + $uri->userinfo = null; + $uri->host = null; + $uri->port = null; + $uri->fragment = null; + $uri->query = null; + $uri->path = "$content_type;base64," . base64_encode($raw_data); + return true; + } + + public function muteErrorHandler($errno, $errstr) {} + +} + diff --git a/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php new file mode 100644 index 00000000..66c30232 --- /dev/null +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/file.php @@ -0,0 +1,26 @@ +userinfo = null; + // file:// makes no provisions for accessing the resource + $uri->port = null; + // While it seems to work on Firefox, the querystring has + // no possible effect and is thus stripped. + $uri->query = null; + return true; + } + +} + +// vim: et sw=4 sts=4 diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/ftp.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/http.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/http.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/http.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/http.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/https.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/https.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/https.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/https.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/mailto.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/news.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/news.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/news.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/news.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URIScheme/nntp.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/URISchemeRegistry.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/UnitConverter.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/UnitConverter.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/UnitConverter.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/UnitConverter.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php similarity index 88% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php index e5998e5e..dea9f169 100644 --- a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php +++ b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Flexible.php @@ -62,7 +62,7 @@ class HTMLPurifier_VarParser_Flexible extends HTMLPurifier_VarParser foreach ($var as $keypair) { $c = explode(':', $keypair, 2); if (!isset($c[1])) continue; - $nvar[$c[0]] = $c[1]; + $nvar[trim($c[0])] = trim($c[1]); } $var = $nvar; } @@ -79,8 +79,15 @@ class HTMLPurifier_VarParser_Flexible extends HTMLPurifier_VarParser return $new; } else break; } + if ($type === self::ALIST) { + trigger_error("Array list did not have consecutive integer indexes", E_USER_WARNING); + return array_values($var); + } if ($type === self::LOOKUP) { foreach ($var as $key => $value) { + if ($value !== true) { + trigger_error("Lookup array has non-true value at key '$key'; maybe your input array was not indexed numerically", E_USER_WARNING); + } $var[$key] = true; } } diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Native.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Native.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParser/Native.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParser/Native.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParserException.php b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParserException.php similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifier/VarParserException.php rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifier/VarParserException.php diff --git a/3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifierLicense b/3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifierLicense similarity index 100% rename from 3.1/modules/purifier/lib/HTMLPurifier/HTMLPurifierLicense rename to 3.1/modules/purifier/vendor/HTMLPurifier/HTMLPurifierLicense From 786a2fd2acb9de77f6e9b7b9db4e32aeb98212a5 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 8 Jan 2011 18:41:28 -0800 Subject: [PATCH 23/24] Bump purifier modules to v2 since we're using a newer version of HTMLPurifier --- 3.0/modules/purifier/module.info | 2 +- 3.1/modules/purifier/module.info | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/3.0/modules/purifier/module.info b/3.0/modules/purifier/module.info index ef14f615..4819b4e5 100644 --- a/3.0/modules/purifier/module.info +++ b/3.0/modules/purifier/module.info @@ -1,3 +1,3 @@ name = "HTML Purifier" description = "Enable XSS protection using HTMLPurifier" -version = 1 +version = 2 diff --git a/3.1/modules/purifier/module.info b/3.1/modules/purifier/module.info index ef14f615..4819b4e5 100644 --- a/3.1/modules/purifier/module.info +++ b/3.1/modules/purifier/module.info @@ -1,3 +1,3 @@ name = "HTML Purifier" description = "Enable XSS protection using HTMLPurifier" -version = 1 +version = 2 From d8fe4eeec5e80adb105a1d31c5a87c1f1417b9c7 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 9 Jan 2011 00:27:23 -0800 Subject: [PATCH 24/24] Add a README so that github has something to show --- README | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 00000000..189117a1 --- /dev/null +++ b/README @@ -0,0 +1,15 @@ +Gallery3 Contrib + +These are unofficial modules, themes and utilities for Gallery 3 +created by the Gallery community. Many of them add considerable value +to your Gallery 3 install, but they come with no official support from +the core Gallery team. + +To discuss anything you find here, please refer to the Gallery forums: + + http://gallery.menalto.com/forum/96 + +For an easy interface to download and install individual modules, +please refer to: + + http://gallerymodules.com