Archive for the ‘elgg’ Category
-
PHP to create Elgg pages from a mysql database
Installation:- Save to below script to the root of your Elgg install as importelgg.php
- Change the bits in bold to suit your environment.
- Log into your elgg site as the user you want to upload as then browse to the script.
Code:<?php// Modified from edit.php from Elgg doc’s by John McLear – www.mclear.co.ukset_time_limit(0); // We dont want the script to time outrequire_once ‘engine/start.php’;// Load configurationglobal $CONFIG;$dbhost = ‘localhost‘; // The MySql Hostname$dbuser = ‘root‘; // MySQL Username$dbpass = ‘yourpassword‘; // MySQL Password$conn = mysql_connect($dbhost, $dbuser, $dbpass, TRUE) or die (‘Error connecting to mysql’); // TRUE so we dont overwrite connection$dbname2 = ‘mydatabase‘; // The databasenamemysql_select_db($dbname2);$sql=”SELECT title,contents FROM pages“; // Get the content from the source database$result=mysql_query($sql);// Go through the records and create what you need from thatwhile ($row=mysql_fetch_array($result)) {$title=$row["title"]; //Set the title value from the mysql title field$content=$row["contents"]; // Same as above but for contentsgatekeeper();set_context(‘pages’);// Get group fields$input = array();foreach($CONFIG->pages as $shortname => $valuetype) {$input[$shortname] = get_input($shortname);if ($valuetype == ‘tags’)$input[$shortname] = string_to_tag_array($input[$shortname]);}// Get parent$parent_guid = (int)get_input(‘parent_guid’, 0);// New or old?$page = NULL;$pages_guid = (int)get_input(‘pages_guid’);if ($pages_guid){$page = get_entity($pages_guid);if (!$page->canEdit())$page = NULL; // if we can’t edit it, go no further.}else{$page = new ElggObject();if (!$parent_guid)$page->subtype = ‘page_top’;else$page->subtype = ‘page’;// New instance, so set container_guid$container_guid = get_input(‘container_guid’,’8849‘); // Set the container GUID to a static user$page->container_guid = $container_guid;}// Have we got it? Can we edit it?if ($page instanceof ElggObject){// Save fields – note we always save latest description as both description and annotationif (sizeof($input) > 0){foreach($input as $shortname => $value) {if ((!$pages_guid) || (($pages_guid) && ($shortname != ‘title’)))$page->$shortname = $value;}}// Validate create$page->title = $title;if (!$page->title){register_error(elgg_echo(“pages:notitle”));forward($_SERVER['HTTP_REFERER']);exit;}// Access ids (Make it public)$page->access_id = 2;// Get the content$page->description = $content;// Write access id (Make it public)$page->write_access_id = 2;// Set parent$page->parent_guid = $parent_guid;// Ensure ultimate owner$page->owner_guid = ($page->owner_guid ? $page->owner_guid : $_SESSION['user']->guid);// finally saveif ($page->save()){// Now save description as an annotation$page->annotate(‘page’, $page->description, $page->access_id);system_message(elgg_echo(“pages:saved”));//add to riveradd_to_river(‘river/object/page’,'create’,$_SESSION['user']->guid,$page->guid);echo “$title – DONE<br/>”;}elseregister_error(elgg_echo(‘pages:notsaved’));}else{register_error(elgg_echo(“pages:noaccess”));}usleep(250000); // Just a little rest not to be overspammy}?> -
elgg public pages are not availabe
I’m struggling with public pages actually being publicly available on elgg, I’m using the elgg allpublic plugin and I still get asked to log in to view pages.
Files and Photos etc. work fine, just seems to be a pages issue. I will update this thread if I find a fix.I have recently discovered the fix for this, all of my pages were access_id 2 so that was fine. The problem was…With the rate plugin which required a user to be logged in to rate a page.. Disabled the plugin. This is now fixed.. Huraa -
Elgg – All entities must be public – Remove friends and everyone else as options during inupt
Wow possibly the worst topic ever for one of my posts
This is relevant ifa) You use Elggb) You want all users to only be able to post as publicc) You have the allpublic elgg pluginIf not you won’t be interested..Basically, the array that holds the values takes 0,1,2 then you drop out 0,1 (this is default behavior in the allpublic plugin).For some weird reason this leaves behind “Friends” as an option, this is not desirable behavior and the fix is to remove -2 ( I know wth were they thinking) from the array. Use this line of code in the allplugin access.php:unset($vars['options'][-2]);Put that with the rest of the unset’s in the plugin.Full file path will be mod/allpublic/views/default/inputAs another note, if -2 isn’t right for you just echo out the $key value from the array like..{$option . $key} then you will get the name of the option and the key/id.