1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990 |
- <?php
- function hook_hook_info() {
- $hooks['token_info'] = array(
- 'group' => 'tokens',
- );
- $hooks['tokens'] = array(
- 'group' => 'tokens',
- );
- return $hooks;
- }
- function hook_hook_info_alter(&$hooks) {
-
-
- $hooks['token_info']['group'] = 'mytokens';
- $hooks['tokens']['group'] = 'mytokens';
- }
- function hook_entity_info() {
- $return = array(
- 'node' => array(
- 'label' => t('Node'),
- 'controller class' => 'NodeController',
- 'base table' => 'node',
- 'revision table' => 'node_revision',
- 'uri callback' => 'node_uri',
- 'fieldable' => TRUE,
- 'translation' => array(
- 'locale' => TRUE,
- ),
- 'entity keys' => array(
- 'id' => 'nid',
- 'revision' => 'vid',
- 'bundle' => 'type',
- 'language' => 'language',
- ),
- 'bundle keys' => array(
- 'bundle' => 'type',
- ),
- 'bundles' => array(),
- 'view modes' => array(
- 'full' => array(
- 'label' => t('Full content'),
- 'custom settings' => FALSE,
- ),
- 'teaser' => array(
- 'label' => t('Teaser'),
- 'custom settings' => TRUE,
- ),
- 'rss' => array(
- 'label' => t('RSS'),
- 'custom settings' => FALSE,
- ),
- ),
- ),
- );
-
-
- if (module_exists('search')) {
- $return['node']['view modes'] += array(
- 'search_index' => array(
- 'label' => t('Search index'),
- 'custom settings' => FALSE,
- ),
- 'search_result' => array(
- 'label' => t('Search result highlighting input'),
- 'custom settings' => FALSE,
- ),
- );
- }
-
-
- foreach (node_type_get_names() as $type => $name) {
- $return['node']['bundles'][$type] = array(
- 'label' => $name,
- 'admin' => array(
- 'path' => 'admin/structure/types/manage/%node_type',
- 'real path' => 'admin/structure/types/manage/' . str_replace('_', '-', $type),
- 'bundle argument' => 4,
- 'access arguments' => array('administer content types'),
- ),
- );
- }
- return $return;
- }
- function hook_entity_info_alter(&$entity_info) {
-
-
- $entity_info['node']['controller class'] = 'MyCustomNodeController';
- }
- function hook_entity_load($entities, $type) {
- foreach ($entities as $entity) {
- $entity->foo = mymodule_add_something($entity, $type);
- }
- }
- function hook_entity_presave($entity, $type) {
- $entity->changed = REQUEST_TIME;
- }
- function hook_entity_insert($entity, $type) {
-
- $info = entity_get_info($type);
- list($id) = entity_extract_ids($type, $entity);
- db_insert('example_entity')
- ->fields(array(
- 'type' => $type,
- 'id' => $id,
- 'created' => REQUEST_TIME,
- 'updated' => REQUEST_TIME,
- ))
- ->execute();
- }
- function hook_entity_update($entity, $type) {
-
- $info = entity_get_info($type);
- list($id) = entity_extract_ids($type, $entity);
- db_update('example_entity')
- ->fields(array(
- 'updated' => REQUEST_TIME,
- ))
- ->condition('type', $type)
- ->condition('id', $id)
- ->execute();
- }
- function hook_entity_delete($entity, $type) {
-
- $info = entity_get_info($type);
- list($id) = entity_extract_ids($type, $entity);
- db_delete('example_entity')
- ->condition('type', $type)
- ->condition('id', $id)
- ->execute();
- }
- function hook_entity_query_alter($query) {
- $query->executeCallback = 'my_module_query_callback';
- }
- function hook_entity_view($entity, $type, $view_mode, $langcode) {
- $entity->content['my_additional_field'] = array(
- '#markup' => $additional_field,
- '#weight' => 10,
- '#theme' => 'mymodule_my_additional_field',
- );
- }
- function hook_entity_view_alter(&$build, $type) {
- if ($build['#view_mode'] == 'full' && isset($build['an_additional_field'])) {
-
- $build['an_additional_field']['#weight'] = -10;
-
- $build['#post_render'][] = 'my_module_node_post_render';
- }
- }
- function hook_entity_view_mode_alter(&$view_mode, $context) {
-
- if ($context['entity_type'] == 'node' && $view_mode == 'teaser') {
- $view_mode = 'my_custom_view_mode';
- }
- }
- function hook_admin_paths() {
- $paths = array(
- 'mymodule/*/add' => TRUE,
- 'mymodule/*/edit' => TRUE,
- );
- return $paths;
- }
- function hook_admin_paths_alter(&$paths) {
-
- $paths['user'] = TRUE;
- $paths['user/*'] = TRUE;
-
- $paths['node/add/forum'] = FALSE;
- }
- function hook_entity_prepare_view($entities, $type, $langcode) {
-
- if ($type == 'user') {
- $nodes = mymodule_get_user_nodes(array_keys($entities));
- foreach ($entities as $uid => $entity) {
- $entity->user_node = $nodes[$uid];
- }
- }
- }
- function hook_cron() {
-
-
- $expires = variable_get('mymodule_cron_last_run', REQUEST_TIME);
- db_delete('mymodule_table')
- ->condition('expires', $expires, '>=')
- ->execute();
- variable_set('mymodule_cron_last_run', REQUEST_TIME);
-
-
- $result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < :time AND refresh <> :never', array(
- ':time' => REQUEST_TIME,
- ':never' => AGGREGATOR_CLEAR_NEVER,
- ));
- $queue = DrupalQueue::get('aggregator_feeds');
- foreach ($result as $feed) {
- $queue->createItem($feed);
- }
- }
- function hook_cron_queue_info() {
- $queues['aggregator_feeds'] = array(
- 'worker callback' => 'aggregator_refresh',
- 'time' => 60,
- );
- return $queues;
- }
- function hook_cron_queue_info_alter(&$queues) {
-
-
- $queues['aggregator_feeds']['time'] = 90;
- }
- function hook_element_info() {
- $types['filter_format'] = array(
- '#input' => TRUE,
- );
- return $types;
- }
- function hook_element_info_alter(&$type) {
-
- if (isset($type['textfield']['#size'])) {
- $type['textfield']['#size'] = 40;
- }
- }
- function hook_exit($destination = NULL) {
- db_update('counter')
- ->expression('hits', 'hits + 1')
- ->condition('type', 1)
- ->execute();
- }
- function hook_js_alter(&$javascript) {
-
- $javascript['misc/jquery.js']['data'] = drupal_get_path('module', 'jquery_update') . '/jquery.js';
- }
- function hook_library() {
-
- $libraries['library-1'] = array(
- 'title' => 'Library One',
- 'website' => 'http://example.com/library-1',
- 'version' => '1.2',
- 'js' => array(
- drupal_get_path('module', 'my_module') . '/library-1.js' => array(),
- ),
- 'css' => array(
- drupal_get_path('module', 'my_module') . '/library-2.css' => array(
- 'type' => 'file',
- 'media' => 'screen',
- ),
- ),
- );
-
- $libraries['library-2'] = array(
- 'title' => 'Library Two',
- 'website' => 'http://example.com/library-2',
- 'version' => '3.1-beta1',
- 'js' => array(
-
- array(
- 'type' => 'setting',
- 'data' => array('library2' => TRUE),
- ),
- ),
- 'dependencies' => array(
-
- array('system', 'ui'),
-
- array('my_module', 'library-1'),
-
- array('other_module', 'library-3'),
- ),
- );
- return $libraries;
- }
- function hook_library_alter(&$libraries, $module) {
-
- if ($module == 'system' && isset($libraries['farbtastic'])) {
-
- if (version_compare($libraries['farbtastic']['version'], '2.0', '<')) {
-
- $libraries['farbtastic']['version'] = '2.0';
- $libraries['farbtastic']['js'] = array(
- drupal_get_path('module', 'farbtastic_update') . '/farbtastic-2.0.js' => array(),
- );
- }
- }
- }
- function hook_css_alter(&$css) {
-
- unset($css[drupal_get_path('module', 'system') . '/defaults.css']);
- }
- function hook_ajax_render_alter(&$commands) {
-
- $commands[] = ajax_command_prepend('#block-system-main .content', theme('status_messages'));
- }
- function hook_page_build(&$page) {
- if (menu_get_object('node', 1)) {
-
-
- $page['content']['disclaimer'] = array(
- '#markup' => t('Acme, Inc. is not responsible for the contents of this sample code.'),
- '#weight' => 25,
- );
- }
- }
- function hook_menu_get_item_alter(&$router_item, $path, $original_map) {
-
- if ($path == $_GET['q']) {
-
- mymodule_prepare_something();
- }
- }
- function hook_menu() {
- $items['example'] = array(
- 'title' => 'Example Page',
- 'page callback' => 'example_page',
- 'access arguments' => array('access content'),
- 'type' => MENU_SUGGESTED_ITEM,
- );
- $items['example/feed'] = array(
- 'title' => 'Example RSS feed',
- 'page callback' => 'example_feed',
- 'access arguments' => array('access content'),
- 'type' => MENU_CALLBACK,
- );
- return $items;
- }
- function hook_menu_alter(&$items) {
-
- $items['node/add']['access callback'] = FALSE;
- }
- function hook_menu_link_alter(&$item) {
-
- if (strpos($item['link_path'], 'admin') === 0 && empty($item['mlid'])) {
- $item['hidden'] = 1;
- }
-
- if ($item['link_path'] == 'devel/cache/clear') {
- $item['options']['alter'] = TRUE;
- }
-
-
-
- if ($item['link_path'] == 'user' && $item['module'] == 'system') {
- $item['options']['alter'] = TRUE;
- }
- }
- function hook_translated_menu_link_alter(&$item, $map) {
- if ($item['href'] == 'devel/cache/clear') {
- $item['localized_options']['query'] = drupal_get_destination();
- }
- }
- function hook_menu_link_insert($link) {
-
-
- $record['mlid'] = $link['mlid'];
- $record['menu_name'] = $link['menu_name'];
- $record['status'] = 0;
- drupal_write_record('menu_example', $record);
- }
- function hook_menu_link_update($link) {
-
- $menu_name = db_query("SELECT menu_name FROM {menu_example} WHERE mlid = :mlid", array(':mlid' => $link['mlid']))->fetchField();
- if ($menu_name != $link['menu_name']) {
- db_update('menu_example')
- ->fields(array('menu_name' => $link['menu_name']))
- ->condition('mlid', $link['mlid'])
- ->execute();
- }
- }
- function hook_menu_link_delete($link) {
-
- db_delete('menu_example')
- ->condition('mlid', $link['mlid'])
- ->execute();
- }
- function hook_menu_local_tasks_alter(&$data, $router_item, $root_path) {
-
- $data['actions']['output'][] = array(
- '#theme' => 'menu_local_task',
- '#link' => array(
- 'title' => t('Add new content'),
- 'href' => 'node/add',
- 'localized_options' => array(
- 'attributes' => array(
- 'title' => t('Add new content'),
- ),
- ),
- ),
- );
-
- $data['tabs'][0]['output'][] = array(
- '#theme' => 'menu_local_task',
- '#link' => array(
- 'title' => t('Example tab'),
- 'href' => 'node/add',
- 'localized_options' => array(
- 'attributes' => array(
- 'title' => t('Add new content'),
- ),
- ),
- ),
-
-
-
- '#active' => ($router_item['path'] == $root_path),
- );
- }
- function hook_menu_breadcrumb_alter(&$active_trail, $item) {
-
-
-
-
- if (!drupal_is_front_page()) {
- $end = end($active_trail);
- if ($item['href'] == $end['href']) {
- $active_trail[] = $end;
- }
- }
- }
- function hook_menu_contextual_links_alter(&$links, $router_item, $root_path) {
-
- if ($root_path == 'node/%') {
- $links['foo'] = array(
- 'title' => t('Do fu'),
- 'href' => 'foo/do',
- 'localized_options' => array(
- 'query' => array(
- 'foo' => 'bar',
- ),
- ),
- );
- }
- }
- function hook_page_alter(&$page) {
-
- $page['sidebar_first']['user_login']['help'] = array(
- '#weight' => -10,
- '#markup' => t('To post comments or add new content, you first have to log in.'),
- );
- }
- function hook_form_alter(&$form, &$form_state, $form_id) {
- if (isset($form['type']) && $form['type']['#value'] . '_node_settings' == $form_id) {
- $form['workflow']['upload_' . $form['type']['#value']] = array(
- '#type' => 'radios',
- '#title' => t('Attachments'),
- '#default_value' => variable_get('upload_' . $form['type']['#value'], 1),
- '#options' => array(t('Disabled'), t('Enabled')),
- );
- }
- }
- function hook_form_FORM_ID_alter(&$form, &$form_state, $form_id) {
-
-
-
-
- $form['terms_of_use'] = array(
- '#type' => 'checkbox',
- '#title' => t("I agree with the website's terms and conditions."),
- '#required' => TRUE,
- );
- }
- function hook_form_BASE_FORM_ID_alter(&$form, &$form_state, $form_id) {
-
-
-
-
- $form['terms_of_use'] = array(
- '#type' => 'checkbox',
- '#title' => t("I agree with the website's terms and conditions."),
- '#required' => TRUE,
- );
- }
- function hook_forms($form_id, $args) {
-
-
- $forms['mymodule_first_form'] = array(
- 'callback' => 'mymodule_main_form',
- );
-
-
- $forms['mymodule_second_form'] = array(
- 'callback' => 'mymodule_main_form',
- 'callback arguments' => array('some parameter'),
- );
-
-
-
- $forms['mymodule_wrapped_form'] = array(
- 'callback' => 'mymodule_main_form',
- 'wrapper_callback' => 'mymodule_main_form_wrapper',
- );
- return $forms;
- }
- function hook_boot() {
-
- drupal_load('module', 'user');
- drupal_register_shutdown_function('devel_shutdown');
- }
- function hook_init() {
-
-
- if (drupal_is_front_page()) {
- drupal_add_css(drupal_get_path('module', 'foo') . '/foo.css');
- }
- }
- function hook_image_toolkits() {
- return array(
- 'working' => array(
- 'title' => t('A toolkit that works.'),
- 'available' => TRUE,
- ),
- 'broken' => array(
- 'title' => t('A toolkit that is "broken" and will not be listed.'),
- 'available' => FALSE,
- ),
- );
- }
- function hook_mail_alter(&$message) {
- if ($message['id'] == 'modulename_messagekey') {
- if (!example_notifications_optin($message['to'], $message['id'])) {
-
-
- $message['send'] = FALSE;
- return;
- }
- $message['body'][] = "--\nMail sent out from " . variable_get('site_name', t('Drupal'));
- }
- }
- function hook_module_implements_alter(&$implementations, $hook) {
- if ($hook == 'rdf_mapping') {
-
-
-
-
- $group = $implementations['my_module'];
- unset($implementations['my_module']);
- $implementations['my_module'] = $group;
- }
- }
- function hook_system_theme_info() {
- $themes['mymodule_test_theme'] = drupal_get_path('module', 'mymodule') . '/mymodule_test_theme/mymodule_test_theme.info';
- return $themes;
- }
- function hook_system_info_alter(&$info, $file, $type) {
-
- if (empty($info['datestamp'])) {
- $info['datestamp'] = filemtime($file->filename);
- }
- }
- function hook_permission() {
- return array(
- 'administer my module' => array(
- 'title' => t('Administer my module'),
- 'description' => t('Perform administration tasks for my module.'),
- ),
- );
- }
- function hook_help($path, $arg) {
- switch ($path) {
-
- case 'admin/help#block':
- return '<p>' . t('Blocks are boxes of content rendered into an area, or region, of a web page. The default theme Bartik, for example, implements the regions "Sidebar first", "Sidebar second", "Featured", "Content", "Header", "Footer", etc., and a block may appear in any one of these areas. The <a href="@blocks">blocks administration page</a> provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions.', array('@blocks' => url('admin/structure/block'))) . '</p>';
-
- case 'admin/structure/block':
- return '<p>' . t('This page provides a drag-and-drop interface for assigning a block to a region, and for controlling the order of blocks within regions. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the <em>Save blocks</em> button at the bottom of the page.') . '</p>';
- }
- }
- function hook_theme($existing, $type, $theme, $path) {
- return array(
- 'forum_display' => array(
- 'variables' => array('forums' => NULL, 'topics' => NULL, 'parents' => NULL, 'tid' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL),
- ),
- 'forum_list' => array(
- 'variables' => array('forums' => NULL, 'parents' => NULL, 'tid' => NULL),
- ),
- 'forum_topic_list' => array(
- 'variables' => array('tid' => NULL, 'topics' => NULL, 'sortby' => NULL, 'forum_per_page' => NULL),
- ),
- 'forum_icon' => array(
- 'variables' => array('new_posts' => NULL, 'num_posts' => 0, 'comment_mode' => 0, 'sticky' => 0),
- ),
- 'status_report' => array(
- 'render element' => 'requirements',
- 'file' => 'system.admin.inc',
- ),
- 'system_date_time_settings' => array(
- 'render element' => 'form',
- 'file' => 'system.admin.inc',
- ),
- );
- }
- function hook_theme_registry_alter(&$theme_registry) {
-
- foreach ($theme_registry['forum_topic_navigation']['preprocess functions'] as $key => $value) {
- if ($value == 'template_preprocess_forum_topic_navigation') {
- unset($theme_registry['forum_topic_navigation']['preprocess functions'][$key]);
- }
- }
- }
- function hook_custom_theme() {
-
- if (isset($_GET['theme'])) {
- return $_GET['theme'];
- }
- }
- function hook_xmlrpc() {
- return array(
- 'drupal.login' => 'drupal_login',
- array(
- 'drupal.site.ping',
- 'drupal_directory_ping',
- array('boolean', 'string', 'string', 'string', 'string', 'string'),
- t('Handling ping request'))
- );
- }
- function hook_xmlrpc_alter(&$methods) {
-
- $methods['drupal.login'] = 'mymodule_login';
-
- foreach ($methods as $key => &$method) {
-
- if (!is_int($key)) {
- continue;
- }
-
- if ($method[0] == 'drupal.site.ping') {
- $method[1] = 'mymodule_directory_ping';
- }
- }
- }
- function hook_watchdog(array $log_entry) {
- global $base_url, $language;
- $severity_list = array(
- WATCHDOG_EMERGENCY => t('Emergency'),
- WATCHDOG_ALERT => t('Alert'),
- WATCHDOG_CRITICAL => t('Critical'),
- WATCHDOG_ERROR => t('Error'),
- WATCHDOG_WARNING => t('Warning'),
- WATCHDOG_NOTICE => t('Notice'),
- WATCHDOG_INFO => t('Info'),
- WATCHDOG_DEBUG => t('Debug'),
- );
- $to = 'someone@example.com';
- $params = array();
- $params['subject'] = t('[@site_name] @severity_desc: Alert from your web site', array(
- '@site_name' => variable_get('site_name', 'Drupal'),
- '@severity_desc' => $severity_list[$log_entry['severity']],
- ));
- $params['message'] = "\nSite: @base_url";
- $params['message'] .= "\nSeverity: (@severity) @severity_desc";
- $params['message'] .= "\nTimestamp: @timestamp";
- $params['message'] .= "\nType: @type";
- $params['message'] .= "\nIP Address: @ip";
- $params['message'] .= "\nRequest URI: @request_uri";
- $params['message'] .= "\nReferrer URI: @referer_uri";
- $params['message'] .= "\nUser: (@uid) @name";
- $params['message'] .= "\nLink: @link";
- $params['message'] .= "\nMessage: \n\n@message";
- $params['message'] = t($params['message'], array(
- '@base_url' => $base_url,
- '@severity' => $log_entry['severity'],
- '@severity_desc' => $severity_list[$log_entry['severity']],
- '@timestamp' => format_date($log_entry['timestamp']),
- '@type' => $log_entry['type'],
- '@ip' => $log_entry['ip'],
- '@request_uri' => $log_entry['request_uri'],
- '@referer_uri' => $log_entry['referer'],
- '@uid' => $log_entry['uid'],
- '@name' => $log_entry['user']->name,
- '@link' => strip_tags($log_entry['link']),
- '@message' => strip_tags($log_entry['message']),
- ));
- drupal_mail('emaillog', 'entry', $to, $language, $params);
- }
- function hook_mail($key, &$message, $params) {
- $account = $params['account'];
- $context = $params['context'];
- $variables = array(
- '%site_name' => variable_get('site_name', 'Drupal'),
- '%username' => format_username($account),
- );
- if ($context['hook'] == 'taxonomy') {
- $entity = $params['entity'];
- $vocabulary = taxonomy_vocabulary_load($entity->vid);
- $variables += array(
- '%term_name' => $entity->name,
- '%term_description' => $entity->description,
- '%term_id' => $entity->tid,
- '%vocabulary_name' => $vocabulary->name,
- '%vocabulary_description' => $vocabulary->description,
- '%vocabulary_id' => $vocabulary->vid,
- );
- }
-
- if (isset($params['node'])) {
- $node = $params['node'];
- $variables += array(
- '%uid' => $node->uid,
- '%node_url' => url('node/' . $node->nid, array('absolute' => TRUE)),
- '%node_type' => node_type_get_name($node),
- '%title' => $node->title,
- '%teaser' => $node->teaser,
- '%body' => $node->body,
- );
- }
- $subject = strtr($context['subject'], $variables);
- $body = strtr($context['message'], $variables);
- $message['subject'] .= str_replace(array("\r", "\n"), '', $subject);
- $message['body'][] = drupal_html_to_text($body);
- }
- function hook_flush_caches() {
- return array('cache_example');
- }
- function hook_modules_installed($modules) {
- if (in_array('lousy_module', $modules)) {
- variable_set('lousy_module_conflicting_variable', FALSE);
- }
- }
- function hook_modules_enabled($modules) {
- if (in_array('lousy_module', $modules)) {
- drupal_set_message(t('mymodule is not compatible with lousy_module'), 'error');
- mymodule_disable_functionality();
- }
- }
- function hook_modules_disabled($modules) {
- if (in_array('lousy_module', $modules)) {
- mymodule_enable_functionality();
- }
- }
- function hook_modules_uninstalled($modules) {
- foreach ($modules as $module) {
- db_delete('mymodule_table')
- ->condition('module', $module)
- ->execute();
- }
- mymodule_cache_rebuild();
- }
- function hook_stream_wrappers() {
- return array(
- 'public' => array(
- 'name' => t('Public files'),
- 'class' => 'DrupalPublicStreamWrapper',
- 'description' => t('Public local files served by the webserver.'),
- 'type' => STREAM_WRAPPERS_LOCAL_NORMAL,
- ),
- 'private' => array(
- 'name' => t('Private files'),
- 'class' => 'DrupalPrivateStreamWrapper',
- 'description' => t('Private local files served by Drupal.'),
- 'type' => STREAM_WRAPPERS_LOCAL_NORMAL,
- ),
- 'temp' => array(
- 'name' => t('Temporary files'),
- 'class' => 'DrupalTempStreamWrapper',
- 'description' => t('Temporary local files for upload and previews.'),
- 'type' => STREAM_WRAPPERS_LOCAL_HIDDEN,
- ),
- 'cdn' => array(
- 'name' => t('Content delivery network files'),
- 'class' => 'MyModuleCDNStreamWrapper',
- 'description' => t('Files served by a content delivery network.'),
-
- ),
- 'youtube' => array(
- 'name' => t('YouTube video'),
- 'class' => 'MyModuleYouTubeStreamWrapper',
- 'description' => t('Video streamed from YouTube.'),
-
-
-
- 'type' => STREAM_WRAPPERS_READ_VISIBLE,
- ),
- );
- }
- function hook_stream_wrappers_alter(&$wrappers) {
-
- $wrappers['private']['name'] = t('Slow files');
- }
- function hook_file_load($files) {
-
- $result = db_query('SELECT * FROM {upload} u WHERE u.fid IN (:fids)', array(':fids' => array_keys($files)))->fetchAll(PDO::FETCH_ASSOC);
- foreach ($result as $record) {
- foreach ($record as $key => $value) {
- $files[$record['fid']]->$key = $value;
- }
- }
- }
- function hook_file_validate($file) {
- $errors = array();
- if (empty($file->filename)) {
- $errors[] = t("The file's name is empty. Please give a name to the file.");
- }
- if (strlen($file->filename) > 255) {
- $errors[] = t("The file's name exceeds the 255 characters limit. Please rename the file and try again.");
- }
- return $errors;
- }
- function hook_file_presave($file) {
-
- $file->timestamp -= 3600;
- }
- function hook_file_insert($file) {
-
- $validate = file_validate_extensions($file, 'jpg');
- if (empty($validate)) {
- watchdog('file', 'A jpg has been added.');
- }
- }
- function hook_file_update($file) {
- $file_user = user_load($file->uid);
-
- if (strpos($file->filename, $file_user->name) !== 0) {
- $old_filename = $file->filename;
- $file->filename = $file_user->name . '_' . $file->filename;
- $file->save();
- watchdog('file', t('%source has been renamed to %destination', array('%source' => $old_filename, '%destination' => $file->filename)));
- }
- }
- function hook_file_copy($file, $source) {
- $file_user = user_load($file->uid);
-
- if (strpos($file->filename, $file_user->name) !== 0) {
- $file->filename = $file_user->name . '_' . $file->filename;
- $file->save();
- watchdog('file', t('Copied file %source has been renamed to %destination', array('%source' => $source->filename, '%destination' => $file->filename)));
- }
- }
- function hook_file_move($file, $source) {
- $file_user = user_load($file->uid);
-
- if (strpos($file->filename, $file_user->name) !== 0) {
- $file->filename = $file_user->name . '_' . $file->filename;
- $file->save();
- watchdog('file', t('Moved file %source has been renamed to %destination', array('%source' => $source->filename, '%destination' => $file->filename)));
- }
- }
- function hook_file_delete($file) {
-
- db_delete('upload')->condition('fid', $file->fid)->execute();
- }
- function hook_file_download($uri) {
-
- if (!file_prepare_directory($uri)) {
- $uri = FALSE;
- }
- if (strpos(file_uri_target($uri), variable_get('user_picture_path', 'pictures') . '/picture-') === 0) {
- if (!user_access('access user profiles')) {
-
- return -1;
- }
- else {
- $info = image_get_info($uri);
- return array('Content-Type' => $info['mime_type']);
- }
- }
- }
- function hook_file_url_alter(&$uri) {
- global $user;
-
- if ($user->uid == 1) {
- return;
- }
- $cdn1 = 'http://cdn1.example.com';
- $cdn2 = 'http://cdn2.example.com';
- $cdn_extensions = array('css', 'js', 'gif', 'jpg', 'jpeg', 'png');
-
-
- $schemes = array('public');
- $scheme = file_uri_scheme($uri);
-
- if (!$scheme || in_array($scheme, $schemes)) {
-
- if (!$scheme) {
- $path = $uri;
- }
-
- else {
- $wrapper = file_stream_wrapper_get_instance_by_scheme($scheme);
- $path = $wrapper->getDirectoryPath() . '/' . file_uri_target($uri);
- }
-
- $path = str_replace('\\', '/', $path);
-
-
- $pathinfo = pathinfo($path);
- if (isset($pathinfo['extension']) && in_array($pathinfo['extension'], $cdn_extensions)) {
- $uri = $cdn1 . '/' . $path;
- }
- else {
- $uri = $cdn2 . '/' . $path;
- }
- }
- }
- function hook_requirements($phase) {
- $requirements = array();
-
- $t = get_t();
-
- if ($phase == 'runtime') {
- $requirements['drupal'] = array(
- 'title' => $t('Drupal'),
- 'value' => VERSION,
- 'severity' => REQUIREMENT_INFO
- );
- }
-
- $requirements['php'] = array(
- 'title' => $t('PHP'),
- 'value' => ($phase == 'runtime') ? l(phpversion(), 'admin/reports/status/php') : phpversion(),
- );
- if (version_compare(phpversion(), DRUPAL_MINIMUM_PHP) < 0) {
- $requirements['php']['description'] = $t('Your PHP installation is too old. Drupal requires at least PHP %version.', array('%version' => DRUPAL_MINIMUM_PHP));
- $requirements['php']['severity'] = REQUIREMENT_ERROR;
- }
-
- if ($phase == 'runtime') {
- $cron_last = variable_get('cron_last');
- if (is_numeric($cron_last)) {
- $requirements['cron']['value'] = $t('Last run !time ago', array('!time' => format_interval(REQUEST_TIME - $cron_last)));
- }
- else {
- $requirements['cron'] = array(
- 'description' => $t('Cron has not run. It appears cron jobs have not been setup on your system. Check the help pages for <a href="@url">configuring cron jobs</a>.', array('@url' => 'http://drupal.org/cron')),
- 'severity' => REQUIREMENT_ERROR,
- 'value' => $t('Never run'),
- );
- }
- $requirements['cron']['description'] .= ' ' . $t('You can <a href="@cron">run cron manually</a>.', array('@cron' => url('admin/reports/status/run-cron')));
- $requirements['cron']['title'] = $t('Cron maintenance tasks');
- }
- return $requirements;
- }
- function hook_schema() {
- $schema['node'] = array(
-
- 'description' => 'The base table for nodes.',
- 'fields' => array(
- 'nid' => array(
- 'description' => 'The primary identifier for a node.',
- 'type' => 'serial',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- ),
- 'vid' => array(
- 'description' => 'The current {node_revision}.vid version identifier.',
- 'type' => 'int',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- 'default' => 0,
- ),
- 'type' => array(
- 'description' => 'The {node_type} of this node.',
- 'type' => 'varchar',
- 'length' => 32,
- 'not null' => TRUE,
- 'default' => '',
- ),
- 'title' => array(
- 'description' => 'The title of this node, always treated as non-markup plain text.',
- 'type' => 'varchar',
- 'length' => 255,
- 'not null' => TRUE,
- 'default' => '',
- ),
- ),
- 'indexes' => array(
- 'node_changed' => array('changed'),
- 'node_created' => array('created'),
- ),
- 'unique keys' => array(
- 'nid_vid' => array('nid', 'vid'),
- 'vid' => array('vid'),
- ),
- 'foreign keys' => array(
- 'node_revision' => array(
- 'table' => 'node_revision',
- 'columns' => array('vid' => 'vid'),
- ),
- 'node_author' => array(
- 'table' => 'users',
- 'columns' => array('uid' => 'uid'),
- ),
- ),
- 'primary key' => array('nid'),
- );
- return $schema;
- }
- function hook_schema_alter(&$schema) {
-
- $schema['users']['fields']['timezone_id'] = array(
- 'type' => 'int',
- 'not null' => TRUE,
- 'default' => 0,
- 'description' => 'Per-user timezone configuration.',
- );
- }
- function hook_query_alter(QueryAlterableInterface $query) {
- if ($query->hasTag('micro_limit')) {
- $query->range(0, 2);
- }
- }
- function hook_query_TAG_alter(QueryAlterableInterface $query) {
-
- if (!node_access_view_all_nodes()) {
-
- $query->distinct();
-
- if (!$op = $query->getMetaData('op')) {
- $op = 'view';
- }
-
- if (!user_access('bypass node access')) {
-
- $access_alias = $query->join('node_access', 'na', '%alias.nid = n.nid');
- $or = db_or();
-
- foreach (node_access_grants($op, $query->getMetaData('account')) as $realm => $gids) {
- foreach ($gids as $gid) {
- $or->condition(db_and()
- ->condition($access_alias . '.gid', $gid)
- ->condition($access_alias . '.realm', $realm)
- );
- }
- }
- if (count($or->conditions())) {
- $query->condition($or);
- }
- $query->condition($access_alias . 'grant_' . $op, 1, '>=');
- }
- }
- }
- function hook_install() {
-
- db_insert('node_access')
- ->fields(array(
- 'nid' => 0,
- 'gid' => 0,
- 'realm' => 'all',
- 'grant_view' => 1,
- 'grant_update' => 0,
- 'grant_delete' => 0,
- ))
- ->execute();
- }
- function hook_update_N(&$sandbox) {
-
-
-
- db_add_field('mytable1', 'newcol', array('type' => 'int', 'not null' => TRUE, 'description' => 'My new integer column.'));
-
-
-
-
- if (!isset($sandbox['progress'])) {
- $sandbox['progress'] = 0;
- $sandbox['current_uid'] = 0;
-
- $sandbox['max'] = db_query('SELECT COUNT(DISTINCT uid) FROM {users}')->fetchField() - 1;
- }
- $users = db_select('users', 'u')
- ->fields('u', array('uid', 'name'))
- ->condition('uid', $sandbox['current_uid'], '>')
- ->range(0, 3)
- ->orderBy('uid', 'ASC')
- ->execute();
- foreach ($users as $user) {
- $user->name .= '!';
- db_update('users')
- ->fields(array('name' => $user->name))
- ->condition('uid', $user->uid)
- ->execute();
- $sandbox['progress']++;
- $sandbox['current_uid'] = $user->uid;
- }
- $sandbox['#finished'] = empty($sandbox['max']) ? 1 : ($sandbox['progress'] / $sandbox['max']);
-
-
- return t('The update did what it was supposed to do.');
-
- throw new DrupalUpdateException('Something went wrong; here is what you should do.');
- }
- function hook_update_dependencies() {
-
-
-
- $dependencies['mymodule'][7000] = array(
- 'another_module' => 7002,
- );
-
-
-
-
-
-
-
- $dependencies['yet_another_module'][7004] = array(
- 'mymodule' => 7001,
- );
- return $dependencies;
- }
- function hook_update_last_removed() {
-
-
- return 5103;
- }
- function hook_uninstall() {
- variable_del('upload_file_types');
- }
- function hook_enable() {
- mymodule_cache_rebuild();
- }
- function hook_disable() {
- mymodule_cache_rebuild();
- }
- function hook_registry_files_alter(&$files, $modules) {
- foreach ($modules as $module) {
-
-
- if (!$module->status) {
- $dir = $module->dir;
- foreach ($module->info['files'] as $file) {
- if (substr($file, -5) == '.test') {
- $files["$dir/$file"] = array('module' => $module->name, 'weight' => $module->weight);
- }
- }
- }
- }
- }
- function hook_install_tasks(&$install_state) {
-
-
-
- $myprofile_needs_batch_processing = variable_get('myprofile_needs_batch_processing', FALSE);
- $tasks = array(
-
-
-
-
-
-
-
-
-
- 'myprofile_data_import_form' => array(
- 'display_name' => st('Data import options'),
- 'type' => 'form',
- ),
-
-
-
-
-
-
-
- 'myprofile_settings_form' => array(
- 'display_name' => st('Additional options'),
- 'type' => 'form',
- ),
-
-
-
-
-
-
-
- 'myprofile_batch_processing' => array(
- 'display_name' => st('Import additional data'),
- 'display' => $myprofile_needs_batch_processing,
- 'type' => 'batch',
- 'run' => $myprofile_needs_batch_processing ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
- ),
-
-
-
-
-
-
-
-
-
-
-
-
- 'myprofile_final_site_setup' => array(
- ),
- );
- return $tasks;
- }
- function hook_drupal_goto_alter(&$path, &$options, &$http_response_code) {
-
- $http_response_code = 500;
- }
- function hook_html_head_alter(&$head_elements) {
- foreach ($head_elements as $key => $element) {
- if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
-
- $head_elements[$key]['#attributes']['href'] = mymodule_canonical_url();
- }
- }
- }
- function hook_install_tasks_alter(&$tasks, $install_state) {
-
-
- $tasks['install_select_locale']['function'] = 'myprofile_locale_selection';
- }
- function hook_file_mimetype_mapping_alter(&$mapping) {
-
- $mapping['mimetypes']['example_info'] = 'drupal/info';
-
- $mapping['extensions']['info'] = 'example_info';
-
- $mapping['extensions']['ogg'] = 189;
- }
- function hook_action_info() {
- return array(
- 'comment_unpublish_action' => array(
- 'type' => 'comment',
- 'label' => t('Unpublish comment'),
- 'configurable' => FALSE,
- 'behavior' => array('changes_property'),
- 'triggers' => array('comment_presave', 'comment_insert', 'comment_update'),
- ),
- 'comment_unpublish_by_keyword_action' => array(
- 'type' => 'comment',
- 'label' => t('Unpublish comment containing keyword(s)'),
- 'configurable' => TRUE,
- 'behavior' => array('changes_property'),
- 'triggers' => array('comment_presave', 'comment_insert', 'comment_update'),
- ),
- 'comment_save_action' => array(
- 'type' => 'comment',
- 'label' => t('Save comment'),
- 'configurable' => FALSE,
- 'triggers' => array('comment_insert', 'comment_update'),
- ),
- );
- }
- function hook_actions_delete($aid) {
- db_delete('actions_assignments')
- ->condition('aid', $aid)
- ->execute();
- }
- function hook_action_info_alter(&$actions) {
- $actions['node_unpublish_action']['label'] = t('Unpublish and remove from public view.');
- }
- function hook_archiver_info() {
- return array(
- 'tar' => array(
- 'class' => 'ArchiverTar',
- 'extensions' => array('tar', 'tar.gz', 'tar.bz2'),
- ),
- );
- }
- function hook_archiver_info_alter(&$info) {
- $info['tar']['extensions'][] = 'tgz';
- }
- function hook_date_format_types() {
-
- return array(
- 'long' => t('Long'),
- 'medium' => t('Medium'),
- 'short' => t('Short'),
- );
- }
- function hook_date_format_types_alter(&$types) {
- foreach ($types as $name => $type) {
- $types[$name]['locked'] = 1;
- }
- }
- function hook_date_formats() {
- return array(
- array(
- 'type' => 'mymodule_extra_long',
- 'format' => 'l jS F Y H:i:s e',
- 'locales' => array('en-ie'),
- ),
- array(
- 'type' => 'mymodule_extra_long',
- 'format' => 'l jS F Y h:i:sa',
- 'locales' => array('en', 'en-us'),
- ),
- array(
- 'type' => 'short',
- 'format' => 'F Y',
- 'locales' => array(),
- ),
- );
- }
- function hook_date_formats_alter(&$formats) {
- foreach ($formats as $id => $format) {
- $formats[$id]['locales'][] = 'en-ca';
- }
- }
- function hook_page_delivery_callback_alter(&$callback) {
-
-
-
- if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' && $callback == 'drupal_deliver_html_page') {
- $callback = 'ajax_deliver';
- }
- }
- function hook_system_themes_page_alter(&$theme_groups) {
- foreach ($theme_groups as $state => &$group) {
- foreach ($theme_groups[$state] as &$theme) {
-
- $theme->operations[] = array(
- 'title' => t('Foo'),
- 'href' => 'admin/appearance/foo',
- 'query' => array('theme' => $theme->name)
- );
- }
- }
- }
- function hook_url_inbound_alter(&$path, $original_path, $path_language) {
-
- if (preg_match('|^user/me/edit(/.*)?|', $path, $matches)) {
- global $user;
- $path = 'user/' . $user->uid . '/edit' . $matches[1];
- }
- }
- function hook_url_outbound_alter(&$path, &$options, $original_path) {
-
- if ($path == 'rss.xml') {
- $path = 'http://example.com/rss.xml';
- $options['external'] = TRUE;
- }
-
- if (preg_match('|^user/([0-9]*)/edit(/.*)?|', $path, $matches)) {
- global $user;
- if ($user->uid == $matches[1]) {
- $path = 'user/me/edit' . $matches[2];
- }
- }
- }
- function hook_username_alter(&$name, $account) {
-
- if (isset($account->uid)) {
- $name = t('User !uid', array('!uid' => $account->uid));
- }
- }
- function hook_tokens($type, $tokens, array $data = array(), array $options = array()) {
- $url_options = array('absolute' => TRUE);
- if (isset($options['language'])) {
- $url_options['language'] = $options['language'];
- $language_code = $options['language']->language;
- }
- else {
- $language_code = NULL;
- }
- $sanitize = !empty($options['sanitize']);
- $replacements = array();
- if ($type == 'node' && !empty($data['node'])) {
- $node = $data['node'];
- foreach ($tokens as $name => $original) {
- switch ($name) {
-
- case 'nid':
- $replacements[$original] = $node->nid;
- break;
- case 'title':
- $replacements[$original] = $sanitize ? check_plain($node->title) : $node->title;
- break;
- case 'edit-url':
- $replacements[$original] = url('node/' . $node->nid . '/edit', $url_options);
- break;
-
- case 'author':
- $name = ($node->uid == 0) ? variable_get('anonymous', t('Anonymous')) : $node->name;
- $replacements[$original] = $sanitize ? filter_xss($name) : $name;
- break;
- case 'created':
- $replacements[$original] = format_date($node->created, 'medium', '', NULL, $language_code);
- break;
- }
- }
- if ($author_tokens = token_find_with_prefix($tokens, 'author')) {
- $author = user_load($node->uid);
- $replacements += token_generate('user', $author_tokens, array('user' => $author), $options);
- }
- if ($created_tokens = token_find_with_prefix($tokens, 'created')) {
- $replacements += token_generate('date', $created_tokens, array('date' => $node->created), $options);
- }
- }
- return $replacements;
- }
- function hook_tokens_alter(array &$replacements, array $context) {
- $options = $context['options'];
- if (isset($options['language'])) {
- $url_options['language'] = $options['language'];
- $language_code = $options['language']->language;
- }
- else {
- $language_code = NULL;
- }
- $sanitize = !empty($options['sanitize']);
- if ($context['type'] == 'node' && !empty($context['data']['node'])) {
- $node = $context['data']['node'];
-
-
- if (isset($context['tokens']['title'])) {
- $title = field_view_field('node', $node, 'field_title', 'default', $language_code);
- $replacements[$context['tokens']['title']] = drupal_render($title);
- }
- }
- }
- function hook_token_info() {
- $type = array(
- 'name' => t('Nodes'),
- 'description' => t('Tokens related to individual nodes.'),
- 'needs-data' => 'node',
- );
-
- $node['nid'] = array(
- 'name' => t("Node ID"),
- 'description' => t("The unique ID of the node."),
- );
- $node['title'] = array(
- 'name' => t("Title"),
- 'description' => t("The title of the node."),
- );
- $node['edit-url'] = array(
- 'name' => t("Edit URL"),
- 'description' => t("The URL of the node's edit page."),
- );
-
- $node['created'] = array(
- 'name' => t("Date created"),
- 'description' => t("The date the node was posted."),
- 'type' => 'date',
- );
- $node['author'] = array(
- 'name' => t("Author"),
- 'description' => t("The author of the node."),
- 'type' => 'user',
- );
- return array(
- 'types' => array('node' => $type),
- 'tokens' => array('node' => $node),
- );
- }
- function hook_token_info_alter(&$data) {
-
- $data['tokens']['node']['nid'] = array(
- 'name' => t("Node ID"),
- 'description' => t("The unique ID of the article."),
- );
- $data['tokens']['node']['title'] = array(
- 'name' => t("Title"),
- 'description' => t("The title of the article."),
- );
-
- $data['tokens']['node']['created'] = array(
- 'name' => t("Date created"),
- 'description' => t("The date the article was posted."),
- 'type' => 'date',
- );
- }
- function hook_batch_alter(&$batch) {
-
-
- if (overlay_get_mode() == 'child') {
- if (isset($batch['url_options']['query'])) {
- $batch['url_options']['query']['render'] = 'overlay';
- }
- else {
- $batch['url_options']['query'] = array('render' => 'overlay');
- }
- }
- }
- function hook_updater_info() {
- return array(
- 'module' => array(
- 'class' => 'ModuleUpdater',
- 'name' => t('Update modules'),
- 'weight' => 0,
- ),
- 'theme' => array(
- 'class' => 'ThemeUpdater',
- 'name' => t('Update themes'),
- 'weight' => 0,
- ),
- );
- }
- function hook_updater_info_alter(&$updaters) {
-
-
- $updaters['theme']['weight'] = -1;
- }
- function hook_countries_alter(&$countries) {
-
- $countries['EB'] = 'Elbonia';
- }
- function hook_menu_site_status_alter(&$menu_site_status, $path) {
-
- if ($menu_site_status == MENU_SITE_OFFLINE && user_is_anonymous() && $path == 'my_module/authentication') {
- $menu_site_status = MENU_SITE_ONLINE;
- }
- }
- function hook_filetransfer_info() {
- $info['sftp'] = array(
- 'title' => t('SFTP (Secure FTP)'),
- 'file' => 'sftp.filetransfer.inc',
- 'class' => 'FileTransferSFTP',
- 'weight' => 10,
- );
- return $info;
- }
- function hook_filetransfer_info_alter(&$filetransfer_info) {
- if (variable_get('paranoia', FALSE)) {
-
- unset($filetransfer_info['ftp']);
-
- $filetransfer_info['ssh']['weight'] = -10;
- }
- }
- function callback_queue_worker($queue_item_data) {
- $node = node_load($queue_item_data);
- $node->title = 'Updated title';
- node_save($node);
- }
- function callback_entity_info_uri($entity) {
- return array(
- 'path' => 'node/' . $entity->nid,
- );
- }
- function callback_entity_info_label($entity, $entity_type) {
- return empty($entity->title) ? 'Untitled entity' : $entity->title;
- }
- function callback_entity_info_language($entity, $entity_type) {
- return $entity->language;
- }
|