'bicikli_hungary/data', 'callback' => 'bicikli_core_data', 'access' => user_access('access content'), 'type' => MENU_CALLBACK, ); $items[] = array( 'path' => 'biciklik', 'callback' => 'bicikli_core_lista', 'title' => 'Biciklik', 'access' => user_access('access content') ); $items[] = array( 'path' => 'alkatreszek', 'callback' => 'bicikli_alkatresz_lista', 'title' => 'Alkatrészek', 'access' => user_access('bicikli alkatresz bongeszo'), ); $items[] = array( 'path' => 'sajat-biciklik', 'callback' => 'bicikli_core_sajat_lista', 'title' => 'Saját biciklik', 'access' => user_access('access content') ); $items[] = array( 'path' => 'bicikli/szuro-sorrend', 'callback' => 'drupal_get_form', 'callback arguments' => array('bicikli_core_szuro_sorrend'), 'title' => 'Szűrő sorrend', 'access' => user_access('bicikli admin') ); $items[] = array( 'path' => 'bicikli/szuro-advanced', 'callback' => 'drupal_get_form', 'callback arguments' => array('bicikli_core_szuro_advanced'), 'title' => 'Szűrő avanced', 'access' => user_access('bicikli admin') ); $items[] = array( 'path' => 'admin/content/bicikli_alkatresz', 'description' => 'itt lehet megmondani, hogy mely tartalom típusok alkatrészek', 'callback' => 'drupal_get_form', 'callback arguments' => array('bicikli_alkatresz_admin'), 'title' => 'Bicikli alkatrészek', 'access' => user_access('bicikli admin') ); return $items; } function bicikli_core_sajat_lista($uid = 0){ global $user; if($uid ==0){ $uid = $user->uid; } $header = array( 'Bicikli', 'Ár', 'Tevékenységek', ); $res = db_query("SELECT n.nid, n.title, bc.ar FROM {node} n INNER JOIN {bicikli_core} bc ON n.nid=bc.nid WHERE n.uid=%d ORDER BY n.created",$uid); $lines = array(); while($row = db_fetch_object($res)){ $lines[$row->nid][] = l($row->title,'node/'.$row->nid); $lines[$row->nid][] = theme('bicikli_ar',$row->ar); $lines[$row->nid][] = l('Törlés', 'node/'. $row->nid .'/delete') .', '. l('Szerkesztés', 'node/'. $row->nid .'/edit'); } return theme('table',$header,$lines); } function theme_bicikli_ar($ar){ return number_format($ar,0,',',' ') .' Ft'; } function bicikli_core_lista($id = 0,$data = array()){ $output = ''; //form megjelenítése a szűrőkkel $output .= drupal_get_form('bicikli_core_szuro'); if(arg(1) == 'minden bicikli'){ $output .= '
Mivel nem választottál ki biciklit ezért megmutatjuk az összeset!
'; } //lekérés összrakása $where = bicikli_core_get_where(); $sql = "SELECT DISTINCT(n.nid) FROM {node} n LEFT JOIN {bicikli_core} bc ON n.nid=bc.nid".$where; //drupal_set_message('
'. print_r($sql,true) .'
'); //drupal_set_message('
'. print_r(preg_replace('/(DISTINCT\\(.*?\\))/','COUNT(\\1)',$sql),true) .'
'); //lista megjelenítése $res = pager_query($sql,100,0,preg_replace('/(DISTINCT\\(.*?\\))/','COUNT(\\1)',$sql)); $egyse = true; while($row = db_fetch_object($res)){ $egyse = false; $node= node_load($row->nid); if(isset($node->node_images) && is_array($node->node_images) && sizeof($node->node_images)>0){ $img = array_shift($node->node_images); $node->first_image = $img->thumbpath; } // $output .= theme('node',$node,true); } if($egyse && arg(1) != ''){ $output .= '
A keresésnek megfelelő bicikli nincs az adatbázisunkban.
'; } $output .= theme('pager'); return $output; } function theme_bicikli($node){ $output .='
'; if(isset($node->first_image)){ $output .= l('','node/'.$node->nid, array(), NULL, NULL, FALSE, true); } $output .= '

'. l($node->title,'node/'.$node->nid) .'

'; $output .= '
'. $node->body .'
'; $output .= '
'. $node->extrak .'
'; $output .= '
'; //$output .='
'. print_r($node,true) .'
'; return $output; } function theme_bicikli_core_szuro($form){ /* $output .= << .szuro_valaszto .form-item{ width: 150px; float:left; margin: 0; } .szuro_valaszto .form-item select{ width: 140px; float:left; } .szuro_extrak .form-item .form-item{ width: 100px; float:left; margin: 0; } div.szuro_extrak{ clear:both; } div.szuro_valaszto{ clear:both; } div.szuro_valaszto fieldset{ clear:both; } div.bicikli img{ float:left; border: 1px solid #999; margin: 0 5px 5px 0; padding: 4px; backgorund-color: #ccc; } div.bicikli div.extrak{ clear:both; } END; */ $alja = '
'. drupal_render($form['Extrak']) .'
'; $alja .= drupal_render($form['submit']); $output .= '
'. drupal_render($form) .'
'; return $output . $alja; } function bicikli_core_get_where(){ $data = bicikli_core_parse_path(); $taxonomy = bicikli_core_get_term(); $vocabulary = bicikli_core_get_voc(); /* { $joins = ''; $wheres = ''; foreach ($descendant_tids as $index => $tids) { $joins .= ' INNER JOIN {term_node} tn'. $index .' ON n.nid = tn'. $index .'.nid'; $wheres .= ' AND tn'. $index .'.tid IN ('. implode(',', $tids) .')'; } $sql = 'SELECT DISTINCT(n.nid), n.sticky, n.title, n.created FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres .' ORDER BY '. $order; drupal_set_message($sql); $sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n '. $joins .' WHERE n.status = 1 '. $wheres; } tehát az ar megye varos marad, a többit viszont így kell belerakni. Egyelőre, mert el kell gondolkodni az egytáblás megoldáson, hogy gyorslegyen a select. */ $where = array(); $joins = ' '; $where[] = 'n.status=1'; $where[] = "n.type='bicikli'"; $order = ' ORDER BY n.promote DESC,n.sticky DESC, n.created DESC'; $index = 0; $alapi = sizeof($where); foreach($data as $key => $value){ switch($key){ case 'sorrend' : switch($value[0]){ case 'ar' : $order.= ',bc.ar ASC'; break; case 'ard' : $order.= ',bc.ar DESC'; break; case 'ido' : $order.= ',n.created ASC'; break; case 'idod' : $order.= ',n.created DESC'; break; } break; case 'ar' : list($alja,$teteje) = explode('-',$value[0]); if(is_numeric($alja) && is_numeric($teteje) && (int)$alja < (int)$teteje){ $where[] = 'bc.ar>='. (int)$alja .' and bc.ar<='.(int)$teteje; } if(is_numeric($alja) && $teteje === ''){ $where[] = 'bc.ar>='.(int)$alja; } break; case 'megye' : if(is_numeric($value[0])){ $where[] = 'bc.megye='.(int)$value[0]; } //drupal_set_message(print_r($where,true)); break; case 'varos' : if(is_numeric($value[0])){ $where[] = 'bc.varos='.(int)$value[0]; } break; default : if(is_array($value)){ $vid = $vocabulary['name'][$key]; foreach($value as $v){ if(isset($taxonomy['name'][$v][$vid])){ $joins .= ' INNER JOIN {term_node} tn'. $index .' ON n.nid = tn'. $index .'.nid'; $where[] = 'tn'. $index .'.tid='. (int)$taxonomy['name'][$v][$vid]; $index++; //$wheres .= 'tn'. $index .'.tid IN ('. implode(',', $tids) .')'; } } } break; } } /* if(sizeof($where) == $alapi){ $where[] = 'n.promote=1'; }*/ if(arg(1) ==''){ $where[] = 'n.promote=1'; } if(sizeof($where)>0){ return $joins.' WHERE '. join(' and ',$where) . $order; } return ''; } function bicikli_core_szuro(){ // drupal_set_message('
'. print_r(taxonomy_get_vocabularies('bicikli'),true) .'
'); $data = bicikli_core_parse_path(); $form['ar'] = array( '#type' => 'select', '#options' => bicikli_core_get_ar(), '#default_value' => isset($data['ar'])?$data['ar'][0]:bicikli_ALL, '#weight' => variable_get('bicikli_core_ar',0), '#title' => 'Ár', ); $form['megye'] = array( '#type' => 'select', '#title' => 'Megye', '#default_value' => isset($data['megye'])?$data['megye'][0]:bicikli_ALL, '#weight' => variable_get('bicikli_core_megye',0), '#options' => bicikli_get_megye(), ); //ezt kell visszatenni, hogy legyen a keresésnél város. /* $form['varos'] = array( '#type' => 'select', '#title' => 'Város', '#default_value' => isset($data['varos'])?$data['varos'][0]:bicikli_ALL, '#weight' => variable_get('bicikli_core_varos',0), '#options' => bicikli_get_varos(isset($data['megye'])?$data['megye'][0]:bicikli_ALL), );*/ $form['advanced'] = array( '#type' => 'fieldset', '#title' => t('Advanced search'), '#weight' => 99, '#collapsible' => TRUE, '#collapsed' => TRUE, ); $voc = taxonomy_get_vocabularies('bicikli'); $m = 0; foreach($voc as $vid => $vocab){ $name = bicikli_core_get_name($vocab->name); if($vocab->multiple != 1){ $element = array( '#type' => 'select', '#options' => bicikli_core_get_term_options($vid), '#default_value' => isset($data[$name])?$data[$name][0]:bicikli_ALL, '#title' => $vocab->name, '#weight' => $vocab->weight, ); if($vid == variable_get('bicikli_core_advanced', 0)){ $m = $vocab->weight; } if($vocab->weight < $m){ $form[$name] = $element; }else{ $form['advanced'][$name] = $element; } }else{ $form[$name] = array( '#type' => 'checkboxes', '#options' => bicikli_core_get_term_options($vid,true), '#default_value' => isset($data[$name])?$data[$name]:array(), '#title' => $vocab->name, '#weight' => $vocab->weight, ); } } $form['minden'] = array( '#type' => 'hidden', '#value' => 'bicikli', '#weight' => -100, ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Keres', '#weight' => 100, ); return $form; } function bicikli_core_szuro_sorrend(){ $form['ar'] = array( '#type' => 'weight', '#default_value' => variable_get('bicikli_core_ar',0), '#weight' => variable_get('bicikli_core_ar',0), '#title' => 'Ár', ); $form['megye'] = array( '#type' => 'weight', '#default_value' => variable_get('bicikli_core_megye',0), '#weight' => variable_get('bicikli_core_megye',0), '#title' => 'Megye', ); $form['varos'] = array( '#type' => 'weight', '#default_value' => variable_get('bicikli_core_varos',0), '#weight' => variable_get('bicikli_core_varos',0), '#title' => 'Város', ); $voc = taxonomy_get_vocabularies('bicikli'); foreach($voc as $vid => $vocab){ $name = bicikli_core_get_name($vocab->name); $form[$name] = array( '#type' => 'weight', '#default_value' => $vocab->weight, '#title' => $vocab->name, '#weight' => $vocab->weight, ); } $form['submit'] = array( '#type' => 'submit', '#value' => 'Ment', '#weight' => 100, ); return $form; } function bicikli_core_szuro_advanced(){ $max = variable_get('bicikli_core_ar',0); if(variable_get('bicikli_core_megye',0) > $max){$max = variable_get('bicikli_core_megye',0);} if(variable_get('bicikli_core_varos',0) > $max){$max = variable_get('bicikli_core_varos',0);} $voc = taxonomy_get_vocabularies('bicikli'); $vr = array(); foreach($voc as $vid => $vocab){ if ($vocab->multiple == 0){ if($vocab->weight>$max){ $vr[$vid] = $vocab->name; } } } $vr[0] = 'Mindegyik látszik'; $form['bicikli_core_advanced'] = array( '#type' => 'radios', '#title' => t('Advanced'), '#default_value' => variable_get('bicikli_core_advanced', 0), '#options' => $vr, ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Ment', '#weight' => 100, ); return $form; } function bicikli_core_szuro_advanced_submit($id,$form){ //drupal_set_message('
'. print_r($form,true) .'
'); variable_set('bicikli_core_advanced', $form['bicikli_core_advanced']); } function bicikli_core_szuro_sorrend_submit($id,$form){ //drupal_set_message('
'.print_r(  $vocabulary = bicikli_core_get_voc(),true).'
'); $vocabulary = bicikli_core_get_voc(); foreach($form as $name => $value){ //kiszedjük a felesleget if(!in_array($name,array('op','submit','form_id','form_token'))){ if(isset($vocabulary['name'][$name])){ db_query('UPDATE {vocabulary} SET weight=%d WHERE vid=%d',$value,$vocabulary['name'][$name]); }else if($name == 'ar' ||$name == 'varos' ||$name == 'megye'){ variable_set('bicikli_core_'.$name,$value); } } } } function bicikli_core_get_term_options($vid,$multiple = false){ $res = db_query('SELECT * FROM {term_data} WHERE vid = %d ORDER BY weight',$vid); if(!$multiple){ $ret[bicikli_ALL] = bicikli_ALL; } while($row = db_fetch_array($res)){ $ret[bicikli_core_get_name($row['name'])] = $row['name']; } return $ret; } function bicikli_core_parse_path(){ $ret = array(); $i=1; while($arg = arg($i++)){ $part = explode(' ',$arg); $name = array_shift($part); while(sizeof($part)>0){ if(trim($part[0]) !== ''){ $ret[$name][] = array_shift($part); }else{ array_shift($part); } } } return $ret; } function bicikli_core_get_ar(){ //visszaadja a z ár legördülő listát. return array( bicikli_ALL => bicikli_ALL, '0-5000'=>'0-5000', '5000-10000'=>'5000-10000', '10000-20000'=>'10000-20000', '20000-50000'=>'20000-50000', '50000-100000'=>'50000-100000', '100000-'=>'100000-', ); } function bicikli_core_szuro_submit($id,$data){ //drupal_set_message('
'. print_r(parse_ini_file(drupal_get_path('module','bicikli_core') .'/i18n.txt'),true) .'
'); //drupal_set_message('
'. print_r(taxonomy_get_vocabularies('bicikli'),true) .'
'); //drupal_set_message('
'. print_r(bicikli_core_get_term(),true) .'
'); //drupal_set_message('
'. print_r($data,true) .'
');return; $path='biciklik'; //biztos, ami biztos kiszedünk minden nem kellő karaktert. foreach($data as $name => $value){ //kiszedjük a felesleget if(!in_array($name,array('op','submit','form_id','form_token','minden'))){ if(is_array($value)){ //drupal_set_message('
'. print_r($value,true) .'
');return; $rv = array(); foreach($value as $v){ if($v != '0'){ $rv[] = bicikli_core_get_name($v); } } $value = join(' ',$rv); }else{ $value = bicikli_core_get_name($value); } $name = bicikli_core_get_name($name); if($value != bicikli_ALL && $value != ''){ $path.='/'. $name .' '. $value; } } } if(trim($path) == 'biciklik'){ $path .= '/minden bicikli'; } drupal_goto($path); } function bicikli_core_get_extra(){ $res = db_query("SELECT vid FROM {vocabulary} WHERE name='Extrák'"); $ret = db_fetch_object($res); return $ret->vid; } function bicikli_core_get_voc(){ $voc = taxonomy_get_vocabularies('bicikli'); $ret = array(); $ret['id'] = array(); $ret['name'] = array(); foreach ($voc as $id => $data){ $name = bicikli_core_get_name($data->name); $ret['id'][$id]=$name; $ret['name'][$name]=$id; } return $ret; } function bicikli_alkatresz_get_voc(){ $ret = array(); $ret['id'] = array(); $ret['name'] = array(); $alkatresz_tipusok = variable_get('bicikli_alkatresz_tipusok',array()); foreach($alkatresz_tipusok as $key => $val){ $voc = taxonomy_get_vocabularies($key); foreach ($voc as $id => $data){ $name = bicikli_core_get_name($data->name); $ret['id'][$id]=$name; $ret['name'][$name]=$id; } } return $ret; } function bicikli_core_get_term(){ $res = db_query('SELECT * FROM {term_data} ORDER BY tid'); $ret = array(); $ret['id'] = array(); $ret['name'] = array(); while($row = db_fetch_array($res)){ $name = bicikli_core_get_name($row['name']); $id = $row['tid']; $ret['id'][$id]=$name; $ret['name'][$name][$row['vid']] = $id; } return $ret; } function bicikli_core_get_name($name){ $csere = parse_ini_file(drupal_get_path('module','bicikli_core') .'/i18n.txt'); $name = strtr($name,$csere); $name = preg_replace('/[^a-zA-Z0-9-]+/','',$name); return $name; } function bicikli_core_data() { echo drupal_to_js(bicikli_get_varos((int)arg(2))); exit; } function bicikli_core_node_info() { return array( 'bicikli' => array( 'name' => 'Bicikli', 'module' => 'bicikli_core', 'description' => "Bicikli típus", 'has_title' => TRUE, 'title_label' => 'Megnevezés', 'has_body' => TRUE, 'body_label' => 'Leírás', ) ); } function bicikli_core_access($op, $node) { global $user; if ($op == 'create') { // Only users with permission to do so may create this node type. return user_access('create bicikli node'); } // Users who create a node may edit or delete it later, assuming they have the // necessary permissions. if ($op == 'update' || $op == 'delete') { if (user_access('edit own bicikli nodes') && ($user->uid == $node->uid)) { return TRUE; } } } /** * Implementation of hook_perm(). * * Since we are limiting the ability to create new nodes to certain users, * we need to define what those permissions are here. We also define a permission * to allow users to edit the nodes they created. */ function bicikli_core_perm() { return array('create bicikli node', 'edit own bicikli nodes','bicikli admin','bicikli alkatresz bongeszo'); } /** * Implementation of hook_form(). * * Now it's time to describe the form for collecting the information * specific to this node type. This hook requires us to return an array with * a sub array containing information for each element in the form. */ function bicikli_core_form(&$node) { // The site admin can decide if this node type has a title and body, and how // the fields should be labeled. We need to load these settings so we can // build the node form correctly. $type = node_get_types('type', $node); if ($type->has_title) { $form['title'] = array( '#type' => 'textfield', '#title' => check_plain($type->title_label), '#required' => TRUE, '#default_value' => $node->title, '#weight' => -5 ); } if ($type->has_body) { $form['body_filter']['body'] = array( '#type' => 'textarea', '#title' => check_plain($type->body_label), '#default_value' => $node->body, '#required' => ($type->min_word_count > 0), ); $form['body_filter']['format'] = filter_form($node->format); } // Now we define the form elements specific to our node type. $form['ar'] = array( '#type' => 'textfield', '#title' => 'Ár', '#required' => TRUE, '#default_value' => isset($node->ar) ? $node->ar : '', '#description' => 'Ár forintban. A mező csak egész számot tartalmazhat.', ); $form['megye'] = array( '#type' => 'select', '#title' => 'Megye', '#default_value' => isset($node->megye) ? $node->megye : 0, '#options' => bicikli_get_megye(), ); $form['varos'] = array( '#type' => 'select', '#title' => 'Város', '#default_value' => isset($node->varos) ? $node->varos : 0, '#options' => bicikli_get_varos(isset($_POST['megye'])?(int)$_POST['megye']:(isset($node->megye) ? $node->megye : 0)), ); return $form; } function bicikli_get_megye(){ static $megyek = false; if($megyek) {return $megyek;} $res = db_query("SELECT id, nev FROM {bicikli_hungary_telepulesek} WHERE megye=0 ORDER BY nev"); $megyek = array(); $megyek[bicikli_ALL] = bicikli_ALL; while($row = db_fetch_object($res)){ $megyek[$row->id] = $row->nev; } return $megyek; } function bicikli_get_varos($id = 0){ static $v = array(); if(isset($v[$id])) {return $v[$id];} if($id == 0){ $res = db_query("SELECT id, nev FROM {bicikli_hungary_telepulesek} WHERE megye<>0 && megye <>1 ORDER BY nev"); }else{ $res = db_query("SELECT id, nev FROM {bicikli_hungary_telepulesek} WHERE megye=%d ORDER BY nev",$id); } $varosok = array(); $varosok[bicikli_ALL] = bicikli_ALL; while($row = db_fetch_object($res)){ $varosok[$row->id] = $row->nev; } $v[$id] = $varosok; return $varosok; } function bicikli_core_validate(&$node) { if ($node->ar) { if (!preg_match('/^[0-9]+$/',$node->ar)) { form_set_error('ar', 'Az ár egész szám kell, hogy legyen!'); } } else { form_set_error('ar', 'Az árat meg kell adni!'); } } function bicikli_core_validate_alkatresz($form_id,$form) { if ($form['ar']) { if (!preg_match('/^[0-9]+$/',$form['ar'])) { form_set_error('ar', 'Az ár egész szám kell, hogy legyen!'); } } else { form_set_error('ar', 'Az árat meg kell adni!'); } } /** * Implementation of hook_insert(). * * As a new node is being inserted into the database, we need to do our own * database inserts. */ function bicikli_core_insert($node) { db_query("INSERT INTO {bicikli_core} (vid, nid, ar, megye, varos) VALUES (%d, %d, %d, %d, %d)", $node->vid, $node->nid, $node->ar, (int)$node->megye, (int)$node->varos); } /** * Implementation of hook_update(). * * As an existing node is being updated in the database, we need to do our own * database updates. */ function bicikli_core_update($node) { // if this is a new node or we're adding a new revision, if ($node->revision) { bicikli_core_insert($node); } else { db_query("UPDATE {bicikli_core} SET ar = %d, megye = %d, varos = %d WHERE vid = %d", $node->ar, (int)$node->megye, (int)$node->varos, $node->vid); } } /** * Implementation of hook_nodeapi(). * * When a node revision is deleted, we need to remove the corresponding record * from our table. The only way to handle revision deletion is by implementing * hook_nodeapi(). */ function bicikli_core_nodeapi(&$node, $op, $teaser, $page) { switch ($op) { case 'load': $vocabulary = bicikli_core_get_voc(); $e=array(); $to = array(); $e3 = array(); $esz = 0; $evid = bicikli_core_get_extra(); $taxonomy = taxonomy_node_get_terms($node->nid); foreach($taxonomy as $term){ $v = bicikli_core_get_name($vocabulary['id'][$term->vid]); $t = bicikli_core_get_name($term->name); $to[] = l($term->name,'sites/all/html/'. $v .'.html',array('rel'=>'clearbox(425,350,click)', 'title' => $term->name),NULL,$t); if($esz<3 && $term->vid != $evid){ $e3[] = $term->name; $esz ++; } if($term->vid == $evid){ //$e[] = l($term->name,'sites/all/html/'. $v .'.html',array('rel'=>'clearbox(425,350,click)', 'title' => $term->name),NULL,$t); // az extrakon nincs link $e[] = $term->name; } } $node->extrak = join(', ',$e); $node->alltaxonomy = join(', ',$to); $node->elsoharom = join(', ',$e3); $alkatresz_tipusok = variable_get('bicikli_alkatresz_tipusok',array()); if(in_array($node->type,$alkatresz_tipusok)){ $additions = db_fetch_array(db_query('SELECT ar, megye, varos FROM {bicikli_core} WHERE vid = %d', $node->vid)); $megyek = bicikli_get_megye(); $varosok = bicikli_get_varos($additions['megye']); $additions['megye_szoveg'] = $megyek[$additions['megye']]; $additions['varos_szoveg'] = $varosok[$additions['varos']]; return $additions; } break; case 'delete revision': // Notice that we're matching a single revision based on the node's vid. db_query('DELETE FROM {bicikli_core} WHERE vid = %d', $node->vid); break; case 'insert': case 'update': $alkatresz_tipusok = variable_get('bicikli_alkatresz_tipusok',array()); if(in_array($node->type,$alkatresz_tipusok)){ db_query('DELETE FROM {bicikli_core} WHERE nid = %d', $node->nid); db_query("INSERT INTO {bicikli_core} (vid, nid, ar, megye, varos) VALUES (%d, %d, %d, %d, %d)", $node->vid, $node->nid, $node->ar, (int)$node->megye, (int)$node->varos); } break; case 'delete': break; } } /** * Implementation of hook_delete(). * * When a node is deleted, we need to remove all related records from out table. */ function bicikli_core_delete($node) { // Notice that we're matching all revision, by using the node's nid. db_query('DELETE FROM {bicikli_core} WHERE nid = %d', $node->nid); } /** * Implementation of hook_load(). * * Now that we've defined how to manage the node data in the database, we * need to tell Drupal how to get the node back out. This hook is called * every time a node is loaded, and allows us to do some loading of our own. */ function bicikli_core_load($node) { $additions = db_fetch_object(db_query('SELECT ar, megye, varos FROM {bicikli_core} WHERE vid = %d', $node->vid)); $megyek = bicikli_get_megye(); $varosok = bicikli_get_varos($additions->megye); $additions->megye_szoveg = $megyek[$additions->megye]; $additions->varos_szoveg = $varosok[$additions->varos]; $voc = taxonomy_get_vocabularies('bicikli'); foreach($voc as $vid => $vocab){ if($vocab->multiple != 1){ $additions->vocabularys[$vocab->vid] = $vocab->name; } } return $additions; } /** * Implementation of hook_view(). * * This is a typical implementation that simply runs the node text through * the output filters. */ function bicikli_core_view($node, $teaser = FALSE, $page = FALSE) { $node = node_prepare($node, $teaser); /* ár, város, megye. $node->content['myfield'] = array( '#value' => theme('bicikli_core_order_info', $node), '#weight' => 1, ); */ return $node; } /** * Implementation of hook_theme(). * * This lets us tell Drupal about our theme functions and their arguments. */ function bicikli_core_theme() { /*return array( 'bicikli_core_order_info' => array( 'arguments' => array('node'), ), );*/ } function bicikli_core_get_taxonomy(){ /* $filter['ar'] = array( '#type' => 'options', '#options' => array( 0 => '0 - 1000', 1 => '1000 - 10 000', 2 => '10 000 - 100 000', 3 => '100 000 - ', ), );*/ $filter[''] = array( '#type' => 'tid', '#tid' => 0, ); $filter[''] = array( '#type' => 'tid', '#tid' => 0, ); $filter[''] = array( '#type' => 'tid', '#tid' => 0, ); } function bicikli_core_form_alter($form_id, &$form){ // a deltát felnöveljük 30-ra. //drupal_set_message('
'. print_r($form['#node']->ar,true) .'
'); // return; // _node_form drupal_set_message(substr($form_id,-10)); //drupal_set_message(substr($form_id,0,-10)); if(substr($form_id,-10) == '_node_form'){ $alkatresz_tipusok = variable_get('bicikli_alkatresz_tipusok',array()); if(in_array(substr($form_id,0,-10),$alkatresz_tipusok)){ //alkatrész típus, hozzáadjuk az árat, megyét, várost. $form['ar'] = array( '#type' => 'textfield', '#title' => 'Ár', '#required' => TRUE, '#default_value' => isset($form['#node']->ar) ? $form['#node']->ar : '', '#description' => 'Ár forintban. A mező csak egész számot tartalmazhat.', ); $form['megye'] = array( '#type' => 'select', '#title' => 'Megye', '#default_value' => isset($form['#node']->megye) ? $form['#node']->megye : 0, '#options' => bicikli_get_megye(), ); $form['varos'] = array( '#type' => 'select', '#title' => 'Város', '#default_value' => isset($form['#node']->varos) ? $form['#node']->varos : 0, '#options' => bicikli_get_varos(isset($_POST['megye'])?(int)$_POST['megye']:(isset($form['#node']->megye) ? $form['#node']->megye : 0)), ); $form['#validate'] = array('bicikli_core_validate_alkatresz' => array('ar')); } } foreach($form as $key => $input){ if(is_array($input) && isset($input['#type']) && $input['#type']=='weight' && $input['#delta'] < 10){ $form[$key]['#delta'] = 30; } } if(isset($form['taxonomy'][29])){ $form['taxonomy'][29]['#type'] = 'checkboxes'; $options = array(); if(is_array($form['taxonomy'][29]['#options'])){ foreach($form['taxonomy'][29]['#options'] as $akey => $value){ if(is_array($value->option)){ foreach($value->option as $key =>$val){ $options[$key] = $val; } } } } unset($form['taxonomy'][29]['#theme']); $form['taxonomy'][29]['#options'] = $options; } if($form_id == 'contact_mail_user'){ $bicaj = node_load((int)arg(3)); if($bicaj){ $form['subject']['#default_value'] = $bicaj->title; } } } function bicikli_alkatresz_admin(){ //drupal_set_message(print_r(taxonomy_get_vocabularies(),true)); $node_types = node_get_types(); $options = array(); foreach($node_types as $node_type){ $options[$node_type->type] = $node_type->name; } $form['#description'] = 'Állítsd be mely tartalom típusok alkatrészek'; $form['types'] = array( '#type' => 'checkboxes', '#title' => 'Tartalom típusok', '#options' => $options, '#description' => 'Állítsd be mely tartalom típusok alkatrészek', '#default_value' => variable_get('bicikli_alkatresz_tipusok',array()), ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Mentés', ); return $form; } function bicikli_alkatresz_admin_submit($form_id,$form){ foreach($form['types'] as $key => $val){ if($key !== $val){unset($form['types'][$key]);} } variable_set('bicikli_alkatresz_tipusok',$form['types']); } function bicikli_alkatresz_lista(){ $output = ''; $output .= drupal_get_form('bicikli_alkatresz_kereso_form'); $terms = bicikli_core_get_term(); $vocabularys = bicikli_alkatresz_get_voc(); $where = array(); $values = array(); $fajta = $vocabularys['name'][arg(1)]; $tipus = $terms['name'][arg(2)][$fajta]; //drupal_set_message($tipus); if($tipus != 0){ $where [] = 'tn.tid=%d'; $values[] = $tipus; } $ar = arg(3); list($alja,$teteje) = explode('-',$ar); if(is_numeric($alja) && is_numeric($teteje) && (int)$alja < (int)$teteje){ $where[] = 'bc.ar>=%d and bc.ar<=%d'; $values[] = $alja; $values[] = $teteje; } if(is_numeric($alja) && $teteje === ''){ $where[] = 'bc.ar>=%d'; $values[] = $alja; } $megye = arg(4); if(is_numeric($megye)){ $where[] = 'bc.megye=%d'; $values[] = $megye; } if(count($where) != 0){ $sql = "SELECT bc.nid FROM {node} as n JOIN {bicikli_core} bc ON n.nid=bc.nid JOIN {term_node} tn ON bc.nid = tn.nid WHERE ". join(' AND ',$where) ." ORDER BY n.promote DESC,n.sticky DESC, n.created DESC"; //drupal_set_message($sql); $res = pager_query($sql,100,0,NULL,$values); $egyse = true; while($row = db_fetch_object($res)){ $egyse = false; $node= node_load($row->nid); if(isset($node->node_images) && is_array($node->node_images) && sizeof($node->node_images)>0){ $img = array_shift($node->node_images); $node->first_image = $img->thumbpath; } $output .= theme('node',$node,true); } if($egyse && arg(1) != ''){ $output .= '
A keresésnek megfelelő alkatrész nincs az adatbázisunkban.
'; } $output .= theme('pager'); } return $output; } function bicikli_alkatresz_kereso_form(){ drupal_add_js(drupal_get_path('module', 'bicikli_core') .'/bicikli_alkatresz.js'); $terms = bicikli_core_get_term(); $vocabularys = bicikli_alkatresz_get_voc(); $fajta = $vocabularys['name'][arg(1)]; $tipus = $terms['name'][arg(2)][$fajta]; $alkatresz_tipusok = variable_get('bicikli_alkatresz_tipusok',array()); $voc = taxonomy_get_vocabularies(); $termr = array(); foreach($voc as $v){ if(count(array_intersect($alkatresz_tipusok,$v->nodes))>0){ $res = db_query("SELECT * FROM {term_data} WHERE vid=%d",$v->vid); $tids = array(0 => '--Válassz!--'); while($row = db_fetch_array($res)){ $tids[$row['tid']] = $row['name']; } $form['term_'.$v->vid] = array( '#type' => 'select', '#title' => $v->name, '#options' => $tids, '#default_value' => $tipus, ); $termr[$v->vid] = $v->name; } } $form['terms'] = array( '#type' => 'select', '#title' => 'Alkatrész fajta', '#options' => $termr, '#default_value' => $fajta, ); $form['ar'] = array( '#type' => 'select', '#options' => bicikli_core_get_ar(), '#default_value' => arg(3), '#weight' => variable_get('bicikli_core_ar',0), '#title' => 'Ár', ); $form['megye'] = array( '#type' => 'select', '#title' => 'Megye', '#default_value' => arg(4), '#weight' => variable_get('bicikli_core_megye',0), '#options' => bicikli_get_megye(), ); $form['submit'] = array( '#type' => 'submit', '#value' => 'Keresés', ); return $form; } function bicikli_alkatresz_kereso_form_validate($form_id,$form){ // drupal_set_message('
'. print_r($form,true) .'
'); if(!is_numeric($form['terms']) || $form['terms'] == 0){ form_set_error('terms','Válasszon alkartrész fajtát!'); }else{ if($form['term_'. $form['terms']] == 0){ form_set_error('term_'. $form['terms'],'Válasszon alkartrész típust!'); } } } function bicikli_alkatresz_kereso_form_submit($form_id,$form){ $terms = bicikli_core_get_term(); $vocabularys = bicikli_alkatresz_get_voc(); $path[] = 'alkatreszek'; $path[] = $vocabularys['id'][$form['terms']]; $path[] = $terms['id'][$form['term_'. $form['terms']]]; $path[] = $form['ar']; $path[] = $form['megye']; drupal_goto(join('/',$path)); } Contract Correct Shifting Firm in Bangalore for Quick and Easy Relocation | Kerékpárpiac - Használt és új kerékpárok

Contract Correct Shifting Firm in Bangalore for Quick and Easy Relocation

Emailcím: contact2etscm@gmail.com

Hire Right Packers and Movers Bangalore for Easy and Simple Shifting

Packers and movers Pune
Packers and movers Mumbai
Packers and movers Bangalore

Either you want to change from one street to another within the location of Bangalore or want to shift using this city to another city of Indian or abroad; hiring one of the good quality packers and movers in Bangalore would be a great decision help to make relocation easy and simple. That is but clear that you hire a professional packers and movers company to have hassle-free and tension-free relocation experience. An individual hire mover to have safe and on time transportation of your belongings at your new location door step. You pay your hard-earned money to movers to finish new house purchase tasks perfectly. Hence it is imperative to seek the services of the right movers and packers in Bangalore to have truly hassle-free and comfortable relocation experience.

There are several professional moving companies or packers and movers in the location of Bangalore to choose from. All companies are claiming that they are best in the industry and offering best services for moving best case scenario & highly competitive price. But it is your responsibility to learn the right mover for your home shift. You must to research work with some of good quality or recommended companies before employing the one. Here are a few helpful tips which might help you choose the right Packers and Movers Bangalore at best price.

The first thing you need to do is developing a set of top quality moving companies of Bangalore. This can be done easily by getting tips from your friends, relatives, co-workers and neighbors who have earlier used the services of professional movers and packers in Bangalore for their different relocation and shifting needs. You may also take benefit of online portals. Presently there are several online sites that delivers a set of good quality moving companies of Bangalore. Such portals can also provide you free quotes. You can also search on the internet to find information about good Bangalore moving companies everbody knows well that internet is the greatest source to gather information about anything in the world. A person can also go through ads published at your local newspapers, yellowpages or magazines. Whatever source you prefer, the key thing to do is creating a set of good quality packers and movers companies of Bangalore to begin your research with.

Start your research with at least 10 companies. Check their credibility on your own. Visit their offices personally or make phone calls to them. Take them into questions in order to ensure actually insured, licensed, registered, experienced, reputed and trustworthy. Avoid go will lowest price quotes as it does not guarantee to get the best mover and quality services. Of course you should hire affordable mover for your move as you have limited budget but you should also keep in mind that mover must be covered by insurance, qualified and experienced. A person must ensure that the mover will properly match your relocation needs within your budget. You should ask movers for their previous customers' information. Avoid forget to cross check references.

Narrow down your list excluding those companies who will be not registered, covered by insurance and experienced. Have at least top three companies in your final shortlisted list. Invite these 3 moving companies of Bangalore to your current spot to get in-home estimates. Create sure they come to your current place at different times or days. Demonstrate to them all of your sorted possessions that you simply really want to transfer to your brand-new place. Don't hide anything. Ask for binding estimate always. Don't get moving quotations within the phone calls only. You should also secure a written copy. Compare these three quotes on your own. Evaluate and cross check these quotes. Compare services and prices as well. Make final decision intelligently to choose the right movers and packers in Bangalore that will flawlessly and flawlessly match your shifting needs at the dimensions of your pocket. You should never go beyond your budget.

I hope this informative article will give you a fair idea about selecting the most appropriate packers and movers in Bangalore at affordable price.

Vissza a lap tetejére