Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Events
Videos
Audiobooks
Packt Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds

How-To Tutorials

7018 Articles
article-image-content-management-modules-php-nuke
Packt
24 Mar 2010
10 min read
Save for later

Content Management Modules In PHP-Nuke

Packt
24 Mar 2010
10 min read
Each of these modules handles a different type of content, as is hinted at by their name, and each offers a different amount of functionality for visitors to interact with the content. We will see all of this, and also see how each module organizes the content it manages. Content The Content module, as the name suggests, simply handles content. The Content module is handy for adding general pieces of information to your site, which are not particularly time-sensitive or intended to generate discussion. The 'content' of the Content module is called a content page, and content pages may be organized into categories. Note that these categories have nothing to do with the categories created for news stories. In fact, several of the modules in this article will organize their content into 'categories', and there will be no relation between the categories of one module and the categories of another module. A content page consists of some main page text, a title, a subtitle, a header and footer, and another field, called the signature. The display of a single content page may be split easily across several web pages, with PHP-Nuke providing Next and Previous page links automatically. Content pages are ideal for holding general pieces of HTML text that need to be organized into groups or categories. Using the Content module to handle such information means that you do not have to create a new module just to display things like site policy or privacy policy documents on your site. Content pages are not searched by the Search module. There are no comment features or ratings available for Content content, and only the administrator may add pages; there is no place for user-submitted content here. In versions of PHP-Nuke prior to 7.5, there was a module called Sections, which was almost identical in functionality to Content, with the addition of an image for the categories. From PHP-Nuke 7.5, the Sections module is no longer shipped with the standard installation of PHP-Nuke, and we will not consider it any further. Like the other modules, the Content module is not activated by default, if you didn't activate the Content module before, do so now. Time For Action—Creating a Content Category We are going to use the Content module to add site 'policy' documents, in this case a site Privacy Policy. Log in as administrator. To access the Content administration area, click on the Content link in the Administration block, or click on the Content icon in the Modules menu: In the Add a New Category panel, enter the text Site Documents into the Title field. Enter the following text into the Description field: Here you will find a collection of documents about the site. Click the Add button. When the page reloads, there isn't much evidence that your category has been entered, but if you scroll down the screen to the Edit Category panel, you will find the category in the Category drop-down box: What Just Happened? We just added a content category. They are added from the Content Manager area of the administration area. The disconcerting thing is that it's difficult to tell if your category has been added successfully; there is no list of the content categories displayed in the Content Manager area. You will have to look in the drop-down box in the Edit Category panel to confirm that your category has indeed been added. Now we have a category, let's add some pages. Time For Action—Adding a Content Page In the Content Manager area of the administration area, scroll down to find the Add a New Page panel. Enter the title of the page into the Title textbox. In our case, this page will be titled Privacy Policy. Select Site Documents from the Category drop-down box. Enter the Dinosaur Portal Privacy Policy into the Sub-Title field. Next comes the Header Text. Enter the following into that field:This policy applies to all web sites and email services provided by the Dinosaur Portal. By using these web sites you consent to the general terms and conditions of usage and to the terms of this privacy policy. The Page Text field contains the body of the page. We'll enter the following: <h2>Collection of your Personal Information</h2><p>We will ask you when we need information that personally identifies you (personal information) or allows us to contact you. Generally, we request this information when you are registering before ordering products from theDinosaurPortal.com, downloading or viewing limited-access content, entering a contest, ordering email newsletters. In each circumstance we try to limit the information we request to the minimum required to deliver the service to you. We also use various standard technologies such as cookies to track user activity on our sites.</p><!--pagebreak--><h2>Use of your Personal Information</h2><p>We use your personal information for the following purposes...</p> There are two fields remaining, Footer Text and Signature. We'll enter this for the Footer Text:If you require any further assistance, please contact contact@thedinosaurportal.com and this for the Signature:the DINOSAUR PORTAL – Just because you've never seen one, doesn't mean they've all died out... Click the Send button. When the page reloads, the details of our first page are visible in the Content Manager panel, confirming its creation: Now click on the Content link in the Modules block, or go straight to http://localhost/nuke/modules.php?name=Content. You will see the list of content categories: Click on the Site Documents link, and you will see the list of content pages in this category: Clicking on the Privacy Policy link will take us to our document: Click the Next Page link to see the rest of the document: What Just Happened? We just added a content page, and then viewed the page. We assigned the content page to the Site Documents category when we created the page. It is possible to create content pages that do not belong to any category. The current list of content pages is shown in a table in the Content Manager area; we saw this screenshot at the end of step 11. When you visit the front page of the Content module, the list of categories is displayed. Only the categories that have content pages associated with them are displayed. Also, if there are any content pages not associated with a category, their titles will be listed here. Clicking on a category takes you to a list of the content pages associated with that category. This list is ordered by the date on which the pages were entered; the content page created first is displayed at the top of the list and so on. For each content page, the text entered into its Title field is displayed in this list, along with the Sub-Title in brackets. Clicking on the title of a content page will take you to display of the page itself. The following diagram shows this navigation hierarchy: Note that there is no direct link to go back from the content page to its 'parent' category. You will have to use the Back button of your browser to do this. You can get back to the list of all categories by clicking the Content link in the Modules block, but you will still need to click again on the category to display the list of content pages it contains. Returning to our privacy content page, we see that our content page has been split into two pages. This is done by inserting the text into the Page Text field, which forces PHP-Nuke to break the page at that point. The contents of the Page Text field form the body of a content page, with the Title and Sub-Title always displayed at the top. The Next Page pager is automatically provided by PHP-Nuke, and with that you can navigate through the pages of the content page. On the first page, the Header Text is displayed before the Page Text starts, and on the final page, the Footer Text is displayed at the end of the Page Text, followed by the Signature text. A copyright notice, including the site name, follows the Signature, and then there is the date the page was created, followed by the number of times the page has been read. Since we were still logged in as an administrator, at each part of this journey there are panels allowing you to edit the details of either the category or the content pages. For example, there is a panel for altering the category on the page displaying that category's content pages, in addition to a 'content page editing' panel on each page of the content itself: Any of these links can be used to change the object in question. Of course, these links are visible only to an administrator. No visitor will be able to see these links or access their functionality. Deactivating a page makes it invisible to a visitor from the list of available content pages, and the page will not be displayed even if the visitor manages to enter the URL of the content page. The administrator will be able to see a list of deactivated pages on the front page of the Content module (http://localhost/nuke/modules.php?name=Content) or in the Content Manager area of the administration area. Currently, our Privacy Policy document is at the URL http://localhost/nuke/modules.php? name=Content&pa=showpage&pid=1. To view this page, the visitor need not go through the entire Content 'hierarchy' if they are provided with a direct link. We could, for example, add a link to the Privacy Policy in the footer of our page, from the Web Site Configuration menu. The link would point to the above URL, and the reader would be taken directly to our document. The pid value of the query string is the unique identifier for this piece of content in the same way as we saw the story ID when looking at stories. This value will not change with subsequent modifications of the content page, or even moving it to another category. The Content Block The Content block is part of the standard PHP-Nuke installation, but isn't loaded. You can load this block from Blocks area of the administration area by selecting Content from the Filename dropdown, and choosing a title for the block as usually done for file blocks. Once the block is activated, it will display a list of the titles of all active content pages, with links to view each content page in full. Note that the Content block will still display the list of titles present in the content pages even if the user does not have read access to the Content module. Managing Categories Categories can be edited or deleted through the Edit Category panel in the Content Manager area. Simply select a category from the drop-down box and click the Edit button to go to the Edit Category page. Here you can edit the title and description of the category, or delete the category. Note that deleting the category does not delete the content pages associated with that category. All pages in a deleted category are preserved, but no longer belong to any category (they belong to the None category!). Special Administrator You can create a special administrator with rights to only the Content module in the Edit Admins menu of the Administration Menu. Restricting Access Access to the Content module is done on a 'whole module' basis. The visitor either sees nothing or everything. You cannot configure individual categories or content pages to be viewed by certain user groups. Points and Prizes There are no activities in the Content module that contribute any points towards a user's point score.
Read more
  • 0
  • 1
  • 3939

article-image-drupal-6-performance-optimization-using-db-maintenance-and-boost-part-2
Packt
23 Mar 2010
5 min read
Save for later

Drupal 6 Performance Optimization Using DB Maintenance and Boost: Part 2

Packt
23 Mar 2010
5 min read
Testing your Boost configuration Now we're going to test out our Boost configuration and make sure everything is working with our initial basic settings and the .htaccess configuration that we're running. Log out of your website in your current browser or open up another web browser so that you can browse around your site as an anonymous user. The main thing we want to check on is that our static HTML type files (our Drupal pages or nodes) are being cached and stored in the cache directory we have specified in the module configuration. If we chose to use a GZIP compression, we will want to check to make sure the ZIP files are being generated and stored. Also, run your Status report and view your log entries to check to see if any errors related to the module configuration are being thrown. You should start noticing a performance boost on your site immediately, as you browse around your site. Start clicking around and opening different nodes on your site and admire the faster performance! You should notice it. If we check the cache directory on our site, we should notice that the Boost module has started writing HTML files to our cache directory. In the directory you should now see the following folders: /cache/normal/variantcube.com/fire/node Boost has automatically created a new folder called /node where it will store the cached HTML versions of the Drupal pages it loads. For example, if we look into our /node directory, we should see a bunch of HTML files that have been cached while we've browsed anonymously on our site. You can almost see this happen in real time if you browse to a page and then immediately refresh your remote server/ site window in your FTP client (while in the /node folder). I see the following files corresponding to their Drupal nodes: 201_.html202_.html203_.html206_.html208_.html These correspond to: node/201node/202node/203node/206node/208 Also, at the root of our /fire directory, we should see any non-node pages (for example, pages created using Drupal Views module). In our case, our main Photo gallery View page has been cached: photo_gallery.html. This page corresponds to our photo_gallery View page. You can immediately see the power and flexibility of this module by inspecting your cache directory. You should notice a performance increase on all of these cached pages because the pages that are loading are now your Boost-powered HTML pages. So, multiple clicking on one Drupal node should demonstrate how quickly your pages are now loading. The module has created another folder in your /fire/cache directory called perm. The /perm folder contains your CSS and JS files as they are cached. If you look in this folder, you'll see paths to the following folders: /cache/perm/variantcube.com/fire/files/css/cache/perm/variantcube.com/fire/files/js If you look in your CSS directory, you should see cached versions of your CSS files, and if you look in your /js directory, you should see a cached version of your JavaScript. Another method of checking the module is working correctly is to view source on your pages (by viewing source in your web browser) and see if the following code is being added to your HTML output: <!-- Page cached by Boost @ 2009-10-23 13:56:03, expires @ 2009-10-23 14:56:03 --> So the actual HTML source in the web browser will tell you that you are viewing a cached version of the page rather than a dynamically generated version of the page. It also tells you when this cached page version will expire—based on our configuration, basically one hour after it's been loaded depending on our Boost module settings. Everything appears to be working fine with our initial Boost installation and configuration. Sit back and behold the power of Boost! Boost and Poormanscron Checking our Status report will show us that we're running an incorrect version of Poormanscron. Boost is optimized to work with the latest dev or 2.0 branch of Poormanscron. So let's go ahead and install the latest version so that our cron runs will work correctly with Boost. Visit the Poormanscron project page and download the 6.x.-2.0-beta1 release and extract and upload it to our /sites/all/modules directory. Then run your Status report again to check to make sure the Boost warning has disappeared. You may need to run your update.php script, as this module update will make changes to your database schema. Run update.php and then refresh your Status report. In your Status report, you should now see the Boost row state: Boost Installed correctly, should be working if properly configured. Configuring Poormanscron The updated 2.x-beta1 version of Poormanscron is the precursor module to the eventual Drupal 7 core cron functionality. In Drupal 7, the functionality of the Poormanscron module will be part of the default core processes. For this reason the beta1 version does not give you a module configuration page. It will just run cron automatically, based on a setting on your Site information page. Go here to see that setting: Site configuration | Site information. Now you have an automatically run cron setting that you can select from. We'll use the default 1 hour cron run. This is a nice preview of some of the new built-in functionality of Drupal 7 core.
Read more
  • 0
  • 0
  • 1445

article-image-organizing-your-content-effectively-using-joomla-15
Packt
23 Mar 2010
8 min read
Save for later

Organizing your Content Effectively using Joomla 1.5

Packt
23 Mar 2010
8 min read
Building on the example site It's time to make room for growth. Your client has a big pile of information on ugly art that they want to present to the public. You are asked to design a site framework that makes it easy to add more content, while at the same time keeps it easy for visitors to quickly find their way through the site. Can you do that? You most certainly can! Joomla! allows you to build sites of all sorts and sizes, whether they consist of just a few pages or thousands of them. If you plan ahead and start with a sound basic structure, you'll be rewarded with a site that's easy to maintain and extend. In this article, we'll review the site you've just built and look at the different ways the content can be structured—and rearranged, if need be. Grouping content: A crash course in site organization To lay the groundwork for your site, you won't use Joomla!. The back of a napkin will do fine. Draw up a site map to lay out the primary content chunks and their relationships. View your site from a user's perspective. What do you think your visitors will primarily look for, and how can you help them find things fast and easily? Designing a site map To create a site map, first collect all information you plan on having on your website and organize it into a simple and logical format. As site maps come, this is a very basic one. For the most part, it's just one level deep. Introducing Ugly Paintings and Mission are basic web pages (articles). Activities is a section that allows the visitor to browse two other categories. Contact Us is a contact form page. This structure was good enough for a basic website, but it won't do if SRUP wants to expand their site. Time for action – create a future proof site map Let's make some room for growth. Imagine your client's planning to add an indefinite amount of new content, so there's a need for additional content containers. They have come up with the following list of subjects they want to add to their site: News items A few pages to introduce the founding members of SRUP Reviews on ugly art Facts on ugly paintings (history, little known facts, and so on) What's the best way to organize things? Let's figure out which content fits which type of container. Step 1: You'll probably want to create a separate News section. News should be a top level item, a part of the site's main menu.     Step 2: The information on the SRUP founders fits in a new section 'About SRUP'.   Step 3: Both Reviews and Facts can be categories in a new general section on 'Ugly Paintings'. The existing article 'Introducing Ugly Paintings' could be moved here (or dropped).     What just happened? You've laid a solid foundation for your site—on paper. Before you actually start using Joomla! to create sections and categories, create a structure for the content that you have in mind. Basically, no matter how big or small your website is, you'll organize it just like the example you've just seen. You'll work from top to bottom, from the primary level to the lower levels, defining content groups and their relations. Bear in mind, though, that there will certainly be more than one way to organize your information. Choose an organization that makes sense to you and your visitors, and try to keep things lean and clean. A complex structure will make it harder to maintain the content, and eventually—when building menus—it will make it harder to design clear and simple navigation paths for your visitors. Tips on choosing sections It can be useful to choose sections based on the main intentions people have when they come to the site. What are they here for? Is it to Browse Products or to Join a Workshop? Common choices for sections are: Products, Catalog, Company, Portfolio, About Us, Jobs, News, and Downloads. Try not to have more than five to seven sections. Once you have more than that, readers won't be able to hold them all in their heads at once when they have to choose which one to browse. Transferring your site map to Joomla! Let's have a closer look at our new site map and identify the Joomla! elements. This—and any—Joomla! site is likely to consist of five types of content. The following are the content types in our SRUP site map:   Obviously, the top level item will be the home page. The main content groups we can identify as sections and categories. This small site has four sections, three of which contain two categories. Each of the categories hold actual content: this is what will end up in Joomla! as articles. In this site map, there is one article that doesn't really belong in any category: the Mission Statement page. Every site will have one or two of those independent articles. In Joomla!, you can add these as uncategorized articles. Finally, there's one item that represents a very different type of content. In the site map above, a grey background indicates an item containing special functionality. In this case this is a contact form. Other examples are guest books, order forms, photo galleries. Basically, that's all there is to a Joomla! site. When you've got your site outlined like this, you won't meet any surprises while building it. You can transform any amount of content and functionality into a website, step by step.   How do you turn a site map into a website? If you've got your site blueprint laid out, you probably want to start building! Now, what should be the first step? What's the best, and fastest, way to get from that site map on the back of your napkin to a real-life Joomla! site? In this book, we'll work in this order: Organize: Create content containers.You've seen that much of the site map we just created consists of content containers: sections and categories. In this article, we'll focus on these containers. We'll create all necessary containers for our example site. Add content: Fill the containers with articles.Next, we'll add articles to the sections and categories. Articles are the "classic content" that most web pages are made of. We should also check for articles that do not belong in any category. Instead of assigning them to a section and a category, we'll add them as Uncategorized content.. Put your contents on display: Create the home page and content overview pages.Next, you'll want to guide and invite visitors. You can achieve this using two special types of pages in the site map, the home page and Joomla!'s section/category overview pages ("secondary home pages"). Make everything findable: Create menus.The top level items in your site map will probably end up as menu items on the site. To open up your site to the world you'll create and customize menus helping visitors to easily navigate your content. And what about the special content stuff? You'll notice that in the above list we've summed up all sorts of "classic content", such as articles, home pages, overview pages, and menus linking it all. We haven't yet mentioned one essential part of the site map, the special goodies. On a dynamic website you can have more than just plain old articles. You can add picture galleries, forms, product catalogues, site maps, and much, much more. It's important to identify those special pages from the beginning, but you'll add them later using Joomla!'s components and extensions. That's why we'll first concentrate on building a rock-solid foundation; later we'll add all of the desired extras. Let's start with step one now, and get our site organized! Creating content containers: Sections and categories To create a section, navigate to Content | Section Manager | New. To make a new category, you'll use the Category Manager instead. Just add a title for your new section or category and click on Save. You've created a perfectly workable section or category with the default settings (or parameters as Joomla! likes to call them). Time for action – create a new section and a category Your client was happy with the initial site structure you designed, but now their website is evolving, there's a need for more content containers. Let's add a news section first: Navigate to Content | Section Manager and click on New. In the Section: [New] screen, fill out the Title field. In this example, type News: Leave the other values unchanged; click on Save. You're taken to the Section Manager. The News section is now shown in the section list. Now, add a category to the new section. We'll call this category General News: Navigate to Content | Category Manager and click on New. In the Title field, type General News. In the Section field, select News. Click on Save. You're done!
Read more
  • 0
  • 0
  • 4610

article-image-installation-drupal-and-ubercart-2x
Packt
23 Mar 2010
4 min read
Save for later

Installation of Drupal and Ubercart 2.x

Packt
23 Mar 2010
4 min read
You don't have to be an expert programmer or a system administrator in order to complete the following process. We'll first give you a brief explanation of the underlying technologies, and then we'll continue with a step-by-step guide. At the end of this article, you'll have the online store installed on your local or remote machine and you'll be ready to make all the required customizations to the frontend and the backend, depending on your needs. Minimum requirements for Ubercart installation In order to successfully install and use your online store, your system must meet the following requirements: Operating system: Drupal works fine in almost every operating system. Actually, you can transfer your Drupal installation from one operating system to another within minutes and no customization is required at all. All you have to do is to move the files and the database without altering any configuration files. For example, you can install Drupal on your local Windows or Mac computer, do all the customizations there, and then upload it to a Linux server to go live. Web server: The web server is the software that accepts HTTP requests from browsers and delivers web pages to the users of our site. The most popular web server is Apache and we'll use it for our installation. It's secure, extensible, fast, and easy to customize. If you're not an expert in another web server, there is no reason to think of any other solution, because most of the available information and support is about Apache. Database: The purpose of the database is to store, organize, manage, and retrieve all the data of our website in a structured way. When referring to data, we mean not only the content that you put in your pages, but also every piece of information that Drupal uses for all its functions. In this book, we're using MySQL as a database. Today, it's the #1 open source database, and it's used in millions of websites and applications, from small personal web pages to enterprise systems with millions of users.The MySQL database of a basic installation contains about 50 tables and every new installed module creates one or more new tables. If you check your database after the installation of Ubercart, you'll find that there are 100 tables in your database. These tables contain data such as pages, products, images, categories, orders, payments, caching information for your pages, theming information, comments from your visitors, menus, user information, and so on. PHP: PHP is a scripting language, ideal for web development. It began as a small personal project, but soon became a very popular scripting language. Drupal is written in PHP, so it's absolutely necessary and there is no alternative to it.Some PHP extensions are needed for our installation. We'll mention them briefly here, so you can consult your hosting provider or examine your local system to check that everything is fine. The easiest way to check your PHP parameters is to use phpinfo. It's a function that returns information about the PHP environment on your server. All you have to do is to create a blank file named phpinfo.php in your server and insert the following code using a text editor: <?php phpinfo (); ?> This is a small PHP script that runs the phpinfo function and displays the results on your screen. If you browse to phpinfo.php, you'll see a page with your PHP configuration. The basic PHP requirements are: PHP memory requirements: 1 6 MBs are enough for basic sites; however, 64 MBs are recommended for more complex installations. GD2 library: GD2 is an image manipulation library for PHP. Ubercart needs this library, so if we want to put images to our products, it has to be installed. Register Globals: This is actually a depreciated PHP feature, but some hosting providers with old systems still use it. It's a security risk, so it has to be disabled for Drupal to install. Safe mode: Drupal 6 doesn't support PHP's safe mode, because it causes problems to file uploads, so it also has to be turned off.
Read more
  • 0
  • 0
  • 2086

article-image-recording-interview-skype-using-audacity-13
Packt
23 Mar 2010
4 min read
Save for later

Recording an Interview with Skype using Audacity 1.3

Packt
23 Mar 2010
4 min read
In a previous article we described everything that you need to know about recording voice tracks. In this article by Bethany Hiitola, author of Getting started with Audacity 1.3, we will learn all the details of using third-party internet telephony software such as Skype to record telephone interviews. We will also cover how to set up a timed recording. Recording an interview with Skype If you are interested in doing more than solo podcasts with Audacity, you can always try creating interview podcasts. You can record these live in your office with your computer's internal microphone, or with additional microphones. However, you can't always perform an interview from the comfort of your office due to conflicting schedules and the location of your interviewee. Hence, let's learn how to record an interview using your phone and your computer. First you'll need to install another software that allows you to make phone calls using your computer. The program we are going to use for this example is Skype. However, you could use other software that does the same thing for your Internet telephony set-up. Download and install Skype Skype is software that allows us to make voice calls over the Internet, particularly to other users of Skype. Some numbers (such as toll-free numbers) are free of charge, while calls to landlines and mobile phones may require a small fee. For details on pricing for Skype credits for landline and cell calls go to: http://www.skype.com/. Let's briefy discuss how to download and install Skype. First, go to http://www.skype.com/ and download the appropriate version of the software for your computer. Once the installation package has been downloaded to your computer, double-click on it to begin the installation. For Mac computers, a .DMG file is downloaded. All you need to do is uncompress that file and drag-and-drop the Skype package to the Application folder. For any Windows device, an .exe file is downloaded. Double-click on that file to begin the installation. For Linux, there are multiple distributions available. If you aren't already prompted to do so, start the Skype application and follow the on-screen instructions to sign up for a new Skype account. Once you have registered and signed in, the main Skype screen is displayed, which should look similar to the next screenshot: Set up Skype for your telephone interview For our project, we've been using the computer's internal microphone, so there shouldn't be any additional set up in either Skype or Audacity. However, to be sure you may want to check the recording input devices in Audacity to make sure that you can record both sides of the interview. To do this, use the following steps: In the Audacity window, go to the main menu, and then select Audacity and then Preferences. When using a computer running the Microsoft Windows or Linux operating systems, you can find these preferences from the main menu. Select File and then Preferences. In the Audacity Preferences window, select Devices. Check the Device settings under Recording. Particularly if you are using multiple inputs, it may be best to select Stereo Mixer or similar input. If there are many devices listed with the Recording | Device drop-down menu, perform a few interview tests with a friend on Skype prior to the recording session, to determine which of the connected devices will actually be doing the recording. You might also want to turn off all notifcations in Skype. These are all of the alert sounds for events such as contacts logging in and out, incoming call alerts, and so on. To do this, follow the steps shown below: Open Skype and log in. From the main menu, select Skype and then Preferences. Select the Notifcations tab. Be sure to uncheck the Play Sound checkbox. This will make sure that all sounds are suspended and won't interrupt your recording session.
Read more
  • 0
  • 0
  • 7897

article-image-creating-voice-track-audacity-13
Packt
23 Mar 2010
2 min read
Save for later

Creating a Voice Track with Audacity 1.3

Packt
23 Mar 2010
2 min read
Recording voice tracks With your material—script, story, or notes—you're ready to go, right? We shall start with a standard manual recording session. The simple voice track This is the simplest recording session. When you're ready, carry out the steps below: Open any Audacity project that you created previously (if it isn't already open) on your computer. Take a deep breath, and then click on the Record button, as seen in the next screenshot, and start speaking aloud your script. Immediately, you'll see the project view portion of your Audacity window change. A voice track will appear, showing your recording, live! The left (L) and right (R) channels show the volume of your voice (shown in the bars in the upper-right-hand of the previous screenshot). The digital interpretation of your voice is shown in the audio track portion of the project view (the blue "lines", or sound waves, that you see on your screen). Don't let this make you nervous; just focus on delivering a great voice track. Keep reading your script or sample piece as naturally as possible. When you're done, click on the Stop button. As soon as you click on the Stop button, you'll see that the recording stops, all activity in Audacity stops, and recording is over. Save your track to the project folder so that you'll be ready to start editing it. From the main menu, select File and then Save Project. Recording TipKeep any paper (your notes or script) in a place that won't interrupt the recording session when you lip the pages—preferably away from the microphone, or already spread out in front of you so that you can refer to them without touching them. We will learn how to "silence" these sounds later on, but having a clean initial recording always makes it a little easier. That's it, you've just completed your first recording session with Audacity! It really is as simple as that. But, as with the first time I used the software, I know there are likely things that you would like to change. So let's discuss some additional techniques for recording voice tracks.
Read more
  • 0
  • 0
  • 3755
Unlock access to the largest independent learning library in Tech for FREE!
Get unlimited access to 7500+ expert-authored eBooks and video courses covering every tech area you can think of.
Renews at €18.99/month. Cancel anytime
article-image-drupal-6-performance-optimization-using-db-maintenance-and-boost-part-1
Packt
23 Mar 2010
8 min read
Save for later

Drupal 6 Performance Optimization Using DB Maintenance and Boost: Part 1

Packt
23 Mar 2010
8 min read
These are not required modules, but rather are recommended modules to add to your Drupal performance arsenal. The way this article will work is that we'll outline the purpose of each module, install and configure it, and then use it on a specific topic, for example, within your site. This will give you some practice using contributed Drupal modules and also a look at the variety of performance based modules that are available from the Drupal project community. Using the DB Maintenance module The DB Maintenance module can be used to optimize your MySQL database tables. Depending on the type of database you are running, the module allows you to use a function called OPTIMIZE TABLE, which troubleshoots and then optimizes various errors in your MySQL tables. For MyISAM tables, the OPTIMIZE TABLE will repair your database tables if they have deleted rows. For BDB and InnoDB types of tables the function will rebuild the entire table. You can use this module in tandem with phpMyAdmin to determine if you do or do not need to optimize your database tables. The benefit of this module is that it allows you to keep your database optimized and defragmented, similar to keeping your computer hard drive optimized and defragmented so that it runs faster, and you can do all this from the Drupal administrative interface. The project page where you can download the module is here: http://drupal.org/project/db_maintenance. Download the module tar.gz and extract it to your desktop. Then, upload the files through FTP, or upload and extract using a cPanel utility if your host provides this. The module should go in your /sites/all/modules directory. Once you upload and extract the module folder, enable the module on your modules admin page and save your configuration. We'll use the version that's recommended for Drupal 6.x, which is 6.x-1.1. You can try out the beta version, but you should not run this beta version on a production level website unless you've tested it sufficiently in a sandbox environment. Once you save your module configuration, you'll notice that the module adds a link to its settings and configuration page under your main Site configuration section. Go to Site configuration | DB maintenance to access the configuration admin screen for the module. The DB maintenance screen will contain a checkbox at the top allowing you to log OPTIMIZE queries. If you check this box, your watchdog log entries module will log all table optimization entries and give you detailed information on the tables that were optimized. At the time of writing this article, the 1.1 version of the DB Maintenance module contained bugs that caused glitches with the method of adding this module's queries to the recent log entries or prevented this entirely. You may also experience these glitches. The module's developers are aware of the issues because they have been posted to the issue queue at http://drupal.org/ on the module project page. Let's go ahead and check this box. You can then select the frequency with which you would like to run the optimization. The choices are daily, Run during every cron, Hourly, Bi-Hourly, Daily, Bi-Daily, Weekly, Bi-Weekly, Monthly, and Bi-Monthly. You can also click on the Optimize now link to force the optimization to occur immediately without scheduling in advance. We'll click on this link for the purpose of this demo, but in future you may want to schedule the optimization. We'll then run a cron job through the Status report, or a module such as Poormanscron, and the tables will be optimized. Next, you can select the tables in your Drupal database that you want to optimize. A nice feature of this module is that it allows you to multi select database tables, only select a few tables, or just one table. This gives you the same flexibility and functionality as your phpMyAdmin tool, but you can run everything from within your Drupal interface. It's like a phpMyAdmin lite version right in your Drupal site. This is a preferred option for those developers who may not have immediate access to a client's phpMyAdmin or a host's database management utility. Choose a selection of tables that you want to optimize, or select all the tables. For this demo I'm going to optimize all of my content type tables, so I'll select all of those. I'll also optimize my block tables: blocksblocks_rolescontent_type_blogcontent_type_bookcontent_type_forumcontent_type_pagecontent_type_photocontent_type_pollcontent_type_storycontent_type_webform Once you've selected the tables you want to optimize, click on the Optimize now link. As with any module or optimization enhancement that you make to your Drupal site, it is good practice to run a full backup of your MySQL database before performing any maintenance, including optimizing tables using the DB Maintenance module. This way you will have a full backup of your data if you run into any issues that the module could potentially create. It's better to play it safe and perform the backup first. Once you click on the Optimize now link, you should receive a message notifying you that the Database tables are optimized. This concludes our discussion and walkthrough of using the DB Maintenance module. Let's now turn to the Boost module and use it to speed up our site page and content loads. Using the Boost module We' re going to turn our attention to the Boost module in this section. Boost is a contributed module that allows you to run incredibly advanced static page caching on your Drupal site. This caching mechanism will help to increase performance and scalability on your site, especially if it gets heavy traffic and anonymous page visits, and it is on a shared hosting environment. This is usually the first contributed performance-based module to turn to for help when you host your Drupal site on a shared server. Developers running Drupal sites on shared servers and running sites that serve predominantly anonymous Drupal users will definitely want to try out this module. It's also a fun module to use from a technical standpoint because you can see the results immediately, as you configure it. The Drupal project page for the module is here: http://drupal.org/project/boost. There is a wealth of detailed information about the module on this project page, including announcements about upcoming conference presentations that focus on the Boost module, testimonials, install instructions, and links to documentation and associated modules that you may want to run alongside Boost. It is very popular and has quite a following in the Drupal development community. I definitely recommend reading about this module and all of its install and configuration instructions in detail before attempting to use it. The install paragraph suggests reading through the module README.txt file before running the install for details on how the module works. There are also detailed instructions and documentation on the module here: http://drupal.org/node/545664. Note that the one requirement to use this module is that your Drupal site must have clean URLs configured and enabled. It's a good idea to make sure you are running clean URLs on your site before you start installing and configuring Boost. Additionally, there are some recommended modules that the developers encourage you to install in tandem with the Boost module. We will install two of these modules: Global Redirect and Transliteration. The Global Redirect module runs a number of checks on your website including the following: Checks the current URL for a Drupal path alias and does a 301 redirect to the URL if it is not being used. Checks the current URL for a trailing / and removes the slash if it's present in Drupal URLs. Checks if the current URL is the same as the site's front page and redirects to the front page if it locates a match. Checks to see if you are using clean URLs. If you do have clean URLs enabled, this module ensures URLs are accessed using the clean URL method rather than an unclean method (for example, ?q=user). Checks access to the URL. If a user does not have permissions to view the URL, then no redirects are allowed. This helps to protect private URL aliases. Checks to ensure the alias matches the URL it is aliasing. So, if you have a URL alias such as /about and this directs to node/23, then a user on your site can access the page using either of those URLs. The Transliteration module removes white space and non-ASCII characters in your URLs. For example, it will try and add underscores to fill white space in a URL. Installing and enabling these two modules will help remove glitches and errors in your site's path structure. If you haven't already, we'll also take the time now to install the Poormanscron module and set up and configure automatic cron runs instead of having to continue running cron manually. We'll return to installing and configuring Poormanscron later in this article, but just keep it on your radar for now. Let's go ahead and install the Boost module and take a closer look at some of its features.
Read more
  • 0
  • 0
  • 3410

article-image-story-management-php-nuke
Packt
23 Mar 2010
12 min read
Save for later

Story Management with PHP-Nuke

Packt
23 Mar 2010
12 min read
The Story Story In PHP-Nuke, a story is a general-purpose, piece of content. Maybe the story is an announcement, a press release or news item, or a piece of commentary or opinion, or maybe a tutorial article. The possibilities are almost endless! With PHP-Nuke driving your site, the stories that appear on your site are not restricted to ones written by you. Users of the site—either registered or unregistered visitors, or other administrators—can write and submit stories to your site. The process of a story appearing on the site is known as publishing the story. Of course this does not mean that your site is a free-for-all—stories submitted by users and others do not necessarily get published automatically—they are submitted for moderation by an administrator, and once approved, appear on your site. In this way, the content on your site grows itself through your community, but always (if you want) under your control. PHP-Nuke keeps track of such things as the author of the story, the date when the story first appeared on the site, and the number of times the story has been read, and also allows users to vote on the quality of the story. An impressive feature of PHP-Nuke stories is that users can comment on a posted story to build an open, topical discussion within your site. You will see community-contributed stories when you visit any typical PHP-Nuke site; for example, on phpnuke.org itself, PHP-Nuke users and developers submit stories describing their latest PHP-Nuke add-on, or drawing attention to the latest theme that they've designed. The 'story' engine in PHP-Nuke is provided by the News module. The total story functionality is actually spread across a number of modules, including Submit News, Stories Archive, Search, Topics, Your Account, and Surveys. We will explore all of these in this article. The Story Publication Process The path taken by a story from writing to publication depends upon who submits the story. The super user or an administrator with permissions for the News module can post a story through the administration area of the site. In this case, the publication process is simple, and the story appears on the site immediately, or can be scheduled for publication on a particular date. Since the super user and any other administrators with the appropriate privileges are trusted (they have full power over stories, so they had better be trustworthy), there is no need to moderate or approve the text in the story, and the story is ready to go. Registered and unregistered visitors can post stories through the Submit News module. When a story is submitted through this route, the publication process is lengthier. The visitor enters the story through a form in the Submit News module. The story administrator is notified that a new story has been submitted. The story administrator checks over the story, editing, rejecting (deleting), or approving it. The administrator is also able to add notes to the story. If the story is rejected, that is the end of the process, and the story is not published. If the story is approved, it is either published to the site immediately, or can be scheduled for publication on a particular date. Once the story is published to the site, the administrator can edit it further if needed. For a visitor, once they submit their story to the site they have no more control over the story. Finding and Interacting with Stories Stories on the site can be accessed in a number of ways, from a number of different places on the site. A limited number of stories can appear on the homepage, with older stories gradually moving down the list as newer stories are posted. Stories can be retrieved by date from the Stories Archive module. The text in the story is also searchable from the Search module, so that specific stories can be located easily. Stories are organized into topics, and by browsing the list of topics from the Topics module stories can be tracked down. Stories are not the end of content, they are actually the beginning. Comments can be posted about stories, and comments can be posted to these comments creating a discussion about the story. The quality of submitted comments can be assessed by users of the site and rated accordingly. The quality or value of the story itself can be voted on by users, links to related stories can be created, and you can view a special printer-friendly version of the story for printing, or even send the story to a friend. So many features... did I mention that you can also attach a poll to the story so that readers can participate in a survey related to the content of the story? So many features... Organizing Stories When you have even a reasonable number of stories on your PHP-Nuke site (and you will have—that's why you're reading this article series!), you will be in need of some organization for this content. PHP-Nuke provides two ways of organizing story content: Topics: what it's about Categories: what type of story it is Topics Topics define what a story is about. By organizing your stories into topics, stories about similar subjects will be grouped together for easy browsing and reading, and also to make it easier for people to contribute their stories to the right place. When you're reading through a number of dinosaur-related stories, the sudden appearance of a story about cars would be rather off-putting (unless it was actually about fossil fuels or dinosaurs eating/driving cars). PHP-Nuke does indeed offer organization of stories into topics, and before we can think of adding stories, we need to set up some topics for our stories. A topic has an associated image that is displayed on the site whenever you view a story that belongs to that topic, or whenever you are browsing the list of topics. The image overleaf shows a 'teaser' of a story displayed on our site; the topic image is shown to the right-hand side of the story: The Read More… link will take the visitor to the remainder of the story. Note that this arrangement of the story text and the topic image appearing to the right of the story is just the default layout due to the basic theme. When we come to look at creating our own themes, we will see how the topic image can be made to appear elsewhere relative to the story text. By default, there is a single topic called PHP-Nuke. This has its own image, which should only be used for the PHP-Nuke topic. Categories As topics define what a story is about, categories define the 'type' of story. A category could be something like a weblog entry, a security announcement, or a press release. There is one category defined by default, Article. This category has the following properties: You cannot change this category's name or delete it. Any story of type Article automatically appears on the homepage. Users can only submit stories of type Article. Compared to topics, categories do not have particularly extensive support in PHP-Nuke. Planning the Dinosaur Portal Topics and Categories Before we move on to looking at managing topics and categories, we'll quickly discuss the kind of topics and categories that we would like for organizing our stories on the Dinosaur Portal. These are not set in stone, and after we create them, we can edit or delete them, or even add new ones. First of all, there will probably be stories about the Dinosaur Portal itself that will contain general information about the site, such as new features that have been added to it, or warnings about planned site downtime (or apologies about unplanned site downtime!). We will also have stories about dinosaurs, fossils, and dinosaur hunting; these can be the other topics on the site. What types of story will we have? In addition to the standard article, we can have new theories, technologies, or discoveries, maybe even tutorials (for example, how to identify fossils, or how to avoid being eaten when dinosaur hunting). There will also be stories about Project Chimera, but we can't reveal what that is just yet. Thus a story about a controversial new dinosaur extinction theory could be given the 'dinosaur' topic, and the 'new theory' category. This isn't an exhaustive list, but it is enough to give an idea of the topic-category split. Topic Management Before we do anything else, we'll create our topics. For each topic, we'll add the images first. After we create our topics, we'll look at how to modify them, and the consequences of deleting topics. Before we get started creating our topics, we will add the topic images. To do this, you will need to copy all the files from the topics folder in the Ch06 folder of the code download to the images/topics/ folder in the root of your PHP-Nuke installation. You should have these files: thedinosaurportal.gif, dinosaurs.gif, fossils.gif, and dinosaurhunting.gif, in addition to files called index.html, phpnuke.gif, and AllTopics.gif, which were already present in the folder. The images/topics folder is the place where PHP-Nuke will look for the topic icons. When adding image files to the images/topics folder, ensure that only alphanumeric characters or the underscore are used in your filename, or else PHP-Nuke will fail to pick up the filename when displaying the list of topic images. Note also that the total length of the filename and its extension must not exceed twenty characters, or PHP-Nuke will truncate the name when it stores a record of the filename. In this case, your topic image will not be displayed, because PHP-Nuke has not stored the correct name of the file. Also, if your image has an extension of more than three characters (such as jpeg) then it will be missed by PHP-Nuke. The AllTopics.gif file in the images/topics folder does not correspond to a single topic, but is the image used when displaying the lists of topics. This file can be replaced by an image of your own. Time For Action—Creating New Topics Log in to your site as the administrator. From the Modules Administration menu, click on the Topics icon: You will come to the Topics Manager area. Scroll down to the Add a New Topic panel The first topic we create will be Dinosaur Hunting. Enter the text dinosaurhunting in the Topic Name field, enter Dinosaur Hunting into the Topic Text field, and select the file dinosaurhunting.gif from the Topic Image drop-down box: Click on the Add Topic button. When the screen refreshes, the newly created topic will be displayed in the Current Active Topics panel: This process can be repeated for our other topics: Topic Text   Topic Name   Topic Image   Fossils   fossils fossils.gif Dinosaurs   dinosaurs dinosaurs.gif What Just Happened? The Topics Manager, reached through the Topics icon in the administration menu, is the area from where we can add, edit, or delete topics. The Topics Manager has two panels, one showing the Current Active Topics, and the other being the Add a New Topic panel. A topic requires three pieces of data: A topic name, which is a short piece of text with no spaces. This is mostly used internally by PHP-Nuke. The topic name is usually the same as the topic text, but in lower case and with no spaces. The topic text, which is the title of the topic. The topic image, the name of which is selected from the list of files in the images/topics folder. You can use the same image for more than one topic if you choose. Once you have saved a topic, clicking on its image in the Current Active Topics panel takes you to the Edit Topic area, from where you can edit or delete your topic. You may have noted that we haven't created the Dinosaur Portal topic. We'll do that now by editing the existing default topic, since we would like this to be the default topic for the portal anyway. Time For Action—Editing Topics We will edit the default topic to get the Dinosaur Portal topic: In the Topic Manager area, click on the PHP-Nuke topic icon in the list of Current Active Topics. When the page loads, enter the details as shown below: Click on the Save Changes button to complete your editing. When the page reloads, you will need to click on the Topics icon again to return to the Topic Manager area, since you will be returned to the page for editing the topic. What Just Happened? We just edited the properties of an already existing topic. To get at a topic's properties, you click on its icon in the list of Current Active Topics in the Topic Manager area. The possible topic icons are again picked from the images/topics folder and displayed in a drop-down list for you to choose. Once you are done making changes to the topic, clicking on the Save Changes button updates the topic. Note that there is no cancel button, and if you decide to make no changes here, you can click on the Topics icon in the Modules Administration menu to return to the Topic Manager area, or use the back button on your browser. Deleting a Topic It is possible to delete topics by clicking on the Delete link next to the Save Changes button. However, deleting a topic will delete all the stories that belong to that topic. Fortunately, there is a confirmation screen before the topic is deleted: Since the Delete link is positioned so close to Save Changes, it's probably good that there is this screen. There is no turning back after you click on Yes on this screen. Your topic is gone, and so are all the stories, and any comments attached to those stories. Note that the image associated with the topic is not deleted, and it still remains on the server, and can be used for another topic if wished.
Read more
  • 0
  • 0
  • 2839

article-image-alfresco-enterprise-content-management-author-interview
Packt
19 Mar 2010
10 min read
Save for later

Alfresco Enterprise Content Management - Author Interview

Packt
19 Mar 2010
10 min read
  Hello Munwar. Thank you for taking time off your busy schedule to answer some of our questions. 1.      From specializing in Digital Electronics and Advanced Communications to authoring Alfresco Enterprise Content Management Implementation – talk us through the journey! Though I completed my masters in digital electronics, my work has been always with software engineering. I worked as the chief architect and manager of engineering teams for 15 years in the areas of system software and Internet applications for customers in the United States, Japan, Germany, and India. For the past ten years, I have been implementing various content management systems. I started with multi-million dollar implementations of proprietary software and faced all kinds of challenges including vendor lock-in, rigid code base and expensive upgrades. I co-founded CIGNEX in 2000 with an idea of making open source work for the enterprises. Since then, we have successfully delivered more than 50 CMS applications using various open source technologies and got featured in IDC. Unlike most other open source CMS which offered only the web content management, Alfresco provided a wide range of solutions to Enterprise customers with an impressive roadmap. This excited us a lot and we started implementing Alfresco in many enterprises. As part of our implementation we also train our customers so that they are equipped with all the information required to manage their systems. I have trained many users, administrators, and developers in Alfresco.  I decided to author a book on Alfresco, based on the requests I have received from David Barnes of Packt Publishing and John Powell, CEO of Alfresco. 2.      How is Alfresco different from Documentum and some other Enterprise Content Management systems? What does the Alfresco team mean when they say that Alfresco aspires to be "Documentum fast and free"? Alfresco is unique and different. It is the first new Enterprise Content Management system built in over five years, based on open source and open standards. There are literally hundreds of open source content management systems on the market, but none address the requirement of enterprises small, medium and large to manage, share, control and reuse content across the company. Alfresco is different when compared to other ECM systems with the following specification: Enterprise features (scalability, security and failsafe plus the power to manage any form of unstructured data not just web content) Super fast Simple (to install, to use, to customize) With low costs John Newton who is the co-founder of Alfresco, was the co-founder of Documentum who knows this space pretty well.  His goal is to build a real Open Source ECMS that is 10 times faster and free.  I think he and his team achieved the goal pretty successfully.  3.      Tell us something about CIGNEX and Mike Walker and their contributions towards writing of the book. CIGNEX is the leading provider of open source Enterprise Content Management (ECM) solutions for businesses and government agencies.  Mike is the Vice President, in-charge of consulting at CIGNEX.  His organization is among the very first to successfully deliver ECM projects using Alfresco. Our consulting team at CIGNEX presented me the various flavors of Alfresco implementations that I would not have possible imagined, with real-life examples as they work on the Production projects. Mike (reviewer of the book) made sure that the information in the book is relevant to someone who is seriously considering Alfresco to deploy an ECM application. Starting from our CEO, Navin to a developer at CIGNEX, everyone contributed to the book one way or the other. My sales and presales team at CIGNEX, Amit, Candace, Harish, and Jarred helped me understand what customers are looking at.  I have learnt a lot through numerous discussions with them. I am thankful to my team at CIGNEX.   4.      At CIGNEX you have trained many users, administrators, and developers in Alfresco. How much has training helped you in writing this book? In June 2006, I have spent significant time creating Alfresco training for Users and Administrators. The training material had about 325 PAGES and 48 LAB EXERCISES, covering the latest features of Alfresco. I have got a good feedback from the attendees and over a period of time the quality of the training material improved. Thanks to Dr. Paul Holmes-Higgin (VP of Engineering, Alfresco) for his idea of running Portable Alfresco on a USB Drive.  I created and delivered the training material in a keychain (1 GB USB drive) which attracted many attendees as they do not have to install it on their computers. Training also helped me to define my writing style. I started by showing the reader how to do something - a step-by-step example. I explained how that process worked. Then, I explained what other options are available, and how they fit into the overall picture. I hope this helps the reader "generalize" from this example. Now, at CIGNEX we offer 4 various training programs in Alfresco (a) Foundation training for the beginners (b) Developer training (c) Workflow and Customization and (d) Web Content Management   5.      John Powell, CEO Alfresco has written a foreword acknowledging your book. Were you in touch with the engineers and developers at Alfresco during the writing of this book? John Powell was kind enough to write a foreword for this book. Everyone who read it enjoyed it. You must read it to know how big minds (John Powell-CEO and John Newton-CTO of Alfresco) think and create world's most successful companies. The good decision I made when I started writing the book during August 2006 is to work on the upcoming version of Alfresco (1.4 then).  This requires significant amount of understanding of the upcoming features which are not completely documented (as the Alfresco engineering team was developing it).  Thanks to Alfresco team who helped me getting the documentation and updating the Alfresco wiki. Alfresco released 2.0 beta recently with web content management features.  Due to the extra care we took in planning the book, the content of the book is relevant to the recent latest release. 6.      Who is the book aimed at? This book is designed for content managers, system administrators or developers who want to install and use Alfresco in their teams or businesses. Because Alfresco is free many teams can install and experiment with its ECM features without any upfront cost, often without management approval. This book also aimed at business users to make decisions to migrate from the existing proprietary ECM to standards based open source ECM. This book is particularly suitable for IT consultants who want or need to set up a flexible enterprise content management system for their clients, be that for demonstration, development, or as a mission-critical platform. This book gets you to that result quickly and effectively. 7.      Which chapter of the book did you enjoy writing the most? Which one do you think is most exciting? I enjoyed writing all the chapters and the most exciting one is Chapter 13, Implementing Imaging and Forms processing. This chapter helps you to implement an end-to-end solution by collecting the paper documents, and forms; transforming them into accurate, retrievable information; and delivered into an organization's business applications. The information then, is full-text searchable, and goes through the various approval workflows, based on the organization's defined business process management. By the end of this chapter you will have learned how to: Connect scanner to network drive, and map it to the Alfresco's space Specify a business rule to automatically extract metadata from the scanned document Define and execute a workflow process for scanned documents Bulk upload scanned documents into the Alfresco repository Integrate OCR utilities such as Kofax and eCopy into Alfresco This chapter provides solutions closer to your business requirements such as Order fulfillment, Claims processing, Underwriting, Loan origination, Contracts management, Accounts payable managing checks and invoices. 8.      Can you install Alfresco both on Windows as well as Linux Operating Systems? Have you explained the installation techniques in the book? You can install Alfresco both on Windows as well as Linux operating systems.  You can install Alfresco to use a wide range of databases such as Oracle, MySQL, Microsoft SQL Server.  You can install on variety of application servers such as Tomcat, JBoss. I have dedicated a chapter (Chapter 2. Installation) and included the information about the architecture, various installation options, and the key terminologies used. By reading this chapter you will be well equipped with the information to make a choice on the suitable operating system, database, application server, and other software required for your installation. 9.      In Chapter 3: Planning, you talk about Follow Best Practices to implement a project using open-source software. Give us a sneak preview about it. Most of the Enterprise Content Management projects fail not because of technology, but because of lack of proper planning. Planning is the most critical phase of any implementation project. During this phase, most of the decisions are made to customize specific features in a particular way. You define the security framework, custom-content types, folder structure, categories, workflow, reporting, business rules, and collaboration. During planning phase, you will scope your implementation, prioritize the requirements, and finalize the project plan. This chapter provides you information required for your planning exercise before implementing your system using Alfresco. 10.  Can you explain in brief Roles in Alfresco and its importance? Alfresco security model is flexible and allows you to choose either built-in security or external security model defined by your organization via systems such as LDAP and Active Directory.  The following is the list of default roles supported out-of-the-box by Alfresco: Consumer: Read spaces and content Editor: Consumer + edit existing content Contributor: Consumer + add new content Collaborator: Editor + Contributor Coordinator: Full Control Apart from knowing the roles, the most important thing to know is the methods to extend the security model and to provide effective collaborative spaces.  There is a full chapter in the book dedicated to this Security Model. 11.  When can we expect yet another book from Munwar Shariff? This is my second book. My first book is Plonelive, a python-based open source content management system called Plone. When I was writing Plonelive, I never imagined that I am going to write another book.  Book writing is a very involved exercise and requires a lot of discipline. I have a full-time job as a CTO and VP of Business Development at CIGNEX and I have two kids at home with whom I spend lot of time.  I am also contributing to the book's blog site http://alfrescobook.blogspot.com. >Whenever we (as a company) feel there is big need for "documentation" for a specific open source content management system or an open source enterprise portal, we might consider writing a book. I never know when that is going to happen. Thanks Munwar! I would also take this opportunity to congratulate you on the release of Alfresco Enterprise Content Management Implementation.   Share This Article Save to del.icio.us      
Read more
  • 0
  • 0
  • 1594

article-image-alfresco-web-content-management-wcm-20-part-two
Packt
19 Mar 2010
6 min read
Save for later

Alfresco Web Content Management (WCM) 2.0 Part Two

Packt
19 Mar 2010
6 min read
The Web Forms space holds forms that define content templates. For example, we may want press release to be a content type for the web site. A press release may contain a title, an abstract, a location, and several paragraphs in the body. These content elements can be defined in an XML schema file. Alfresco WCM uses the information in the schema file to automatically create a form which can be used for creating XML content for press releases. Once this content is created it can be published to multiple channels –web site, plain text, and wireless devices such as cell phones, for example. The publishing conversion for each channel can be defined using transformations which are specified using XSL, among other options. Content templates can be shared across multiple web sites. The following figure illustrates how a content item for a content type is created and published for multiple channels. Creating Content and Publishing on Multiple Channels for One Content Type Once the space for web site and the web forms (content templates) have been set up, we need to set up users with appropriate content development roles. For example, different users may play roles such as Content Publisher, Content Reviewer, and Content Manager in the content creation process. Further, a Web Developer role may perform the necessary setup needed prior to content creation. Alfresco supports the concepts of change set and sandbox described earlier. Each user gets a separate sandbox, which is an isolated view of the web site. Each user’s sandbox shows only that user’s changes on top of the existing approved content. Similarly, when a user needs to approve a set of changes only those changes need to be visible on top of the approved content. A change set is a set of changes that move together in a workflow. The following screenshot shows user sandboxes and the staging sandbox which contains the currently approved content. The Modified Items link shows the content items the user is currently working on. Staging and User Sandboxes Note how each of the sandboxes allows a separate preview of the website incorporating the changes present in that sandbox. The preview of staging sandbox consists of only the approved content. Alfresco WCM 2.0 includes a virtualization mechanism for supporting in-context web site previews. For example, the following screen shows a preview of the Staging Sandbox web site. Note that there is one approved press release. A Published Press Release in Preview Another, very useful feature of Alfresco WCM 2.0 is snapshots. A snapshot captures the complete state of the web site at a given point in time – it can also be thought of as a version of the web site. Alfresco allows reverting back to an older snapshot with just one click. The figure below shows how easy it is to revert to an older snapshot – version 8 was created by clicking on Revert in the row for version 4.   Reverting to a Prior Web Site Snapshot In version 4, the news story shown earlier had not been approved. Previewing the web site for Staging Sandbox now shows no press release in the screenshot below. Previewing the Staging Sandbox after Reverting to an Old Snapshot Note that security and workflow capabilities are part of the core Alfresco platform and are utilized by WCM 2.0. The features discussed above focus on the core development process where content is created via web forms and goes through the approval process, allowing site preview at every point. However, Alfresco WCM 2.0 architecture is versatile enough to allow content creation through standard interfaces such as WebDAV and CIFS (Common Internet File System). Further, it allows content delivery to multiple sites and supports multiple web application technologies. The following figure illustrates these capabilities of the Alfresco architecture. Source: Alfresco WCM Webinar, March 2007 Note that the terms Dev, Preview and Live in the figure above represent the creation of code, content, and media and their movement through the approval process. The Alfresco server shown in the middle is one production environment. In reality, you would need one or two additional environments for performing configurations and customizations in a separate environment which will not accidentally bring your production system down. For example, you should rehearse the space structure setup, security setup, custom rules and configurations in a development environment. Ideally, you would replicate the setup in a QA environment where the configurations/customizations can be tested before applying to the production environment. The development environment remains the playground for trying out any new configuration or customization. The environment concerns described above are not unique for Alfresco WCM 2.0 – there are fairly similar concerns in other WCM systems. What is really pleasant about Alfresco is that it is lightweight enough to run on a single physical machine for dev and QA purposes. On the other hand, production can be set up in truly sophisticated configurations to handle performance, availability, and disaster recovery requirements. Further, Alfresco’s ability to use various commercial components (database, application servers, etc.) as well as popular robust open-source alternatives liberates customers by giving them back the power and freedom to choose what is best for their technical environment.   Conclusion Web Content Management is one of the most popular applications of Enterprise Content Management. There is a wide range of WCM products available in a spectrum ranging from open-source products to completely proprietary offerings. Alfresco WCM 2.0 is a recent release which makes secure content management in a team environment a breeze. It offers exciting features which enable content managers to review, approve, and roll back business or application-level features. This is a huge improvement over managing content, media, and code at an individual file level. The Alfresco WCM 2.0 architecture takes the pain out of adding content from various sources as well as delivering content to multiple channels. The underlying Alfresco architecture puts the power and freedom of choice back in the customer’s hands by liberating them from vendor lock-in. By building upon robust open-source technologies Alfresco leaves more cash in the customers’ pockets for completing their strategic content management initiatives successfully.   References and Resources   Alfresco 2.0 Web Content Management Product Evaluation Guide Book – Alfresco Enterprise Content Management Implementation Alfresco WCM Webinar, March 2007 Alfresco 2.0.1 and 2.1.0 Update Alfresco.com
Read more
  • 0
  • 0
  • 1720
article-image-alfresco-web-content-management-wcm-20-part-one
Packt
19 Mar 2010
9 min read
Save for later

Alfresco Web Content Management (WCM) 2.0 Part One

Packt
19 Mar 2010
9 min read
Web Content Management (WCM) Modern web site implementations are architected with two distinct sets of capabilities – creation and maintenance of the content and delivery of the content to the target audiences. Creation and maintenance of web content is called Web Content Management (WCM) and is a relatively new discipline in the history of web technology.   In the early days, web sites were simple with static content that changed infrequently. Modification of the content was not the biggest of challenges and such changes were typically performed by technical developers. Web technology and the associated disciplines have come a long way since those times. Today there are well-defined disciplines involved in creation of web presence such as information architecture, visual design, content strategy, and site development. Products of these disciplines are merged together and realized through enterprise application technology, which adds functionality and dynamic nature to web sites. Specialization of roles among these disciplines as well as the complexity of the modern technology has made content updates difficult and error prone when performed directly on stored content. A WCM system makes it easier to create and update content by hiding the technical details related to the storage and delivery of content. It becomes almost imperative to use a WCM system for sites that have highly dynamic content which may also need to be delivered on multiple channels such as web, handheld devices, and print media. In such situations, content can be created once and rendered automatically for different channels. The WCM products available today vary widely in terms of their capabilities, the underlying technologies and frameworks, and the extent to which they use open-source products as architecture components. Many WCM systems also offer presentation capabilities in order to facilitate delivery of content at least for the web medium. When discussing WCM features, it is useful to identify what WCM is and what it isn’t. WCM deals with creation, persistence, and maintenance of content. It may also include some support for presentation in terms of previewing the content being created or edited. However, fully-featured presentation frameworks or technologies, such as portals, should be evaluated separately, since majority of their concerns are significantly different. Products with integrated WCM and portal capabilities offer the convenience of a one-stop solution for building, managing, and delivering web content. On the other hand, products with only WCM capabilities, or at least clearly separable WCM capabilities, offer freedom to use rich and mature presentation technologies which may already be in place in the existing infrastructure. Let’s take a look at a few products, which represent various points along the spectrum between these two extremes. Microsoft SharePoint Server is a well-known product with a wide range of content management capabilities that go beyond WCM and portals. Similarly, EMC Documentum is a high-end platform for enterprise content management which can be used in almost any way enterprise content may be intended to be used. EMC Documentum provides products catering to specialized needs – Web Publisher for creating and managing web content, Site Caching Services for pushing content to Web or Application Servers, and integration options with portals for presenting content. Interwoven and Vignette also offer high-end WCM systems. There is also a wide range of open-source options for WCM which have developed large user bases. Joomla! (as well as Mambo, where Joomla!’s origins lie) offers an integrated WCM and portal technology built on the LAMP (Linux, Apache, MySQL, PHP) platform. Joomla! offers over 100 components for providing specific optional capabilities such as building user communities or incorporating shopping carts. Joomla! makes it very easy to set up a web site in minutes if you are willing to work with its content organization and presentation model. Alfresco is an open-source platform developed with the stated goal of bringing enterprise content management (ECM) capabilities to open source. The Alfresco leadership team brings content management experience from companies such as Documentum, Business Objects, and SeeBeyond. Alfresco has matured with two major releases over a period of 2.5 years. Alfresco enables Document Management, Collaboration, Records Management, Knowledge Management, Web Content Management and Imaging – some of the most common applications of enterprise content management. Alfresco WCM 2.0 was released recently and offers some exciting built-in features that promote development efficiency and reduce infrastructure demands. We will explore these aspects in this article.   WCM Challenges Every WCM system is expected to provide certain fundamental features. The core WCM feature is the ability to edit content through a user-friendly and technology-neutral (as much as possible) interface. The system also needs to provide security and the capability to allow a team to work on the content. WCM systems typically support versioning for content items. Finally, the content needs to be exported to a form suitable for web or application servers for delivering to the target audiences. There are certain other features that are not necessarily required in a WCM system, but are considered to be desirable and are supported by many contemporary WCM products. One such feature is the ability to store content in XML format. XML content facilitates publishing the same content through multiple channels such as web, wireless devices, and print media. Another common and desirable feature is the support for business processes or workflows. At the minimum a simple approval process is desired which can be used to review and approve the promotion of content changes to a live environment. The WCM features discussed so far focus on what a WCM system can do. However, some of the challenges for WCM initiatives deal with how a WCM system supports certain capabilities. Such aspects may significantly affect development efficiency, quality assurance, and infrastructure costs. We take a look at some of these concerns below. Simple static HTML pages seem to belong to a bygone era. Even simple web sites today are usually dynamic and frequently contain media (images, videos) and utilize code and a database. Today, web site management deals with managing content, media, and code together. As a result, the line separating a web application from a web site is a blur. Note that sometimes the term “content” is used to refer to all the resources managed by a CMS. For sites utilizing code and media along with plain content, it becomes important that all of these resources are managed in sync. For example, if a change is made to include a new user attribute in the user profile the corresponding code or configuration changes need to make it to the live environment, along with any presentation changes (web pages that will use this new attribute). These requirements become more complex when you consider the fact that different team members may be working on related artefacts and these changes need to go through the review process concurrently. Another aspect of managing dynamic web sites is that often multiple web pages need to change to reflect one feature change in the web site. For the example above, the new user attribute may require a change to the user registration screen, user profile screen, and possibly some site functionality that utilizes the given feature. Thus, adding an email format preference to the user profile may require changes to three pages, two code components, and one configuration file. These affected artefacts together form a change set – they all need to go into the web site together or none of them should. If one or more pieces in the change set were left out, the change would not function as expected and would likely introduce a bug. Change sets bear some similarity to transactions and versions. The description above reflects the similarity to a transaction since all the changes should either be committed or discarded together. On the other hand, suppose a change set implementing a particular feature was promoted to the live environment. It worked as designed and expected. However, it led to unexpected business impacts and now this change needs to be undone. The WCM system should make it easy to roll back the changes introduced by a change set. If the system kept track of web site snapshots – state of the complete site after each change set was promoted, it would be simpler to go back to a prior state of the web site. One of the trickier challenges of WCM systems is to provide multiple environments which are isolated but more or less similar in structure. For example, each developer requires an area where he/she can make changes without impacting other developers or to the live environment. However, each developer should only see his/her changes on top of the currently live content. Then multiple change sets might need to be reviewed by different reviewers concurrently. Each reviewer should only see the change set to be reviewed on top of the currently approved content. Thus, there is a need for an on-demand virtual copy of the web site which includes the approved content and a change set. Such an isolated environment is commonly referred to as a sandbox. In the rest of this article, we will explore the core features offered by Alfresco WCM 2.0 and how it addresses the WCM challenges described above.   Alfresco WCM 2.0 Alfresco is an open-source content management platform. Alfresco WCM 2.0 is an optional add-on which can be installed on top of the core platform to enable WCM capabilities. In this section, we will look at typical usage of Alfresco WCM 2.0 and highlight how it handles the challenges described earlier. Alfresco organizes storage in spaces. A space is a smart folder which can be associated with configurable rules. These rules control what happens to documents or other spaces that are added under the space. Among other things, these rules enable workflows within the platform, support automatic versioning, and automatic rendition generation.   Installing Alfresco WCM 2.0 adds two spaces to the repository – Web Projects and Web Forms, as shown below in the Alfresco standard web interface. The Web Projects space holds other spaces, where each space represents one web site. The Web Forms space holds templates for creating and publishing content for different content types such as a press release or a company profile.                           Two Spaces are Added by Alfresco WCM 2.0 Web content for a site is managed under a web project space which is created under Web Projects. For example, the following screenshot shows alfrescowww as a space created for managing content for this web site. A Space for Holding Content for a Web Site Continue reading Alfresco Web Content Management (WCM) 2.0 Part Two [ 1 | 2 ] Read Alfresco Web Content Management (WCM) 2.0 Part OneRead Alfresco Web Content Management (WCM) 2.0 Part Two
Read more
  • 0
  • 0
  • 2607

article-image-enlighten-your-desktop-elive
Packt
19 Mar 2010
9 min read
Save for later

Enlighten your desktop with Elive

Packt
19 Mar 2010
9 min read
Enlighten your desktop with Elive Unless you're an old Linux user, you've only probably used the KDE, GNOME or Xfce desktop environments. But since the time when these desktops were in their infancy, the Enlightenment desktop environment has been impressing users. Bringing this mature, visually appealing environment to new Linux users is what the Elive distribution is all about. On its website, Elive claims to be more than a simple Linux distro, rather a work of art. I might be a little biased but that's probably true. One look at Elive's graceful and charming environment and you are sold. And unlike today's 3D visualization, Elive can run efficiently on older systems as well with a gamut of desktop applications. Its got detailed documentation Wiki and an active forum to answer questions. Elive's been in development for several years now and in fact is so popular that its developer, Samuel "Thanatermesis" F. Baggen, works on it full time. In this month's article, Samuel explains his reasons for spinning Elive and how the distro has evolved over the years. Mayank Sharma: Please tell us a little about yourself and your interest in computers in general and Linux in particular. Samuel Baggen: When I was 12 years old I got my first computer -- an 8086 with MS-DOS command line. Shortly after I got that system, the monopoly of Microsoft swept in and introduced Windows. A simple front-end of MS-DOS in graphical mode, which took a lot of memory for computers (especially my little PC). I grew very tired of Windows and wanted to go back to the command line after some years, but it seemed I was going against the grain. The majority of the systems were using Windows and all the applications too were written for Windows. It seemed I had no other option except Windows. When I was 18 years old, a friend of mine started telling me about this thing called "Linux" -- an ingenious system without errors, reboots, problems or viruses. It was much faster, efficient, and finally free of charge... an unbelievable thing. Then I started using Linux, reading the documentation and learning how to use its very powerful command-line system. I needed to spend some serious time learning the graphical system, but when I got the GUI running, it didn't appeal to me. I tried many window-managers, but I was never satisfied. There was one that piqued my curiosity...Enlightenment. I promised myself to take a better look at this curious window-manager between my time working at the command line. Soon I found a system called Knoppix -- a Linux system that worked directly from the CD-ROM without installing. I really liked the system and the many others that came after, but I found they were all just a simple copy of the standard Knoppix, with the background and the name changed. I couldn't find any with Enlightenment. So I chose to make a very different modification of Knoppix that included Enlightenment. The resulting system was called Tezcatlipotix, but I couldn't put it to the public because it contained copy-written music, video clips, and other commercial applications too. I decided to share my vision with the public, so I started working on Elive. My goal was to make a liveCD that was very different, easy to use, intuitive, and most importantly ran Enlightenment. I tailored it for my tastes and for practical functionality. For example, Elive won't use icons on the desktop, even if Enlightenment 17 adds a feature to include desktop icons.   MS: But what was it about Enlightenment that made you spin a distribution around it? SB: I was very disappointed by the other window-managers. Most are slow, unattractive, non-functional, but most importantly I felt they were counter-intuitive and lacked practicality. I firmly believe that you don't have to emulate Microsoft Windows, to achieve a responsive and functional system. You all are more than welcome to test the easy, usable and lightning fast responsiveness of Elive.   MS: Break down Elive for us technically. Why choose Debian as base? Do you bundle non-free software like MP3 codecs, etc? Does Elive have a repository of its own? SB: Yes, Elive has it own repository with more than 400 Elive specific packages. Some are just rebuilt with minor changes like tweaking their default configuration files, or including skins, etc. Everyone knows why you'd choose Debian as a base system, this is no secret. It's package management is pristine, it's the most stable, secure and trustworthy system available. If a thing such as an MP3 codec is not free, but free to redistribute, Elive includes it. MP3's are heavily used by everyone, whether in your MP3 player, or for internet streaming. Elive is a usable product that is practical in this day and age. We want everyone to have readily access to their MP3's as soon as the system boots.   MS: Are you a one-man development house as well? Do you get any contributions from users? Talking of which, how's Elive's user community? SB: Yes, I'm the only developer of Elive. It's a tremendous amount of work and very time consuming. Yet I realize that If I'm to have total control over my vision of Elive, then this must be the case, so that no one can say, "Don't do this or that!" I have full discretionary power, but Elive is made for the public, so user suggestions are pertinent to Elive's development. On the other hand, I receive much help from a small community of people in many ways. Translations, system tests, benchmarks (very important, without tests and bug reporting, the systems won't work correctly), and also some coding for miscellaneous things. The community helps design art, applications, and PHP code for the Elive website. Support also comes from Elive users who make a donation for the Elive stable downloads and the new Bonus Discs. This is very important. Without this collaboration, Elive wouldn't exist because developing Elive is my full-time profession.   MS: What are these Bonus discs? SB: This is a new feature of Elive. Put simply it consists of a CD that you insert in your Elive system and it's directly launched. The Bonus Disc then installs the package. For example, the first (and currently the only one available) is the Bonus Disc for OpenOffice. You just burn the iso and put it in your Elive system. The Bonus Disc installs OpenOffice automatically, prompting only for language preferences. With this bonus disk you have a very easy and fast way to properly install OpenOffice with the menus having the GTK look. I have more bonus-disks planned for the future, especially for games. I'm hard pressed to find time to make them, but they will come sooner or later.   MS: On the website you say Elive's more of a distro than a Live CD. Could you explain this a little? SB: Yes, I continue to stress this fact because of the misconception that Elive is just a Live CD. The name alone causes some to think otherwise. Some people think, Elive is "Enlightenment Live". The install button is a little hard to find for some users for the first time :) Elive started as a Live CD, but actually it's more a complete system than a live CD. This is why I have moved from Knoppix to Morphix, and after that to DSS (Debased Scripts Set). Elive has a very good installer with nice internal features, and it's own repository with more than 400 packages. Elive in the liveCD mode is just the pure Elive system with virtual changes to make it all work in live mode. Which means installing Elive to the hard disk, installs a clean system without any trace of the live CD elements. Elive is a system for day to day usage. Its goal is to be a system that's ready to use, and quick and easy to work with. There are many users who have used Elive day-to-day as their main system for years.   MS: You can't read a review of Elive without the reviewer mentioning the Elive Panel. Is that something you wrote? What areas of Elive does the panel control? Have you written more such custom tools for Elive? SB: Yes, I wrote Elpanel as a central control center for managing the entire Elive system. Elpanel has menus icons to control the look and feel of the system, do some user configurations and general administration. The icons launch a separate, but integrated Elpanel menu, with animations that tempt the eye. I have written many tools for Elive, some are visible applications, but most are shell scripts for auto-configurations, etc.   MS: How has Elive evolved over the years? Do you still recommend using ReiserFS? SB: I have tried to make the system easier to use overall. The hardware recognition has gotten a lot better. Some users say that it's better than some of the bigger distributions :) I have also added most of the things that users have requested between releases. Since so many users have laptops, it's mostly Wifi drivers and such, adding which is truly a daunting task. As for the filesystem, yes, I personally continue recommending Reiserfs (version 3). In my experience it's the best, but I don't want to get into that discussion here because many people like to debate about things (flame wars). It's just my personal preference.   MS: You've just released Elive 1.0. What are the highlights of this release? SB: It's very stable system that's ready for day to day usage. Elive 1.0 has been rigorously tested, has great drivers, nice auto configurations, and enhancements for the end-user. The Elpanel application is always getting better and better. There are many more things that are listed on the Elive website.   MS: What are you working on for the next Elive release? SB: On top of my list are, new kernel, more drivers (especially more Wifi implementations), and the very much sought after Enlightenment 17 in Elive Gem 1.0. Mayank Sharma is a freelance writer from New Delhi, India. He is blown away by the power of Free and Open Source Software and its usefulness to developing nations. Check out his blog at http://www.geekybodhi.net/         Share This Article Save to del.icio.us      
Read more
  • 0
  • 0
  • 3741

