public static function setMeta($contentTypeId, $objectId, $metaKeys = false, $metaValues = false) { // metaları bul if (!is_array($metaKeys)) { $metaKeys = array(); // meta_ foreach ($metaValues as $key => $value) { if (substr($key, 0, 5) == 'meta_') { $metaKeys[] = $key; } } } if (is_array($metaKeys) && is_array($metaValues)) { foreach ($metaKeys as $key) { if (!isset($metaValues[$key])) { continue; } $meta = PjangoMeta::getMeta($contentTypeId, $objectId, $key); if (!$meta) { $meta = new PjangoMeta(); } $meta->content_type_id = $contentTypeId; $meta->site_id = SITE_ID; $meta->object_id = $objectId; $meta->meta_key = $key; if (is_array($metaValues[$key])) { $meta->meta_value = serialize($metaValues[$key]); } else { $meta->meta_value = $metaValues[$key]; } $meta->save(); } } }
function admin_addchange($request, $taxonomy = 'Post', $id = false) { $templateArr = array('current_admin_menu' => $taxonomy, 'current_admin_submenu' => $taxonomy, 'current_admin_submenu2' => 'Post', 'title' => __($taxonomy . ' Properties')); $modelAdminClass = sprintf('%s\\Models\\PostAdmin', $taxonomy); $modelClass = 'Post'; $modelUrl = sprintf('%s/admin/%s/Post/', pjango_ini_get('SITE_URL'), $taxonomy); $formClass = 'Pjango\\Contrib\\Post\\Forms\\PostForm'; $formData = array(); $contentType = ContentType::get_for_model($modelClass, $taxonomy); if (class_exists($modelAdminClass)) { $modelAdmin = new $modelAdminClass(); } else { $modelAdmin = new Pjango\Contrib\Post\Models\PostAdmin(); } if (file_exists(APPLICATION_PATH . '/apps/' . $taxonomy . '/Forms/PostForm.php')) { $formClass = sprintf('%s\\Forms\\PostForm', $taxonomy); } $templateArr['third_level_navigation'] = $modelAdmin->get_third_level_navigation('edit', $modelUrl); if ($id) { $addchangeObj = Doctrine_Query::create()->from('Post o')->leftJoin('o.Translation t')->addWhere('o.id = ?', array($id))->fetchOne(); if ($addchangeObj) { $templateArr['addchange_obj'] = $addchangeObj; $formData = $addchangeObj->toArray(); $lng = pjango_ini_get('LANGUAGE_CODE'); $formData['title'] = $addchangeObj->Translation[$lng]->title; $formData['content'] = $addchangeObj->Translation[$lng]->content; $formData['excerpt'] = $addchangeObj->Translation[$lng]->excerpt; $formData['slug'] = $addchangeObj->Translation[$lng]->slug; if ($addchangeObj->Categories && count($addchangeObj->Categories) > 0) { foreach ($addchangeObj->Categories as $categoryItem) { $formData['categories'][] = $categoryItem->id; } } $metaData = PjangoMeta::getMeta($contentType->id, $addchangeObj->id); foreach ($metaData as $metaDataItem) { $formData[$metaDataItem->meta_key] = $metaDataItem->meta_value; } $templateArr['third_level_navigation'] = $modelAdmin->get_third_level_navigation('edit', $modelUrl, $id); } } if ($request->POST) { $form = new $formClass($taxonomy, $request->POST); try { if (!$form->is_valid()) { throw new Exception('There are incomplete required fields. Please complete them.'); } $formData = $form->cleaned_data(); if (!$addchangeObj) { $addchangeObj = new $modelClass(); } $lng = pjango_ini_get('LANGUAGE_CODE'); $addchangeObj->fromArray($formData); $addchangeObj->save(); $addchangeObj->Translation[$lng]->title = stripslashes($request->POST['title']); $addchangeObj->Translation[$lng]->content = stripslashes($request->POST['content']); $addchangeObj->Translation[$lng]->excerpt = stripslashes($request->POST['excerpt']); $addchangeObj->Translation[$lng]->slug = stripslashes($request->POST['slug']); $addchangeObj->post_type = $taxonomy; $addchangeObj->site_id = SITE_ID; $addchangeObj->created_by = $request->user->id; $addchangeObj->unlink('Categories'); $addchangeObj->link('Categories', $formData['categories']); if (class_exists('Menu')) { if (intval($formData['meta_menu_location_id']) > 0) { $parentMenu = Doctrine::getTable('Menu')->find($formData['meta_menu_location_id']); if ($parentMenu) { $deletedRows = Doctrine_Query::create()->delete('Menu o')->where('o.site_id = ? AND o.id = ?', array(SITE_ID, $formData['meta_menu_id']))->execute(); $menu = new \Menu(); $menu->Translation[$lng]->name = $formData['title']; $menu->Translation[$lng]->slug = $formData['slug']; $menu->url = '/' . $formData['slug']; $menu->site_id = SITE_ID; $menu->save(); $menu->getNode()->insertAsLastChildOf($parentMenu); $request->POST['meta_menu_id'] = $menu->id; } } else { $deletedRows = Doctrine_Query::create()->delete('Menu o')->where('o.site_id = ? AND o.id = ?', array(SITE_ID, $formData['meta_menu_id']))->execute(); } } $addchangeObj->save(); PjangoMeta::setMeta($contentType->id, $addchangeObj->id, false, $request->POST); Messages::Info(pjango_gettext('The operation completed successfully')); HttpResponseRedirect('/admin/' . $taxonomy . '/' . $modelClass . '/'); } catch (Exception $e) { Messages::Error($e->getMessage()); } } if (!$form) { $form = new $formClass($taxonomy, $formData); } $templateArr['addchange_form'] = $form; $templateArr['taxonomy'] = $taxonomy; if (is_file(sprintf('%s/templates/%s/admin/addchange.html', SITE_PATH, strtolower($taxonomy)))) { $templateFile = sprintf('%s/admin/addchange.html', strtolower($taxonomy)); } else { if (is_file(sprintf('%s/apps/%s/Templates/%s/admin/addchange.html', APPLICATION_PATH, $taxonomy, strtolower($taxonomy)))) { $templateFile = sprintf('%s/admin/addchange.html', strtolower($taxonomy)); } else { $templateFile = 'admin/addchange.html'; } } render_to_response($templateFile, $templateArr); }
function app_meta($request, $app_label = false, $model = false, $id = false) { $templateArr = array('current_admin_menu' => $app_label, 'current_admin_submenu' => $model, 'current_admin_submenu2' => $model, 'title' => __($model . ' Meta')); $modelAdminClass = sprintf('%s\\Models\\%sAdmin', $app_label, $model); $modelAdmin = new $modelAdminClass(); $modelUrl = sprintf('%s/admin/%s/%s/', pjango_ini_get('SITE_URL'), $app_label, $model); $modelClass = $model; $formClass = sprintf('%s\\Forms\\%sMetaForm', $app_label, $model); $formData = array(); $contentType = ContentType::get_for_model($modelClass, $app_label); if ($id) { $modelObj = Doctrine_Query::create()->from($modelClass . ' o')->where('o.id = ?', $id)->fetchOne(); if ($modelObj) { $metaData = PjangoMeta::getMeta($contentType->id, $modelObj->id); foreach ($metaData as $metaDataItem) { $formData[$metaDataItem->meta_key] = $metaDataItem->meta_value; } } } if ($request->POST) { PjangoMeta::setMeta($contentType->id, $modelObj->id, false, $request->POST); Messages::Info(pjango_gettext('The operation completed successfully')); HttpResponseRedirect(sprintf('/admin/%s/%s/%d/edit/', $app_label, $model, $modelObj->id)); } if (!$form) { $form = new $formClass($formData); } $templateArr['addchange_form'] = $form; $templateArr['third_level_navigation'] = $modelAdmin->get_third_level_navigation('meta', $modelUrl, $id); render_to_response('admin/addchange.html', $templateArr); }