Answers.Body: <p>The URL formula is different for each CMS. The most accurate approach is to open a CiviCRM page and examine its URL. For example, I logged into the public demo sites for v4.5, navigated to "Contributions => Dashboard", and the URL of each page:</p>
  
  <ul>
  <li>WordPress: <a href="http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/contribute&amp;reset=1">http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/contribute&amp;reset=1</a></li>
  <li>Drupal: <a href="http://d45.demo.civicrm.org/civicrm/contribute?reset=1">http://d45.demo.civicrm.org/civicrm/contribute?reset=1</a></li>
  <li>Joomla: <a href="http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&amp;task=civicrm/contribute&amp;reset=1">http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&amp;task=civicrm/contribute&amp;reset=1</a></li>
  </ul>
  
  <p>All of these are displaying the same logical page, which is canonically identified as "civicrm/contribute". However, each CMS requires a slightly different prefix to it. You can construct URLs for other pages by swapping the "civicrm/contribute" part. So csvimporter's page (if it were installed) would be:</p>
  
  <ul>
  <li>WordPress: <a href="http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/csvimporter/import&amp;reset=1">http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/csvimporter/import&amp;reset=1</a></li>
  <li>Drupal: <a href="http://d45.demo.civicrm.org/civicrm/csvimporter/import?reset=1">http://d45.demo.civicrm.org/civicrm/csvimporter/import?reset=1</a></li>
  <li>Joomla: <a href="http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&amp;task=civicrm/csvimporter/import&amp;reset=1">http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&amp;task=civicrm/csvimporter/import&amp;reset=1</a></li>
  </ul>
  
  <p>It doesn't seem like a good idea to ask an extension-user to figure out this URL by themselves. Instead, the extension should compute the URL and display it. This can be done with CRM_Utils_System::url() -- e.g. "CRM_Utils_System::url('civicrm/csvimporter/import')".</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-03-28T03:04:57.287Z
