caedes avatar caedes committed 8d84ea2 Draft

add a pre-upgrade to shorten pad names

Comments (0)

Files changed (2)

elgg/mod/etherpad/lib.php

 	function loadPage($pad) {
 		return $this->loadUrl('ep/pad/export/' . urlencode($pad).'/latest?format=html');
 	}
+	/* Shorten the pad name */
+	function shortenName($entity_guid) {
+		global $CONFIG;
+		if ($this->pad)
+			$padId = $this->pad;
+		else
+			$padId = 'elgg-entitypad-'.md5($CONFIG->wwwroot).'-'.$entity_guid;
+		$content = $this->loadPage($padId);
+		$body_start = strpos($content, "<body>")+6;
+		$body_end = strpos($content, "</body>");
+		$content = substr($content, $body_start, $body_end-$body_start);
+
+		$newPadId = md5($CONFIG->wwwroot).'-'.$entity_guid;
+		if ($this->pad == $newPadId) {
+			return;
+		}
+		$this->selectPage($newPadId);
+		$this->syncPage($content);
+
+	}
 	/* Save the content from a pad into an entity of type page */
 	function saveToPage($entity_guid, $padId=false) {
 		global $CONFIG;

elgg/mod/etherpad/upgrade.php

+<?php
+        require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+	global $CONFIG;
+	require_once($CONFIG->pluginspath.'etherpad/lib.php');
+
+
+	admin_gatekeeper();
+	$options = array(
+        'type' => 'object',
+        'subtypes' => array('page', 'page_top'),
+        'limit' => 0,
+        'metadata_name' => 'ispad',
+        'metadata_value' => 1,
+);
+	$domain = get_plugin_setting("domain", "etherpad");
+
+	$results = elgg_get_entities($options);
+	foreach($results as $result) {
+		if ($result->ispad) {
+		echo "$result->title {$result->getURL()} $result->guid $result->pad<br />";
+                $ether = new EtherPad($domain);
+		if ($result->guid == 1011418) {
+		    $ether->shortenName($result->guid);
+			echo "go";
+		}
+		}
+
+	}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.