article-image-increase-website-traffic-free
Packt
19 Mar 2010
5 min read
Save for later

Increase Website Traffic for FREE

Packt
19 Mar 2010
5 min read
Increase Website Traffic for FREE There are many techniques to getting more visitors to your website or blog. Here are a few of the better ways of getting more visitors to your website. Oh, and they're all free and you should be able to implement most in just a few minutes. Firstly, some things to keep in mind as you read these tips and tricks for getting more, free, website visitors... Google looks at your website and tries to think how a human would think.If a real person would rate your website highly, then so will Google. Google reads the words on your website.Phrases that you want to get found with should at least appear somewhere on your website. A real person would rank more highly a website with lots of links to it. If lots of other people link to the site then it must be popular.Google ‘thinks’ in exactly the same way using a technique called Page Rank or PR. More on this later. Content that changes is more interesting for repeat visitors,and Google rates more highly websites that change frequently for this exact reason. OK, with these key ideas in mind, lets move on to sending more people to your website. Who knows, the increase in website traffic may increase inquiries, orders and profit! Change your writing style As an example, take the last sentence from the previous paragraph. It used to read like this... OK, with these key ideas in mind, lets move on... This sentence would be OK in the real world, but it contains no words of any importance or relevance to our topic. The sentence was edited to contain pertinent words relating to increasing website traffic and now reads like this... OK, with these key ideas in mind, lets move on to sending more people to your website. Who knows, the increase in website traffic may increase inquiries, orders and profit! Look at every sentence on your website. Does it stand up on its own? Cut out the clutter and add key words and phrases. If you sell cars, avoid impotent phrases like "Customer Service to Rely On" and use phrases such as "Discount Car Dealership, Midlands UK". Potential visitors searching on Google won't be searching for "customer service", but they will be searching for "car dealership, midlands". Another small tip relating to your writing style is to use all derivatives of words. Take for example the car dealership. Visitors searching Google might type "dealership" or they might type "dealer". Try to use both in your text to appear in as many search results as possible.Get Inbound Links Links to your website from others offer two great benefits. Visitors to the other sites might see the link to your site and pay your site a visit. Your website Page Rank will be increased as your site now looks more popular. One of my favourite websites for blagging a free link from is www.pagemost.com. Fill in the small form on the home page and they build a page for you based on your location (give a false postcode if you're not location based). This free page is built to do well on search engines and includes a link back to your website. www.pagemost.com has a Page Rank of 5 at the time of writing, which is well worth getting a link from. To get your free page found, www.pagemost.com do recommend that you link to it from your own page, otherwise the search engines won't know it exists. On this note it's worth mentioning that although you want to get as many inbound links as you can, you should also avoid adding too many outbound links. Ebay How can Ebay help increase traffic to your website? Ebay is a very popular website and links from it to your own website will make your site look more popular. By ensuring that you always have auctions on the go at Ebay, you will always have links to your own website. It doesn't matter what you are selling as long as you remember to add links to your own website from each auction. Wikipedia It's not relevant to all websites, but why not give your website a mention and a link in Wikipedia. Most pages in Wikipedia have links to external sites, so why not add yours! If you are blatantly spamming then be prepared to be removed straight away, so make sure your website is related to the topic in question. Home Page Re-write a portion of your home page every month. Adding news items is a great way to force you to do this and gives you a reason to change the page monthly. And don't forget, a website with out of date news items looks as though the company has gone bust, so once you start this technique for generating website traffic it is most definitely an on-going process. Conclusion Re-write your website content or get somebody to do this for you. Include good words and phrases and cut out the dross! Get links to your site from sites like www.pagemost.com Get some auctions underway on Ebay See if any pages in Wikipedia or similar will handle a link to your site  
Read more
  • 0
  • 0
  • 2006
article-image-ireport-netbeans
Packt
19 Mar 2010
3 min read
Save for later

iReport in NetBeans

Packt
19 Mar 2010
3 min read
Creating different types of reports inside the NetBeans IDE The first step is to download the NetBeans IDE and the iReport plugin for this. The iReport plugin for NetBeans is available for free download at the following locations: https://sourceforge.net/projects/ireport/files or http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=4425 After downloading the plugin, follow the listed steps to install the plugin in NetBeans: Start the NetBeans IDE. Go to Tools | Plugins. Select the Downloaded tab. Press Add Plugins…. Select the plugin files. For iReport 3.7.0 the plugins are: iReport-3.7.0.nbm, jasperreports-components-plugin-3.7.0.nbm, jasperreportsextensions-plugin-3.7.0.nbm, and jasperserver-plugin-3.7.0.nbm. After opening the plugin files you will see the following screen: Check the Install checkbox of ireport-designer, and press the Install button at the bottom of the window. The following screen will appear: Press Next >, and accept the terms of the License Agreement. If the Verify Certificate dialog box appears, click Continue. Press Install, and wait for the installer to complete the installation. After the installation is done, press Finish and close the Plugins dialog. If the IDE requests for a restart, then do it. Now the IDE is ready for creating reports. Creating reports We have already learnt about creating various types of reports, such as reports without parameters, reports with parameters, reports with variables, subreports, crosstab reports, reports with charts and images, and so on. We have also attained knowledge associated with these types of reports. Now, we will learn quickly how to create these reports using NetBeans with the help of the installed iReport plugins. Creating a NetBeans database JDBC connection The first step is to create a database connection, which will be used by the report data sources. Follow the listed steps: Select the Services tab from the left side of the project window. Select Databases. Right-click on Databases, and press New Connection…. In the New Database Connection dialog, set the following under Basic setting, and check the Remember password checkbox: Option Value Driver Name MySQL (Connector/J Driver) Host localhost Port 3306 Database inventory User Name root Password packt Press OK. Now the connection is created, and you can see this under the Services | Databases section, as shown in the following screenshot: Creating a report data source The NetBeans database JDBC connection created previously will be used by a report data source that will be used by the report. Follow the listed steps to create the data source: From the NetBeans toolbar, press the Report Datasources button. You will see the following dialog box: Press New. Select NetBeans Database JDBC connection, and press Next >. Enter inventory in the Name field, and from the Connection drop-down list, select jdbc:mysql://localhost:3306/inventory [root on Default schema]. Press Test, and if the connection is successful, press Save and close the Connections / Datasources dialog box.
Read more
  • 0
  • 0
  • 27718

article-image-roles-alfresco-14
Packt
19 Mar 2010
9 min read
Save for later

Roles In Alfresco 1.4

Packt
19 Mar 2010
9 min read
Roles in Alfresco 1.4   The article explains the basics involved in understanding Alfresco authorization and the means to extend its functionality, for example, to adapt it for any special requirements through configuration files. The concepts explained in the article will be useful for anyone who has started working with Alfresco code. In addition to this, a little step-by-step example towards the end helps you extend the initial Alfresco roles. Read out more in the article written by Alfonso Martin. Once you have started with Alfresco, you will realize that you need to create or expand the default roles included with Alfresco. This task (at this moment) must be done manually through configuration files. Before diving into the Alfresco.war file to search for the property configuration files, you will need to understand a few concepts. This article will introduce you to the basics in Alfresco's role policy. The basic concept in action authorization in Alfresco is that of permission. Permissions dictate when an action can be executed on an object by a user. Key concepts in defining authorization policy in Alfresco are: PermissionSets PermissionGroups Permissions GlobalPermissions Such elements are declared in the permissionDefinitions.xml file, located in WEB‑INF/classes/alfresco/model inside the Alfresco.war file. PermissionSet Collections of permission groups, permissions, and dynamic authorities with common attributes: type: (Mandatory) PermissionSet is defined over a type or aspect. If it is defined over a type, then it is applicable for all objects of that type; if it is defined over an aspect, then it is applicable for all objects that have the same aspect. expose: (Optional) This attribute restricts the domain of Type. If the value is all, it is allowed to apply a PermissionSet to objects, which have a parent that satisfies the Type attribute. Otherwise, if the value is selected, the set is only applied to objects that satisfy Type attribute. All is assumed, if the attribute is undefined. PermissionGroup PermissionGroup defines its behaviour through several attributes: name: (Mandatory) Group identifier. type: (Optional) Same as in permissionSet. extends: Determines if the permissionGroup extends the definition of a previous group with the same name. If undefined, default value is false. expose: Restricts the domain of type, and if true, the permissionGroup will be applied to objects (and derivatives) that satisfy the attribute type. If it is undefined, then false is assumed. allowFullControl: If true, group has all privileges, else the privileges are to be assigned. requiresType: If false, permissionGroup can be applied to any object, otherwise only to objects that satisfies type. If undefined, the default value is true. PermissionGroup can be composed by several permissionGroups, whose sub groups will be identified by name and type. If type is omitted, the parent’s type will be used. Permission A permission is the minimal unit to represent an authorization of an action on an object. It is defined by: name: Permission identifier expose: If true, the permission can be applied to derivative objects, otherwise only to objects defined in a permissionGroup context. Default value is false requiresType: If true, a permission can only be applied to objects defined by its group context. If it is omitted, default is false A permission can require the authorization of other permissions, such permissions are identified by: name type on: Specifies where the permission is required—node, parent, or children. implies: If true, the required permission grants itself the parent’s permission. There can be only one required permission with attribute implies equal to true. If omitted, the default value is false. Inside the permission are the declarations of the permissionGroups that contain said permission. These declarations require existent permissionGroups, and can optionally specify the node types where the permission will be applied will be applied to all nodes. GlobalPermission These kinds of permissions are defined outside a permissionSet, and are applied to all nodes in the hierarchy (irrespective of its type and related aspects). This kind of permission prevails over other permission types. Roles Roles in Alfresco are a special type of permission group, concretely permissionGroups, which are defined in permissionSets applied to nodes of type content. To use these roles in the Alfresco GUI, it is necessary to create appropriate tags in the internationalization files, more specifically, the webclient.properties (this file can vary in function of language/country) and is typically located in WEB‑INF/classes/alfresco/messages Predefined Roles Alfresco defines a few basic roles in the permissionDefinitions.xml. These roles are defined in an incremental manner. First, it creates a Consumer role and then defines the rest of the roles, adding functionality to the Consumer role. Predefined roles are: Consumer: Allows read properties, content, and children of a node. Editor: Adds to consumer privileges the ability to write nodes (properties, content, and children) and execute CheckOuts in nodes with aspect lockable. Contributor: Adds to consumer privileges the possibility of adding children and execute CheckOuts in nodes with aspect lockable. Collaborator: This role has the same capabilities as Contributor and Editor. Coordinator: This role has all privileges including the possibility of taking ownership of nodes, and changing its owner. Administrator: Same as Coordinator, it is defined for backward compatibility. Default Permission Policy After a first check out of the permissionDefinitions.xml file in Alfresco 1.4, you will find five major PermissionSets. These sets establish node permissions across the Content Model hierarchy: It starts with base type, which defines basic low-level permissions. The next set defines permissions for the cmobject node types, which at this level are defined in the permissionGroups and later will be extended by roles. Content nodes have a set, which defines the available roles. In addition to these sets, the permissionDefinitions.xml file includes two other sets. One of these sets is for nodes that have the aspect ownable, and the other is for nodes that have the aspect lockable. The permissions defined in such sets allow the execution of typical specialised actions with these kinds of nodes—Check In, Check Out, Take Ownerships, Change owner, Lock, and Unlock. After PermissionSets, the configuration file declares GlobalPermissions. These permissions will be applied to all nodes, and they have priority over other permission types. At the moment, these permissions are: FullControl: Allows users who have any of these roles—ROLE_ADMINISTRATOR or ROLE_OWNER. Unlock, CheckIn and CancelCheckOut: All these allow users who have their role defined as ROLE_LOCK_OWNER New role definition example: This example is based on ideas explained in one of the Alfresco forums. The case study is the typical context, where three specialized folders are needed—Drafts, Pending approval and Published. Drafts: Stores actual working documents. Pending approval: This folder contains documents whose author(s) has/have requested approbation. Published: Stores final versions of documents. Preconditions There exist two differentiated user groups—Creators and Approvers. Creators have full access to folder Drafts and read access in Published; Approvers have full access to Pending approval and Published. Creators need to move documents from Drafts to Pending approval, but cannot see the folder files. To model this situation, we create two user groups called Creators and Approvers. Then create three spaces Drafts, Pending approval and Published. Each space will have the following configuration: Drafts: Uncheck Inherit Parent Space Permissions checkbox. Invite group Creators with role Collaborator. Pending approval: Uncheck Inherit Parent Space Permissions checkbox. Invite group Approvers with role Coordinator. Published: Uncheck Inherit Parent Space Permissions checkbox. Invite group Approvers with role Coordinator. But as you can see, with this configuration there exists a situation with the prerequisite: Creators need to move documents from Drafts to Pending approval, but cannot see the folder or files. Alfresco does not include any role that satisfies this. So, it lets you create it. Open the permissionDefinitions.xml file. First define a low level permissionGroup called CreateNodes, this group should be defined inside permissionSet with type base; in other words, available for all kinds of nodes. Also inside this set we need to declare the permissions that compose this permission group: In our case only the permission _CreateNodes. ...   <permissionSet type="sys:base" expose="all"> .../p>   <permissionGroup name="CreateNodes" expose="true"   allowFullControl="false"/> ...   <permission name="_CreateChildren" expose="false">     <grantedToGroup permissionGroup="CreateChildren"/>     <grantedToGroup permissionGroup="CreateNodes"/> <!-- New -->   </permission> ...   <permissionSet/> Then we need to define a role called Writer (remember, in set with type content), this role extends the behavior of a permission role declared in the set with type cmobject. The permissionGroup, Writer will include previously defined CreatedNode. ...   <permissionSet type="cm:cmobject" expose="selected"> ...     <permissionGroup name="Writer" allowFullControl="false"                                                        expose="true">       <includePermissionGroup type="sys:base"                                       permissionGroup="CreateNodes"/>     </permissionGroup> ...     <permissionSet/>   <permissionSet type="cm:content" expose="selected"> ...     <permissionGroup name="Writer" extends="true" expose="true"/> ... With these additions, we have created a new role called Writer that will solve our little situation. To be allowed to use it in the Alfresco GUI we need only to add a properly internationalization tag in webclient.properties: Writer=Writer role [...] Writer= OurWriter role And now we can invite the Creators group to the Pending approval space with the Writer role. The creators will be able to move documents from Drafts to Pending approval, but they will not be able to read the folder. The last operation is to add a rule called Request approval in the space Drafts that moves documents from Drafts to the space Pending approval. This is a trivial example for homework where you can try to add rules  in spaces with simple workflows to formalize the process  of  approbations and rejections.
Read more
  • 0
  • 0
  • 2334
Modal Close icon
Modal Close icon