public function actionEditMeta(array $variables = array())
{
if (isset($variables['locale'])) {
$locale = $variables['locale'];
} else {
$locale = craft()->language;
}
$siteMeta = craft()->seomatic->getSiteMeta($locale);
$titleLength = craft()->config->get("maxTitleLength", "seomatic");
if ($siteMeta['siteSeoTitlePlacement'] == "none") {
$variables['titleLength'] = $titleLength;
} else {
$variables['titleLength'] = $titleLength - strlen(" | ") - strlen($siteMeta['siteSeoName']);
}
if (empty($variables['meta'])) {
if (!empty($variables['metaId'])) {
$variables['meta'] = craft()->seomatic->getMetaById($variables['metaId'], $locale);
/* -- If we have a metaId but nothing is returned for that locale, make a new element/record using that elementId */
if (!$variables['meta']) {
/*
$variables['meta'] = new Seomatic_MetaModel();
$variables['meta']['locale'] = $locale;
$variables['meta']['elementId'] = $variables['metaId'];
*/
throw new HttpException(404);
}
} else {
$variables['meta'] = new Seomatic_MetaModel();
$variables['meta']['locale'] = $locale;
}
}
// Whether any assets sources exist
$sources = craft()->assets->findFolders();
$variables['assetsSourceExists'] = count($sources);
$variables['transformsList'] = craft()->seomatic->getTransformsList();
// URL to create a new assets source
$variables['newAssetsSourceUrl'] = UrlHelper::getUrl('settings/assets/sources/new');
// Set asset ID
$variables['seoImageId'] = $variables['meta']->seoImageId;
// Set asset elements
if ($variables['seoImageId']) {
if (is_array($variables['seoImageId'])) {
$variables['seoImageId'] = $variables['seoImageId'][0];
}
$asset = craft()->elements->getElementById($variables['seoImageId']);
$variables['elements'] = array($asset);
} else {
$variables['elements'] = array();
}
// Set asset ID
$variables['seoTwitterImageId'] = $variables['meta']->seoTwitterImageId;
// Set asset elements
if ($variables['seoTwitterImageId']) {
if (is_array($variables['seoTwitterImageId'])) {
$variables['seoTwitterImageId'] = $variables['seoTwitterImageId'][0];
}
$asset = craft()->elements->getElementById($variables['seoTwitterImageId']);
$variables['elementsTwitter'] = array($asset);
} else {
$variables['elementsTwitter'] = array();
}
// Set asset ID
$variables['seoFacebookImageId'] = $variables['meta']->seoFacebookImageId;
// Set asset elements
if ($variables['seoFacebookImageId']) {
if (is_array($variables['seoFacebookImageId'])) {
$variables['seoFacebookImageId'] = $variables['seoFacebookImageId'][0];
}
$asset = craft()->elements->getElementById($variables['seoFacebookImageId']);
$variables['elementsFacebook'] = array($asset);
} else {
$variables['elementsFacebook'] = array();
}
// Set element type
$variables['elementType'] = craft()->elements->getElementType(ElementType::Asset);
// Tabs
$variables['tabs'] = array();
if (!$variables['meta']->id) {
$variables['title'] = Craft::t('Untitled Meta');
} else {
$variables['title'] = $variables['meta']->title;
}
// Breadcrumbs
$variables['crumbs'] = array(array('label' => Craft::t('SEO Template Meta'), 'url' => UrlHelper::getUrl('seomatic/meta')));
// Set the "Continue Editing" URL
$variables['continueEditingUrl'] = 'seomatic/meta/{id}/{locale}';
// Render the template!
$this->renderTemplate('seomatic/meta/_edit', $variables);
}