Wednesday 27 November 2013

My client isn't accepting my username and password for SMTP emails

We suggest making some adjustments in your mail client's settings so you aren't always prompted to enter your username and password. Please check the following settings in your mail client:
  • Make sure that you've entered your full email address (e.g. username@gmail.com)
  • Re-enter your password to ensure that it's correct. Keep in mind that passwords are case-sensitive.
  • Make sure your mail client isn't set to check for new mail too often. If your mail client checks for new messages more than once every 10 minutes, your client might repeatedly request your username and password.
Now, please follow the steps below to resolve the problem:
  1. Open your web browser and sign in to Gmail at http://mail.google.com/mail. If you see a word verification request, type the letters in the distorted picture and finish signing in.
  2. Close your browser and try accessing your messages in your email client again.
  3. If you're still having problems, visit http://www.google.com/accounts/DisplayUnlockCaptcha and sign in with your Gmail username and password. If necessary, enter the letters in the distorted picture.
  4. Click Continue.
  5. Restart your mail client and try accessing messages in your email client again.

Remove Wordpress Logo in Admin Bar

Add following code in your themes function.php
add_action( 'admin_bar_menu', 'remove_wp_logo', 999 );

function remove_wp_logo( $wp_admin_bar ) {
	$wp_admin_bar->remove_node( 'wp-logo' );
}

Add Custom Logo in Wordpress

1)Add following function in your themes function.php
2)upload customlogo.png image in your themes image folder
function custom_login_logo() {
	echo '';
}
add_action('login_head', 'custom_login_logo');

Hide / Remove Menu and SubMenu in wordpress Admin Panel

Remove a top level admin menu.
remove_menu_page( $menu_slug )
Here menu_slug has menu's slugname or page


Remove an admin submenu.
remove_submenu_page( $menu_slug, $submenu_slug )

Use following php code for theme's function.php
Ex:- for slug name
add_action( 'admin_menu', 'adjust_the_wp_menu', 999 );
function adjust_the_wp_menu() {
  $page =remove_menu_page( 'plugins' );
  $page = remove_submenu_page( 'themes', 'widgets' ); // widget page under themes
}
Ex:- for filename/page
add_action( 'admin_menu', 'adjust_the_wp_menu', 999 );
function adjust_the_wp_menu() {
  $page =remove_menu_page( 'plugins.php' );  
  $page = remove_submenu_page( 'themes.php', 'widgets' ); // widget page under themes
}

Wednesday 30 October 2013

Moodle course list in every where for custom php

You can copy & paste following php code for every where
 
$con = mysql_connect("hostname","username","password");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("moodledatabase", $con) or die(mysql_error());
$query_course_list = "SELECT c.id AS courseid, c.fullname FROM mdl_course c where category != 0";
$courses = mysql_query($query_course_list);
$output = '';
echo $output;

Monday 30 September 2013

Add Pagination for Blog/Post list at custom Page

Download the following plugin : http://wordpress.org/plugins/wp-pagenavi/
Add Following code in your current shortcode function :