Answers.Text: To complicate matters, the CMS is not always installed at docroot. This means there be one or more levels between the domain name and the rest of the urls in Tim's answer. For example, the drupal/ in http://d45.demo.civicrm.org/drupal/civicrm/csvimporter/import?reset=1
Answers.UserDisplayName: Joe Murray
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-03-28T01:40:24.423Z
Answers.LastActivityDate: 2015-03-28T01:40:24.423Z
Answers.UserDisplayName: Tim Otten
Answers.Body: <p>You may need to set up two things for your extensions, and you need to convert the shortform 'URL' provided into a full URL that goes to correct page under your CMS. The image appears to indicate you're running WordPress so I am using URLs for that CMS.</p>
  
  <ol>
  <li>Navigate to Administer > System Settings > Directories (<a href="http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/admin/setting/path&amp;reset=1" rel="nofollow">http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/admin/setting/path&amp;reset=1</a>). Copy the value from CUstom Files field to CiviCRM Extensions Directory field, and change the last level of the directory name from /custom/ to /extensions/ . The value will likely be /wp-content/plugins/files/civicrm/extensions/ . You need to create this directory and ensure it is writeable by the webserver process.</li>
  <li>Navigate to Administer > System Settings > Resource URLs (<a href="http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/admin/setting/url&amp;reset=1" rel="nofollow">http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/admin/setting/url&amp;reset=1</a>. In Extension resource URL, enter <a href="http://yourWordpressSite.org/wp-content/plugins/files/civicrm/extensions/" rel="nofollow">http://yourWordpressSite.org/wp-content/plugins/files/civicrm/extensions/</a></li>
  </ol>
  
  <p>Once you are done this, the extensions should be working. Now you just need to navigate to their page. To do this on a WordPress site you need to insert the shortform 'URL' provided in your instructions into a specific part of the full URL for you site. While on a URL for a CiviCRM part of your site, replace everything from &amp;q= to the end with the shortform 'URL', then append &amp;reset=1 . The result should be something like <a href="http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/csvimporter/import&amp;reset=1" rel="nofollow">http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&amp;q=civicrm/csvimporter/import&amp;reset=1</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-03-28T03:39:24.193Z
Answers.LastActivityDate: 2015-03-28T03:39:24.193Z
Answers.UserDisplayName: Joe Murray
Body: <p>I've installed the <a href="https://github.com/eileenmcnaughton/nz.co.fuzion.csvimport" rel="nofollow noreferrer">API CSV import GUI extension</a> extension which directs you to  "go to the url civicrm/csvimporter/import" to go to the import page, but when I go to Mysite.com/civicrm/csvimporter/import I get an empty page.</p>
  
  <p>I'm having a similar error with <a href="https://github.com/TechToThePeople/civisualize" rel="nofollow noreferrer">Civivisualize</a> which directs you to go to "yoursite.org/civicrm/dataviz". In both cases I'm getting the a blank page.
  <img src="https://i.sstatic.net/0bnSj.png" alt="enter image description here"></p>
  
  <p>What am I missing here?</p>
  
  <p>=====</p>
  
  <p>I'm on CiviCRM 4.5.5 and Wordpress 4.1.1</p>
  
Tags: <wordpress><extension><urls>
Title: What is the root url needed for extension pages?
ThreadText: # What is the root url needed for extension pages?
  
  (Asked by: username_0 on 2015-03-28)
  
  I've installed the [API CSV import GUI extension](https://github.com/eileenmcnaughton/nz.co.fuzion.csvimport) extension which directs you to "go to the url civicrm/csvimporter/import" to go to the import page, but when I go to Mysite.com/civicrm/csvimporter/import I get an empty page.
  
  I'm having a similar error with [Civivisualize](https://github.com/TechToThePeople/civisualize) which directs you to go to "yoursite.org/civicrm/dataviz". In both cases I'm getting the a blank page.
  ![enter image description here](https://i.sstatic.net/0bnSj.png)
  
  What am I missing here?
  
  =====
  
  I'm on CiviCRM 4.5.5 and Wordpress 4.1.1
  
  **Tags:** wordpress, extension, urls
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2015-03-28. Score: 8
  
  The URL formula is different for each CMS. The most accurate approach is to open a CiviCRM page and examine its URL. For example, I logged into the public demo sites for v4.5, navigated to "Contributions => Dashboard", and the URL of each page:
  
  * WordPress: <http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/contribute&reset=1>
  * Drupal: <http://d45.demo.civicrm.org/civicrm/contribute?reset=1>
  * Joomla: <http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&task=civicrm/contribute&reset=1>
  
  All of these are displaying the same logical page, which is canonically identified as "civicrm/contribute". However, each CMS requires a slightly different prefix to it. You can construct URLs for other pages by swapping the "civicrm/contribute" part. So csvimporter's page (if it were installed) would be:
  
  * WordPress: <http://wp45.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/csvimporter/import&reset=1>
  * Drupal: <http://d45.demo.civicrm.org/civicrm/csvimporter/import?reset=1>
  * Joomla: <http://joomla.demo.civicrm.org/administrator/?option=com_civicrm&task=civicrm/csvimporter/import&reset=1>
  
  It doesn't seem like a good idea to ask an extension-user to figure out this URL by themselves. Instead, the extension should compute the URL and display it. This can be done with CRM\_Utils\_System::url() -- e.g. "CRM\_Utils\_System::url('civicrm/csvimporter/import')".
  
  > **Comments:**
  > **username_2**: To complicate matters, the CMS is not always installed at docroot. This means there be one or more levels between the domain name and the rest of the urls in Tim's answer. For example, the drupal/ in http://d45.demo.civicrm.org/drupal/civicrm/csvimporter/import?reset=1  
  
  ---
  
  ### Answer by username_2 on 2015-03-28. Score: 2
  
  You may need to set up two things for your extensions, and you need to convert the shortform 'URL' provided into a full URL that goes to correct page under your CMS. The image appears to indicate you're running WordPress so I am using URLs for that CMS.
  
  1. Navigate to Administer > System Settings > Directories (<http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/path&reset=1>). Copy the value from CUstom Files field to CiviCRM Extensions Directory field, and change the last level of the directory name from /custom/ to /extensions/ . The value will likely be /wp-content/plugins/files/civicrm/extensions/ . You need to create this directory and ensure it is writeable by the webserver process.
  2. Navigate to Administer > System Settings > Resource URLs (<http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/url&reset=1>. In Extension resource URL, enter <http://yourWordpressSite.org/wp-content/plugins/files/civicrm/extensions/>
  
  Once you are done this, the extensions should be working. Now you just need to navigate to their page. To do this on a WordPress site you need to insert the shortform 'URL' provided in your instructions into a specific part of the full URL for you site. While on a URL for a CiviCRM part of your site, replace everything from &q= to the end with the shortform 'URL', then append &reset=1 . The result should be something like <http://yourWordpressSite.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/csvimporter/import&reset=1>
  
  
  ---
  
  