function sc_newsletter_list($atts) {
     extract(shortcode_atts(array('limit' => '10', 'number' => '3','fullpage' => 'no', 'category' => '', 'title' => '',), $atts)); 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $number = $limit;
    $wp_query = new WP_Query(
    array(
    'post_type' => array('Newsletter'),
    'paged' => $paged,
    'posts_per_page' => $number,
    ));

    $output = '';
    $counter = 0;
    if ( $wp_query->have_posts() ):      
    while( $wp_query->have_posts() ) : $wp_query->the_post();
   ...............................
   .................................
// Pagination : [wp-pagenavi] plugin used
    if(function_exists('wp_pagenavi')) { 
      $output .= ''; 
            }

Tuesday 17 September 2013

Friday 6 September 2013

Customize the wordpress shortcode : recent_blog

Find the php file for shortcode in customtheme :

File Location:

webroot\wp-content\themes\themename\backend\shortcode.php

Find the below code :

 function recent_blog($atts) {
     extract(shortcode_atts(array('limit' => '3', 'number' => '3','fullpage' => 'no' ), $atts));  

    $number = $limit;
 $categoryid = $category; // added category slug here...
    $wp_query = new WP_Query(
    array(
    'post_type' => array('post'),
    'showposts' => $number,
    ));
....................
 add_shortcode('recent_blog', 'recent_blog');
add category , category_name - category slug name to filter the post by category
function recent_blog($atts) {
     extract(shortcode_atts(array('limit' => '3', 'number' => '3','fullpage' => 'no', 'category'=>'' ), $atts));  //added slug category  here......'category'=>'' 

    $number = $limit;
 $categoryslug = $category; // added category slug here...
    $wp_query = new WP_Query(
    array(
    'post_type' => array('post'),
    'showposts' => $number,
 'category_name' => $categoryslug , // added category slug here...
    ));
.............
 add_shortcode('recent_blog', 'recent_blog');
Use following shortcode on page/post in content area
[recent_blog limit="5" fullpage="yes" category="slugname"]

List category posts in Wordpress

List Category Posts allows you to list posts from a category into a post/page using the [catlist] shortcode. When you're editing a page or post, directly insert the shortcode in your text and the posts will be listed there. The basic usage would be something like this:
[catlist id=1]
[catlist name="news"]
The shortcode accepts a category name or id, the order in which you want the posts to display, and the number of posts to display. You can also display the post author, date, excerpt, custom field values, even the content! The [catlist] shortcode can be used as many times as needed with different arguments on each post/page. You can add a lot more parameters according to what and how you want to show your post's list:
[catlist id=1 numberposts=10]
Please read the instructions to learn what parameters are available and how to use them.
Customization: The different elements to display con be styled with CSS. you can define an HTML tag to wrap the element with, and a CSS class for this tag. Check Other Notes for usage.
Great to use WordPress as a CMS, and create pages with several categories posts.
Widget: It includes a widget which works pretty much the same as the plugin. Just add as many widgets as you want, and select all the available options from the Appearence > Widgets page.
Please, read the information on Other Notes and Changelog to be aware of new functionality, and improvements to the plugin.
Support the plugin
If you've found the plugin useful, consider making a donation via PayPal or visit my Amazon Wishlist for books or comic books :).
Development
I've moved the development to GitHub. Fork it, code, make a pull request, suggest improvements, etc. over there. I dream of the day all of the WordPress plugins will be hosted on Github :)

Thursday 5 September 2013

How to use WordPress Shortcode

 WordPress Shortcode Usage
Example 2 is the simplest version of WordPress Shortcode to execute.
Copy and Paste this onto your WordPress Theme’s functions.php file:
function donatebutton() {
    return '<a href="/donate/" class="donate-button">Donate!</a>';
}
add_shortcode('donate', 'donatebutton');
Use this shortcode in your WordPress post/page’s content:
[donate]
The HTML output will be this:
<a href="/donate/" class="donate-button">Donate!</a>
Using a simple “[foo-bar]” shortcode can output an entire content block across multiple pages, making it easy to update.
More of a blockquote style usage of WordPress Shortcode, like in the first example, requires a little extra, but is still extremely easy to execute.
Copy and Paste this onto your WordPress Theme’s functions.php file:
function postrecap($atts, $content = null) {
 return '<span class="recap">'.$content.'</span>';
}
add_shortcode("recap", "postrecap");
Use this in your WordPress post/page’s content:
[recap]A bit of text content[/recap]
The HTML output will be this:
<span class="recap">A bit of text content</span>
This exact code snippet was used on one of our client’s WordPress sites, AgendaWise, to great effect and made the blog a lot easier to maintain for the site owner. This allows the client to use a pre-built-custom blockquote, and cite someone with unique and consistant styling thanks to WordPress shortcode. It automatically detects if there’s a name and/or url being referenced. If there’s a name and a url, the WordPress Shortcode adds a styled link at the end of the quote, and if there’s a name but no url, it just adds a styled name at the bottom of the blockquote.
Use any of these in your WordPress post/page’s content:
[blockquote]Test content.[/blockquote]
 
[blockquote cite="John Doe"]Test content.[/blockquote]
 
[blockquote cite="John Doe" url="http://example.com/"]Test Content[/blockquote]
Copy and Paste this onto your WordPress Theme’s functions.php file:
function bc($atts, $content = null) {
 extract(shortcode_atts(array(
  "cite" => 'Unknown',
  "url" => 'url'
 ), $atts));
 if ( $cite == 'Unknown' ) {
  return '<blockquote class="bc-full"><p>'.$content.'</p></blockquote>';
 } elseif ( $url == 'url' ) {
  return '<blockquote class="bc-full"><p>'.$content.'</p><p class="bc-cite">- '.$cite.'</p></blockquote>';
 } else {
  return '<blockquote class="bc-full"><p>'.$content.'</p><p class="bc-cite">- <a href="'.$url.'">'.$cite.'</a></p></blockquote>';
 }
}
add_shortcode("blockquote", "bc");
The HTML output will any of these, respectively:
<blockquote class="bc-full"><p>Test content.</p></blockquote>
 
<blockquote class="bc-full"><p>Test content.</p><p class="bc-cite">-John Doe</p></blockquote>
 
<blockquote class="bc-full"><p>Test content.</p><p class="bc-cite">- <a href="http://example.com">John Doe</a></p></blockquote>
This technique could be very well combined with some of the concepts in example 2. Say, if you were to have a blog with multiple authors, you could use [twitter handle="brianpurkiss"] to output a custom styled Twitter follow button that plugs in the specified twitter handle. Again, the possibilites of WordPress shortcode are endless.

Wrap Up

WordPress’ Shortcode has vast amounts of untapped possibilities. It is extremely beneficial in allowing clients to add more complex content areas with no technical knowledge and great ease. WordPress shortcode can even be beneficial for those with lots of technical knowledge to better manage duplicate content areas.
Make website management easier – use WordPress Shortcode.

What is WordPress Shortcode?

WordPress Shortcode :
        It’s a common phenomenon to see a designer’s website in a design class several levels above that of it’s clients web design work. While there are many factors that can play into this occurrence, one in particular is very common. Designers/developers know more about code, whereas many clients don’t try at all to learn any. That is a huge component in making it difficult for those who build WordPress websites to make top notch sites for clients. There are certain site components that require additional code custom to each usage in order to function. Thus, for many jobs, additional code means more advanced components are off limits for client work, limiting the site’s possibilities.
However, it is possible to use WordPress Shortcode to output complex snippets in a simple manner so that people with no HTML/CSS background can output any pre-determined code snippet.
WordPress Shortcode has a wide variety of applications and can be extremely beneficial for website managers of all ranges of technical backgrounds.

What is WordPress Shortcode?

Example 1
[container]Lorem ipsum dolar sit amet[/container]
With that shortcode, you can output whatever you want on your WordPress website. You can build anything – any amont of HTML, CSS, Javascript, PHP, or anything else you may want. The possibilities are endless.
Example 2
The simplest, yet most overlooked, example of using WordPress Shortcode can be extremely simple or extremely complex.
This:
[donate]
Can output this:
<a href="/donate/" class="donate-button">Donate!</a>
This simple technique utilizing WordPress shortcode can output pre-built complex, or simple, code snippets. This one is great for having pre-built content areas that are used on multiple pages and/or articles. It’s less code to maintain and allows you to update all of the pages by editing a single code snippet. Very similar to WordPress’ file structure, but using WordPress shortcode gives you more versatility and applications.
Example 3
The most common example of WordPress’ Shortcode can be derived from BBCode.
This:
[img title="Example Logo"]http://example.com/images/logo.png[/img]
Can output this:
<img src="http://example.com/images/logo.png" alt="Example Logo" />
BBCode, essentially a different form of WordPress Shortcode common on forums, uses the above snippet to output an image. While this isn’t all that different than the  tag, it is simpler enough that, as a general rule, website managers who aren’t very technically savvy have an easier time grasping shortcode than actual html.
Even though it’s an extremely simple concept, the possibilities are endless and WordPress shortcode can open up a whole new world for your client work.

Create custom short code in Wordpress

Wordpress Page content : add short code
[column width="full" place="none" ][recentwork] [/column]
Add function for shortcode creation : File location : webroot\wp-content\themes\currenttheme\functions.php
add_shortcode('recentwork','showrecentworks');

function showrecentworks(){ 
return $content='



 

Recent Work

Digital Video Camera Lens
Digital World
Aenean aliquet pulvinar dui, nec tempus lectus posuere quis. Proin dignissim
'; }

Thursday 22 August 2013

Social media Link for Webpage

First, choose a Share Widget style:

  • MULTI POST
    Sharing takes place inside the widget, without taking users away from your site. Preferences are saved so your users can share to more than one service at the same time.
  • DIRECT POST
    Your users will be redirected to Facebook, Twitter, etc when clicking on the corresponding buttons. The widget is opened when users click on "Email" and "ShareThis".
By downloading the code, you agree electronically to the publisher terms of useprivacy policy, and are at least 13 years old.
  • Copy the span tags and place them where you want your buttons to appear in the code.
  • (This style is the most adaptable to any type of page design. We strongly recommend that you place them towards top of the page.)
    <span class='st_sharethis' displayText='ShareThis'></span>
    <span class='st_facebook' displayText='Facebook'></span>
    <span class='st_twitter' displayText='Tweet'></span>
    <span class='st_linkedin' displayText='LinkedIn'></span>
    <span class='st_pinterest' displayText='Pinterest'></span>
    <span class='st_email' displayText='Email'></span>
  • Copy the script tags and place them inside and at the end of your "head" tag.
  • <script type="text/javascript">var switchTo5x=false;</script>
    <script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
    <script type="text/javascript">stLight.options({publisher: "0441c7af-58fc-4c7a-959d-6538cf3541df", doNotHash: false, doNotCopy: false, hashAddressBar: true});</script>
  • Check out the live Publisher Analytics Demo.
  • Want to see what the mad scientists are cookin'? Follow us on Twitter and Like us on Facebook!

Tuesday 6 August 2013

File upload size change in Moodle

Windows XP and Server 2003 based Instructions

These instructions presume that you have downloaded the latest PHP 5.3.x Windows zip package and extracted it to C:\PHP. If you have installed PHP to another location then change all references to "C:\PHP" to the location you installed PHP too.
  • Open C:\PHP
  • Right Click the php.ini file in this folder and choose "Open with..." selecting your editor of choice.
  • Press Ctrl + F and type "post_max_size" (click Find...", where needed)
  • Change the value to the number of Mb you want your site to accept as uploads
  • Press Ctrl + F and type "upload_max_filesize" (click Find...", where needed)
  • Change the value to the number of Mb you want your site to accept as uploads
  • Press Ctrl + F and type "max_execution_time" (click Find...", where needed)
  • Change the value to 600
  • Press Ctrl and S or the save button.
  • Exit your editor.
  • Restart your webserver to reload PHP with the edited changes.
    • For IIS
    • Open the Start Menu on your server and select "Run"
    • Type "iisreset /RESTART"
    • For Apache 2 and Windows XP
    • Go to Start > All Programs > Apache > Restart
    • For Apache 2 and Windows Server
    • The following command will work as long as you have installed Apache 2 as a service on your Windows Server
    • Open your Start Menu on your server and select "Run"
    • Type "httpd -k restart"
Your new file size limit should now appear in Administration > Security > Site Policies > Maximum uploaded file size
NOTE: These instructions also cover the Xampp Windows installer. Just replace C:\PHP with C:\Moodle\server\php and to restart your Moodle with a normal stop-start.

Thursday 1 August 2013

Moodle Course list in Wordpress

This plugin will allow you to display a list of Moodle courses for a specific user of Moodle.

http://wordpress.org/plugins/moodle-course-list-widget/

This section describes how to install the plugin and get it working.
Install: 1. Upload moodle-courselist-widget.php to the /wp-content/plugins/ directory 1. Activate the plugin through the 'Plugins' menu in WordPress 1. Place the new Moodle Courselist widget into your theme's sidebar.
IMPORTANT: You will need to edit the code of this plugin in 3 places in order for this to work properly. This will most likely involve a web administrator as you will need database connection settings for Moodle. This plugin is designed for use by educational institutions. Changes are clearly commented in the code with //CHANGE.
Here are the code changes you must edit:
Line 35 (Your Moodle Site URL)- action="http://yourmoodlesiteurl.com/login/index.php
Line 44 (Moodle Database Connection)- mysql_connect("localhost","MySQLusername","MYSQLpassword");
Line 76 (Your Moodle Site URL)- "http://yourmoodlesiteurl.com/course/view.php?id='.$course->courseid.'"



User Authentication Wordpress to Moodle

Wordpress to Moodle pass through authentication plugin (wordpress end)

wp2moodle--wordpress-

Wordpress to Moodle pass through authentication plugin (wordpress end). Takes the user that is logged onto wordpress and passes their details over to Moodle, enrols them and authenticates.
Note, you must to rename the zip to be just 'wp2moodle.zip' before you upload the plugin to wordpress.

Activating and configuring the plugin

  1. Upload this to your wordpress (should end up being called /wp-content/plugins/wp2moodle/)
  2. Activate the plugin
  3. Click wp2moodle on the wordpress menu
  4. Set your moodle url (e.g. http://your-site.com/moodle/)
  5. Set the shared secret. This is a salt that is used to encrypt data that is sent to Moodle. Using a guid (http://newguid.com) is a good idea. It must match the shared secret that you use on the Moodle plugin. (https://github.com/frumbert/wp2moodle-moodle)
  6. Other instructions are available on the settings page.

How to use the plugin

  1. Edit a post or a page
  2. Use the moodle button on the editor to insert shortcodes around the text you want linked
  3. When authenticated as subscriber, contributor, etc, click on the link.
Note: If the user is not yet authenticated, no hyperlink is rendered. The link does not function for Wordpress admins.

Shortcode example

[wp2moodle class='my-class' cohort='course1' target='_blank']Open my course[/wpmoodle]
class: the css classname to apply to the link (default: wp2moodle) target: the hyperlink target name to apply to the link (defaut: _self) cohort: the name of the moodle cohort in which to enrol the user
Licence:

GPL2, as per Moodle.
                                                                                                                                                  
Moodle end of a Wordpress to Moodle Single Sign On auth plugin

wp2moodle--moodle

This is the Moodle-end of a two-part plugin that allows users to authenticate within wordpress and open a Moodle site. To get the Wordpress-end plugin, check this git: https://github.com/frumbert/wp2moodle--wordpress-
Data is encrypted at the Wordpress end and handed over a standard http GET request. Only the minimum required information is sent in order to create a Moodle user record. The user is automatically created if not present at the Moodle end, and then authenticated, and (optionally) enrolled in a Cohort.

How to install this plugin

Note, this plugin must exist in a folder named "wp2moodle" - rename the zip file or folder before you upload it.
  1. Upload/extract this to your moodle/auth folder (should be called "/~/auth/wp2moodle/", where ~ is your Moodle root)
  2. Activate the plugin in the administration / authentication section
  3. Click settings and enter the same shared secret that you enter for the wp2moodle settings in Wordpress
  4. The logoff url will perform a Moodle logout, then redirect to this url. Typically this is your wordpress homepage.
  5. The link timeout is the number of minutes before the incoming link is thought to be invalid (to allow for variances in server times).
  6. Disable any other authentication methods as required. You can still use as many as you like.

Usage:

You can not use this plugin directly; it is launched by wp2moodle from within Wordpress.
Licence:

GPL2, as per Moodle.

Wednesday 31 July 2013

WordPress Can Power Your Educational Portal

Forget Moodle: 

No doubt Moodle is the standard open-source solution for building educational communities and portals. It’s been around for years, it has huge community, regular updates and contributions. It’s really good.

But forget about it. Use WordPress.

I’m not writing this to bash Moodle. I appreciate the efforts that the community puts in it. Contributing to Moodle is in my plans as well. However, 90% of people who use it can achieve nearly the same functionality with WordPress and several plugins. Advantages?
  • WordPress is easier to install, update, and use
  • It has even larger community and more contemporary interface
  • More free plugins
  • Easier to host (less demanding in resources)
  • A lot more premium plugins and themes
  • A lot more developers available for customization
Need I say anything else? Just look at the downloads – Moodle is more than 30MB zipped! Way too much code and stuff, maybe good, but you don’t need most. WordPress is just 4.3 MB at the moment.
The most important Moodle functions can be replaced with similar, sometimes better, free and premium WordPress plugins and/or themes. On top of that you can add some more of WordPress awesomness – SEO plugins, caching plugins, tons of little widgets and so on. And, you can still host a regular blog along with the educational suite if you wish.
Here is how to replicate the most important Moodle functions in WordPress:

Courses

The core of Moodle is creating courses, assigning user groups to them, course reports, assignments. There are two great WordPress plugins that will handle this in one or another way:
TeachPress is properly maintained and up-to date plugin for creating courses with enrollments and publication management.  It has only one version that’s entirely free. Scroll down their site to see a bunch of screenshots and get an idea what you can do with it.
On the other hand if you want to run education suite that’s more of a community thing, you may want to first install BuddyPress. This thing is huge: it turns your WordPress site into a social network and then you can go further and extend it with more plugins and themes. (Right, this means to extend a plugin with plugins).  So once you extend WordPress with BuddyPress you can add educational capabilities with the great BuddyPress ScholarPress Courseware. It’s also fully open-source and free, well supported and frequently updated plugin. Allows managing courses, lectures, basic quizzes, assignments, and schedule calendars.
Now there is also the completely free Namaste! LMS which is also built by us. We have huge plans on it, so it’s worth taking a look!
As these all-in-one plugins sometimes don’t have exactly what you need and may be clumsy in some areas, there are more niche-ones that can handle individual tasks better.

Exams

This is the area where Watu comes in place and sometimes its premium version. Watu lets you create exams with single-choice, multiple-choices, or open-end questions. Assign grades, points, display results instantly. In the premium version you can also keep stats of the taken exams, limit by user group and categories, email user results, set times, assign certificates and so on.
WatuPRO Screenshot
You may also want to check WP Survey And Quiz Tool which is heavier but has some other features that may sound compelling to you. It seems to be more appropriate for running surveys rather than exams.

Assignments

One great plugin for handling assignments is Cleverness To-Do List. Tasks can be assigned to different users along with deadlines, various permissions etc. Regular assignments for whole groups can be handled by adding a post to a selected group and connecting it with an exam.
Of course don’t forget that BuddyPress ScholarPress Courseware also has assignments module.

Chat

Chat plugins are abundant. You can use a simple self-hosted and free solution likeAjaxChat or get rid off the hosting hassles  and subscribe for something like LiveChat orChatRoll.
Ajax Chat Scheenshot
AjaxChat
If you only need a pretty simple thing then install a shoutbox like Schreikasten orBuddypress-Ajax-Chat and you are all set.

Polls

Polls are useful not just for educational sites but also in marketing and sales, or any other site that needs to get user feedback. But for educational suite perhaps the most useful will be WP-Polls (free).
Now if you want to relate poll answers to users and extract more detailed stats you may prefer to use a plugin for creating exams or surveys.

Forums

There is no shortage of solutions here as well. While BBPress is the standard choice, you may wish to check ForumPress too. A PRO version is expected soon.
You may notice I sometimes favor paid versions. This is not just to encourage paying for quality stuff and helping WordPress developers to do their great job. If you are running a site that makes money, spending few bucks on a premium plugin may help you stay over the competition by having something they don’t have. Premium plugins usually come with high-class support too and are more user-friendly (well, not always, but most are).

Glossary

Glossary is another thing you would want to do even if your site is not educational portal. But speaking about education sites, My Instant Glossary is one of the best choices. With free and premium version it can handle different glossary terms, tags, auto-link categories etc. An entirely free alternative is WordGallery Glossary which is one of the few relatively up-to-date ones. (That’s why I told you premium/paid is often better).

Resources

Moodle has a Resource module which can display different media types along with a lesson or course. WordPress itself can handle resource listings in many ways – the simplest is just to use the rich text editor in a post or page and link to various files or media. Because of this, there aren’t any notable plugins for handling on-page resources. If you plan to list external resources you may want to check some directory plugins. In most cases the WordPress is good enough to handle this functionality by its core.

Survey

Although close to exams and quizzes, surveys have slightly different purpose. So the best plugin for adding surveys is probably WP Survey And Quiz Tool. A simpler solution is again Watu (besides its primary purpose is exams) and WordPress Simple Survey. The latter has extended version for $50. Unfortunately the authors don’t at all make it clear what else is available in that extended version.

Wiki

Wikis can be very useful in learning communities as your members can save you a tremendous amount of work. (I guess I’d need to create Wiki on this blog, so members can write about wikis. How meta!).
An excellent premium wiki plugin is available from WPMUdev. Their plugins cost $39 each – but the better alternative is to be a paid member. Once a member, you can download all of the 140+ premium plugins.
A decent simple alternative is eSimple Wiki from the official WordPress repository. I guess this plugin may be abandoned soon because it hasn’t been updated for nearly two years.

Workshop

There are plenty of ways to handle workshops and events. If you need a thing with lots of features then The Events Calendar by tri.be is going to be your choice. They also have a PRO version priced from $50 to $250. There are widgets, registrations for workshops, Google maps integration, and more.
A simpler solution may be my Eventy which is really easy to set up and use, and the PRO is only $29.
Eventy Screenshot
Eventy
If your workshops involve webinars you may need to use some webinar software too. Theonly decent plugin I found is quite pricey so you may prefer to use some hosted webinars solution outside of WordPress.
Yes, Moodle fans, some of these features are more complicated and rich in Moodle. But most of us don’t need that. WordPress works in 90% or so of the cases and most webmasters are more comfortable with it.
As for Moodle, it’s a great stuff if you really need what it offers and have the patience to learn working with it.